forum speccy.pl
ZX Spectrum => GRY => Wątek zaczęty przez: KrisZX w 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. ?
-
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.
-
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 ?
-
Jak zapiszę plik sna po tym jak pojawiło się menu gry to wtedy gra działa poprawnie.
-
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.
-
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.