Skip to content

MSXnano v2.1 — sorted SD browser, faster CPU read path (pre-release)

Pre-release
Pre-release

Choose a tag to compare

@Papipapito Papipapito released this 30 Sep 17:04
· 6 commits to main since this release

MSXnano v2.1 — an MSX2+ on a Tang Nano 20K. A pre-release until it is validated on the board; the last validated one is v2.0-final.

What's new

  • Sorted SD browser: folders first, then ROMs and disks together, alphabetical and case-insensitive. Hidden and system files stay out of the list (Windows' System Volume Information, the .Trashes and ._name.rom a Mac leaves behind). Up to 112 entries per folder; if there are more, the counter ends in + (112/112+). On the gamepad, left and right (page jumps) count once per press.
  • A faster CPU read path: the CPU read multiplexer is a tree instead of a 31-deep chain, with exactly the same priority (proven with a formal equivalence check, yosys SAT plus 200,000 random vectors). The CPU clock now closes on 6 placements out of 6, against 3 out of 6 before; this build runs at 62.5 MHz for the 54 MHz it needs (v2.0: 61.7).
  • BIOS packs in English as well as Spanish.
  • Settings shows 2.1 as the FPGA version. The RP2040 and ESP32-C6 firmwares are the same as v2.0.

💾 What to flash

File Where How
msxnano_v2.1.fs FPGA flash 0x000000 Gowin Programmer, External Flash Mode
One pack (below) FPGA flash 0x200000 Gowin Programmer, exFlash C Bin Erase, Program thru GAO-Bridge
rp2040_keyboard_zero.uf2 (Waveshare RP2040-Zero) or rp2040_keyboard_pico.uf2 (Pico) RP2040 hold BOOTSEL, drag onto RPI-RP2 (unchanged from v2.0)
firmware_esp32c6_v2.0_merged.bin ESP32-C6-LCD-1.3, 0x0 esptool — only if you fit the C6 (unchanged from v2.0)
Pack Menu Nextor
pack_bios_msxnano.bin Spanish 2.1.4 — recommended
pack_bios_msxnano_en.bin English 2.1.4
pack_bios_msxnano_nextor3.bin Spanish 3 beta
pack_bios_msxnano_en_nextor3.bin English 3 beta

Flash one pack. Flashing a pack resets the saved Settings. The system ROMs inside the packs are copyrighted by their owners.

What to check on the board

Settings says 2.1; F11 turbo; keyboard, gamepad and mouse; the SD browser sorted, with no System Volume Information; a folder with more than 112 files ends the counter in +; launching a ROM and a DSK; File-Hunter; Save & Restart surviving a power cycle.

📚 Documentation

In the repository, in Spanish: docs/INDICE.md. The timing measurements of v2.1 (six placements with the old chain against six with the tree) are in docs/tecnica/06-sintesis-timing.md, and the change log in docs/tecnica/08-changelog.md. The repository rebuilds this bitstream: the placement seed that was delivered is in top.v.

MD5

7e5ac2d34a680a2eacce48d541c9bffc  msxnano_v2.1.fs
eb03b904e5cacbdc813a3d5c97c3c159  pack_bios_msxnano.bin
e7fe504e4704404c57a862f57b6c65de  pack_bios_msxnano_en.bin
a2a0c4c351bc0da7e6c1110d1ef6d8be  pack_bios_msxnano_nextor3.bin
422dd54f91c114815a20945ca59849de  pack_bios_msxnano_en_nextor3.bin
f848f2e93e65c23c4440a813ab578f5d  rp2040_keyboard_zero.uf2
cc5d531b324b868affeae6763ec9a5f9  rp2040_keyboard_pico.uf2
b28245c48147c7dac29eca19798f350f  firmware_esp32c6_v2.0_merged.bin