ZX Spectrum > HARDWARE

DivMMC i snapshot - nie zawsze działa

<< < (2/2)

tooloud:
Robią się małe glitche na dole przy postaci Dizziego (sprite dostaje małe poziomych kreski na dole grafiki). Zauważyłem też, że robią mi się dwa rodzaje wielkości snapshotów - 128k i 144k. Naprzemiennie :)

Generalnie - wcześniej tego nie miałem a robiłem snapshoty np. grając w Commando na nolivelost - 0.8.6 i ZX Omni (bo tak mi było najszybciej sprawdzić).

trojacek:
Co prawda zbyt mało gram, by zauważać takie efekty, ale mam pewne podejrzenie, o co chodzi.
Niech mnie ktoś wyprowadzi z błędu, jeśli się mylę - czy format .tap nie powstał po to, by gry (ogólnie: kod binarny) uruchamiać od "początku", a nie od dowolnego adresu, wyznaczonego momentem użycia NMI?

Ja rozumiem, że pewnie dokładany jest kod ładujący stan rejestrów, ale czy na pewno wszystkich? Czy flaga IFF1 jest zapisywana? Bo podejrzewam, że właśnie nie. I w takiej sytuacji może zachodzić niekorzystny przypadek, gdy NMI zostało naciśnięte w trakcie obsługi przerwania, a konkretnie - w trakcie rysowania postaci (sprajta). Jeśli tak przerwany kod zostanie wgrany, procedura będzie kontynuowana, ale bez zabezpieczenia przed jej przerwaniem przez kolejny INT. W zależności od zastosowanego algorytmu przywracania tła i rysowania postaci  mogą - choć niekoniecznie muszą - pojawiać się śmieci. A że animacje często korzystają z funkcji XOR z danymi ekranu - taki błąd będzie "wędrował" razem ze sprajtem, aż do wyrysowania na nowo planszy i postaci.

Pancho:
Znalazłem dyskusję na FB, w podobnym temacie w obrębie ZX Spectrum Next, i też w kontekście Dizziego (tylko, że innej części):
https://www.facebook.com/groups/specnext/permalink/1133268083697177/?comment_id=1133472467010072

"You shouldn't really get a crash, although this can sometimes happen on return from the NMI if the game is in the middle of using the stack for other purposes (some games use it as a fast way to transfer data to the screen)."

Padła porada, aby pauzować grę (o ile to możliwe) w momencie robienia snapshota. Sprawdzę.

Znalazłem także pewną wzmiankę w samym opisie formatu SNA, gdzie wymieniana jest jego wada (mogącą powodować awarie), choć podobno przy 128K nie powinna się zdarzać:
https://worldofspectrum.org/faq/reference/formats.htm (sekcja SNA Format)

Nawigacja

[0] Indeks wiadomości

[*] Poprzednia strona

Idź do wersji pełnej