Sega Saturn Homebrew with Game BASIC

Part 3: Set up a Game BASIC Development VM

Summary

For this part of the project, I’ll assume you’ve acquired a complete Game BASIC kit, including the Saturn-to-PC hardware adapter.  You’ll notice that one end of the adapter plugs into the Serial port on your Saturn, while the other end has an old-fashioned female DB25 connector.  This may look similar to an old parallel port, but it’s not!  It’s actually serial.

You’ll also need to purchase a USB-to-Serial adapter.  Most adapters have a DB9 connector, so you’ll either need one with a DB25 connector or one that comes with a DB25-to-DB9 adapter of its own.  I’ve had a lot of success with the StarTech adapter available on Amazon.

This part of the project may vary, depending on what VM platform you prefer and what USB-to-Serial cable you purchased.  I will walk through how to get everything working with a VirtualBox VM and a StarTech USB-to-Serial adapter.  If you decide to use different tools, the theory will be the same, but individual steps will vary.  With that said, let’s get started…

Step 1: Set up your USB-to-Serial device

This step will vary depending on what adapter you purchase.  For my StarTech adapter, I was able to plug the cable in to my Windows 10 64-bit machine and install the driver software that came on CD in the box.  I noticed that Windows auto-recognized the cable and tried to install a driver of its own, but that driver did NOT work for me.  The one on the CD worked perfectly, so just follow the instructions that come with the cable.  Once setup is complete, you can verify that it worked correctly by going to the Device Manager in Windows (right-click the Start button).  In order for everything to work correctly, your device MUST be installed as a COM port.  Here, you can see mine is installed to COM3:

Device Manager

Step 2: Basic VM Creation and Setup

Start by installing VirtualBox on your PC if you haven’t already.  Create a new VM for Windows XP 32-bit (the 32-bit edition is important!) and follow standard install procedures that are well documented elsewhere, such as here or here.  I won’t go into detail because this isn’t a VirtualBox support article!  Use Google if you need more help.  Once your Windows XP VM is running, if you’re using VirtualBox, then I highly recommend installing the Guest Additions for major quality of life improvements (dynamic resolutions based on your window size, drag-and-drop and copy/paste to host machine, etc.).  To do that, boot your VM, then choose the Devices menu and the “Insert Guest Additions CD image…” option.  This should autorun a simple installer program.  If it doesn’t autorun, you can find the installer mounted as a CD drive in the VM.

Step 3: Set up Japanese Language Support

Remember, the software designed to communicate with your Saturn was developed for the Japanese market, for Japanese PCs and Japanese users… So, it’s all in Japanese!  If you don’t install Japanese language support, all of the text will show up as gibberish control characters.  While you can certainly get by without this step (especially if you don’t speak any Japanese), it will clean up all of the UI elements quite a bit and just make overall operation smoother.  Plus, with the proper text displayed, it’s easier to use tools like Google Translate to figure out what you’re looking at.

There are two steps to proper Japanese language setup…

Step 3a: Enable the Japanese Text Service and IME

To enable general Japanese text support and the Language Bar with Japanese IME, complete the following steps:

  1. Go to Control Panel
  2. Open Regional and Language Options
  3. Go to the Languages Tab
  4. Click Details
  5. Click Add
  6. Select “Japanese” for both the Input Language and Keyboard layout/IME options

If you plan to use Japanese text input, make sure the Language Bar is working.  Once Japanese text support is enabled, click the Language Bar button on the “Text Services and Input Languages” window (Step 4 above) and ensure “Show the Language bar on the desktop” is checked.  You should see an “EN” icon in your taskbar.  Click it and choose “Show the language bar” to expand it to a floating toolbar.  Click where it says “English” and select “Japanese” to change your input language.  Use this to switch back and forth between English and Japanese text entry!

Enabling Japanese Text Service and IME

Step 3b: Expand Japanese Language Support to Additional Programs

The step above will enable support for any Unicode-based Japanese text.  The problem is, the programs we’re working with are ancient and pre-date widespread Unicode support!  Additionally, there are other useful programs (like Notepad) that don’t automatically support Japanese text.  So, we have to take a couple additional steps.

  1. Go to Control Panel
  2. Open Regional and Language Options
  3. Go to the Languages Tab
  4. Click Details
  5. Click the Advanced tab on the “Text Services and Input Languages” window
  6. Check “Extend support of advanced text services to all programs”
  7. Click OK
  8. Click the Advanced tab on the “Regional and Language Options” window
  9. Under “Language for non-Unicode programs,” select “Japanese” and click OK

If you anticipate doing lots of copy/pasting of Japanese text from the VM to your host machine (for instance, to use Google Translate for various documentation), then I recommend running similar steps on your Windows 10 instance.  Otherwise, Japanese text from your VM will often copy over as gibberish control characters in your host machine:

  1. In Windows 10, click Start, then Settings
  2. Click Time & Language
  3. Click Language
  4. Click Add a preferred language and choose Japanese
  5. Once enabled, return to the Time & Language window and choose Region
  6. Click Additional date, time, & regional settings
  7. Click the Administrative tab
  8. Under “Language for non-Unicode programs,” click Change system locale… and choose Japanese

Step 4: Enable the VM’s COM Port

Here’s the true secret sauce!  This is the step that will allow your Windows XP virtual machine to talk to your USB-to-Serial adapter, and anything it may be connected to (like, say, a Sega Saturn!).  To complete this step:

  1. Shut down your VM completely
  2. In VirtualBox, open your VM settings
  3. Click Serial Ports
  4. On the “Port 1” tab, check “Enable Serial Port”
  5. For Port Number, choose COM1
  6. Leave IRQ and I/O Port as they are
  7. For “Port Mode” choose Host Device
  8. “Connect to existing pipe/socket” should automatically be checked
  9. For “Path/Address,” enter the COM port your USB-to-Serial adapter installed to on the host machine (go back to Device Manager in Step 1 to confirm this value).  For me, it was COM3.  Here’s what my settings look like:
Configuring COM port emulation in VirtualBox

In short, our USB-to-Serial adapter is mapping the USB port to an old school COM port on our host machine.  We’re then mapping that faked COM port to COM1 on our virtual machine.  As far as Windows XP can tell, it’s communicating with an old school hardware serial port, but it’s really a USB device in Windows 10!

Now, start your Windows XP VM again and confirm that the COM1 port is enabled by going to Control Panel, Administrative Tools, and Computer Management.  Click Device Manager and look for COM1 under “Ports (COM & LPT).”  Here’s what mine looks like:

Verifying the COM port in Windows XP

Step 5: Install the Game BASIC Windows 95 Tools

Now that we’ve completed all the basic VM setup and configuration, it’s time to start working with the actual Game BASIC tools!  With the VM booted, insert your “Game BASIC for Sega Saturn for Windows 95” disc into your host machine and ensure the drive is made available in the XP VM (it should be by default, but Google is your friend if you have any trouble).  If it doesn’t autorun, launch “ToolLoad.exe” from the CD drive and install both BASTERM and DXF CONVERTER.  (ToolLoad.exe may be a hidden file, so either configure XP to show hidden files or manually launch Instbt10.exe to install BASTERM and Instdc10.exe to install DXF CONVERTER.)

Game BASIC for Sega Saturn Windows Tool Setup dialog

That’s it!  You can now launch BASTERM and DXFCONV from the Start menu.  If everything went well with the Japanese language support, you should have seen Japanese text during install and a fully Japanese interface in both programs.

What are these?  BASTERM is “BASic TERMinal” and allows you to communicate BASIC programs back and forth with the Saturn via the serial connection.  DXFCONV is a program that converts DXF format 3D models into BASIC code that you can then include in your programs.  Here’s what they each look like:

BASTERM
DXFCONV

Step 6: Test (and Troubleshoot) Your Connection

Now that everything is installed, let’s connect our PC to the Saturn and make sure everything works the way it’s supposed to:

  1. Boot Game BASIC in your Saturn up to the “Ready” prompt
  2. Plug one end of your Saturn-to-PC serial cable into the Saturn’s serial port
  3. Plug the other of your Saturn-to-PC serial cable to the Serial end of your USB-to-Serial adapter. (NOTE: This can be a VERY tight fit!  Make sure you’re really inserting it all the way.  I didn’t have it pushed in all the way on my first try and wasted 20-30 minutes troubleshooting before I realized what the problem was.)
  4. Plug the USB end of your USB-to-Serial adapter into your PC
  5. Boot your Windows XP VM
  6. Launch BASTERM

Before we go any further, let’s familiarize ourselves with the BASTERM interface.  Yeah, the Menus and Tooltips are all in Japanese, but the main icons across the top of the window are most of what we need and are fairly self-explanatory.  From left to right, they are:

  1. New File
  2. Open
  3. Save
  4. Cut
  5. Copy
  6. Paste
  7. Connect to Saturn
  8. Run (on Saturn)
  9. Stop (on Saturn)
  10. Load Program from Saturn
  11. Send Program to Saturn
  12. Direct Keyboard Input

To test our connection, let’s start with the Direct Keyboard Input option.  Once you choose it, if all goes well, you’ll see the following image pop up:

Direct keyboard input window

While this window is open, all keypresses on your keyboard will be sent to the Saturn!  Try it out by entering the following:

LOAD "CD:LAUNCH.B",R

As you type this line out, you should see each character appearing on your TV screen, as it’s sent from your PC to your Saturn!  When you hit Enter, it will run the Launcher program we saw in Part 2.  If this is working, then you’re all set – you have a fully working connection!

However, if you received an error message when you clicked the keyboard icon in BASTERM, there’s a problem with the connection.  Here’s what that message looks like:

BASTERM connection error dialog

Basically, it says “the connection to the Saturn failed, please check your connection.”  If you’ve been following the instructions in this tutorial so far, there’s really not much that can go wrong.  Check the following:

  1. Check that the COM1 port is active in your Windows XP VM (see Step 4 above)
  2. Check that a COM# port is active in your host machine (see Step 1 above)
  3. Make sure that your VM’s COM port is properly mapped to the correct COM# port on your host machine (see Step 2 above)
  4. Make sure that all cables are securely and completely connected. (This was the step that got me on my first attempt.)

If you do make any changes, especially plugging/unplugging cables, reboot your VM to make sure it sees the changes.  I have the most success by fully shutting down the VM and powering it back on, rather than using the Windows Restart command.

Beyond that, it should Just Work™ so double and triple check all of these potential points of failure until you have a working connection.  Once everything is looking good, it’s time to get to work!

Step 7: Increase the Serial Connection Speed

Now that we have a working connection, you can start to use BASTERM to its full potential.  But first things first, let’s speed up our serial connection.  The default speed is okay for test programs, but once you start transferring larger files, it will be far too slow.  In BASTERM, do the following:

  1. Click the Settings menu (the fifth menu from the left, with an (S) next to it)
  2. Click the Communication Settings option (the second option, with a (P) next to it)
  3. Here, you can change the COM port and baud rate.  Click the radio button next to 19200 and click OK.
BASTERM communication settings

The Saturn and BASTERM need to be set to the same baud rate to properly communicate, so now do the following on the Saturn:

  1. Press L+R+Z on your controller
  2. Use the D-Pad to select the Baudrate option and switch it to 19200 BPS
  3. Select Exit with the C button to save and return to the “Ready” prompt

To test the new configuration, do the same thing we did in Step 6 and open the direct keyboard input window. If it connects, you’re all set!  If not, double check that your settings saved properly and that everything is still connected.  Power down and restart your VM for good measure.

PROTIP: For an unofficial way to increase the connection speed even further, see Part 8: Tips and Tricks!

4 Replies to “Sega Saturn Homebrew with Game BASIC”

    1. Possibly! I never tried. The main problem is the installer application. If you can install the utilities on another system, you can copy paste the .exes to modern Windows and they’ll run. But I remember having stability issues/limitations with that approach (unfortunately, I don’t remember exactly what – it’s been a couple years), so I settled on using a VM as the most reliable method.

  1. Just wanted to say thanks for writing this all up. It was particularly helpful to have the small details for getting the COM port appropriately forwarded in my VM. I got myself a pretty complete setup now.

    I’ve been messing a bunch with BASIC Studio on ps2 (I have all the documentation and can read it), and have been shocked at how little it has been explored in the English-speaking spheres. I’m thinking of taking the time to scan it all and translate it, but have been looping around whether its worth the 20 hours it’ll take me. I’d love to talk with you about what motivated you to put this all together – please shoot me an email if you’re willing.

Leave a Reply

Your email address will not be published. Required fields are marked *