Nexen v1.3.1
Fixed
- Game Boy / ROM load crash — Fixed null pointer dereference in
DebuggerRequestcopy constructor that caused crashes when loading any ROM (#552)- Root cause:
std::make_uniquematerializes a temporary and calls the copy constructor (unlikereset(new T(...))which benefited from C++17 mandatory copy elision). The copy constructor accessed_emu->_debuggerwithout null-checking_emu.
- Root cause:
- Cross-platform CI build failures — Fixed
strncpy_sand incomplete type withunique_ptrfor Linux/macOS builds (#550) - Defensive startup — Added try-catch in MainWindow
ApplyConfigto prevent startup crashes
Changed
- Pansy export/import spec alignment — Full binary compatibility with Pansy v1.0 spec (#539-#546)
- Fixed header format, section IDs, platform IDs, cross-ref types, memory region types
- Fixed compression to use DEFLATE instead of GZip
- Added DRAWN/READ/INDIRECT CDL flags, symbol/comment types, metadata section
- Optimized cross-ref builder performance
Performance
- SNES PPU window mask precomputation — Precompute window masks once per scanline render call instead of per-pixel (#523)
- Replaces per-pixel
ProcessMaskWindowtemplate switch withbool[6][256]array lookups - Eliminates redundant window count calculation at each call site
- Replaces per-pixel
Internal
- Internal version bump: 2.2.0 → 2.2.1
- Missing trailing newlines added to header files