lundi 26 juin 2023

A downloadable MSX cartridge.

After having studied a universal timer based on the operation of the TMS1122, and while waiting to receive the printed circuits board of the definitive version, it is time to continue the study of the MSX cartridge.

The reasons for this type of cartridge: I knew absolutely nothing about the MSX stadard. Out of curiosity, I mounted an MSX board developed by Sergey Kiselev :

https://github.com/skiselev/omega/blob/master/Mainboard.md

This MSX computer works very well. However, the problems started when I wanted to test an application, typically a game. Which cartridge to insert since I don't own any original game cartridge?...

I tested several 'universal' cartridges like the Carnivore 2 witch was defective, the Rookie Drive NX which is supposed to emulate a floppy drive and the MegaFlashROM which is the one I managed to use. 



The common point of these cartridges is that they are not at all easy to use. Most of the time, it's a matter of copying the desired program to an SD card and then inserting this SD card into the cartridge. When starting the computer, it is then necessary to press keys at certain times to access the menu of the cartridge, allowing the program of the SD card to be recognized by the MSX computer, most often by copying the contents of this SD card in a memory space addressed by the MSX computer. It works, but it's anything but practical. And to consider development, it's downright impractical, hence the presence of MSX emulators for Windows for example.

So, I decided to try creating a cartridge that would work like a memory emulator. That is to say that the memory of the cartridge could be loaded from a PC and directly accessible by the MSX computer after RESET. Simple in fact!

Note that with this project, I have no idea where I'm going. I have never programmed the USB interface of the processor used (always RISC V). My experience with USB dates back a few years when I created a MIDI multiport using an STM32 processor. For now, I have created an MSX cartridge and have just implemented the few components needed to make the microcontroller work.



This is the 3D representation of my cartridge and...


This is the hardware realization with just the necessary components to go on the adventure. The first step will consist in programming the microcontroller to behave like a mass memory then to use part of the internal SRAM as memory accessible by the PC.

This is already a nice challenge I think...