This website is an unofficial attempt to catalog all of the information we know about the MSX0 in anticipation of it's release. As most of the information we are getting is in Japanese, it is very likely that this page will contain inaccuracies. This page was created by _NetNomad, to whom all questions, concerns, complaints, and concertos can be sent.
The MSX is a standard of computers from the 1980s and 1990s. It was a joint effort between Microsoft and the ASCII Corporation and an early attempt at creating a unified specification for computers, allowing software compatability between different models created by different manufacturers. They also often sported multiple cartridge ports to insert hardware upgrades such as RAM expansions, alternate audio and video sources, and floppy or hard disk interfaces. It is a common myth that this was unsuccessful outside of Japan, but the MSX performed well throughout Asia, the Middle East, and parts of Latin America and Europe. Originally, there were four generations of MSXes. The MSX1 was the first, with hardware very similar to the ColecoVision or SEGA SG-1000. The MSX2 introduced a better, backwards compatible VDP and expanded BIOS, and the Japanese exclusive MSX2+ and Turbo-R brought further improvements. In the late 2010s, the original head of ASCII and former Japanese VP of Microsoft, Kazuhiko Nishi, announced plans to create three new lines of the MSX: the MSX0, the MSX3, and the MSX Turbo.
The MSX0 is the first of these three new computer lines to be released. The focus of this computer line is Internet of Things (or IoT). The MSX0 is ESP32-based and emulates an MSX2+ computer. However, the virtual MSX will have access to the device's more modern hardware features, such as Wi-fi, Bluetooth, a touchscreen, an accelerometer, and a number of Seeed Studio Grove connectors to attach additional devices. The device is also capable of playing games released via ROM or floppy disk, and a number of classic games will be available to purchase on the system from D4 Enterprises' Project EGG.
A number of MSX0 models are either slated for release of have been teased by Nishi on twitter. The majority of them are modified versions of M5 products.
This appears to be the flagship MSX0. Beta units of this model were released after MSX DEVCON3 in Japan. It is based on the M5Stack Core2, with the most noticable difference being that the orientation has changed so that an SD Card can be attached from the top of the device (as opposed to the bottom, where it would be inaccessible when using a face module). It's dimensions are 54 x 54 x 16mm and it weights52g. The M5Stack Core2 has 520KB of SRAM, 16MB of flash memory, 8MB PSRAM, although it is not clear if these will be directly accessible or will only serve to emulate an arbitrary amount of virtual MSX RAM. The touch screen is 2 inches or 320 x 240, and as a result some screen modes cannot display at full resolution. It has one Grove plug on the side for attaching sensors and a GPIO bus on the back. As the name suggests, this can be stacked on top of other modules to add additional hardware. The beta units came with a Faces2 kit, which included keypad, controller, and calculator faces.
This model is based on the M5Stick. It is smaller than the M5Stack, with less inputs, and can easily be worn as a watch.
This Arduino-esuqe unit does not have a dedicated display.
Also teased was an MSX0 unit with a black and white ePaper display. This is meant for situations where a screen and low battery usage are required.
This model is meant to be plugged into the cartridge bus of a classic MSX microcomputer, and possibly the MSX3 if it retains the cartridge bus. It gives that computer access to the Grove ports and IoT BASIC. It has a number of other connectors and features as well, but it is unclear if this will upgrade an MSX1 or MSX2 to an MSX2+.
The MSX0 Pro appears to be an add-on to the Core2 model that is attached to the rear. It contains a zynq7010 SoC (System on a Chip) with two ARM cores and an FPGA, although it is not clear if this will be user-programmable or dedicated to emulating an MSX. This will bump the MSX0 up to a Turbo-R which will reportedly 200 times faster than a vintage R800-based computer.
When the device is first activated, you can press the left button above the screen to access a setup mode which allows you to change the parameters of the emulated MSX. Generation, RAM size, and VRAM size can be selected. A ROM can be selected to put in the virtual cartridge slot, but it is unclear if you will be able to load the ROM from the SD card or if only pack-in games and purchases from Project EGG can be loaded. It is also unclear if other cartridge-based devices like an emulated FM-PAC will be selectable. Any disk image, however, can be loaded from the SD card. These settings are all saved on the SD card, so without one any changes you make will not persist.
The MSX0 Core2 and presumably the Stick and ePaper models can be operated all on their own. However, the physical display cannot show every screen mode correctly due to it's size, and the Stamp does not have a dedicated display at all. As an alternate method of viewing the screen, t seems that the desktop computer SDK can successfully mirror the MSX0 screen on your computer display with some delay. Additionally, terminal software for PCs and smartphones can be used to send text to the device. A composite video plug can also be connected directly to a Grove port, although it is currently unclear if this displays the MSX0 screen or is a secondary output.
The MSX0 is also confirmed to work with the M5Stack HDMI module to mirror the screen. It is unclear if the composite A/V module can also be used.
Many Grove devices do not have means for the MSX0 to detect what the device is. MSX0 Grove devices will come with QR codes that can be scanned (by the MSX0 with a camera? by your smart device on the same wifi network?) to load the proper driver.
An english MSX0 programming guide has not been released at this time. At the very least, most if not all existing MSX/2/+ programming principles should apply for most uses. The only big difference is the usage of the new perephrials via I2C. These are accessed via the Device Tree.
In BASIC, these are accessed with the _IOGET and _IOPUT functions. The first argument is a string containing the device tree path to the device you wish to interact with, and the second is either the value you want to send or the variable you wish to replace the response in. hra1129 has also managed to implement the _IOGET function in C, so it appears that compiled and machine-language programs can also access these devices.
It also appears that the touchscreen can be read with the BASIC PAD command, as if a graphical tablet is plugged into joystick port 2 on a classic MSX. This hopefully suggests the corresponding BIOS calls can also be used, in which case classic drawing programs can be used and MSX0 programs can be developed today with a graphic tablet or the emulator of your choice.
The pre-release version of MSX0 came with three unmodified M5 Face modules: a keyboard, a joypad, and a calculator. New blue versions that may function differently have been teased by Nishi. All three faces are recognized by the virtual MSX as a keyboard. This includes the joypad face. For example, in BASIC you would read the d-pad with STICK(0) instead of STICK(1) as one would nromally do to read a joypad. The current keyboard face and protocol is also missing a few critical keys. The keymap is shown below:
With this information, it is already possible to create new devices that interact with the MSX0 as if they were a keyboard.
The pre-release version of the MSX0 still has a few kinks that will hopefully be worked out before release, but there are no guarantees. Suzukiplan and hra1129 are both logging issues on github as they come up.
The majority of the MSX0 discussion seems to be happening on Twitter and the MSXBBS discord, but mostly in Japanese. The MSX Resource Center and the MSX Assembly Page are invaluable resources for the original MSX series, with most of that information also pertaining to MSX0. I also help run an english-language discord server called DX COMPLEX and would love to see more MSX and MSX0 discussion there.
If you're wondering why this is the coolest website you have ever layed eyes on, that's thanks to Andy from La Nueva Escuela for ripping the MSX1 BIOS font.