Summary: Playing with an MSX computer
At the end of March 2020, during my periodic visit at a
store (a Japanese chain selling, among other things, used electronic stuff and video games),
I stumbled upon an MSX computer built by Sony, the HB-10 Model. It was not tested, but its overall condition did
was not too bad and the price seemed reasonable so I decided to buy it.
The Sony HB-10 I bought
I do not know anything about MSX computers. I think those were very uncommon where I grew up in Canada. I suspect
that those computers were mostly popular in Japan and Europe... In any case, I am curious and the
Retro Challenge Retry
is a perfect excuse to spend time
learning how to use this Sony HB-10 as well as familiarise myself with the MSX ecosystem.
Once I'll have this MSX up and running (hopefully without too much complications) my first objective
will be to play a game which was recently completed by a developer I follow on Twitter
This new MSX game really looks fun and is called
. Here are a few screenshots:
No missing keys, but does needs a good cleaning.. I'll take care of that later.
Traces of rust on the connectors, in particular the RF output (which I certainly won't use).
Otherwise, everything looks fine inside, only a bit of dust.
Powering it up!
I bought this computer without cables and without the power brick. The power brick was missing, and according
to the store, this was actually the reason why this computer was sold as untested. So I was on my own.
The label under the computer indicates voltage requirements of 6V DC and 16 AC...
I did not have an appropriate power source on hand. So I began thinking: This computer most likely
works at 5v internally... could I simply inject 5v DC? Why does this machine also requires 16v AC? Of what
use is it?
To answer this question, I consulted a service manual I found on archive.org. It was not exactly
the correct manual, I have the HB-10 (Japanese version) while the manual is for the
HB-10P (Europe) and HB-10B (UK). But according to
this page about the HB-10 series
the msg.org wiki, the main differences are only the keyboard layout and the AV output connector.
From what I could see, the input power is used as such:
- 6V DC: Sent to the 5V voltage regulator.
- 16V AC: Used to make 12V and -12V DC using 7812 et 7912 voltage regulators.
- 12V: Sent to the cassette connector and to the cartridge slots.
- -12V: Sent to the cartridge slots.
I could not locate a place where the +12/-12 voltages were used internally. I think I will use the
cassette port, but I will most likely connect it to my PC sound card. I do not think I'll use the 12v output
from this port. As for cartridges, I don't own any yet. I suspect most game cartridges only use 5v though.
Power input circuit and regulators
The conclusion: At least for now, I only need 5v since I will not be using the +12/-12 voltages, and the raw 6V input
only goes to the 5v regulator. In the future I will do something cleaner, but for now, I simply soldered an USB cable
directly to the regulator pins 2 and 3...
USB cable soldered to regulator
I connected the computer to a Sony PVM (same brand, most appropriate) and connected the USB cable... And this computer
appears to work perfectly! Yay!
The keyboard works perfectly well too! For fun I wrote a quick Hello, World! program in BASIC.
I was lucky this time, no repairs were required! Yet, I am a bit disappointed, some motherboard debugging,
CPU or memory replacement (soldered components) would have been fun too...
Next step: Play Uchūsen Gamma!
Uchūsen Gamma is distributed as a ROM (cartridge) file and CAS (cassette) file. My plan was to load the game through
the cassette port by connecting it to my PC sound card. But this requires an appropriate cable! Since I did not have
the correct type of DIN connector, I did not build a cable. I just used two pieces of wire to make the connection. The
correct parts are on their way...
Audio plug and wires
Wires inserted in the DIN connector
To convert the .CAS file to sound, I used the MSX CAS Packager
to convert the .CAS to a .WAV file.
I loaded the file in VLC, typed
on the MSX and pressed PLAY
in VLC. A few seconds
later, the words "Found:ugamma" appeared on the screen. Very good sign!
But it was too early to celebrate. A few seconds later...
Oh no! I tought Uchūsen Gamma was a game for MSX systems with 16k of RAM... It turns out that I did not read correctly. The
cassette version requires 64k... It makes sense, if the game code is not in ROM, it must be loaded somewhere right?
Ok, so my MSX computer only has 16k. In the HB-10 series, the model I have (the Japanese model) is the only one with only 16k. All
other models have 64k. That's too bad... There is only one thing to do then: Adding more memory and trying again!
According to the MSX wiki page about the
, the Japanese HB-10 computer has 16k of RAM in SLOT 0
and all other models have 64k in SLOT 3.
I will try two techniques to add memory to my HB-10:
- I will build a memory expansion cartridge. Simply installing it in one of the two cartridge slots will add 64k of RAM
to the system.
- I will also attempt a motherboard modification to have 64k on-board.
All the components I need to try both techniques are ordered and should be here at the end of the month.
I have good hopes for the motherboard modification. At the moment, there are two TMS4416 (IC10 and IC11) RAM chips
installed, but there are interesting markings on the PCB: 4416(N) and 4464(P). I think that N refers to NTSC and P
to PAL. In the context of the HB-10, knowing that it was sold in Japan and Europe, NTSC = Japan and PAL = Europe. And
Europe implies 64k of RAM! So the plan is simple: Replace the two TMS4416 chips by a pair of TMS4464 chips and perform
whatever additional modifications are required. For instance, looking at the PCB, I can see other optional components
identified by (N) and (P), for instance R61 and C43.
I do not have the service manual for the Japanese model, but I have the European version from archive.org. This memory
circuit schematic will certainly be a big help to understand the required changes!
The part I was waiting for to build a cassette cable, a 8-pin DIN connector, finally arrived!
Much cleaner than inserting small wires in the DIN connector as I had to do before. Also much more reliable!
BASIC 10-liners and KansasEncoder
While I'm still waiting for parts to extend my MSX memory, I tought it would be fun to try
a few games from the annual
Basic 10 liner contest
While those are by definition relatively short and compact programs, I'm not typing them in. Instead,
I load them through the cassette port!
To convert them to sound, I found a nice little tool which runs in a web browser:
KansasEncoder for MSX
. It's a simple matter
of cut-and-pasting the program in the textarea and pressing play. After typing
on the MSX of course!
As an example, here is a fun little game from the 2019 contest (it won 8th place):
First I copy ther code from GitHub...
Ballistic Challenge code on GitHub
I paste it in KansasEncoder...
The code in KansasEncoder
on the MSS, press Play in KansasEncoder, and a few moments later...
Tada! It's running on my MSX computer!
Here is another game that isn't bad at all for 10 lines: SuperFish (This one won 4th place in 2019)
The game in KansasEncoder
Running on my MSX!
64KB Expansion cartridge
I finally received all the parts to build a 64kB memory expansion cartridge for my 16k MSX. I designed a small PCB using a 128KB SRAM
chip. The reason why I used an oversized chip is that I wanted to use only new parts, and the choice of small SRAM chips is a bit limited
in this age...
Ok so, here is the schematic:
I tried to follow the MSX Hardware design guidelines I found
on the MSX Wiki at
where possible or applicable (as far as I could tell)
to my situation. In particular, I made sure the SRAM chip I chose was TTL compatible
and I routed all the cartridge pins to a header footprint to help with future experiments
Printed circuit board
The PCB is sized to fit Konami style cartridge shells.
PCB assembled and installed
My first test was to check how much free RAM BASIC reports at startup. Excellent, the free
memory increased from 12431 to 28815 bytes!
Only 28815 bytes free when I just added 64kB of RAM? This is perfectly normal. The CPU can only
access 64kB, and 32kB are used for the BIOS and BASIC ROM. BASIC uses a bit of the remaining 32768 bytes
of RAM so in the end only 28815 bytes are free.
See also the MSX Wiki:
I have 64kB of memory, but BASIC only reports 28xxx Bytes free
Since BASIC only touches 32kB of memory, I then used a small tool designed to scan system
slots and report what it finds: TINY SLOT CHECKER by Tiny-yarou.
I downloaded it and the zip file contained many different versions of the tool, including a cassette
version in .WAV format, exactly what I needed. So I could use the cassette cable I built and VLC to play
the wave file.
Testing with Tiny Slot Checker
Sure enough, Tiny Slot Checker found RAM in slot 1 (the left cartridge slot), as this is where I had
inserted my memory cartridge. Slot 0 page 3 is the 16kb of RAM built into the machine, and this is where
the tool is running from. Unfortunately the memory version of Tiny Slot Checker (unlike the cartridge version) cannot
inspect page 3, whci explains the blanks...
Ideally I would have liked to use something specifically designed to test memory, but I did not
find one in cassette format... so there was only one thing left to do:
Have another go at loading Uchūsen Gamma
Now that I have at least 64k of memory it should work!
And indeed, after a few moments, instead of an insufficient memory error message, a loading
screen appeared! And a few minutes later, the game started!
Finally, the game runs!
I still hope to replace my cartridge by a built-in memory upgrade, where I will try replacing the two 4416 RAM chips by
a pair of 4464 chips (plus other required modifications). Sounds like so much fun!
But meanwhile, I will play some games, and I think I will make a joystick adapter...
To be continued....