6ffed08948ad422d1f99c55ea9d43641d1d158fd
Rework retro_run_blit to: * Try GET_CURRENT_SOFTWARE_FRAMEBUFFER for zero-copy. If the frontend hands us its own scanout buffer with a compatible pixel format, the blit writes the palette-LUT conversion directly into it instead of routing through fceu_video_out. Falls back to the existing buffer when the frontend declines or returns a mismatched format. The pixel format negotiated at retro_load_game is now cached in a file- scope active_pixformat for this validation. * Drop the per-frame memcpy in the NTSC path. nes_ntsc_blit writes into ntsc_video_out with a wider stride (NES_NTSC_WIDTH includes right-margin padding); the previous code copied row-by-row into a tightly packed fceu_video_out before video_cb. The pitch parameter to video_cb already lets the frontend skip past padding per scanline, so the copy was redundant. Saves ~580 KB / frame at 32 bpp - around 35 MB/s of memory traffic at 60 fps. * Hoist loop-invariant decisions out of the per-pixel inner loop. GameInfo->type != GIT_NSF and use_raw_palette do not change mid- frame; emphasis (XDBuf) is uniform per scanline because the PPU writes one colour_emphasis byte to all 256 entries of dtarget at ppu.c:683-685. The deemphasis branch is now once per row instead of once per pixel. * Replace fceu_video_out[y * width + x] indexing with a running out_row pointer (strength reduction). * Remove the unused incr local. Bit-exact verified against the baseline across 4 test ROMs (silent, idle, active gameplay, all-channel max-volume stress) for non-NTSC, SW-framebuffer-granted, and NTSC composite paths - 1200+ frames total. Audio output also bit-identical. Determinism audit pass over the video pipeline turned up no issues: no rand/srand/time/clock/gettimeofday in any core path; PPU writes to XBuf are scanline-deterministic; nes_ntsc_blit is stateless; burst_phase initializes to zero and toggles deterministically; and the existing FCEU_MemoryRand and rt-01 weakbits state machines from earlier passes remain in place.
FCE Ultra mappers modified
FCEU "mappers modified" is an unofficial build of FCEU Ultra by CaH4e3, which supports a lot of new mappers including some obscure mappers such as one for unlicensed NES ROM's.
Sequential targets Light Guns support added
Support for Sequential targets Light Guns has been added. "Gun Aux A" serves as light sensor logic input.
Description
Languages
C
97.7%
Python
2%
C++
0.2%