A Neo Geo Pocket / Neo Geo Pocket Color emulator: a fast native C++ core (TLCS-900H + Z80 + K2GE video) driven by a PyQt6 desktop shell.
Its timing is calibrated against real hardware — instruction-fetch wait-states on the cartridge flash, silicon-measured MUL/DIV and LDIR costs — so self-timed games (Cool Boarders Pocket, Densha de Go) run at their true 30 fps instead of the ~2× too fast that most emulators show.
Instruction coverage is checked the same way: a sweep of a 90-cartridge corpus, each driven for 400 frames, currently finds no ROM stopped by a missing opcode. That sweep is a feature you can run yourself — see ROM analysis.
github.com
Its timing is calibrated against real hardware — instruction-fetch wait-states on the cartridge flash, silicon-measured MUL/DIV and LDIR costs — so self-timed games (Cool Boarders Pocket, Densha de Go) run at their true 30 fps instead of the ~2× too fast that most emulators show.
Instruction coverage is checked the same way: a sweep of a 90-cartridge corpus, each driven for 400 frames, currently finds no ROM stopped by a missing opcode. That sweep is a feature you can run yourself — see ROM analysis.
Features
- Library with cover thumbnails (grid / list / compact), live-reflowing — plus search, sort (name, last played, most played, playtime, recently added, size, with a direction toggle), favourites ★ and a never-played filter. Play count, playtime and last-played are tracked per game.
- Console boot — with a real BIOS, Boot BIOS powers the console on for real: the Neo Geo Pocket intro plays and the game then boots on its own, exactly like hardware.
- Video: integer / fit / stretch scaling, scanline / LCD-grid / CRT filters, colour profiles, real fullscreen. The canvas follows the window; size presets Ctrl+1…5.
- Save states — 8 slots per game (toolbar or F2 save / F4 load / F3 slot).
- In-game saves — the game's own flash save, stored in the ROM, a separate file, or both.
- A console that remembers — the coin cell keeps its BIOS settings and its clock, so the date is still right next time. The RTC alarm works too, and goes off on time.
- Speed control — fast-forward (hold Tab) and 0.25×…4× ([ / ] or the toolbar).
- Rewind — hold , (or the
toolbar button) to run the game backward; release to resume. . steps one frame forward. Buffer length configurable (Off / 10 / 20 / 30 s). - Screenshots (F12, folder configurable), FPS overlay, a hideable player toolbar.
- Controller support — an Xbox-style (XInput) pad alongside the keyboard, plus turbo / autofire on A and B at 5–20 presses per second.
- Fully remappable — console buttons and every in-game hotkey, with a warning when a binding would collide.
- Debug tools (F1) — a real debugger: symbols, instruction stepping, call stack, raster event timeline, read and write watchpoints, an editable hex view with access highlighting, RAM search, and audio analysis with VGM export. See Debugging.
- ROM analysis — right-click a game to boot it, drive it, and report what is wrong with it. See ROM analysis.
- Crash reports — a ROM fault writes a detailed crashes/*.txt (reason, PC, opcode, registers, memory & stack dumps).
GitHub - Tixul/Ngpcraft_emulator: NGPC player with in-game saves, save states, speed control, debug tools, and a standalone .exe build
NGPC player with in-game saves, save states, speed control, debug tools, and a standalone .exe build - Tixul/Ngpcraft_emulator