Sega Saturn Homebrew with Game BASIC

Part 8: Tips and Tricks

This section covers small tips and tricks that can improve your experience working with Game BASIC, be it a way to better use your tools, improve your setup configuration, or work with the BASIC language itself.

Tip 1: “Overclock” for improved CPU speed, higher resolution, and higher baud rate

Often referred to as “HD352 mode” in old online posts, this is an unofficial way to essentially overclock the Saturn.  This mode will increase the CPU speed by about 10%, increase horizontal resolution to 352 pixels instead of 320, and allow much higher baud rates for serial communication – roughly 5-6x the normal top speed.  To enable this mode, enter the following command directly from the Saturn and hit Enter:

OPTION HD352

After you hit enter, Game BASIC will automatically trigger a “HOT START.”  Once the Ready prompt reappears, you’re all set!

If you also want to increase the serial communication speed, follow these additional steps to set the baud rate to 115200 (or 57600 for greater stability):

  1. Update the Saturn’s baud rate:
    1. Press L+R+Z on your controller to open the Options screen (the background should now be red)
    2. Adjust the Baudrate option to your preferred speed (115200 being the highest)
    3. Choose Exit to save and return to the Ready prompt.
  2. Update BASTERM’s baud rate:
    1. Make sure BASTERM is completely closed.  (Since the BASTERM UI doesn’t allow us to choose a baud rate higher than 19200, we have to directly edit the Windows registry to increase the speed.)
    2. In your VM, click Start –> Run, then type in “regedit” and hit Enter
    3. Navigate to My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Bits Laboratory\BASTERM\1.0
    4. Double-click “Baudrate,” enter 115200 under “Value data” and hit OK
    5. Launch BASTERM and connect to the Saturn
    6. Send a large program and you should see blazing fast speeds compared to before!

NOTE: You may experience some instability in communications or graphical artifacts with this setting in place.  If you ever want to return Game BASIC to the original configuration, use the following command (and be sure to revert your registry’s Baudrate value to match the one set on your Saturn):

OPTION HD320

Tip 2: Speed up BASTERM transfers by sending changed lines only

If you frequently work with BASTERM and want to be able to edit large programs without constantly re-sending the entire thing over a relatively slow serial connection, use this option to send changed lines only.  With it set, a program will be loaded in its entirety the first time you send it.  From there on out, using the Send to Saturn command will send ONLY the lines you have changed.

  1. In BASTERM, choose the Settings menu (fifth menu, with an S)
  2. Choose the Transmission Settings option (fourth option, with an S)
  3. Check the “Send difference” option (third checkbox)
Enabling “Send Difference” option in BASTERM Transmission Settings

Tip 3: Have BASTERM automatically assign line numbers at time of transfer

Constantly starting every line you type in a BASIC program with a line number is obnoxious.  The problem is, Game BASIC requires line numbers from programs being sent via BASTERM.  So why not let BASTERM do the dirty work for you?  Write your program without line numbers (you can always use *LABELS instead of line numbers for GOTOs), then follow these steps:

  1. In BASTERM, choose the Settings menu (fifth menu, with an S)
  2. Choose the Transmission Settings option (fourth option, with an S)
  3. Check the “Send with line number added” option (fourth checkbox)
  4. Adjust the options as you see fit, though the defaults should generally work fine:
    1. Starting number: 1
    2. Increment by: 1
    3. Increment by (for Label lines): 10
Enabling automatic line numbering in BASTERM Transmission Settings

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 *