| Bugfix provided by Bandit:
- Certain memory areas are overwritten due to interrupts activated at the wrong time. Because of this, the location of an idol is always lost (thus making the game unfinishable) and the game may also crash randomly. The following patch fixes this problem:
org $e2ca call $ff99 ; POKE 58059,153: POKE 58060,255
org $f908 call $ff99 ; POKE 63753,153: POKE 63754,255
org $ff99 ld iy,$5c3a ; POKE 65433,253: POKE 65434,33: POKE 65435,58: POKE 65436,92 call $03b5 ; POKE 65437,205: POKE 65438,181: POKE 65439,3 di ; POKE 65440,243 ret ; POKE 65441,201 - Enemies on screen are stored in a data table starting at address $e470, using 15 bytes per enemy, for a maximum of 5 enemies. However the current room number is stored at address $e4ba, which corresponds to the last byte of this table. If there are 5 enemies on screen (which is more likely to happen at the last room), the current room number is replaced with data about the 5th enemy. When it happens, the screen gets corrupted and the player reappears at another room. This problem is solved storing the current room number at address $e4bb instead. The following patch fixes this problem:
org $eabd defb $bb ; POKE 60093,187 org $eae7 defb $bb ; POKE 60135,187 org $eafc defb $bb ; POKE 60156,187 org $eb3a defb $bb ; POKE 60218,187 org $ed08 defb $bb ; POKE 60680,187 org $ed69 defb $bb ; POKE 60777,187 org $ed71 defb $bb ; POKE 60785,187 org $f108 defb $bb ; POKE 61704,187 org $f59b defb $bb ; POKE 62875,187 org $f76f defb $bb ; POKE 63343,187 org $f806 defb $bb ; POKE 63494,187 org $f818 defb $bb ; POKE 63512,187 org $fa28 defb $bb ; POKE 64040,187 org $fa40 defb $bb ; POKE 64064,187 org $faf4 defb $bb ; POKE 64244,187 org $fb2c defb $bb ; POKE 64300,187 org $fb3e defb $bb ; POKE 64318,187 org $fb44 defb $bb ; POKE 64324,187 org $fb5a defb $bb ; POKE 64346,187 org $fd78 defb $bb ; POKE 64888,187 org $fdcd defb $bb ; POKE 64973,187 org $fddd defb $bb ; POKE 64989,187
Modified "BUGFIX" file provided by Einar Saukas. |