Mega CD Project

I would like to post more on this blog I made. I usually like to read other blogs like Deunan or ychh0 so those two are a big inspiration. Also both are very good friends of mine.

Specifically the last two years I’ve begun collecting retro consoles and computers. I think it’s safe to say I have most consoles with HDMI processors installed or ODE installed. At a later time I might even take some photos of my retro hoard. But this isn’t the time for that.

In January I start University for Computer and Electrical Engineering and it will be the second degree I will have completed once my education is done. There are a few embedded systems projects I would like to complete. I think a very fun one to do and likely the first one is creating an RX-78 Flash cartridge based on the bluepill breakout board. For those that are unaware, the RX-78 was a computer in Japan made by Bandai in 1983 that utterly failed. So least to say it’s very rare and I just bought an untested one. Hopefully it works fine. Emulation is dodgy for it currently which is odd for an 8bit computer with only 4 custom chips and standard-otherwise configuration available. Maybe I can enhance the preservation experience for that but that isn’t even a low priority to me.

Anyway, one system I wanted to make something for is the Mega CD. The prices for them appear to be skyrocketing. The Model 1s appear to be hitting the $300 dollar range on eBay and reseller sites very consistently minus Japan. So my Megadrive and MegaCD I purchased for $190 shipped and it was a junk item. After the rubber belt was changed it worked totally fine. I still changed the capacitors in the Mega CD since they were leaking quite badly near the zip package RAM. After learning very basic EDA last 2 years mostly through failures I’ve made this for my Mega CD project.

This is the MegaCD breakout board with a flexPCB attached going into a breakout board. FlexPCB enables me to read the disc drive traffic across the data BUS. These old systems use a 5V BUS (as in, if high its 5V, low runs 0V) compared to modern MCU that run on 3V3 for system bus albeit some contain 5V tolerant IO.

Initially, I wanted to have a jumper (switch in final product) controlled CD ROM emulator for the Mega CD that will be able to switch from CD ROM drive and ODE. Well, the Flex cable has a 9V line for the motor and a 5V line for the electronics. So the jumper/switch just cuts power from the MCU. CD ROM should be removed to avoid spinning noises.

Now the good news is that all Mega CD 2 units appear to use the exact same circuit as the Model 1 with the exception being that the drive chips are integrated. So skilled soldering is required. Specifically, the Mega-CD CPU (315-5548 ASIC) seems to be in every single piece of Mega-CD type hardware including Wondermega. So once I solve the problem with Model 1, it could be ported to the Model 2 and possibly other obscure Mega CD models. They might be more permanent instead of the switchable ODE/CD-ROM for Model 1.

I have considered using ESP32 for cost reduction purposes but I really would like to learn STM32 ARM-based processors since they can actually land a job and feed my family a lot easier. Due to component shortages worldwide at this time I might settle for the ESP32. Well, then that enables wifi file management / FTP which would make it easier to move firmware updates to the SoC instead of disassembling Mega CD.

Anyway, while I learn C for embedded systems in my spare time I hope to make some progress with Mega CD. So far it appears to use i2s for the audio CDDA lines, maybe a form of SPI for the DATA0-3 lines and maybe i2s for command interface. Not sure what to do with subchannel information if I can just send a bunch of zeros back or not. Mega CD had zero protection as far as I understand and they wouldn’t just hide it in subs. I ripped apart my disc drive to document the drive itself and…well…I’m certain I reassembled it properly. I’ll be taking logic analyzer captures in a few weeks to see what protocols I would need to focus on and then post it here.

Please don’t count on me making this quickly. I’m still learning basic coding. I borderline cracked my head against the wall writing the C++ script for the Arduino project on the Towns power supply. I will open source my project for documentation and preservation purposes once I’ve sold enough units if I even get that far.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: