Skip to content

Releases: Papipapito/MSXnano

MSXnano v1.8 — ColecoVision/SG-1000 emulation + Metal Gear 2 fix

Choose a tag to compare

@Papipapito Papipapito released this 30 Jun 06:32

Highlights

  • 🕹️ ColecoVision & Sega SG-1000 emulation — drop a .col / .sg ROM on the SD card and launch it straight from the boot menu (SN76489 sound chip; ColecoVision needs COLECO.ROM on 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 at 0x000000
  • BIOS pack goauld_rom_int.bin0x200000
  • BL616 FPGA Companion firmware as per the README (mind the keyboard caveat for new Tang Nano 20K 3921 boards).

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

Choose a tag to compare

@Papipapito Papipapito released this 13 Jun 10:12

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

Choose a tag to compare

@Papipapito Papipapito released this 11 Jun 20:40

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 one
  • M on 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

  1. msxnano.fs (attached) → FPGA flash at 0x0
  2. 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)
  3. 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

Choose a tag to compare

@Papipapito Papipapito released this 10 Jun 19:02

MSXnano grows up: a full SD boot menu, FAT32, real SCC+ (doubled!) and HDMI stereo.

SD browser

🗂️ 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 .ROM straight into the megaram: mapper auto-detection + GoodMSX filename tags, progress bar, confirm screen.
  • Launch .DSK via 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

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.bat bundles the new boot menu into the BIOS pack automatically.
  • Z80-level emulation test harness for the menu's FAT16/FAT32 code.

💾 Flashing

  1. msxnano.fs (asset below) → SPI flash 0x000000 (Gowin Programmer, External Flash mode)
  2. BIOS pack → 0x200000 — goauld_rom_int.bin
  3. 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

Choose a tag to compare

@Papipapito Papipapito released this 31 May 19:19

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)

  1. msxnano.fs → FPGA flash at 0x000000 (Gowin Programmer).
  2. BL616 FPGA-Companion firmware (see README).
  3. BIOS pack goauld_rom_int.bin (or goauld_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

Choose a tag to compare

@Papipapito Papipapito released this 31 May 14:50

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)

  1. msxnano.fs → FPGA flash at 0x000000 (Gowin Programmer).
  2. BL616 FPGA Companion firmware (see README).
  3. BIOS pack goauld_rom_int.bin0x200000 (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)

Choose a tag to compare

@Papipapito Papipapito released this 27 May 18:25

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.bin at 0x000000
  • fpga_companion_nano20k.bin at 0x040000

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

Choose a tag to compare

@Papipapito Papipapito released this 27 May 11:15

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.bin at 0x000000
  • fpga_companion_nano20k.bin at 0x040000

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.