I need you, ZeroZero, and/or anyone else to help me out.
I've been moving the table and code from $1B15 in memory to $4162. As far as I have been able to tell, that area is untouched by the game engine.
Code: Select all
4162 AE E0 E0 LDX $E0E0
4165 06 F0 ASL $F0
4167 08 PHP
4168 BD 75 41 LDA $4175,X
416B 20 B9 78 JSR $78B9
416E 18 CLC
416F 60 RTS
4170 A0 01 LDA #$01
4172 4C F0 19 JSR $19F0
4175 00 BRK
4176 1B
4177 0C
4178 0D 0E 0B
417B 00
417C 0F
417D 10 1C
417F 1D 1E 11
4182 12
4183 14
4184 13
4185 1F
4186 20 21 22
4189 23
418A 24 25
418C 15 26
418E 27
418F 28
4190 29 2A
4192 2B
4193 2C 2D 2E
4196 2F
4197 16 18
4199 17
419A 30 31
419C 32
419D 33
419F 19 35 36
41A2 38
41A3 39 3A 3B
41A6 3C
41A7 3D 3E 3F
41AA 40
41AB 41 42
41AD 43
41AE 44
The game crashes after "S"tart game is selected - the border flashes orange, it says "Insert the DUNGEON disk, check the drive, and press a key."...
The calls to the jump table are:
0884 JMP $1B15
5C78 JSR $1B15
So, I'm at a loss as to why the table relocation is not working.
The machine code register thingy at time of crash:
Code: Select all
PC AC XR YR SP 00 01 FL NV-BDICZ
7A21 00 3A 30 F7 2F 36 23 00100011