oj, oj... chyba jednak to drugie (pamięć, hehe)... Pamietam, jak w snail-mailu pisales kiedys do mnie, ze np. na prosbe Żbika piszesz blokade do ARDEN (i/lub tego TECHNOIDA)
ojoj... chyba cos z moja pamiecia nie tak jednak... coś mi sie kołacze po głowie, ale prawie nic nie pamiętam... nawet nie wiem czy zostalo to wykorzystane w w/w grach. ehhh.... starość nie radość :(
A detekcja uzycia freezera opierala sie chyba (jak mi Gumi tlumaczyl) na podpatrywaniu co sie dzieje na stosie kompa.... :rolleyes:
A co detekcji uzycia freezera... to było kilka metod. Jena z nich bylo oczywiscie wykorzystanie faktu iz freezer wlasnie potrzebowal troche miejsca na stosie, gdzie umieszczal kawalek swojego kodu.
Kolejnym z pomyslow bylo rzeczywiscie zablokowanie przerwan NMI. Wymagalo to od kodera pewnego nakladu sil, aby bez przerwan DLI czy VBL zrealizowac to co chcial, ale dawalo sie zrobic :)
Kolejna z metod bylo wykorzystanie faktu iz po zalozeniu do kompa freezera, przy zapisie do ktoregokolwiek z rejestrow sprzetowych (ANTIC,POKEY,GTIA,PIA) ta sama wartosc zostala wpisywana rownolegle do pamieci RAM znajdujacej sie w tym samym obszarze (np. zapis do GTIA $d000-$d01f, powodowal wpisanie tej samej wartosci do RAMu pod adresem $d000-$d01f. Normalnie ta pamiec nie byla dostepna, jednak po wcisnieciu przycisku freezera, ten niedostepny nigdzie RAM byl przemapowywany w obszar strony zerowej ;) tak wiec to co ostatnio bylo wpisane w $d000-$d01f, znajdowalo sie teraz w adresach $00-$1f, potem potem wartosci wpisane do POKEY'a byly widoczne $20-$3f. To samo dotyczylo ANTICA, itd.
Teraz wystarczyło wykorzystać fakt iż w normalnym atari (bez freezera), zapis np. $d000 to to samo co zapis $d020. Natomiast w przypadku kompa z freezerem... juz nie ;) dla freezera tylko zapis do $d000 bedzie ostatnim aktualnym zapisem do GTIA ;) I teraz jak widzicie możliwości są nieskończone ;). jednym z pierwszych naszych pomyslow bylo wykorzystanie kolizji grafiki PMG ;) np. dwa sprite'y ustawiamy na pozycjach $00 i np $f0 (poza ekranem) ale w taki sposob iz:
lda #$00
sta $d000
sta $d001
lda #$f0
sta $d020
i juz wiadomo co bedzie po uzyciu freezera ;) obiekt z pozycji $f0
powroci na pozycje $00, bo dla freezera był to ostatni poprawny zapis do GTIA ;)
Sposoboów jest o wiele wiecej. Kombinowac można dowolnie ;)
Swego czasu SoTe i ja wymyślaliśmy sobie z nudów sposoby na freezera ;) Pod koniec dzialalnosci mielismy ich chyba z kilkanascie ;) Zrobilismy sobie z tego takie male hobby ;)
Najlepszym numerem jaki zrobilismy bylo umieszczenie RiverRaida w chyba SampleEditorze :) po uzyciu Freezera odpala sie RiverRaid ;)
pozdrawiam
Seban/SLIGHT