Hello, so I'm working on a SNES emulator and I'm testing it with the game Aerobiz, the US version. Anyway, I'm using the SNES9.x with debugging capability as my control, so that I can step through each instruction and see that I've got things in the same state after each instruction. However, I'm getting some oddities when popping the stack. Early on in the game, it sets the stack pointer to 8FC, here's the instruction:
This is fine, it runs through a whole bunch of functions moving data here and there. It does some DMA data moving. All of this is fine. Later, it begins to pull data off the stack and store it to memory. However, after it hits $00/08FC, it pops again, moving the pointer to $00/08FD (the instruction is
There's obviously something I'm missing here, but I have no idea and after looking for something for a few days, I thought I'd ask here.
Thanks ahead of time!
Code:
$00/804E A2 FC 08
This is fine, it runs through a whole bunch of functions moving data here and there. It does some DMA data moving. All of this is fine. Later, it begins to pull data off the stack and store it to memory. However, after it hits $00/08FC, it pops again, moving the pointer to $00/08FD (the instruction is
Code:
$00/A2A8 68
), there's nothing inherently wrong with that, I don't think, but I'm getting a value of 0 from that location and SNES9.x gets a $55 from that location. This value is stored to memory, I assume to be used later. I don't see anywhere that this location is written to, and I put breakpoints on that location to see if anything was written there, and I don't see it ever doing that (as well as logging DMA/HDMA writes in case it was done via that). There's obviously something I'm missing here, but I have no idea and after looking for something for a few days, I thought I'd ask here.
Thanks ahead of time!