Skip to content

Releases: Myself086/Project-Nested

v1.8.1

28 Jul 16:36
Compare
Choose a tag to compare
  • Fixed an issue with branch solver in AOT optimization
  • Removed Patreon link

v1.8

09 Apr 06:10
Compare
Choose a tag to compare
  • 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

07 Sep 12:20
Compare
Choose a tag to compare
  • 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

22 Jul 04:29
Compare
Choose a tag to compare
  • 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

23 May 19:48
Compare
Choose a tag to compare
  • 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

05 Sep 02:55
Compare
Choose a tag to compare
  • Fixed loading games that have too many banks in the iNES header compared to file size
  • Fixed a crash related to the reset fix of v1.4
  • Fixed using patch-only opcodes in bank 0xff

v1.4.1

29 Aug 16:21
Compare
Choose a tag to compare
  • Fixed some patch-only opcodes
  • Fixed checksum
  • Fixed using patch-only opcodes in WRAM/SRAM
  • Added option to disable safe TSX

v1.4

28 Aug 20:08
Compare
Choose a tag to compare
  • 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

22 Apr 21:47
Compare
Choose a tag to compare
  • 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

20 Dec 18:00
Compare
Choose a tag to compare
  • 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