Releases: Papipapito/MSXnano
Release list
MSXnano v1.8 — ColecoVision/SG-1000 emulation + Metal Gear 2 fix
Highlights
- 🕹️ ColecoVision & Sega SG-1000 emulation — drop a
.col/.sgROM on the SD card and launch it straight from the boot menu (SN76489 sound chip; ColecoVision needsCOLECO.ROMon the SD). - 🐞 Metal Gear 2 — Solid Snake fixed — the gameplay-start graphics glitch (loading screen not clearing, mixing with the game) is resolved.
Fixes
- MG2 page-flip glitch. The boot menu highlights the selected entry using the VDP blink register (R#13); on the V9938/V9958 that value forces display page 0, so MG2's loading→stage page-flip was ignored and the loading screen stayed on screen. The launcher now resets R#13/R#12 (plus a VDP command STOP for the boot-splash residue) before the cartridge INIT — fixing MG2 and any page-flipping game launched from the menu. Launching from MSX-DOS/SofaRun was already clean because DOS leaves R#13 = 0.
- SG-1000 / ColecoVision joystick & keypad address fixes.
Flashing
msxnano.fs→ FPGA at0x000000- BIOS pack
goauld_rom_int.bin→0x200000 - BL616 FPGA Companion firmware as per the README (mind the keyboard caveat for new Tang Nano 20K
3921boards).
Notes
- Console mode (ColecoVision / SG-1000) is newer than the mature MSX path; the ColecoVision numeric keypad mapping in particular may still receive tweaks.
MSXnano v1.7.1
Bug-fix release over v1.7.
Fixes
- Two-stage Konami launch fixed (Metal Gear 2 / SD Snatcher boot). v1.7 left a bank register at the power-on (Konami4) mode that the BIOS RAM probe corrupts every boot, so these games came up to a blue screen. The launcher now initialises the bank registers before the cartridge INIT.
- Mapper detection by ROM content (openMSX-style), not by filename — the maker word "Konami" no longer forces Konami4 onto SCC games.
- .dsk mounting fixed (Nextor emulation record was clobbered by the menu depack pass).
- Boot browser shows files (not just folders) on the first listing.
- Nextor 2.1.4 WonderTANG driver in the BIOS pack.
- Cartridge SRAM (ASCII8/16), MSX Barcelona boot splash, and a VRAM-refresh fix removing a stray garbage line in the Space Manbow intro.
Known limitation
Metal Gear 2 — Solid Snake boots and is playable, but shows a graphics glitch when gameplay starts (loading screen doesn't fully clear). It's a VDP-state issue specific to how the boot menu launches the ROM — launching the same game from SofaRun (MSX-DOS) is clean. Under investigation. Other Konami SCC games (Space Manbow, Maze of Galious, ...) are unaffected.
Flashing
msxnano.fs → FPGA at 0x000000. BIOS pack (built locally with fpga/src/rom/build.bat) → 0x200000. BL616 FPGA Companion firmware as per the README.
MSXnano v1.7 — Konami4 mapper, Metal Gear 2 fix, browser search
What's new
🎮 Konami mapper (without SCC) — new compatibility
Classic Konami games using the plain Konami mapper (Nemesis 1, Penguin Adventure, The Maze of Galious, ...) now load and run from the boot menu. The megaram gained a true Konami4 mode: bank registers at 6000h/8000h/A000h, fixed bank 0, pure-ROM behaviour immune to Konami's anti-copy pokes.
🕹️ Two-stage Konami boots fixed (Metal Gear 2, SD Snatcher)
Games whose cartridge INIT hooks H.STKE and returns to the BIOS used to come up with garbled graphics. The launcher now CALLs the cartridge INIT the way the BIOS does and, if the game hooked H.STKE, invokes the hook itself. Metal Gear 2 boots and plays with full SCC sound.
🔎 Browser: search and manual mapper override
/search: type part of a name (case-insensitive), ENTER jumps to the next match in the current folder; repeat for the following oneMon the confirm screen cycles the mapper (plain → Konami → KonamiSCC → ASCII8 → ASCII16) for ROMs the auto-detection gets wrong- Mapper auto-detection aligned with openMSX
guessRomType(full credit table incl. the 77FFh ASCII16 register + proper tie-breaking)
🧹 Settings cleanup
Slot selectors removed from the UI — the system layout is fixed by design (megaram in slot 2, SD in 3-2).
Flashing
msxnano.fs(attached) → FPGA flash at 0x0- BIOS pack → flash at 0x200000 — build it locally with your own BIOS dumps using
fpga/src/rom/build.bat(it bundles the v1.7 menu automatically) - BL616: FPGA Companion (unchanged)
Includes everything from the v1.6 preview (SD browser FAT16/32, ROM/DSK launching, SCC+ / second SCC+ / second PSG / HDMI stereo, 16:9 signalling).
MSXnano v1.6 — SD boot menu, FAT32, SCC+ & HDMI stereo
MSXnano grows up: a full SD boot menu, FAT32, real SCC+ (doubled!) and HDMI stereo.
🗂️ Boot menu — SD file browser
- File-Hunter-style browser that starts before the OS: filter tabs [R]OM / [D]SK / [A]LL, long filenames with marquee, subdirectories, entry counter.
- Launch
.ROMstraight into the megaram: mapper auto-detection + GoodMSX filename tags, progress bar, confirm screen. - Launch
.DSKvia Nextor disk emulation — fully automatic and invisible (no helper files to prepare), with fragmentation check. - FAT16 + FAT32, auto-detected per partition (hybrid cards work; TAB switches partitions).
- ESC continues the normal boot to Nextor/MSX-DOS. S opens settings, W WiFi config.
⚙️ New settings
| Option | What it does |
|---|---|
| Second SCC | Second SCC+ chip in the free slot (dual-SCC players/trackers) |
| Stereo Sound | HDMI stereo: PSG1+SCC1+OPLL left / PSG2+SCC2+OPLL right |
| Pantalla 16:9 | HDMI aspect signalling 4:3 / 16:9 (the TV decides pillarbox vs stretch) |
🔊 Sound
- Real SCC+ (SCC-I): B800h window, BFFEh mode register, independent channel-5 wave; wave-RAM read-back fixed (software SCC detection works now).
- Second SCC+ and second PSG (ports 10h-12h, OCM standard) — verified on hardware with
tools/scctest/SCCTEST.COM(detection + per-chip stereo tone test). - True L/R stereo over HDMI.
🧰 Under the hood
- FPGA timing closure: 54 MHz domain now closes with positive slack (SD-companion CDC constraints + kanji decode retime).
build.batbundles the new boot menu into the BIOS pack automatically.- Z80-level emulation test harness for the menu's FAT16/FAT32 code.
💾 Flashing
msxnano.fs(asset below) → SPI flash0x000000(Gowin Programmer, External Flash mode)- BIOS pack →
0x200000— goauld_rom_int.bin - BL616 FPGA-Companion + optional ESP-01S: unchanged, see the README
📼 Demo video: msxnano_v16_menu_demo.mp4 in the assets below.
Source: branch MSXNano_Menu. Built on jabadiagm's goauld core (GPLv3). Claude (Anthropic) collaborated on this release.
2026-06-10.20-51-07.-.Trim.mp4
MSXnano v1.3 — Turbo (F11) + GRAPH/CODE-KANA keys
MSXnano v1.3
Highlights
- ⏱️ Turbo mode (F11): toggle between real-MSX speed (~100% / 3.58 MHz, default) and full speed (~116% / ≈4.13 MHz). LED 5 shows the state (blink = real MSX, solid = turbo). Handled entirely in the FPGA; survives soft reset; powers on in real-MSX mode.
- ⌨️ GRAPH and CODE/KANA keys (these were not mapped in stock nano):
- GRAPH → Right Alt
- CODE / KANA → Left Alt (same MSX matrix key: CODE with the international BIOS, KANA with the Japanese BIOS)
- ⚙️ New defaults: Compatible Mode OFF and Scanlines OFF (faster CPU and clean HDMI out of the box; both still toggleable in the config menu).
Notes
- F11 is used for turbo because F12 is captured by the BL616 FPGA-Companion firmware (its OSD) and never reaches the FPGA. The Windows key is free.
- Full key map in the README.
Flashing (3 steps)
msxnano.fs→ FPGA flash at0x000000(Gowin Programmer).- BL616 FPGA-Companion firmware (see README).
- BIOS pack
goauld_rom_int.bin(orgoauld_rom_japan.bin) →0x200000— bundles BIOS + Nextor + WiFi ROM. Build locally (copyright).
Assets
msxnano.fs— FPGA bitstream (Tang Nano 20K, GW2AR-18).
MSXnano v1.2 — goauld standalone core + authentic MSX speed
MSXnano v1.2
Rebuilt on the goauld standalone core (cleaner base) keeping the standalone / USB / WiFi design.
Highlights
- ⏱️ Authentic MSX speed: added the per-M1 opcode-fetch wait-state a real MSX board provides. CPU now runs at ~100% (measured 101% / 3.59 MHz) instead of ~116%. Toggleable via
define ENABLE_M1_WAIT. - 📶 WiFi BIOS integrated: the ESP8266 UNAPI ROM now ships inside the single BIOS pack flashed at
0x200000— no separate WiFi ROM step. - 🔌 WiFi UART pins aligned with the wiring diagram (rx → pin 77, tx → pin 73).
- ⌨️🕹️ USB keyboard + joystick via onboard BL616 (FPGA Companion), discrete LEDs, HDMI, SD/Nextor 2.1.
Flashing (3 steps)
msxnano.fs→ FPGA flash at0x000000(Gowin Programmer).- BL616 FPGA Companion firmware (see README).
- BIOS pack
goauld_rom_int.bin→0x200000(includes BIOS + Nextor + WiFi ROM + config). Build locally — copyright, not distributed.
Assets
msxnano.fs— FPGA bitstream (Tang Nano 20K, GW2AR-18).
Code review and engineering improvements (standalone bus removal, USB/LED integration, authentic M1 wait-state) by Claude (Anthropic).
MSXnano v1.1 - WiFi (ESP-01S / MSX UNAPI)
MSXnano v1.1 for Tang Nano 20K
MSX2+ standalone core for Tang Nano 20K — adds WiFi support via ESP-01S (MSX UNAPI).
What's new in v1.1
- WiFi via ESP-01S: MSX UNAPI TCP/IP over ESP8266 UART
- WiFi BIOS ROM mapped to Slot 1, page 1 (auto-detected by MSX BIOS)
- I/O ports 0x06 (data) / 0x07 (status/TX), 859372 bps
Wiring (ESP-01S → Tang Nano 20K)
| ESP-01S pin | Tang Nano 20K pin |
|---|---|
| TX (GPIO1) | Pin 77 |
| RX (GPIO3) | Pin 73 |
| VCC | 3.3V |
| GND | GND |
Included files
| File | Flash address | Description |
|---|---|---|
msxnano.fs |
0x000000 |
FPGA bitstream (Gowin Programmer) |
Nextor-2.1.1.WonderTANG.ROM.bin |
0x100000 |
Nextor 2.1.1 disk ROM |
Also required (not included)
BL616 firmware (keyboard/gamepad support): see MiSTle-Dev FPGA-Companion v1.4.21
bl616_fpga_partner_nano20k.binat0x000000fpga_companion_nano20k.binat0x040000
Compatible USB gamepads
- Xbox 360 (wired) / Xbox 360-compatible clones (XInput)
- Xbox One (XInput mode)
- Lenovo X01 (USB dongle)
See README for full flashing and WiFi setup instructions.
MSXnano v1.0 - Tang Nano 20K
MSXnano v1.0 for Tang Nano 20K
MSX2+ standalone core for Tang Nano 20K FPGA.
Included files
| File | Flash address | Description |
|---|---|---|
msxnano.fs |
0x000000 |
FPGA bitstream (Gowin Programmer) |
Nextor-2.1.1.WonderTANG.ROM.bin |
0x100000 |
Nextor 2.1.1 disk ROM |
Also required (not included)
BL616 firmware (keyboard/gamepad support): see MiSTle-Dev FPGA-Companion v1.4.21
bl616_fpga_partner_nano20k.binat0x000000fpga_companion_nano20k.binat0x040000
Compatible USB gamepads
- Xbox 360 (wired)
- Xbox 360-compatible clones (XInput)
- Xbox One (XInput mode)
- Lenovo X01 (USB dongle)
See README for full flashing instructions.

