To ja teraz na szybko... bo udało mi się to ogarnąć... rekordy #3 i #4 to faktycznie rekordy w formacie długich bloków danych Turbo 2000 (KSO/2001/F) tyle że liczenie sumy kontrolnej zmieniono z modulo256 na XOR ... nie wiem kto wymyślił używanie XOR jako "sumy kontrolnej", to jest tak podatne na przekłamania że nie rozumiem tego sposobu... no chyba że chodziło o to aby się "pewniej" wczytało... gdzie "pewniej" znaczy z błędami! A nóż tak wczytana gra się uruchomi? może błędy będą na grafice, etc. takie podejście to czyste dziadostwo :( szczególnie że liczenie sumy kontrolnej modulo256 nie jest jakoś specjalnie bardziej czasochłonne!
Udało mi się rekordy #3 i #4 skonwertować poprawnie... mimo że wiele razy dzięki temu wspaniałemu XOR-owi miałem błędne dane po konwersji mimo że XOR się zgadzał! szczególnie w tym długim bloku #4 ... no ale koniec końców się udało...
Pozostała walka z rekordem #41... który to został specjalne uszkodzony! Nie to że nagranie jest błędne... nagrano rekord o złej długości!!! Sądzę że zrobiono to celowo... po prostu wczytywanie miało się wysypać podczas siódmego poziomu... a dlaczego??? ponieważ brakuje dalszej części danych! Nie ma bloków z danymi dla poziomu #8 ... widać w UM założyli że nikt nie przejdzie i tak tej gry do końca ... i nie chciało im się wykonać poprawnej wersji tejże gry.
Dane z brakującego rekordu #41 odzyskałem (posiłkując się wersją na 130XE dostępną na AoL). Rekord na taśmie zawiera tylko 3375 bajtów, podczas gdy loader oczekuje 3484 bajtów danych (wraz z sumą XOR). Dodałem brakujące bajty (poszukując brakującej sekwencji w wersji dla 130XE) i spreparowałem poprawną sumę dla tak przygotowanego rekordu.
Tyle że wyszła z tego lipa bowiem okazało się że próba wczytania poziomu #8 powoduje że loader oczekuje na więcej danych... a dalszych rekordów już w nagraniu nie ma :(
W dodatku aby możliwe było przechodzenie z poziomu na poziom, należy robić to bezbłędnie i bez śmierci... "ponieważ gdyż" ta wersja nie wypisuje jakie segmenty danych ją interesują do wczytania i wciąga z taśmy co jej tam podejdzie co prędzej czy później kończy się błędem wczytywania lub "zwiechą".
Aby to wszystko przetestować musiałem pogrzebać w kodzie gry... bo nie wyobrażałem sobie abym za każdym razem przechodził te wszystkie poziomy od nowa :( zatem gdyby kogoś interesowało to aby przejść do następnego poziomu to pod emulatorem należy:
wejść do debuggera/monitora
pod adresem $CDB4 umieścić kolejny numer poziomu (jeżeli jesteśmy na pierwszym poziomie wpisujemy tam wartość 2)
pod adresem $CDB7 umieścić zero
wrócić do gry
pod atari800 robimy to tak (przejście z poziomu #1 to poziomu #2), wciskamy F8 (wejście do monitora/debuggera), a potem na konsoli piszemy:
aby przejść z poziomu #2 do #3 piszemy:
itd.
Dla chętnych w załączniku plik HEX, nie porządkowałem go zbytnio, bo i tak ta wersja gry jest totalnie spartolona przez tego kto ją wykonał. Zrobił to na odwal się, licząc że nikt z graczy nie zabrnie tak daleko. Cóż za podejście :D Autorowi takiego hacka można "pogratulować" ... ale chyba braku cierpliwości... wygląda na to że rzeźbił, rzeźbił i mu się znudziło! :)
Ale numer z blokiem #41 jest wręcz żenujący! :D No chyba że faktycznie na tej kasecie nagrano jakąś uszkodzoną lub niedorobioną wersję i gdzieś może istnieje wersja poprawna?