MSXimus: un MSX2+ completo en una FPGA


MSXimus es nuestro nuevo proyecto: un ordenador MSX2+ completo funcionando dentro de una única placa FPGA, la Sipeed Tang Console 60K. Sin cartuchos ni placas especiales: se compra la placa (unos 100 €), se flashea y a jugar. Y todo el proyecto es open source.

MSXimus is our new project: a complete MSX2+ computer running inside a single FPGA board, the Sipeed Tang Console 60K. No cartridges, no special boards: buy the board (around 100 €), flash it and play. And the whole project is open source.

MSXimus: carcasa impresa en 3D con teclado formato Philips VG-8020
Carcasa impresa en 3D con formato de teclado Philips VG-80203D-printed case in the Philips VG-8020 keyboard format

CaracterísticasFeatures

  • MSX2+ completo con salida HDMI en una sola placa FPGA
  • Menú de arranque propio: navega por las particiones de la SD y lanza ROMs y discos DSK al instante, con detección automática de mapper
  • WiFi integrada (ESP32): búsqueda y descarga de software desde File-Hunter sin salir del menú
  • Doble SCC + PSG con estéreo configurable y scanlines opcionales
  • OPL4: como tener un MoonSound con 4 MB de samples, compatible con VGMPlay, MoonBlaster…
  • Compatibilidad MSX-Audio (con ADPCM) y MSX-Music
  • VDP V9968 (evolución del V9958 creada por HRA!), con más VRAM y sin el clásico parpadeo de sprites
  • Modo turbo tipo Panasonic, activable con F11 o fijo desde el menú
  • Carcasa imprimible en 3D opcional (la estamos preparando), con teclado, ventilador controlado por temperatura y pantalla de estado
  • 100% open source
  • Complete MSX2+ with HDMI output on a single FPGA board
  • Custom boot menu: browse the SD card partitions and launch ROMs and DSK disks instantly, with automatic mapper detection
  • Built-in WiFi (ESP32): search and download software from File-Hunter without leaving the menu
  • Dual SCC + PSG with configurable stereo and optional scanlines
  • OPL4: like having a MoonSound with 4 MB of samples, compatible with VGMPlay, MoonBlaster…
  • MSX-Audio (with ADPCM) and MSX-Music compatible
  • V9968 VDP (HRA!'s evolution of the V9958), with more VRAM and no sprite flickering
  • Panasonic-style turbo mode, via F11 or fixed from the menu
  • Optional 3D-printable case (in preparation), with keyboard, temperature-controlled fan and status display
  • 100% open source

Vídeo de presentaciónPresentation video

Aquí tenéis el MSXimus en acción: el menú, las descargas por WiFi, el sonido OPL4, las demos del V9968 y varios juegos. El vídeo tiene subtítulos y pista de audio en inglés.

Here is the MSXimus in action: the menu, WiFi downloads, OPL4 sound, the V9968 demos and several games. The video has English subtitles and an English audio track.

El menú y la WiFiThe menu and WiFi

Al arrancar aparece un menú propio para moverse por la tarjeta SD y lanzar ROMs y discos al momento. Desde el mismo menú se configura todo: segundo SCC, scanlines, sonido estéreo, modo turbo… Y con la WiFi se puede buscar en File-Hunter, descargar y lanzar la ROM al vuelo, sin tocar un PC.

On boot you get a custom menu to browse the SD card and launch ROMs and disks instantly. Everything is configured from the same menu: second SCC, scanlines, stereo sound, turbo mode… And with WiFi you can search File-Hunter, download and launch the ROM on the fly, without touching a PC.

Menú lanzador del MSXimus
El menú lanzador del MSXimusThe MSXimus launcher menu

Sonido: MoonSound, MSX-Audio y MSX-MusicSound: MoonSound, MSX-Audio and MSX-Music

El apartado sonoro es de los más completos: además del PSG y el doble SCC en estéreo, MSXimus integra un OPL4 — es como tener un MoonSound con 4 MB de RAM de samples, compatible con VGMPlay, MoonBlaster y el resto de software para MoonSound. Y para completar la familia, también es compatible con MSX-Audio (incluido ADPCM) y MSX-Music.

The sound section is one of the most complete: besides the PSG and the dual SCC in stereo, MSXimus integrates an OPL4 — it's like having a MoonSound with 4 MB of sample RAM, compatible with VGMPlay, MoonBlaster and the rest of the MoonSound software. And to complete the family, it's also MSX-Audio (including ADPCM) and MSX-Music compatible.

Vídeo: el VDP V9968Video: the V9968 VDP

En la parte gráfica MSXimus monta el V9968, la evolución del V9958 creada por HRA!, con más VRAM y mejoras como la eliminación del límite de sprites por línea. Incluimos las demos oficiales adaptadas, y funcionan las versiones mejoradas de los clásicos: Salamander con el parche de voces y scroll suave en estéreo, el Aleste especial para V9968 o Metal Gear 2: Solid Snake con 4 MB de RAM y SCC, sin parpadeos.

On the graphics side MSXimus features the V9968, HRA!'s evolution of the V9958, with more VRAM and improvements such as removing the sprites-per-line limit. We include the official demos, adapted, and the enhanced versions of the classics work great: Salamander with the voice patch and smooth scroll in stereo, the special V9968 Aleste, or Metal Gear 2: Solid Snake with 4 MB RAM and SCC, flicker-free.

Metal Gear 2 Solid Snake en el MSXimus
Metal Gear 2: Solid Snake con 4 MB de RAM y SCCMetal Gear 2: Solid Snake with 4 MB RAM and SCC
Demo del V9968 en el MSXimus
Demo del V9968 corriendo en el MSXimusV9968 demo running on the MSXimus

Hardware y montajeHardware and assembly

La placa funciona tal cual, sin nada más. Como extra opcional, estamos preparando una carcasa imprimible en 3D con el formato del clásico Philips VG-8020, teclado incluido, ventilador controlado por temperatura y una pantallita de estado que muestra la conexión WiFi, el tiempo encendido y la temperatura.

The board works as-is, nothing else needed. As an optional extra, we are preparing a 3D-printable case in the classic Philips VG-8020 format, keyboard included, with a temperature-controlled fan and a small status display showing the WiFi connection, uptime and temperature.

Pantalla de estado WiFi del MSXimus (ESP32)
Pantalla de estado: WiFi, uptime y temperaturaStatus display: WiFi, uptime and temperature

Open source y cómo conseguirloOpen source and how to get it

MSXimus es open source: el código está disponible en GitHub. La placa Tang Console 60K se encuentra en AliExpress por unos 100 €: solo hay que flashearla y montarla. Es fácil de comprar, fácil de montar, y una vez flasheada funciona todo lo que veis. Si te animas a probarla o a revisar el código, eres bienvenido — cualquier comentario o issue que abráis en GitHub será bienvenido.

MSXimus is open source: the code is available on GitHub. The Tang Console 60K board can be found on AliExpress for around 100 €: just flash it and assemble it. Easy to buy, easy to build, and once flashed everything you see simply works. If you feel like trying it or reviewing the code, you are more than welcome — any feedback or issue you open on GitHub is very welcome.