Releases: Myself086/Project-Nested
Releases · Myself086/Project-Nested
v1.8.1
v1.8
- Fixed left column flicker
- Properly fixed echo buffer write disabled (thanks to ikari_01)
- Fixed "Reload Both ROMs"
- Fixed interrupt flag when linking indirect jump or non-native return
- Added initializer for mappers
- Selecting "< No profile >" or creating new profile no longer reset settings
- Added limited DMC support (req. static range c000 & e000 whenever possible)
- Fixed an issue with writing to $4015 via direct indexed addressing mode
- Added mapper 69
- Added self-modifying code to the emulator core based on settings during conversion
- Added showing submapper number on the exe
- Fixed bank change when emulating LDA (zp,X)
- Fixed how CRC32 is calculated
- Added new COP instructions for patching
- Added "ROL A" and "ROR A" to the interpreter
- Added mapper 1 sub-mapper SUROM
- Added setting to reserve SNES banks for enhancement ROM hacks
v1.7
- Fixed "Header skipped file address format" from incrementing each time you press Ok
- Fixed some registers when using NMI at vblank with non-native return from interrupt (bug from v1.6)
- Fixed memory range emulation after returning from some interrupts
- Fixed pushing P register during some COP (for patching)
- Fixed memory range assumption after potential software interrupts
- Fixed memory range assumption after PRG bank switching
- Separated initial path for "Open Nes" and "Load SRM"
- Fixed AOT optimization understanding PER opcode, used for emulating JSR to RAM
- Fixed AOT optimization CLC and SEC actually changing carry flag when solving constants
- Fixed a crash when a scanline change is interrupted
- Fixed unconditional branch detection when a label points to the branch
- Added some support for pop slides (unfinished)
- Added every missing official opcodes to the interpreter (minus BRK)
- Added option to safely change bank for mapper 7
- Added proper error message when the recompiler can't allocate enough memory
- Fixed reset code from being recompiled when the exe already did it
- Added exclusive stack for the recompiler, reducing the likeliness of overflowing the game's stack
- Fixed how vblank bit is set
- Added new sprite zero detection (optional)
- Fixed various issues around loading profiles
- Added menu strip to the exe, including copy/paste profile
- Fixed stack issue when NES IRQ is enabled
v1.6
- Added support for .pal file for custom palette
- Added support for Game Genie codes
- Added AOT inline for game code (must enable "AOT optimization")
- Fixed rare crash when linking indirect JMP destination
- Optimized non-native return with better linker, saves 5 cycles per RTS
- Optimized PRG RAM access by using 24-bit address whenever possible
- Decoupled indirect JMP and non-native RTS linked lists and double the size for the latter
- Optimized static ranges by no longer forcing a SNES bank change
- Added option to enable repurposed opcodes everywhere
- Fixed stereo for the triangle channel
- Fixed CHR RAM clone
- Added opcode BRK
- Fixed writing to $4014-$4017 with direct indexed addressing mode
- Added option to emulate bank crossing for indirect indexed addressing mode
- Added indexed indirect X access to I/O
- Added thread safety to indirect I/O access
- Added indicator for which settings were changed compared to default
- Added mention to the compatibility list on step 2
- Fixed Y scroll value when it is pointing into the attribute table
- Added conditional patch
- Fixed VramQ read from being ignored when NES NMI code is busy (VramQ should no longer require extreme buffer size)
- Reduced the default VramQ buffer size to 0x800 bytes
v1.5
- Fixed a bug that caused the emulator to pause forever without error screen
- Fixed patching idle loops
- Fixed loading SRM file names longer than 32 characters
- Added optional Dynamic JSR, allowing each JSR to point to multiple banks
- Fixed pushing return address via PHA when code is written to SRAM
- Added button "Save & play" for faster testing on SNES emulator
- Fixed various recompiler crashes
- Fixed memory overflow during memory allocation
- Added AOT optimization
- Fixed black lines from appearing in the middle of the screen after recompiling
- Added option to move stack outside of page 01
- Removed updating and uploading unchanging unused sprites (no limit only)
- Added option to customize the NES palette
- Improved loop detection for PPUSTATUS ($2002)
- Removed some outdated settings
- Optimized non-native return address coupled with AOT compiled code
- Added custom controller input
- Fixed recompiling massive sub-routines (over 8 KB)
- Fixed CHR ROM data allocation conflicts during conversion
- Fixed changing nametable mirror to 1x1
- Added auto-play for identifying where some of the code is
v1.4.2
v1.4.1
v1.4
- Fixed CHR pattern swapping for mapper 4 (again)
- Fixed indirect JMP list initial upper bound, was likely to crash games using non-native return address
- Fixed noise channel from not playing for some games
- Fixed triangle volume from going quiet sometimes
- Added more triangle samples for supporting higher frequencies
- Fixed an error when attempting to import SRM feedback to an unsaved profile
- Optimized IO emulation with the new inline script
- Fixed a memory leak when recompiling unconditional branches
- Fixed recompiling branch pointing inside another opcode's operand which was often causing games to reset
- Fixed JSR to RAM while using non-native return address
- Added auto resize to Array module
- Added direct indexed access for mapper 4 registers
- Fixed CPU reading CHR ROM when patterns are swapped by the mapper
- Fixed "Bad call" error when destination is in RAM
- Fixed SPC code address range, also prevents triangle table from being wiped shortly after power-on
- Fixed vertical scroll value being off by 1
- Added more opcodes to the interpreter (but not complete)
- Fixed ExHiROM for snes9x
- Fixed graphical issues when nametable mirror changes
- Fixed reading mappers 17-255
- Added support for 256kb SRAM, mostly used as extra WRAM
- Added mappers: 3, 7
- Fixed directly page crossing $5f to $60
- Added option to support reading CHR RAM, comes at a cost of performance when writing
- Added option to emulate RTI more accurately
- Added option to ignore waiting for interrupt to end when stack pointer is reset by the game
- Reworked SRM feedback data structure, will not be compatible with previous versions
- Raised the maximum amount of characters for profile name (128 instead of 32)
- Removed SRM feedback bottleneck
- Added option to resize SRAM
- Ignore repurposed opcodes outside of patch ranges, making native return address slightly more reliable
v1.3
- 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)
v1.2
- Fixed JMP to WRAM
- Added indirect JMP executed from WRAM
- Minor performance improvement when indirect load/store changes bank
- Minor performance improvement to CPU side of sound emulation
- Large performance improvement to indirect JMP
- Added page wrap support to indirect JMP
- Added option to recompile code in PRG RAM
- Fixed indirect JMP into interpreted RAM
- Added some options to disable stack optimizations
- Fixed loading/saving unknown settings in a profile