Mega Man 6 NES Static Recomp
Version: 1.2.0
Platform: native 64-bit Windows
Executable: Launcher.exe
Frontend: native Win32 launcher; statically linked SDL3 video, audio and gamepad input
Audio: native NES APU PCM at 48,000 Hz through a statically linked SDL3 audio stream
ROM: Mega Man 6 (USA) .nes required externally and not included

Changes in 1.2.0:
- Brought the launcher, Welcome, About, Settings, Controls and Audio windows up to the current non-widescreen NES frontend standard.
- Made F1 open the existing Welcome window and removed redundant help-window behavior.
- Added reliable Tab and Shift+Tab dialog navigation and made Escape close every frontend subwindow.
- Removed unsupported Player 2 controls and gamepad exposure; controller port 2 is always inactive at the static-core boundary.
- Added one Player 1 keyboard layout, one hot-pluggable gamepad slot and Keyboard, Gamepad or combined input selection.
- Replaced the earlier direct frontend/core coupling with the standardized one-player NES launcher, event loop, input pulse handling, audio/video and gamepad structure, connected through a narrow Mega Man 6 static-core adapter.
- Consolidated General, Display, Audio, Player 1 controls, gamepad mappings, remembered ROM folder and first-run Welcome state into one settings.ini file with legacy migration and immediate flushes.
- Kept Pause on Focus Loss disabled by default for fresh configurations.
- Made Rom the default Browse folder and persistently remembered a successfully selected external ROM folder.
- Replaced preset volume steps with a non-editable 0-100 drop-down and applied accepted volume changes immediately.
- Added bounded SDL3 queue-depth and drift correction to reduce audio underruns.
- Matched SDL playback to the Mega Man 6 core's 48,000 Hz PCM rate, preventing an 8.8% queue-growth error that could delay shot sounds by nearly two seconds.
- Added repaint and resize handling for stable game presentation during window operations and screenshots.
- Changed F8 screenshots to save the exact displayed 256x240 framebuffer with correct colour channels, millisecond collision-safe names and checked writes.
- Fixed clean-install quick saves and screenshots by creating and validating their portable folders before writing.
- Added release-ready Snapshots and Screenshots folders with explanatory readme files.
- Added Windows file-version metadata identifying Launcher.exe as version 1.2.0.
- Compacted all 25,156 explicit static-core identities into 127 fixed compile-time semantic helpers without adding runtime opcode decoding, interpreter execution or fallback execution.
- Moved audit-only ordered bus plans to a deterministic offline sidecar and retained every identity, flow edge and fail-closed dispatch path in compiled code.
- Reduced generated bank source by 44.84%, the production core library by 25.76% and Launcher.exe by 14.22%.
- Proved the compact core identical to the uncompacted authority across a deterministic 4,000-frame route: 37,866,467 instructions and matching frame, audio and snapshot hashes.
- Added automated contracts for the frontend, exact screenshot capture, unified settings persistence and static-core compaction.
- Updated Windows CI to configure, build and run all ROM-independent source/frontend tests.
- Passed the strict MSVC /W4 /WX Release build and all nine local tests, including four tests against the exact supported ROM.
- Wide Screen was intentionally not added; that remains reserved for a future version.
