Update is out!
This one should have a significant difference on compatibility. There's still a lot of work left to do.
I opened a Patreon page for anyone wanting to support my work:
https://www.patreon.com/Myself086
v1.3 changes
- Added support for read-modify-write to IO ports
- Port $2000 is now thread safe, fixes Final Fantasy I random crashes
- Fixed AOT JMP across banks
- Fixed branch destinations to $7f0000, commonly used by AOT and once by JIT
- Fixed ExHiROM for SD2SNES
- Added option to truncate ROM size instead of a power of 2
- Fixed minor math error on the performance display
- Added indirect IO access
- Fixed a crash that sometimes happened after exiting a NES IRQ
- Fixed memory emulation assumptions after executing an idle loop
- Fixed some errors during the final stage of generating a SNES file
- Fixed stack depth assumption when disassembling
- Added load/compare absolute for idle loop detection
- Fixed mapper 1 single screen lower bank (upper bank untested)
- Fixed memory emulation for indirect JMP in range $6000-$ffff
- Removed unfinished IRQ mask emulation
- Removed old interpreted RTS
- Added options to define ROM ranges as being static
- Fixed pulse and noise halt bit
- Added opcode $42 to patch forcing native return
- Added inline capability to IO port emulation
- Fixed palette mirrors
- Added the ability to patch timed scroll changes
- Added option to support illegal NOP opcodes
- Fixed a memory leak when RTS is interpreted (non-native return address)