raphnet.net banner

RetroChallengeRetry, 2020/04

twitter@raphnetlabs
Contents

Summary: Playing with an MSX computer

At the end of March 2020, during my periodic visit at a Hard Off 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

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 developper I follow on Twitter (@reidrac). This new MSX game really looks fun and is called Uchūsen Gamma. Here are a few screenshots:


goto top


Visual inspection

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.


goto top


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 consuled 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 on the msg.org wiki, the main differences are only the keyboard layout and the AV ouput connector.

(https://archive.org/details/sonyhb10p10bsm/mode/2up)

From what I could see, the input power is used as such:

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

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 cleanter, but for now, I simply soldered an USB cable directly to the regulator pins 2 and 3...

USB cable soldered to regulator

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!

goto top


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

Audio plug and wires

Wires inserted in the DIN connector

Wires inserted in the DIN connector



To convert the .CAS file to sound, I used the MSX CAS Packager project to convert the .CAS to a .WAV file.



I loaded the file in VLC, typed load"cas:",r 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!

goto top


More memory

According to the MSX wiki page about the HB-10 series, 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:

  1. 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.
  2. 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 optionnal 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!



goto top


Cassette cable

The part I was waiting for to build a cassette cable, a 8-pin DIN connector, finally arrived!

The parts

The parts

Wiring...

Wiring...

Wiring...

Wiring...

Done!

Done!



Cable connected

Cable connected



Much cleaner than inserting small wires in the DIN connector as I had to do before. Also much more reliable!

goto top


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 Load"cas:" on the MSX of course!

As an example, here is a fun little game from the 2019 contest (it won 8th place):
Ballistic Challenge!

First I copy ther code from GitHub...
Ballistic Challenge code on GitHub

Ballistic Challenge code on GitHub



I paste it in KansasEncoder...
The code in KansasEncoder

The code in KansasEncoder



I type load"cas:" 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

The game in KansasEncoder

Running on my MSX!

Running on my MSX!


goto top


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...


Schematic

Ok so, here is the schematic:



I tried to follow the MSX Hardware design guidelines I found on the MSX Wiki at https://www.msx.org/wiki/Hardware_Design 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 or modifications.


Printed circuit board

The PCB is sized to fit Konami style cartridge shells.

Bare PCB

Bare PCB

PCB assembled and installed

PCB assembled and installed



Test 1

My first test was to check how much free RAM BASIC reports at startup. Excellent, the free memory increased from 12431 to 28815 bytes!

Avant...

Avant...

Carte insérée...

Carte insérée...

Et après!

Et après!



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



Test 2

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. http://www.tiny-yarou.com/slotchecker.html

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

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...


Test 3

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 appeard! And a few minutes later, the game started!

Loading screen

Loading screen

Finally, the game runs!

Finally, the game runs!

At last!

At last!



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....

goto top


Any trademarks used on this site are the property of their respective owners.
Copyright © 2002-2020, Raphaël Assénat
Website coded withWebsite coded with vimLast update: May 1, 2020 (Friday)