Releases: Tixul/Ngpcraft_emulator
Release list
v2.7.1
Full Changelog: v2.7...v2.7.1
Added
HLE BIOS: link cable support. The COM group (0x10–0x1A) is now a real ring driver, so two-player link works with no BIOS dump, at the retail BIOS's own byte rate.
HLE BIOS: in-game saves. Real flash driver , including the second die of 4 MiB cartridges. Saves now work with no BIOS dump.
Three BIOS slots with a selector (Settings > Console): colour NGPC dump, monochrome NGP dump, or the built-in HLE image. The emulator identifies each image and says which console it belongs to; an empty slot falls back and tells you.
Monochrome NGP console. The 3-bit LUT level resolves straight to one of eight greys, and cartridge writes to the colour palette and mode register are discarded, as on K1GE silicon.
Link tab in the debugger (F1). Per-stage byte counts, CTS/RTS with hold times, both serial interrupts, plus a one-sentence verdict naming the earliest blocked stage. Byte injection, loopback (echo/sink) and impairment (latency, loss, cut) let you test with one console.
Graphics filter plugins. Point a setting at your own folder; each plugin is one Python file (NAME, SCALE, apply). None are shipped (the good scalers are copyleft, this project is MIT). Plugins are smoke-tested at load and rejected with a reason.
Cartridge language setting (system byte 0x6F87). Bilingual games used to run in Japanese by accident; English is now the default.
Manual clock mode. Set the console's date and time by hand — the only way to set it under the HLE image, which has no setup screen.
Library: a Regenerate covers button, full file name kept when two dumps share a title, full path on hover.
Fixed
Save corruption from the second session on under-filled cartridges: the .ngc was rewritten at the guessed capacity, the 0xFF padding then counted as ROM image, and later saves were ANDed into an unerased block. Already-inflated files repair themselves on next load.
Card-type byte could outlive the block map, so a game asking for its 8 KB save block could erase 64 KB of its own code.
Auto flash size is now derived from the block number the game passes to the BIOS, before the erase happens. Setting the size by hand should no longer be needed.
BIOS settings are persisted as the BIOS left them: language no longer reverts, the colour theme sticks, and a first boot no longer re-runs the setup wizard every time.
Covers are no longer discarded when the BIOS changes.
Library scan no longer follows junctions and symlinks (duplicate entries, or a scan cut short).
A failed ROM open shows a dialog instead of aborting the process from a Qt slot.
INTLVSET now writes through its work-RAM shadow (0x6C24–0x6C2B), which is what games actually read.
Metal Slug — 2nd Mission now play
Known limitations
The monochrome NGP is a restricted K2GE, not a K1GE implementation: a game probing the video chip still finds a K2GE, and the NEG (inverted display) bit is not applied. Checked on a few titles only.
A game reading BIOS work RAM directly, instead of calling the API, sees our layout rather than SNK's.
v2.6.2
Full Changelog: 2.6...v2.6.2
-Link cable (multiplayer)
The headline feature: two consoles can now be wired together through the emulated
link cable.
-Controllers
Cross-platform gamepad support through SDL2/pygame (Xbox, PlayStation, and more via SDL's controller-mapping database), with XInput as a Windows fallback (ngpc_input.py).
-ROM loading
ROMs can be loaded straight from archives: .zip (standard library) and .7z (via py7zr, or a 7z/7za command-line tool on PATH) — core/rom_loader.py.
-HLE BIOS
Distributable high-level BIOS (hle_bios/bios_hle.bin): the emulator can boot without a commercial bios.bin.
Interface and comfort
Exit fullscreen with Escape or a double-click (you could get stuck in fullscreen before).
Auto-hiding toolbar (idle mouse hides it, any movement brings it back).
Hide sidebar and toolbar in fullscreen (option, on by default) — also fixes the stretched aspect ratio after a display change.
Resizable windows (three user reports addressed).
Portable settings: optional config.ini next to the emulator (otherwise the Windows registry).
v2.5
Full Changelog: v2.4...v2.5
New — Fan-translation toolkit (Debug tools, F1)
A full set of tools for translating any game, all driven by a character table you load (.tbl, the standard romhacking format). Nothing is game-specific, and every result shows its ROM file offset so a hit maps straight to a byte in the cartridge.
Text — decode a region into readable strings, search for a phrase by its exact bytes, scan a whole region for every string at once (an exportable script dump), or run a relative search that finds a word under an unknown encoding by its letter spacing (no table needed).
Crack — type a few words you can read on screen and it builds the .tbl for you: each word is located automatically (or pinned with word @ offset) and its bytes become a real table you can edit, save, or use immediately. Works even on non-alphabetical encodings.
Pointers — find every pointer to an address (to repoint a moved string) or locate the pointer tables themselves. 16 / 24 / 32-bit little-endian, base offset, tolerance.
Compare — byte-diff the running cartridge against a second .ngc. An existing patch's changed ranges are the text, shown decoded on both sides.
Tile viewer — hover any tile to read its index, VRAM address, referencing planes and 16 raw bytes; click to copy.
New — Load tab (live resource gauges)
Green-to-red bars that update as the game runs:
Sprites (OAM) — active sprites out of 64.
Char RAM — distinct tiles referenced out of 512.
Frame rate — whether the game is finishing its work in time (the honest "is it overloaded" signal).
Both VRAM gauges are exact counts read straight from video memory.
Fullscreen & window
Fullscreen now hides the sidebar and toolbar for the game alone (optional, on by default).
In fullscreen, the toolbar auto-reveals when you move the mouse and hides again when it's still — always reachable, never in the way.
Exit fullscreen with Esc or a double-click (double-click also enters it).
The toolbar can auto-hide when the mouse goes idle and reappear on any move, in windowed mode too (optional, on by default).
The main window and the debug window can now be made much smaller — long help text used to force them very wide; they resize freely now.
Fixes
Aspect ratio no longer stretches after toggling fullscreen or hiding the sidebar/toolbar. (The frame was being scaled to the old canvas size, and a paused game never corrected it.)
Library covers no longer render as white boxes (issue #2): covers are rendered by booting each game, which needs bios.bin — with none, the cards now stay blank and say why, instead of caching a blank frame forever. They render automatically once a BIOS is set.
Notes
New options live in Settings > Video: Hide UI in fullscreen, Auto-hide toolbar when idle.
If a game looks stretched to 16:9 in fullscreen, set Settings > Video > Aspect to Fit window or Pixel-perfect (Stretch fills the screen ignoring the 160:152 ratio, by design).
English and French translations updated.
v2.4
Full Changelog:
What's new
Layer masks — show/hide each background and sprite plane. A new Layers tab in Debug tools lets you toggle SCR1, SCR2, and the three sprite groups (back / mid / front) independently, with solo, a live preview, and PNG export. Because text and background always live on separate planes on this hardware, hiding a plane answers "which layer carries this text?" and gives you a clean background sheet — without touching VRAM.
exemple: 
Library covers no longer render as white boxes. Covers are drawn by booting each game, which needs a real bios.bin; with none, a game never reaches its title screen and every card came out a blank box — and that blank frame was then cached, so it stayed white even after a BIOS was added. Now blank captures are never cached, no game is booted without a BIOS, covers re-render automatically once a BIOS is set, and the Library says why the cards are empty.
Fixes
The BIOS is no longer described as optional — both start modes require it, and games won't run without one.
Fixed a nav-label wrapping test that failed on Linux/macOS CI due to font differences.
v2.2
v2.1
v2.0
Full Changelog: v1.8...v2.0
introduce multiplatforme compatibility
NgpCraftEmulator_v1.8
add theme and picture for control assignation
ngpcraft_emulator_v1.7
ngpcraft_emulator_v1.6
Implement persistent RTC, update fps and tile view