· retrotech · 7 min read
Reviving the MSX: How Modern Technology Can Breathe New Life into a Classic System
A practical guide to combining modern hardware and software techniques with MSX machines - from SD-based storage and Wi‑Fi cartridges to FPGA reimplementations, modern toolchains, and software patterns that respect original MSX architecture while adding contemporary features.

Why revive the MSX?
The MSX family (a standardized home computer architecture based on the Z80 CPU) still enjoys an active community and rich library of software. But the hardware dates from the 1980s, which brings both charm and limitations - fragile floppy drives, aging media, small RAM and tight timing windows. Modern technology can help preserve and extend MSX systems in ways that keep compatibility at the forefront while adding conveniences developers and players expect today: mass-storage, networking, higher-quality video/audio, and modern development workflows.
Useful community resources:
- MSX community hub: https://www.msx.org/
- MSX overview: https://en.wikipedia.org/wiki/MSX
- openMSX emulator (useful for testing): https://openmsx.org/
- MSXdev (homebrew development community): https://www.msxdev.net/
Core principles for modernizing MSX
Any modernization project should balance two goals:
- Preserve the original architecture and timing that software depends on (memory map, I/O ports, VDP timing, interrupt behavior).
- Provide optional modern features that are non-invasive, discoverable by the user, and ideally switchable so software that expects a stock MSX still runs.
Practical corollaries:
- Prefer transparent passthrough or emulation for hardware interfaces rather than invasive rewiring.
- Keep modern devices addressable via well-documented ports or an OS-level driver (Nextor/extension), and expose them as “optional” devices.
- Use existing expansion points (cartridge/slot bus, cassette/expansion connectors) when possible.
Hardware upgrades and peripherals
Below are proven and experimental ways to add modern capabilities while preserving compatibility.
SD/Flash-based mass storage (floppy/ROM replacement)
- Floppy-emulators (Gotek-like devices) and SD-based cartridges are the first and most practical upgrade. They replace failing floppy drives with SD cards that hold disk images (DSK) or ROM libraries.
- Cartridge-style devices (DivMMC-like boards) emulate ROM/RAM/flash cartridges and allow booting software and storing data on SD cards. They usually present a simple block-device interface that software can use through standard MSX disk APIs.
- Advantages - speed, reliability, huge storage, easy backups and distribution.
Practical tip: Ensure the device supports the MSX filesystem conventions used by your OS (for example Nextor-compatible disk images), or provide a host-side tool to convert.
USB, Wi‑Fi and network connectivity
- Add a network layer by placing a microcontroller (ESP32/STM32) or a small SOC as an intermediary. Options:
- Use the cartridge bus or a serial/RS-232 interface to communicate with the MSX and provide TCP/IP features (HTTP, FTP, telnet, MQTT).
- An ENC28J60 or W5500 Ethernet chip can be integrated with a microcontroller to provide simpler TCP/IP offload.
- Use these links to implement features like FTP-based file transfer, HTTP hosting for static resources, or time synchronization.
Design note: Keep the network interface optional and accessible through a well-documented IO or driver so legacy programs won’t be confused.
Audio and video enhancements
- Video - FPGA-based reimplementations of the VDP (Video Display Processor) can offer HDMI output, higher resolutions, scanline scaling, and color-correction while faithfully emulating the original VDP modes and timings.
- Implement a compatibility mode where the FPGA reproduces the exact VDP behavior and timing for legacy software and an enhanced mode that offers upscaled HDMI output for modern displays.
- Audio - Add USB or I2S audio out through a co-processor for better analog-to-digital conversion, or implement pass-through for PSG/SCC/opll synthesis and optionally mix in modern PCM audio.
FPGA and MiSTer-style cores
- Rebuild either the whole MSX or selected subsystems (VDP, PSG) on an FPGA. The MiSTer FPGA project is an example of recreating classic platforms while providing modern I/O (HDMI, USB, SD). See MiSTer FPGA: https://misterfpga.org/
- Benefits - cycle-accurate cores, easy integration with modern I/O, lower power, and long-term reproducibility.
Cartridge and peripheral modernization
- Flash cartridges - allow developing and deploying software without burning EPROMs.
- USB/Bluetooth adapters for modern HID devices - map modern keyboards and gamepads to MSX joystick/keyboard protocols.
- MIDI over USB bridges - route MIDI to/from the MSX for music creation using classic PSG or external synthesizers.
Software and development flows
Modernizing the MSX ecosystem includes providing better tools and workflows for developers.
Toolchains and build systems
- Cross-compilers and modern toolchains (z88dk, SDCC, or custom toolchains) let you write in C or modern languages while generating efficient Z80 code. A good example - z88dk (Z80 development kit) -
- Use continuous integration on modern machines to build, test (via openMSX), and produce testable disk images automatically.
Example CI flow:
- Source code check-in to Git.
- CI builds ROM/DISK images using z88dk/asm tools.
- Automated testing runs in openMSX with snapshot-based checks or scriptable input.
- On success, artifacts are posted to an archive or SD image builder.
Libraries and middleware
- Create high-quality libraries that wrap low-level hardware and expose stable APIs for developers:
- File and filesystem abstraction that transparently mounts SD-backed images or real floppy disks.
- Network API that mirrors simple BSD sockets semantics but maps to the small-footprint network stack running on a co-processor.
- VDP wrappers for accelerated blitting and sprite management while preserving raw register access for low-level code.
Modern OS/firmware adaptations
- Nextor and similar disk operating systems can be extended to support modern virtual devices (SD, networked disks) while preserving compatibility with MSX‑DOS APIs.
- Keep device drivers lightweight and optional; integrate them as loadable modules so users can enable the features they want.
Architectural patterns for compatibility
When adding features, follow these patterns to minimize breakage:
- Transparent virtualization - present modern resources as classic devices (e.g., SD card as a floppy/disk) when compatibility is required.
- Graceful feature negotiation - the MSX host should be able to detect modern peripheral capabilities and use them only when supported by software.
- Timing-conservative modes - implement “classic timing” modes that guarantee exact CPU/VDP/interrupt timings to ensure cycle-sensitive demos and games still run.
Example projects and recipes (short)
SD Cartridge with Wi‑Fi sync
- Hardware - SD card socket, small MCU (ESP32), addressable via cartridge bus or serial.
- Features - SD-based ROM/DISK images, FTP/HTTP upload, remote sync from a host machine.
- Use - Replace floppy-based workflows with instant uploads.
Raspberry Pi / Host bridge
- Hardware - Raspberry Pi acting as a host connected via GPIO/Serial/USB to the MSX.
- Features - Present directories as disk images, run openMSX for testing, act as an NFS store for MSX files, provide web UI for uploads.
FPGA VDP with HDMI output
- Hardware - FPGA board with VDP core and HDMI output.
- Features - High-quality HDMI output, scanline and aspect ratio controls, accurate hardware emulation mode.
- Integration - Provide an option to redirect VDP bus to original MSX for compatibility testing.
Community, distribution and preservation
- Build a clear upgrade path for hobbyists - documented PCBs, 3D-printable enclosures for new peripherals, and firmware images.
- Encourage repositories of SD images, open-source drivers, and example projects on community hubs such as https://www.msx.org/ and contests like https://www.msxdev.net/ to keep the platform alive.
- Document pitfalls and timing-sensitive behaviors to help future developers avoid accidental incompatibilities.
Practical considerations & caveats
- Not every modern enhancement is worth the cost. Prioritize features that increase longevity and user experience - reliable storage, sound/video quality, and development tools.
- Legal/IP - avoid distributing copyrighted ROMs or BIOS images without authorization. Focus on homebrew and tools to load legally owned software.
- Complexity vs. accessibility - aim for low-barrier upgrade paths that hobbyists can replicate without specialized tools.
Getting started - a short roadmap for hobbyists
- Start with a Gotek or SD floppy-emulator to eliminate flaky floppies.
- Add a flash/SD cartridge for faster development cycles.
- Integrate an ESP32 or small MCU to experiment with network features and remote file transfer.
- Move to FPGA or MiSTer if you want hardware-accurate video and advanced I/O (HDMI/USB) while preserving a physical MSX feel.
- Contribute drivers, libraries, and documentation back to the community.
Conclusion
Reviving the MSX is both a preservation effort and an opportunity to invent. Modern hardware and software techniques can make classic MSX machines more usable and enjoyable for modern audiences, while careful design choices can preserve the behavior and quirks that make the platform unique. Whether you prefer simple SD upgrades or full FPGA reimplementations, there are many paths to keep MSX software running, accessible, and fun.
References and further reading:
- MSX community: https://www.msx.org/
- MSX (Wikipedia): https://en.wikipedia.org/wiki/MSX
- openMSX emulator: https://openmsx.org/
- MSXdev (homebrew dev community): https://www.msxdev.net/
- MiSTer FPGA project: https://misterfpga.org/
- z88dk (Z80 development kit): https://github.com/z88dk/z88dk