mirror of https://github.com/bsnes-emu/bsnes.git
![]() byuu says: Attempted to fix the bugs pointed out by Cydrak for the shifter carry and subtraction flags. No way to know if I was successful. The memory map should exactly match real hardware now. Also simplified bus reading/writing: we can get fancy when it works, I suppose. Reduced some of the code repetition to try and minimize the chances for bugs. I hopefully fixed up register-based ror shifting to what the docs were saying. And lastly, the disassembler should handle every opcode in every mode now. ldr rn,[pc,n] adds (pc,n) [absolute address] after opcode. I didn't want to actually read from ROM here (in case it ever touches I/O or something), but I suppose we could try anyway. At startup, it will write out "disassembly.txt" which is a disassembly of the entire program ROM. If anyone wants to look for disassembly errors, I'll go ahead and fix them. Just note that I won't do common substitutions like mov pc,lr == ret. At this point, we can make two moves and then the game tells us that we've won. So ... I'm back to thinking the problem is with bugs in the ARM core, and that our bidirectional communication is strong enough to play the game. Although that's not perfect. The game definitely looks at d4 (and possibly others later), but my hardware tests can't get anything but d0/d3 set. |
||
---|---|---|
bsnes | ||
snesfilter | ||
snespurify | ||
snesshader |