Autor Wątek: Gry w formacie SNA  (Przeczytany 5327 razy)

KrisZX

  • *****
  • Wiadomości: 788
  • Miejsce pobytu:
    Wodzisław Śl
Gry w formacie SNA
« dnia: 2017.03.16, 20:24:40 »
Gdzie można znaleźć gry w formacie sna ? Lub jak to zrobić pod emulatorem ? Potrzebuje skompletować jakąś słuszną 10 do zaprogramowania carta, ale w zasadzie wszystko co znajdę jest  w formacie tap, tzx. ?
Timex 2048, TI of TTL FDD35, Timex 2068, Chrome 128, Harlequin, Just Speccy 128

ikci

  • *****
  • Wiadomości: 1216
  • Miejsce pobytu:
    Kraków
Odp: Gry w formacie SNA
« Odpowiedź #1 dnia: 2017.03.16, 21:36:25 »
Zrzut pamięci w postaci pliku .sna zapiszesz pod chyba każdym emulatorem.
Ale mam propozycję, żeby zrobić to bardziej elegancko - czyli wtedy kiedy gra już się wczytała z taśmy
ale obrazek(loading screen) jeszcze nie znikł  - to są ułamki sekund po wczytaniu ostatniego bajtu i uruchomieniem
się gry.

Pociągnij sobie najnowszą wersję SpecEmu  (v3.1 build 12/05/16)
stąd: http://www.gametronik.com/site/rubriques/sinclair_spectrum/Emulateurs/specemu-3.1.b120516.zip

W ustawieniach emulatora nie musisz wyłączać EDGE DETECTION  czyli przyspieszenia wczytywania z taśmy.
Emulator bardzo szybko wczytuje pliki tap i tzx ale jest czas aby w trakcie wczytywania, kiedy już się załaduje
obrazek, kliknąć ESC  (pokaże się okno debuggera) zaś wczytywanie się spauzuje i w oknie debuggera klikamy
na DEBUG  a następnie RUN UNTIL ->  później z rozwiniętego menu wybieramy TAPE EVENT->
i TAPE STOPS
Czyli ustawiamy debugger tak, że w momencie kiedy taśma się zatrzymuje, pojawia się okno debuggera i emulator się pauzuje.
Wtedy w oknie debuggera klikamy na FILE  --> SAVE SNAPSHOT i zapisujemy w formacie SNA.

Opcja DEBUG ->RUN UNTIL -> TAPE EVENT-> TAPE STOPS  działa w przypadku 70% gier doskonale, ale czasem się zdarza,
że gra się wczyta i uruchomi (obrazek tytułowy zniknie i pojawia się ekran np opcji wyboru sterowania) i dopiero
wtedy emulator się pauzuje i pojawia okno debuggera. To jest oczywiście za późno.
W takim wypadku podczas wczytywania gry klikam  ESC a później ustawiam opcję np.
DEBUG -> RUN UNTIL -> OP CODE-> DI lub inną instrukcję.  Z którąś opcją to zadziała jak trzeba.

Polecam takie strzelanie snapshotów, to znaczy w takim momencie, żeby obrazek po wczytaniu gry był jeszcze na ekranie.
ZX Spectrum 48K, ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2B, ZX Spectrum +3, TIMEX TC2048, UNIPOLBRIT Komputer 2068, Didaktik Gama 80kB, 
Amstrad/Schneider CPC6128, Schneider CPC464, Commodore C64, Atari 800XL, 65XE 130XE, A500+, A600, A1200, ATARI 1040 STF

KrisZX

  • *****
  • Wiadomości: 788
  • Miejsce pobytu:
    Wodzisław Śl
Odp: Gry w formacie SNA
« Odpowiedź #2 dnia: 2017.03.22, 08:55:59 »
Po kilku próbach udało mi się to zrobić tak jak opisałeś, otrzymuje plik .sna 49kb. Niby w porządku ale ten plik ponownie wczytany do emulatora robi reset i po zawodach. sprawdzone na dwóch emulatorach. Co dalej ?
Timex 2048, TI of TTL FDD35, Timex 2068, Chrome 128, Harlequin, Just Speccy 128

KrisZX

  • *****
  • Wiadomości: 788
  • Miejsce pobytu:
    Wodzisław Śl
Odp: Gry w formacie SNA
« Odpowiedź #3 dnia: 2017.03.22, 08:59:01 »
Jak zapiszę plik sna po tym jak pojawiło się menu gry to wtedy gra działa poprawnie.
Timex 2048, TI of TTL FDD35, Timex 2068, Chrome 128, Harlequin, Just Speccy 128

ikci

  • *****
  • Wiadomości: 1216
  • Miejsce pobytu:
    Kraków
Odp: Gry w formacie SNA
« Odpowiedź #4 dnia: 2017.03.22, 11:30:41 »
Nie każdą grę uda się tak "trzasnąć" jak opisałem .
W około 85% to działa jak należy, ale jest 15% kiedy to nie zadziała.
Wtedy szukam innych wersji itd.. kombinuję i raczej znajduję to co szukałem.

Podaj mi nazwy i ewentualnie linki do gier (możesz je też wrzucić tutaj spakowane w załączniku) które
Ci nie chcą działać i działają dopiero po pokazaniu się menu gry.
Oczywiście gier typu multiload czyli na przykład dogrywających kolejne poziomy, nie da się
tak po prostu snap'nąć  - ale to już wiesz na pewno.
ZX Spectrum 48K, ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2B, ZX Spectrum +3, TIMEX TC2048, UNIPOLBRIT Komputer 2068, Didaktik Gama 80kB, 
Amstrad/Schneider CPC6128, Schneider CPC464, Commodore C64, Atari 800XL, 65XE 130XE, A500+, A600, A1200, ATARI 1040 STF

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Gry w formacie SNA
« Odpowiedź #5 dnia: 2017.04.17, 00:23:56 »
Wiele razy myślałem jak ustawić emulator, żeby gry zatrzymywały się i czekały na klawisz, kiedy screen jest widoczny.
Nawet jeśli loader jest w Basic, to nie ma żadnej reguły typu "ostatnie USR startuje grę", a przerabiać tysiące loaderów i wpisywać PAUSE 0 raczej nikomu się nie uśmiecha.
W jaki sposób emulator mógłby wykrywać wyświetlenie screenu?
Mógłby reagować na blok 6912 B i robić krótszą lub dłuższą pauzę.
Wykrywać większą zmianę w pamięci ekranu (statystyka?). Wtedy pauzował by też przy zmianie ekranów w grze.
Rozpoznawać kod popularnych dekompresorów pod adres ekranu.
...
Zapisywanie snapshotu między wyświetleniem obrazka a uruchomieniem gry ma sens jeśli sama gra (loader) robi pauzę. Z kolei za wcześnie zapisany snapshot sprawi, że emulator nie załaduje wszystkich bloków.
AY Music, ULA plus.