atarionline.pl Menu4CAR - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthorgienekp
      • CommentTime15 Oct 2023 11:10 zmieniony
       
      Zawiedziony kombajnem "Maxflash Studio Software" (działa tylko pod Windowsem, ma problemy z uruchamianiem gier), stwierdziłem, że nie ma co narzekać, tylko trzeba zrobić swoje narzędzie (czyli poprawiając stare bugi zrobić nowe).

      Menu4CAR to program pozwalający na zrobienie składanki XEXów dla cartridgea. Najważniejsze cechy:
      - jest w pełni OpenSource, kody są ->link<-
      - uruchamiany jest z konsoli; celowy zabieg, bo może w przyszłości uda się to postawić na jakimś serwerze z CGI itp. i wtedy byłoby przez www
      - wykorzystuje tylko bibliotekę podstawową <stdio.h> więc można go przekompilować praktycznie na wszystko
      - składankę buduje na bazie pliku tekstowego, gdzie jedna linijka to jeden wpis "Tytuł|Ścieżka Dostępu"
      - plik tekstowy powinien być w standardzie UTF-8, za to dostajemy polskie litery. Wszystkie ekstra znaki to: AąĆćĘꣳŃńÓ󌜯żŹźÄäËëÖöÜüߣ{}~±↑↓←→
      - loader zajmuje tylko 21 bajtów na stosie, na razie nie udało mi się znaleźć XEXa, który by się nie wczytał
      - loader obsługuje XEXy ładowane partiami, po każdym bloku INIT włącza ANTIC, samo wczytywanie idzie przy wyłączonym ANTIC bo niestety ale sporo programów przechowuje czołówkę pod adresem carta i wtedy ANTIC leci w maliny i często w obszar D5 co dla maxflasha jest poważnym problemem (standard maxflash w swej prostocie reaguje na odczyt z $D5xx)
      - loader przewiduje powrót XEXa do DOSu, wtedy powróci nam do głównego menu; większość loaderów idzie w maliny
      - pozycję wybieramy wciskając klawisz A,B,C...Z lub zaznaczając /Start/Select/Option lub JOY1-2
      - gdy na carcie jest tylko jedna pozycja to uruchamia się ona z automatu
      - gdy naciśniemy klawisz wyboru dla pozycji, która nie istnieje, to loader wylosuje nam grę - z tej opcji jestem najbardziej zadowolony :)
      - program uruchamiamy z palca "menu4car menu.txt plik.car"
      - wygenerowany plik car jest dla cartridgeów zgodnych z maxflash, z tym żeby zachować zgodność ze starymi emulatorami robi plik CAR z kodem 42. Natomiast w każdym banku jest na końcówce kod przechwtujący powracający do banku 0, więc można uciąć do BINa długość 512kB lub 256kB i wejdzie na wszystkie fizyczne carty zgodne
      - w wersji na GIThubie pilnuje rozmiaru 512kB bo takie są moje carty, ale zmieniając stałą FLASHMAX można to zwiększyć

      W przyszłości planuję:
      - losowe wybranie gry po 30 sekundach oczekiwania
      - podmiankę bitmapy na górnej belce (tam gdzie jest napis Menu4CAR). Już to jest ale na razie łyka RAW 256x16x1bajt, wtedy "menu4car menu.txt logo.raw plik.car"
      - obsługę plików ATR z menu, niestety wtedy odejdę ze standardu maxflash do nowego DCart (zgodnego wstecz z maxflashem)
      • 2:
         
        CommentAuthorPeri Noid
      • CommentTime15 Oct 2023 11:10
       
      Super!
      • 3:
         
        CommentAuthorMq
      • CommentTime15 Oct 2023 17:10
       
      Fajnie, że takie rzeczy powstają. Szersze możliwości dowolnego wykorzystania popularnych kartridży, to przydatne dla każdego atuty wszelkiego tego typu oprogramowania.
      • 4: CommentAuthortebe
      • CommentTime15 Oct 2023 19:10
       
      niewiarygodne, lutmistrz popełnił soft ;)
      • 5: CommentAuthorbartgo
      • CommentTime15 Oct 2023 19:10
       
      Super, brakowało tego! Będę testował z JCart.
      • 6:
         
        CommentAuthorgienekp
      • CommentTime15 Oct 2023 19:10
       
      acha, bo miałem pytanko o "licencję"

      Można to używać komercyjnie, niekomercyjnie edukacyjnie i jak się tam chce. Można to wykorzystywać wprost, zmieniać, przerabiać bez pisania skąd się to wzięło.
      ... w sumie to sprawi mi tylko radość ;)
      • 7: CommentAuthorbartgo
      • CommentTime15 Oct 2023 21:10 zmieniony
       
      (EDIT)

      Exe z GitHuba działa pod emulatorem. Fajosko!!

      Będę testował na sprzęcie.

      Nie działa wersja skompilowana TCC (kompilator którym się bawię) - to mój problem z TCC a nie u Gienka :)
      • 8:
         
        CommentAuthorjhusak
      • CommentTime15 Oct 2023 22:10
       
      Sprawdź, może na windowsach postają te gupie pliki txt UTF-16 i może to psuje.
      • 9:
         
        CommentAuthorPeri Noid
      • CommentTime15 Oct 2023 22:10
       
      Pod Windows to nie powinieneś przypadkiem podawać ścieżek w windzianym formacie? Uruchamiasz pod bashem ale to kompilator i biblioteki się liczą.
      • 10: CommentAuthortebe
      • CommentTime15 Oct 2023 23:10
       
      przecież w Windows jest GCC, TCC to żeby sobie utrudnić ?
      • 11:
         
        CommentAuthorgienekp
      • CommentTime15 Oct 2023 23:10 zmieniony
       
      Ja kompiluje zawsze GCC, bez względu na system.
      W release są tam gotowce ->link<-

      Ten baner u góry to sobie można swój zrobić. W gimpie trzeba zapisać jako RAW (4096 bajtów).
      • 12:
         
        CommentAuthorjhusak
      • CommentTime15 Oct 2023 23:10 zmieniony
       
      Hej gienekp, dołączysz mję do projektu, czy będę pullrequesty wysyłał?

      Też miałem takie narzędzie napisać (po raz wtóry już :), ale się nie zabrałem się dotychczas, więc dzięki :)
      • 13: CommentAuthorbartgo
      • CommentTime15 Oct 2023 23:10 zmieniony
       
      Nie tylko działa to z JCartem (więc i pewno z innymi modelami) - ale działa fantastycznie. 90% gier z losowej próby odpala się z cartridge'a - szybko, bez grzebania się z kartą SD. Szczególnie fajnie jest z QMEG-iem, nie trzeba machać wyłącznikiem zasilania tylko wracamy do menu cartridge poprzez QMEG (SELECT+RESET, C, TAB, ESC).

      Rzeczy idą ku lepszemu ;)

      Jestem zachwycony!

      gienekp - wieczna chwała dla Ciebie!

      Dla JCart'a 1024A wynikowy .CAR przepuszczony dodatkowo przez gienkowego flashbuildera. Plik xex odpalony z karty SD na 800XL. Miodzio :)
      • 14:
         
        CommentAuthorjhusak
      • CommentTime16 Oct 2023 01:10
       
      Jak jakaś się nie odpala - gienekp poprawi :)
      • 15:
         
        CommentAuthorgienekp
      • CommentTime16 Oct 2023 13:10
       
      A jeszcze takie coś jest, że przy boocie /Select/ pomija uruchomienie z carta (wyłącza go i robi reboot). Przydatne na wypadek ponownego flashowania.

      @jhusak
      Pewnie, że dodam, tylko jak się to robi?
      • 16:
         
        CommentAuthorjhusak
      • CommentTime16 Oct 2023 13:10 zmieniony
       
      W repozytorium na githubie: Settings/Colaborators

      Z tym selectem - też bardzo dobrze. Trudno to zrobić w przypadku gier pisanych pod kartridż (trzeba by je zmieniać) , ale takie z bootstrapem to spoko.
      • 17: CommentAuthorbartgo
      • CommentTime16 Oct 2023 14:10
       
      Czyli select pozwala na ominięcie tego carta i normalny boot?

      A czy można potem jakoś przywrócić boot z carta, nie robiąc on/off maszyny? Czy ja wiem, poleceniem CAR, skokiem do jakiegoś adresu spod dosa? Nie znam się na cartach i nie wiem jak bardzo takie odpięcie programistyczne jest odwracalne (QMEG to potrafi).
      • 18:
         
        CommentAuthorjhusak
      • CommentTime16 Oct 2023 15:10
       
      Przez wpis do $d500, ale nie da się tego zrobić bez jakiegoś programu operacyjnego; np. pewnie da się w Basicu poke wpisać, a spod dos 6.4 raczej na pewno.
      • 19:
         
        CommentAuthorgienekp
      • CommentTime16 Oct 2023 17:10 zmieniony
       
      Ja walę w BASICu POKE 54528,0 i potem RESET

      W zasadzie carta wyłączamy albo, żeby dać BASICowi pooddychać, albo DOSa puścić. Czasem sobie "trąbkę" kasetową włączam, żeby sprawdzić czy trębacz żyje.

      W sumie to dla DOSa to można by taki prosty program/komendę dać.
      • 20:
         
        CommentAuthorjhusak
      • CommentTime17 Oct 2023 09:10
       
      @gienekp, to poke 54555, 0 to wydaje mi się chybione, bo ustawiasz losową zawartość kartridża. Owszem, reset się zrobi, ale pamięć pod $a000 się nigdy nie zwolni, a kartridż nie zadziała.

      Aby włączyć kartridż spod basica trzeba wpisać poke 54528,0
      Aby wyłączyć - nie da się, bo tam jest już kartridż. Chyba, że na kartridżu jest basic, czy coś, to wpisujemy analogię do poke 54656,0 i wciskamy reset, wtedy kart jest wyłączony i komp na zimno wstaje.
      • 21: CommentAuthorbartgo
      • CommentTime17 Oct 2023 11:10
       
      Pytanie dla potomności która zajrzy do tego wątku na zgliszczach cywilizacji - skąd wzięliście te adresy?

      W "Mapping teh Atari / ->link<- jest tam "dziura":

      * Locations 54288 to 54303 ($D410 to $D41F) are repeats of locations 54272 to 54287 ($D400 to $D40F).
      * Locations 54784 to 55295 ($D600 to $D7FF) are unused but not empty nor user alterable. See the note at 53504 ($D100).
      • 22:
         
        CommentAuthorgienekp
      • CommentTime17 Oct 2023 13:10 zmieniony
       
      Czekajcie po kolei ;)

      Jest cart wpięty włączony i chcę go WYŁĄCZYĆ, bo np chcę wejść do BASICa lub wczytać DOS z dyskietki. Wtedy daje SELECT podczas włączenia i Menu4CAR wyłączy carta i np. pojawi się BASIC.

      Cart jest wpięty wyłączony, jestem w BASICu i chcę go WŁĄCZYĆ. Wpisuję POKE 54528,0. Cart się włączy z bankiem 0. Faktycznie (!) 54555 ustawi bank 27. Jeżeli jest pusty to OK bo tam są powstawiane pułapki wracające na bank 0 ale jak nie to nie. Czyli 54555 nie w tym toolsie.

      Jak jestem w DOS i cart wyłączony i DOS nie ma polecenia POKE to trzeba dograć sobie CARON.

      Jeśli chodzi o tę dziurę D5xx i zakres $D500-$D5FF. To jest to historia na osobną powieść. Zakres ogólnie przeznaczony dla cartridgea. Co tam jest zależy od typu carta. W standardzie maxflash odczyt/zapis przełącza bank. Ja tę dziurę wykorzystam w nowej koncepcji, żeby podnieś poziom wczytywania plików ATR. Na razie wszystko wskazuje, że się da. Dziury nie będzie, zapis przełączać będzie bank a odczyt da kod "niewyłączalny" z banku carta. PCB "w złocie" płynie z chin ->link<-
      • 23:
         
        CommentAuthorjhusak
      • CommentTime18 Oct 2023 12:10 zmieniony
       
      Zrobiłem małe update repozytorium, dodałem readme i uprościłem konwersję unicode to ATASCII. Zadałem też kilka pytań w Issues.
      • 24:
         
        CommentAuthorgienekp
      • CommentTime18 Oct 2023 21:10
       
      ... robota idzie cały czas do przodu ;)

      Myślę o opcji żeby dodatkowo zamiast ścieżki do pliku była opcja do pliku w sieci. Np. wprost do atarionline.

      Pytanie do "operatorów" windowsa, na unixa/linuxa mamy bibliotekę socket.h i za jej pomocą można pociągnąć plik z serwera. Jak to jest na windowsie? To się dobrze skompiluje i winda pociągnie plik?
      • 25:
         
        CommentAuthorjhusak
      • CommentTime18 Oct 2023 23:10 zmieniony
       
      Utworzyłem dzisiejszy tag, bo skończyłem jakiś tam etap.

      Winda powinna pociągnąć, w końcu ma tego linux for windows czy jakośtam.

      W sumie mogę sprawdzić, bo mam jakąś windę.

      Mam w planach dekompresor strumieniowy dołączyć.

      I jeszcze narzędzie do załączania zawartości homesoftowych dyskietek, a przynajmniej ekstrakcji plików oraz listy z pełnymi nazwami.

      -------------
      i dodałem release, na razie target macos-x universal i ubuntu.
      • 26:
         
        CommentAuthorgienekp
      • CommentTime19 Oct 2023 17:10
       
      @jhusak
      Super!

      Jeszcze tak kombinuje, jeśli dobrze pamiętam to chyba polecenie WGET ma kompilacje na wszystkie systemy. Może ktoś używał? Po prostu nie kojarzę co tam teraz na Windowsa-64bit się kompiluje. Bo XP to jeszcze pamiętam.
      • 27:
         
        CommentAuthorjhusak
      • CommentTime19 Oct 2023 18:10 zmieniony
       
      Raczej curl (mac nie ma wgeta domyślnie), ale nie wiem, jak to z windą. Możesz wrzucić kompilację na windę do releasu. Będę też obczajał jak te Actions działają.