Intermittently fails on 64K NTSC 800XL and Altirra 1.6 (64K PAL) when pressing joystick button during opening animation. I think this is the problem:
(63469: 64,109) PC=51B5 A=00 X=FF Y=01 S=F5 P=B4 (N I ) 51B5: 9D 00 D0 STA HPOSP0,X [$D0FF] = $0F
(63469: 65, 1) PC=51B8 A=00 X=FF Y=01 S=F5 P=B4 (N I ) 51B8: E8 INX
(63469: 65, 7) PC=51B9 A=00 X=00 Y=01 S=F5 P=36 ( IZ ) 51B9: D0 FA BNE $51B5
(63469: 65, 9) PC=51BB A=00 X=00 Y=01 S=F5 P=36 ( IZ ) 51BB: 4C 00 58 JMP $5800 [$5800] = $8D
(63469: 65, 12) PC=5800 A=00 X=00 Y=01 S=F5 P=36 ( IZ ) 5800: 8D 00 D4 STA DMACTL [$D400] = $FF
Altirra> .antic
DMACTL = 00 : none 2-line
CHACTL = 02 : invert
CHBASE = 30
DLIST = 2025
HSCROL = 00
VSCROL = 03
PMBASE = 4b
CHBASE = 30
NMIEN = c0 : dli vbi
NMIST = 9f : dli
The screen switching code has a chance of turning off ANTIC display DMA on a mode line with the DLI bit set, but doesn't disable DLIs. This causes ANTIC to issue DLIs every eight scan lines (mode 4), and I'm seeing the NMI handler get stuck in infinite recursion. The title screen doesn't have this problem and I can reliably get to the main menu if I jump from there.
Fantastic game, btw... I love SRPGs.
Edited by phaeron, Sat May 1, 2010 2:42 AM.