MSX1/MSX2 for MiSTer Board
Caution
WIP Notice: This core is currently in WIP (Work in Progress) status. Some components are still under development and may include debug outputs or experimental features. Certain functionalities may not yet work 100% as intended.
MSX1 Core Overview
The MSX1 core is not a direct synthesis of a specific MSX computer model. Instead, it provides a dynamically configurable hardware environment based on a selected definition and configuration file. Each MSX model definition includes not only the hardware setup but also the corresponding ROM binary content.
For full functionality, the core also relies on an extension module configuration, which includes additional ROM binaries. This configuration is independent of any specific MSX model, allowing support for:
- Multiple language variants (via localized ROMs)
- Easy future expansion with new hardware extensions
The final configuration file is a CRC32-based ROM database, which maps known ROM checksums to their correct mapper types. This allows the core to automatically select the appropriate ROM mapper for each loaded image.
Supported MSX Models
Supported Hardware Components
The MSX1 core includes support for the following hardware modules:
PPI– Programmable Peripheral InterfaceRTC– Real-Time ClockPSG– Programmable Sound GeneratorVDP– Video Display Processor (TMS family)VDP– Yamaha V9938 / V9939KANJI– Kanji Display SupportFDD– Floppy Disk DriveWD2793– Floppy Disk Controller (read-only support)OPM– FM Operator Type-M (YM2151)OPLL– FM Operator Type-LL (YM2413)SCC– Konami Sound Custom ChipSCC+– Konami 052539 Enhanced SCCMIDI IN– YM2148 MIDI InterfaceSFG01- YAMAHA SFG01SFG05- YAMAGA SFG05
Supported ROM Mappers
The MSX1 core supports the following ROM mapping types:
ASCII8– ASCII 8KB mapperASCII16– ASCII 16KB mapperRTYPE– R-Type mapperCrossBlaim– Cross Blaim specific mappergeneric8k– Generic 8KB ROM mappergeneric16k– Generic 16KB ROM mapperharryFox– Harry Fox specific mapperkonami– Standard Konami mapperkonami_scc– Konami SCC mappernational– National mapperzemina80– Zemina 80KB mapperzemina90– Zemina 90KB mapper These mappers ensure compatibility with a wide range of MSX ROMs, including commercial games, utilities, and homebrew software.
Supported Expansion Cartridges
The MSX1 core also supports the following types of expansion cartridges:
ROM– Standard ROM cartridge supportFloppy– Floppy disk interface cartridgesSCC– Konami SCC sound cartridgesSCC+– Enhanced SCC+ cartridgesFM-PAC– FM-PAC sound module cartridgesMEGARAM– MegaRAM memory expansionMega Flash ROM SCC SD– Flash ROM cartridge with SCC and SD card supportGame Master 2– Konami Game Master 2
MiSTerFPGA Platform Support
The MSX1 core integrates with MiSTerFPGA and supports the following features provided by the platform:
Joystick input– Direct support for MiSTer-compatible joysticksKeyboard input– Customizable key mappings through model-specific configuration definitionsCassette emulation or analog input– Support for tape loading via audio input or digital emulationSDRAM support– Utilizes external SDRAM for extended memory requirements
Creating Configurations for Computer Models and Expansion Modules
To generate configurations for MSX models and expansion modules, follow these steps:
- Ensure Python 3 is installed on your system.
- Navigate to the tools/CreateMSXpack directory in this project.
- Prepare a directory containing the required ROM binary files. By default, this directory is named ROM.
- To create a configuration for MSX computers, run:
python3 createComp.py
Usepython3 createComp.py --helpto see options for specifying custom paths. - To create a configuration for expansion modules, run:
python3 createDev.py - Place the resulting .MSX configuration files into your MiSTer at:
/media/fat/games/MSX1/