Create a series of boards designed for the RC2014 bus to achieve
MSX/MSX2 compatiblity

Similar projects worth following
Is it possible to achieve full MSX/MSX2 compatibility on a RC2014 platform, using standard discrete components and no tricks?

Can a set of boards be designed and built (graphics, sound, RAM/ROM, IO, etc) which can be installed into an existing RC2014 build?

And once all boards are installed - can full MSX2 compatibility be achieved?

This project is my attempt to find out.

RC2014 is a retro Z80 based homebrew platform designed and sold by Spencer Owen. It allows for easy expansion - and there are lots of kits availble to make your retro computer shine. (

MSX is a series of computers sold in the 80s, standarised onto a common platform - providing a consistent hardware and software implementation. (

UPDATE: I have begun selling kits on my tindie store (

References and inspiration

  • RC2014 - Where this all started for me.
  • OMEGA MSX kit. Demonstrates that its possible to build a compatible MSX2 system, using off the shelf components with a few ebay purchases.  The published designs are a great implementation reference.
  • Artemisa MSX Computer System.  A MSX kit using discrete component. 
  • MSX Technical Data book.

Main Goals:

  • Each board to operate independantly.
  • Each board to operate on a standard RC2014 platform - with appropriate RomWBW HBIOS support.
  • Board sizes will need to be kept small enough to ensure PCB manufacturing costs are manageable.

Stretch Goals:

  • Figure out how to add Floppy and HDD interfaces - can we just use the existing kits available?

Targeted Specifications

  • Graphics: v9958 with full 192K of RAM
  • ROM/RAM Board(s) - Support for MSX Rom images and lots of RAM
  • YM2149 Based Sound chip and Joystick connectors
  • RP5C01 Based RTC
  • Full size keyboard
  • Support for 2 Cartridge Slot expansions (a new backplane perhaps)
  • Optional - cassette interface - because retro!


Portable Network Graphics (PNG) - 195.87 kB - 11/15/2020 at 22:29



Portable Network Graphics (PNG) - 123.48 kB - 11/15/2020 at 22:28



Schematic for RTC board

Adobe Portable Document Format - 89.58 kB - 10/26/2020 at 08:10


  • Art is never finished

    Dean Netherton06/07/2024 at 06:13 1 comment

    Art is never finished only abandoned

    Don't worry - I haven't abandon the project.

    I've been working on the MSX Music Module (and listed a new revision in my Tindie store).

    This revision further reduces some of that annoying digital background noise that could be heard when no music or sound playing. Its still emanate some background noise -- I think it be very hard to eliminate as so much of the various RC2014 modules will generate a lot of EMF noise.

    The latest revision (1.9), increases the gain of the op-amp stage and adjusted some of the capacitors on the feedback. This seems to improve the signal to noise ratio, and it also improved its higher frequency responses.  Its sound much brighter.

    Updated schematic on the github

  • CH376 Module Challenge

    Dean Netherton11/19/2023 at 00:24 0 comments

    Can you tell the difference between these modules - they are both sold as CH376 Modules?

    Both were purchased from ebay/aliexpress traders. Both are sold as CH376 modules.  Both have the same CH376 chip.  

    The one of the left though, has a different pin out.  Notice the 2x3 header pin.  Whereas, the one on the right only has a 1x3 pin header.  And just to add to the change,  the main headers have been swapped.  For the left/original, the outermost pins are the data lines, and for the right, its the inner most pins.

    This alternative form-factor is not compatible with my PCB design.

    On my Tindie store, I had packaged up some kits - and only at the last minute did I notice this very different pinout/form factor change.  I very nearly sent out kits with an incompatible module!  

    I have not been able to source any more of the module as shown on the left.  Only seem to get the one on the right.  

    It now seems that the ebay/ali-express traders are only selling the one on the right -- even if their product page shows the original 2x3 pin header.  You just can not trust what you will end up getting. 

    So I had to redesign the PCB for my Cassette+USB kit to accommodate the change.  As this is just a form factor/pin out change - the software and electronics all still work the same.  Only need to re-route and reposition the cut outs on my PCB.

    So now I have 2 PCB versions for this kit, to accommodate the 2 form factors:

    I have just assembled a kit using this new module form factor - and so far all seems to work just fine.  I do need to do a bit of testing to double check everything.  So if u are waiting to get one of these kits - I can hopefully have new stock listed next weekend.

  • USB Software updates

    Dean Netherton10/28/2023 at 23:58 0 comments

    I have been updating the USB software over the last week or so and making some progress with support for additional hardware types.

    USB Keyboard

    I managed to get a USB keyboard to work.  At this stage, it has very limited functionality.  (arrow keys for instance don't work).  But I was able to boot and control the kit without the matrix keyboard attached - using a USB keyboard only.

    Almost certainly, few games would work with the USB keyboard, but MSXDOS/NEXTOR and CP/M apps seem to work just fine.

    The kit would need the PPI card (part of the keyboard kit) as without the PPI, the system will not boot. 

    I still need to add extra support - arrow keys, caps lock -- and I do wonder if I am able to control the keyboard's capslock LED.

    FTDI Serial Adapter

    This one is interesting.  Have a couple of USB/Serial adapters I've used to connect my PC to the original RC2014's SIO/2.  But I thought, can I now go the other way?  

    But this USB adapter is a vendor specific class.  That is, the USB protocol to control the adapter is not part of the USB specification - its the manufacturer's proprietary protocol.  I could not find any published specification - but there is the public Linux driver for it. The code is quite simple, and so by reviewing that code, it was quite easy to figure out how to configure the adapter and send/receive data over the serial chip.

    This is still very early in the development - managed to get some experimental code to do a loop back test - (connect the TX/RX lines of the adapter).  The code confirms what it sends is also what is receives.  Have this operational at baud rates up to about 38400 - I think I can go higher!

    I've only coded for the specific FTDI 232R chip - as I don't have any other chips to test and verify.  Including from other manufacturers. 

    Also I am starting to run out of ROM space.  All my USB code, mostly written in C using Z88DK/SDCC compiler needs to fit in about 16K.  I am at about 15K!  All part of the challenge.

  • Cassette + USB Module

    Dean Netherton10/21/2023 at 02:05 0 comments


    This one has been quite an effort to get here.  But I finally have a version of the Cassette/USB module completed.  About to list the product on Tindie.

    It was a huge effort developing the software for it.  There was a lot of 2 steps forward, 1 step back, 1 step side, and a few loop-do-loops!

    Learning how USB protocols work for floppy, flash thumbs drives and old magnetic external HDD has been quite a journey.

    After this massive effort, I can now :

    1. Load a BASIC program from cassette (and save), then save it to a USB Flash drive. 
    2. Boot MSX-DOS/Nextor from a flash drive (and use the same drive on my PC for quick file transfer)
    3. Read and write to 1.44MB and 720K 3.5" Floppy disks
    4. Format the floppies

    And also - something that I think was kind of cool.  I got a USB to Centronics adapter and can now print to my 9pin dot matrix printer.

    I have released on new ROM image on GitHub, that has all the new drivers and software.

    More info at:

    Product will be on Tindie soon:

  • Progress Update

    Dean Netherton09/28/2023 at 23:31 2 comments

    Its been a while since I posted here about the project. 

    I have been really struggling to find the time (the usual suspects, work, life etc)

    First, I want to express my thanks to everyone who has taken an interested in my little project, liked/commented here on Hackaday or purchased some of my kits.   Your encouragement and support is fantastic and much appreciated.

    And with that, I was finally able to dust off the soldering iron and get back into developing and updating stuff.

    I am working on 3 main tasks at the moment.

    1. A new revision for the Video Module to support the V9938 chip.
    2. A new revision of the MSX Music module that reduces the idle background noise caused by nearby digital signals.
    3. And a new kit under development, the USB Module (based on the CH376 module). 

    And I also managed to restock my Tindie store.

    V9938 version of the Video Module

    When I was restocking my store recently, I needed to source some new V9958 chips.  I found that the price for the chip has gone up a lot - at about $45-$50 USD.  That seems like its doubled in price since I started this project.  This would have been a better investment than an AI company! 

    But the previous generation video chip, the V9938, still seems to be generally easy to source and at a lower price.  

    One day though, these chips will become virtually impossible to get.

    Given this, I decided to update the Video kit to enable support for the V9938. (I guess that makes it more retro!).

    I also redesigned the power filtering and re-arrange the layout a bit to help reduce noise leaking into the video signal paths.

    The V9938 has some minor differences to the V9958.  

    It has features that were removed in the V9958, such as a mouse interface (I don't think was used very much) and direct support for a composite video out.

    Graphically the V9938 does not support the 'near true' colour screen mode.  It also lack the support for smooth horizontal scrolling that some games took advantage of.  But it still offers a very similar capability, including all the other screen modes, sprites and memory support.  Its programmed in the same way, so the software and games just work.

    Hopefully I can have this new revision listed in my Tindie store soon - with schematic and more details to follow.

    New Revision of the MSX Music

    One of the things I was less than pleased with this kit, is its susceptibility to the digital noise and nearby EMF interference, causing buzzes and hums to be heard when no music was playing.  This was especially noticeable when running the Z80 at the 20Mhz speed. After experimenting with a few inductors and capacitors, I managed to isolate a good chunk of the noise.  Its now much better.

    I am perhaps starting to run the YM2413 audio chip at closer to its minimum power specification.  The low pass filter applied to isolate the digital noise, does drop the voltage a little.  If you combine perhaps a slightly lower than 5V source, some general loss in the backplane power rail - we start to approach the minimum spec voltage of 4.75.  But I think there is enough headroom to ensure its always above spec.  I have done lots of testing, and all seems rock solid reliable. 

    The USB Module

    This has been my main focus over the last few weekends.  The amount of effort applied to get this working is rather ridiculous when I think about it.  I was beginning to wonder if I was insane trying to get this to work.  Most of the effort is in the software.  I have had to learn a lot about USB protocols as well as the specific USB floppy and thumb drive protocols.   Not to mention figuring out how to enumerating devices plugged into hubs.

    The CH376 module seems capable enough, but the documentation did leave me pondering a lot.  

    Trying to fit all this USB protocol logic into a page of the ROM (approx:...

    Read more »

  • Sponsorship from PCBWay

    Dean Netherton05/07/2022 at 03:30 0 comments

    As I started to design and explore creating a USB/Cassette storage module for the Yellow MSX series for the RC2014 platform, PCBWay reached out to me and offer to help me out with my little MSX project.  

    It was amazing to get the support for my little project from PCBWay - to be noticed was a little overwhelming.  I have seen PCBWay sponsor and support many in the Retro community - but I never thought in a million years that they would be so kind and gracious to support my little adventure.

    Last weekend I received my first PCBs under their sponsorship support.  I was very excited as I open and saw my latest PCBs - including the next iteration of the USB module.  I need an updated iteration for the module to allow the CH376 to fit nicely.  It requires a 'cut-out' space for the USB socket.  PCBWay had manufactured the board precisely and the CH376 module fit perfectly.

    I am very excited to solder this board up and test it all out.

    Thanks PCBWay for your support

    The production and delivery of the boards were very prompt.

    What's in the box?

    Packaged safely and securely.

    PCBWay had supplied with new Video and MUSIC boards for my tindie customers, and the latest prototype for the USB/Cassette board!  See the odd cut out for the CH376 module!

    The CH376 module fit perfectly and keeps a low profile on the new board

    Thanks again PCBWay for stepping up and supporting me and the community of hackers and tinkers.

  • USB

    Dean Netherton05/07/2022 at 02:40 0 comments

    One of the final things missing from the Yellow MSX series of kits for the RC2014, is the ability to access typical MSX storage devices (floppy and cassette).

    Without storage such as this, its hard to claim that we have achieved full MSX compatibility.

    There are plenty of schematics online for how to give the MSX access to cassette storage.  Its not a very complicate design -- that is the easy part - although I have yet to get a working old-timey cassette player that works - so that makes it hard to test and validate cassette storage!

    For the floppy interface, I considered designing something based on the work of Dr. Scott M. Baker (  I have actually built one of his designs for the RC2014 CPM configuration - and its worked well - it would only need the appropriate software driver written to support MSX-DOS/Nextor.

    But I decided to go for a different and slightly more modern approach and create a USB interface for the system.  Based on the very cheap and easy to source CH376 modules.  There has been a fair bit of effort by some members of the MSX community to support this module.  The work done to date was invaluable to get the software and hardware working:

    By going with USB it gives me:

    * A more reliable access to floppy - purchasing cheap new USB drives, will be more reliable than attempting to use old used floppy hardware.

    * Aside from floppy, we can access many other storage systems: flash storage, USB HDD, etc - making it easy to transfer files from a PC to the system

    * Other device types can be considered - if the software can be written - such as network interface, serial interface, keyboards - so many possibilities - although the software work is quite demanding.

    I have uploaded 3 videos that shows the work in progress for access floppy, flash storage.  The driver written to-date, currently supports many USB thumb drivers - and I have tested the floppy access for 2 floppy drives (an older IBM/Teac drive and a brand new no-brand drive from ebay)

    It took an enormous effort for me to learn how to access drives over usb, how to use the various USB protocol/standards for floppies, flash and hub access.  The software still has more work -- it currently is about 8k in length.   

    The video shows an early version of the PCB and schematic.  It changes a bit.  With better physical support for the CH376 module and the layout for the cassette design (cassette is yet to be tested and validated)

  • Turbo CPU

    Dean Netherton02/19/2022 at 23:16 0 comments

    Another module I been developing in the MSX for RC2014 series is the Turbo CPU.  This is a module that run the Z80 at 20Mhz, instead of the stock 3.5Mhz speed.  

    This module is not designed to a particular MSX standard - but I wanted to make my machine go a little faster, yet still be compatible (for the most part) with existing software/games.

    The compatibility issue is not a simple one, when you increase the CPU speed, to 20Mhz, many other chips in the system will not be able to keep up.  And in particular the V9958 will have issues.  A lot of software written for the MSX, assumed its running on a Z80 at 3.5Mhz, and will have issues, typically with video, if this is not the case.

    MSX did come out with a 'faster' machine - the Turbo MSX.  They solve the compatibility issue by having 2 CPUs.   A stock Z80 running at the 3.5Mhz for compatibility and a R800 (basically a custom Z80, similar to the Z180/280 etc, that ran much faster).  Unlike the Z80, the R800 is not available today - at least not as a recently manufactured brand new item 

    The fastest Z80 this is available today, in DIP40 configuration is rated at 20Mhz (and can probably go faster).  A MSX running at 20Mhz - sounds super fast to this old-timer!

    The typical way for the Z80 to manage access to devices with slower timing requirements, is by triggering hardware wait-states.  So when the Z80 requests an I/O operation - we need to hold Z80's wait line active for a small number of clock cycles - allowing the communication with other devices to be 'slowed'. 

    The number of clocks cycles that need to be 'waited' is dependant on the speed of your Z80 and the timing requirements of the other chips.  For a generic designed circuit, suitable for a most situations, we need to wait for the slowest component in the system.

    But we also need to consider more than just the timing requirements for IO communications.  The Video (V9958) is a processor also - and when it receives commands from the Z80 - it will take its own time to process those commands.  The chip has its own clock - and as such will work through it logic, at its own independant pace.  

    So any software that assumes its running on a Z80 at 3.5Mhz, but is actually running at 20Mhz, will probably have severe video corruptions as it issues commands to the V9958 at a rate far too high.

    We could solve this issue by waiting (pausing) the Z80 every time it communicates with the V9958 VDP, but we would need a fairly large counter to ensure good operation.  

    Another approach to solving the timing requirements, is instead of using hardware wait states, we just simply 'slow' down the Z80's clock when it initiates any I/O operations.  That is, we switch the Z80 to the standard 3.5Mhz when it starts an I/O operation, and maintain that speed for a number of cycles, before resuming to full speed.  So from the view of the running software, its timing to the V9958 will be unchanged. When the Z80 goes on to do other operations - it will resume at full speed.  Well least that's the theory - there is only one sure way to find out if this works. 

     (The GR8BIT has published a similar mod for their system:, so that gave me hope this would work)

    Of course, a Z80, doesn't just communicate with I/O devices - it also accesses RAM and ROM, across the RC2014 bus.  Will the memory chips keep up?  Will the RC2014 bus operate at this speed ok?  On the surface, the timing for the ROM and RAM chips will not work at 20Mhz - but if we note that although the Z80 is running at 20Mhz, it will not access memory at this speed.  Again, only way to truly know, is to try it out.

    So I came up with a design that has the following characteristics:

    1. use a 3 way slider to 'switch' the operation mode into...

    Read more »

  • MSX Music

    Dean Netherton02/01/2022 at 23:50 0 comments

    I have finished and recently listed on Tindie, a new module - the YM2413 MSX-MUSIC module for RC2014.

    This module is based on the YM2413 chip, which was incorporated into the MSX2 and MSX2+ standards.

    My version of this module, fits into the standard RC2014 bus and includes its own embedded ROM image to provide BIOS and MSX-Basic extensions.

    Here is a short video of the module in action: 

    The sound quality, as captured on my phone, is not great - it sounds much better in person!

    Some of the key design elements:

    The YM2413

    The heart of this module.  This chip generates the audio signals.  See the page for some details ( or the wikipage (

    Onboard ROM

    The board uses the same ROM chip used on many RC2014 and other similar retro kits - the SST39SF040 512K ROM Nor Flash chip.  (it should also probably work just find with the smaller variants).

    The ROM image only needs to contains a small 16K extension, for MSX-BIOS and MSX-BASIC, to enable programs to control the YM2413 sound chip.  Of course, there is nothing stopping any application software from directly controlling the YM2413 chip. 

    As the onboard software only uses the first 16K of the chip, this leaves the rest available for future possibilities.  The ROM is mapped to slot 3-1, via the select signal from the MSX-MEMORY ROM/RAM module.

    The ROM and logic are designed in such a way, that its possible to flash (write) to the chip using a software utility.  It does requires quite a bit of slot mapping trickery -- so I was very happy when I was able to successfully update the NOR flash using a MSX-DOS utility I wrote, MUFLASH.COM.

    I also hope to add to my NEXTOR/MSX-DOS driver the ability to read and write to the spare space of the ROM as an extra storage drive.

    Audio sub-circuit

    The output signals of the YM2413, do need some further processing and amplification.  There are a few different designs that I found online ( mostly by hackers creating their own cartridges for MSX and some wiring up this chip to other micro-controllers such as Arduinos modules)

    I settled on a single op-amp based design, to keep the circuit as simple as possible.  The sound quality it produces seems generally quite good - although it does have a tendency to pick up some stray interference - but when music and sound are playing, any background noise is no longer noticeable.

    Most designs, using the MSX cartridges, power their op-amps using the +12/-12 rails - I found I could use a small charge-pump (TC7660) to generate a -5V from the +5V on the RC2014 bus and drive the op-amps with these voltages just fine.  The charge pump selected, oscillates at about 120Khz - and get the job done.

    The board also has a header, to take in the audio signal from the MSX-GAME's YM2149 sound chip, mixing the 2 audio signals together.


    As the onboard ROM contains the MSX-BASIC extensions, small MSX-BASIC programs with MML embedded in them, operate the chip nicely, although I do find the code can be a little bit obtuse.  See the page (

    I also download Laurens Holst's VGMPLAY.COM utility to play VGZ and VGM music files for the YM2413 chip.  

    And of course, any games that use the chip will work just fine.


    Nothing is ever perfect, and when I started trying to get the paging of the 512K ROM to work in the MSX Slots/paging system, I found I had goofed the addressing for the paging register.  This is the register that select a specific 16K page, that is then mapped into the Z80's address range ($4000 to $7FFF).  It was intended that writing to address $7FF7 would trigger the page selection register (as per the FMPAC cartridge design) - but due to my goof, I actually need to write to address $7DF7  (or $E000 for...

    Read more »

  • Slot Extension for MSX Cartridges

    Dean Netherton11/23/2021 at 22:50 0 comments

    In my previous post, I showed the progress for the Cartridge Slot extension.  I mentioned that I had yet to test with original cartridges.

    Since then, I have received some game cartridges to test against.  I got a very groovy modern day game from, as well as the flash rom MegaFlashROM SCC+.  

    Also received some previously owned 1980's era games. 

    The game cartridges are for MSX1 machines, but the MegaFlashRom will allow me to test MSX2 type games.

    The slot extender pictured in the previous posting, had my attempt to apply buffers between the RC2014 bus and the slots.  But in testing, I identified I had a flaw in the logic and was potentially generating a bus conflicts.  The game would be attempting to drive the data bus, and my buffer was also attempting to drive the bus to the cartridge - not good for the cartridge I am sure.  

    So I decided on the next revision to simplify things and remove the buffer chips and just connect the slots straight to the RC2014 bus.  (Why didn't I do this from the start - would have saved me a lot of headaches!)

    And with the much simpler design, things are now working very well indeed, including with the cartridges from the 80s.  My RC2014 rig has a total of 10 modules, in addition to the slot extender -- So it would seem to me that the fanout for the Z80 and other modules are within their tolerances.  (I suspect if I was using an early edition Z80, rather than the new modern CMOS ones available today, things might be less reliable).

    So far, I have tested the following cartridges and they seem rock solid reliable:

    1. PACMAN - dated 1984

    2. SALAMANDER - dated 1987

    3. Hyper Sports 2 - dated 1984

    4. Mutants from the Deep - dated 2021

    5. MegaFlashROM SCC+

    The MegaFlashROM had a conflict with the NEXTOR/MSXDOS image burnt into my onboard ROM.  I did a hack and removed that (so I only had BASIC in the onboard ROM) - and it worked just fine.  Loaded up Space Manbrow and got full perfect game play with wonderful SCC sounds!  (Furture task is to 'fix' the software compatibility with my version of NEXTOR and the Flash ROM's version)

    Part of the Slot Standard requires the supply of a +12V and -12V lines.  I don't think the cartridges I have tested require this - including the MegaFlashROM.  But I have footprint on the PCB to use an optional 5V to +12V/-12V dc converter - as well as screw terminals for optional external source.

    Some things I have only limited tested are:

    • The supply of 12V from the onboard DC converter .  Done some probing and also used it to drive an opamp on the still under-development MSX MUSIC module - all seemed fine.
    • Testing having 2 cartridges inserted at once.  I have tested running the games in Slot 1 and Slot 2 -- but have not been able to test having the two slots operating at the same time.

    See below the pictures of the board installed.

    I hope to have the slot extender board on sale in my Tindie store soon.  Stay tune for more updates.

View all 37 project logs

Enjoy this project?



Richard Riley wrote 05/03/2022 at 18:54 point

You really need an index and overview. It's nigh on impossible to figure out what works and how from incomplete , out of date, and unserviced hackaday blogs.  It all looks great , but it's very hard to follow.

  Are you sure? yes | no

Dean Netherton wrote 05/07/2022 at 01:56 point

The blog is more to follow the journey of my learning and progress - not really the best place to learn the system in total.  I would recommend for an overview to checkout the github project pages:  There are a lot of modules, so it will require a bit of time to read thru them all and get an understanding of the system.

This is purely a very part time project these days - Saturday afternoons only kind of thing - its hard to find the time to document and make it a professional like experience. 

  Are you sure? yes | no

mselkin wrote 05/01/2022 at 14:45 point

Hi, thank you for this project. I have placed an order. Could you please provide some advice for a beginner: would I need any boards or modules from a RC2014 kit (I do not currently have a RC2014), or if I use your backplane and all your modules, would I have everything I need to build a working system?

  Are you sure? yes | no

Dean Netherton wrote 05/07/2022 at 01:53 point

Thanks for the order.  For a beginner I would strongly recommend you give yourself time to develop the soldering skills.  But if you take your time, test with a multimeter as you go and carefully inspect as you go - you should be fine.

I have pretty much replaced all the standard RC2014 modules. If you get my backplane and associated modules - you will have a working system.  But you will not have any way to save programs.  The Compact Flash module is the only module from the standard set i use - which allows saving/loading programs/files etc to a compact flash module.

I do have a new module under development to allow access to floppy and cassette - but its still very early days for that one.

  Are you sure? yes | no

mselkin wrote 05/07/2022 at 18:14 point

Thank you very much for your reply - I think I'm ok with the soldering - I've assembled many kits, but I am new to understanding the hardware. I look forward to building your kit and learning along the way. I will certainly purchase the disc and tape module, when you have it ready. Thanks again, Mark.

  Are you sure? yes | no

Dean Netherton wrote 05/20/2021 at 09:16 point

For those who are waiting for new stock of the kits on tindie, I plan to have new stock listed this weekend.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates