The MiSTer FPGA MSX 1 & 2 core
The MiSTer FPGA MSX currently in development by Molekula
Why a New/2nd MSX core?
The current One Chip MSX Based core only supports the interaction with a VHD, this limits the interaction with the core to using programs like romload/diskload or SofaRun. Although this solutions is fine when you have advanced knowledge of the MSX platform it's not ideal for people who want to get the fullest out of the MSX core or just want to start a quick game from by loading a ROM or a disk image. Adding files to a VHD image can be complex and moving the large VHD file back and forth from the current One Chip MSX core can be a tedious undertaking.
The orginal use for the One Chip MSX core
- Support various single board FPGA computers
- Have pyshcial cart slots that support real MSX cart
- Use an SD card as a large storage medium (easy to add new files)
Despite a few bugs this version of the MSX worked perfectly for the die hard MSX fans, however it translated rather poorly to the MiSTer platform due to a lack of physical cartridge support and the use of VHD files.
Downloading the new core
Check for New MSX core downloads here:
https://github.com/MiSTer-devel/MSX1_MiSTer/tree/MSX2test/releases
What does the new MSX core support:
- Direct loading of Disk/CAS/ROM images (see below of instructions on ROM Loading)
- Switchable dedicated MSX1 or MSX2 mode
- ADC tape input support
- Joystick support
What doesn't the new MSX support (yet)
- OPL4 (not in OCM core)
- SCC support outside ROMs (sorry SD Snatcher will sound like grinding gears for now)
- Second disk drive support (hardly used by any software)
- MIDI
- Mouse support
- RS232
- TCP/IP stack support (aka network)
Bios Files:
The core uses BIOS packs rather than individual BIOS files. BIOS packs allow you to select different machines to run, you can download the pack
here or build it yourself with the included (see download link above)
Loading ROM Files
Since the carts for the MSX had their own individual hardware it might be tricky to get some ROMs working on the core. We have tested a lot of ROMs and most of them work flawlessly.
There is a heuristic auto detection method build in to the core to estimate the mapper to use - however this process is not flawless and some coaching is needed with several ROM images.
Here is an example of Aleste running with the mapper set to ASCII16
If you are unsure what mapper to use just go through the available mappers for the slot you loaded the ROM into.
You can also look up the mapper types for the ROM you try to start
here
MSX2 Boot Modes
Some disk or cassette games require more memory to load and start. In order to make sure to free up more memory do the following:
Hold CTRL during the MSX logo until after the beep to only enable 1 disk drive - this will free up some space and disable any (virtual) 2nd disk drive you might have.
Hold SHIFT during the MSX logo until after the beep to disable loading the Disk ROM and Disk BASIC into memory, this will free up the most memory.
If a disk game doesn't work make sure to try with CTRL pressed.
Loading Disk Images
Most disk images are self booting - either with MSX-DOS or with a so called 'AUTOEXEC.BAS' file. If a disk doesn't auto boot and you just go into MSX basic do the following:
Type in the command:
files
This command will show you you all the files that are present on the disk. If you get an error it means you have a corrupted disk image.
In order to load a program look for either the BAS (used for BASIC programs) or the LDR (stand for LoaDeR) files. You can load these files by typing in the following command:
run"filesname.ext"
This will load and run the program for you.
Loading Cassette Images
There are several ways to load a casette program, most tapes can be loaded with either of the following commands:
run"cas:"
bload"cas:",r
The 1st command loads a basic program that might load binary files the 2nd command does a direct binary load and attempts to execture it as well. The file name of the cassette image might give insight in what command to use.
FAQ
- Help where is my stop key?
- Print Screen / so to stop a basic program you would push [CTRL]+[PrntScrn]
- Things that should work according to others aren't working on my MSX core
- Update to the latest core and check your BIOS files if that doesn't work.
- [Software X] doesn't work right on the core
- Check if it works on a real MSX or MSX emulator (WebMSX is a fast way to check if you don't have an emulator installed)
- My @ key displaying "
- You are using a JP BIOS
- Can you provide me with the BIOS/ROMs and or games?
- Google is your friend
- How do I use F6 - F10 on the MSX core?
- The MSX has dual use function keys that can be accessed with shift. The mapping will be like this [F1/F6] [F2/F7] [F3/F8] [F4/F9] [F5/F10]
- My .DSK file won't autoboot. What to do most of the time:
-
Case1: Some DSK images (especially those labeled "Needs MSX-DOS" and some demos) are made for use with MSXDOS2.2 MSX Dos programs have the extention.com
Load the MSXDOS22.ROM SHA1: c36c9e0f96738a340381e23b4f97245388801a46 in slot 1, mount and boot MSXDOS22.DSK, swap disks and run the .com file
Case2: Autoexec.bas might not launch the correct file. You might list disk content with "files" command under MSX Basic, then load"xyz.bas" and run it. Other common extentions are .LDR
Case3: Some DSK files (especially from applications archives) using MSXDOS1 might not have the required MSXDOS1 files (command.com and msxdos.sys)
Boot first MSX-DOS1 Disk, then swap and run the .com file
Case4:Some DSK games need a manual intervention to boot. While booting (power on to after the beep) hold the CTRL key to disable the extre reserved memory in disk basic for 2nd drive support