Difference between revisions of "Setting up the HSGPL for MAME"

From Ninerpedia
Jump to navigation Jump to search
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Introduction ==
== Introduction ==


The HSGPL is a peripheral expansion expansion card created by the [[System-99 User Group]] (SNUG). It contains Flash ROM circuits and RAM circuits, so parts of its memory is persistent. The HSGPL is able to simulate 16 individual cartridges. They can be switched by the console-internal cartridge selection. The intended use is to dump a plugged-in cartridge on disk, and then to upload the data into one of the 16 banks.  
The HSGPL is a peripheral expansion expansion card created by the System-99 User Group ([[SNUG]]). It contains Flash ROM circuits and RAM circuits, so parts of its memory are persistent. The HSGPL is able to simulate 16 individual cartridges. They can be switched by the console-internal cartridge selection. The intended use is to dump a plugged-in cartridge on disk, and then to upload the data into one of the 16 banks.  


In addition, the HSGPL replaces the GROMs in the console. When the card is plugged in, the console GROMs should be removed, or the card will not offer its complete functionality.  
In addition, the HSGPL replaces the GROMs in the console. When the card is plugged in, the console GROMs should be removed, or the card will not offer its complete functionality.  


This also means that a completely blank HSGPL will not work. In that case, the TI system will immediately lock up with a black screen when turned on. The minimum contents of an HSGPL is a basic DSR and the console GROM contents. Each real HSGPL card is delivered with this minimum content.
This also means that a '''completely blank HSGPL will not work'''. In that case, the TI system will immediately lock up with a black screen when turned on. The minimum contents of an HSGPL is a basic DSR and the console GROM contents. Each real HSGPL card is delivered with this minimum content.


== The HSGPL emulation ==
== The HSGPL emulation ==


In the TI part of the MESS emulator, the HSGPL card is emulated with the implementation to be found in machine/ti99/hsgpl.c. The complete circuitry is emulated by following the functional description (instead of utilizing the schematics and printed board layout). Since MESS does not provide ROM contents due to copyright restrictions, you have to get an own copy of the HSGPL DSR and initial memory contents. If you own an HSGPL you can dump the contents with your real TI and transfer them to the MESS TI emulation. Otherwise you should get in contact with the SNUG people and request a copy of the DSR.
In the TI part of the MAME emulator, the HSGPL card is emulated in src/devices/bus/ti99/peb/hsgpl.cpp. The complete circuitry is emulated by following the functional description (instead of utilizing the schematics and printed board layout). Since MAME does not provide ROM contents due to copyright restrictions, you have to get an own copy of the HSGPL DSR and initial memory contents. If you own an HSGPL you can dump the contents with your real TI and transfer them to the MAME TI emulation. Otherwise you should get in contact with the SNUG people and ask for a copy of the DSR.


You can select the HSGPL in the '''Driver Configuration''' menu. Locate the setting '''HSGPL extension''' and turn it '''on''' or '''off'''.
To use the HSGPL you have to plug it into a slot of the [[Peripheral Expansion System | Peripheral Expansion Box]]:


  HSGPL extension      On
  mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl ...


Once more, keep in mind:
Once more, keep in mind:


<div style="margin-left:2em; margin-right:2em; padding:1em; background-color:#eecccc">If you activate the HSGPL extension without the initial ROM contents, the emulation will lock up. This is not an error - it perfectly mirrors the real happenings.</div>
<div class="warn">If you activate the HSGPL extension without the initial ROM contents, the emulation will lock up.</div>


With the real hardware, you do not have to care about the initial setup. You cannot set up the card in-system; the flash ROMs have to be burned separately. After this initial procedure, you can certainly modify all contents (and, of course, render it unusable if you are careless enough).
This is not an emulation glitch - it is exactly what will happen with the real device.


Although in MESS we usually strive to stay with the real features as closely as possible, in this case we opted for a minor exception. The HSGPL emulation is slightly enhanced to its real counterpart by offering a special mode that allows us to upload an initial system without letting the empty card lock up out system. This mode can be selected as the HSGPL extension setting '''Flash''':
With the real hardware, you do not have to care about the initial setup. Moreover, you actually cannot set up the card in-system; the flash ROMs have to be burnt separately. After this initial procedure, you can certainly modify all contents (and, of course, render it unusable if you are careless enough). 


HSGPL extension    Flash
In MAME we slightly modify the HSGPL to allow for in-system flashing. We add a DIP switch in the [[DIP switches]] menu. You can find it in the OSD menu of MAME:


Once you have uploaded the initial system you must set this switch to '''On''' in order to properly use the card.
HSGPL mode: Flash
 
[[Image:Osd.png | thumb | 200px | OSD menu]]
 
After you left the on-screen menu, press F3 to reset the system, and the TI should start up. The effect of this switch is that you can now actually access the card, but only in a region that does not hide the system GROMs. This suffices to flash the card.
 
Once you have uploaded the initial system you must reset this switch to '''Normal''' in order to properly use the card.
<div style="clear:both"></div>


== Setting up Step-By-Step ==
== Setting up Step-By-Step ==


In the following I will guide you through the setup process, picking you up with a completely blank HSGPL, and dropping you off with a completely working device.
In the following I will guide you through the setup process, picking you up with a completely blank HSGPL, and dropping you off with a completely working device. The first thing to do is to install a [[Terminology#D|DSR]] on the card.
 
=== Check your MAME version ===
 
As always, please make sure you are using a reasonably recent version of MAME. The instructions on this page refer to the releases 0.186 and newer.
 
=== Getting the software ===
 
<div class="warn">The members of the system-99 user group (SNUG) would like to point out that the files on their web pages are intended as a service to owners of a (real) HSGPL card. Please respect copyright. Distribution of these files is not allowed without prior consent of the copyright owners.</div>
 
On the [https://www.s-n-u-g.de/home/index_en.php SNUG Website] you can find all required files in [[TIFILES format]]. The HSGPL DSR files can be found in the '''HSGPL''' section as a ZIP file ("Complete DSR package") for either 40 or 80 character modes.
 
* 40 characters: Standard TI console; MAME driver "ti99_4a" or "ti99_4ae"
* 80 characters: TI console with EVPC expansion card in PEB (v9938 video processor); MAME driver "ti99_4ev"
 
You cannot use the 80 characters package for the standard console. Also, for the EVPC system, the 80 character version is highly recommended, as it offers more functionality than the 40 character version.
 
The complete package must be unzipped on your computer, and you must import all contained files into a disk image, for example, using [https://www.mizapf.de/ti99/timt TIImageTool]. Note that the names of the imported files must have an equal prefix with an added increasing number. In particular, we found that the name of the first file is slightly different, so you should rename it before use.
 
In any way, make sure that you eventually have 8 files all named HSGPLDSRn or all named HSGPLDSn with n = 0..7 on your disk image.
 
Second, you need the DSRLDR3 program. This is a tool to burn contents onto a flash ROM; it can be found in the '''Utilities''' section. The DSRLDR3 program is stored in [[TIFILES format]], and you should import it into the same disk image as the DSR files. TIImageTool will suggest a file name like DSRLDR3_E_; you should rename it to DSRLDR3 to be consistent with the following description.


=== Flashing the DSR on the card ===
=== Flashing the DSR on the card ===


'''Note that unless stated otherwise, SNUG states that the usage of the ROMs is only allowed for owners of a real HSGPL card'''.
Supposed you have all eight files and the DSRLDR3 on your disk image, you proceed as follows:


The first thing to do is to install a [[DSR]] on the card. On the [http://home.arcor.de/system-ninety-nine-user-group/index_e.htm SNUG Website] you will find a tool called DSRLDR3. This is a generic tool to burn contents onto a flash ROM. Also, you will find on that website the HSGPL rom packages, one for 40 column, one for 80 column setups. For the standard TI (without EVPC) we will go for the 40 column version. You need the "complete package". Make sure that you eventually have 8 files named HSGPL*.P99.
* Launch the MAME emulator


After downloading the files you must [[transfer]] them to the PC, either via disks and using a tool on the PC for reading TI-formatted disks, or via a serial connection. The DSRLDR3 program is stored in TIFILES format. Also, the ROMs in the DSR zip file are TIFILES files. You have to [[import]] these files into a disk image before using them in the emulation.
mame64 ti99_4a -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc -flop1 mysetup.dsk -cart editass


Supposed you have all eight files and the DSRLDR3 on your disk image,
You can also start the emulator on the command line without these arguments, or with a front-end tool like [[QMC2]]. Do not forget to insert the cards and media as written above.


* launch the MESS emulator, selecting the ti99_4a(e) ROMs
* Load the DSRLDR3 program [[Editor/Assembler#Run_Program_File|option 5]]
* insert the disk image in the file manager (on floppy 1), or set this in the [[command line arguments]]
* insert the Editor/Assembler cartridge (RPK) in slot 1
* load the DSRLDR3 program using [[Editor/Assembler#Run_Program_File|option 5]], "RUN PROGRAM FILE"


When the program starts you have a black screen with blue text on it. At first you have to set the file name of the DSR files to be burned onto the card. Type F for Filename and enter the name of the first DSR file on your disk. My files are named HSGPLDS0 to HSGPLDS7, so I enter DSK1.HSGPLDS0.
* RUN PROGRAM FILE *
FILE NAME?
DSK1.DSRLDR3


Next, type L for Load and confirm the safety dialog. If everything goes well you should observe all files being burned on the card, increasing the number of the file and the target location. If you get a warning message '''FlashID not recognized''' you should remove the old contents of the HSGPL by deleting the hsgpl.nv file. It is found in the nvram folder that was automatically created, and there in the system subdirectory.


Finally, a message should appear that all files have been loaded correctly. You can now leave the DSRLDR3 program.
When the program starts you have a black screen with cyan-colored text on it. At first you have to set the file name of the DSR files to be burnt onto the card. Type F for Filename and enter the name of the first DSR file on your disk. My files are named HSGPLDSR0 to HSGPLDSR7, so I enter


'''Leave the configuration switch to "Flash" - you are not done yet.'''
File: DSK1.HSGPLDSR0


=== Installing the console GROM content ===
Next, type L for Load. You will get a warning


If you now prematurely switch the HSGPL to on, you will still get a black screen when you restart the emulation. This is correct, as you have just unplugged the console GROMs but have not yet put content into the locations of the HSGPL that should replace these GROMs.
Caution! Really programming? Confirm with "Y"


The contents of GROMs 0-2 are contained in one of the flash ROMs as a backup, and we will now copy these data to the proper locations. This must be done with a small assembler program. I wrote such a [[HGPLNEW_S|program]] that you have to assemble before using.
Confirm the dialog. If everything goes well you should observe all files being burned on the card, increasing the number of the file and the target location.  
If you get an error message '''File-Error occured !!''' you have most likely misspelled the name of the DSR files, or they are named differently on your image.


Type in the code, assemble using Editor/Assembler, and the run the program via [[Editor/Assembler#Load_and_Run|option 3]]. The program will autostart, and after completion of the process, returns to the Master Title Screen. You should now open the OSD menu and change the switch to
If you get a warning message
HSGPL extension On


Now exit the emulation. Do not reset the emulator unless you have already unplugged the Editor/Assembler cartridge.
FlashID not recognized


When you restart, make sure you do not have any cartridge plugged in, or the HSGPL card will crash (which is a bug in the emulation). Check that you remove Editor/Assembler and that you do not have any -cart1 or similar as command line option.
you should remove the old contents of the HSGPL by deleting the hsgpl files. They can be found in the nvram folder that was automatically created, and there in the system subdirectory (here: ''hsgpl/ti99_4a'').


You know that HSGPL is working correctly when you see a new Master Title Screen which says below the center of the screen:
Finally, a message should appear:


'''PRESS ANY KEY, SELECT GRM-BASE'''
All Files loaded correctly (Any Key)
 
which proves that all files have been loaded correctly. You can now leave the DSRLDR3 program with QUIT or FCTN-9.
 
Wait ... '''keep the configuration switch set to "Flash"''' - you are not done yet.
 
=== Installing the console GROM contents ===
 
If you now turn on the HSGPL, you will still get a black screen when you restart the emulation. This is expected, as your HSGPL still has no content in the GROM positions. The data you have just burnt are in a backup area of the card. We will now copy these data to the proper locations.
 
This must be done with a small assembler program. I wrote such a [[Copy console GROMs for HSGPL|program]] that you have to assemble before using.
 
Type in the source code, assemble using Editor/Assembler (or download and import the object file) and run the program via [[Editor/Assembler#Load_and_Run|option 3]].
 
* LOAD AND RUN *
FILE NAME?
DSK1.CPGROM_O
 
The program will autostart, and after some seconds return to the Master Title Screen. Now you should now open the MAME menu and change the switch to
 
HSGPL mode: Normal
 
We now have to unplug the GROMs in the console. Also in the MAME menu, go to the ''Machine Configuration'' menu and select
 
Console GROMs: Off
 
In the MAME menu, go to '''File manager''' and unplug the Editor/Assembler cartridge. You will find an entry at the very top of the selection list called [empty slot]. You can also terminate the emulation and restart without the cartridge.
 
If you are still running the emulation, exit the menu and reset the console with F3. Otherwise, restart the emulation
 
mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc
 
Well, and if everything went well, you now have a slightly different Master Title Screen. Right above the lower color band it says
 
PRESS ANY KEY, SELECT GRM-BASE
 
Your HSGPL is ready to use now. Did you already notice that the system feels somewhat faster? Indeed, the GROM simulator in the HSGPL is much faster than the real GROMs.
 
=== First tests ===
 
* Press the space key. Do '''not''' press any number button yet; they are used to select the GROM base, and as long as these banks are empty you will make your console lock up.
* Press 1 for TI-BASIC
 
In TI BASIC, enter
 
CALL HSGPL
 
You should be taken into the HSGPL loader. Please consult the manual of the HSGPL for a description how to continue from here. To leave, press FCTN-9 or QUIT or simply Q.
 
You can also press FCTN-8 in the program selection menu (where you selected TI-BASIC). This should bring you to the HSGPL loader as well.
 
<div class="warn">You must copy the console GROMs in each memory bank that you wish to use with a cartridge. If you simply load a cartridge into a memory bank but forget to also copy the console GROMs, you will get a lock-up when you select the memory bank.</div>
 
=== Saving the console GROMs ===
 
In the HSGPL loader you notice a set of "GROM x" entries with x from 0 to 7, and four "ROM" entries (0-3). The asterisk indicates that this area is selected for loading or saving. We first deselect all items:
 
* Deselect GROM 3-7 by pressing each key from 3 to 7.
* Deselect ROM 0-3 by pressing FCTN-0 to FCTN-3
* Select GROM 0-2 by pressing each of the keys 0-2.
 
Specify a file name first. Press F to enter a file name. You should see a cursor blinking in the field for the file name.
 
DSK1.GROM0
 
Now press S to save the memory areas to files GROM0, GROM1, and GROM2 on the image in DSK1.
 
=== Copying the console GROMs to another memory bank ===
 
Enter the HSGPL loader if your are not yet there. Press the > (greater than) key, and you will see the contents of the next memory bank. This bank (1) will be selected on the Master Title Screen when you press the 1 key. Pressing < (less than) will put you one bank backwards.
 
As you can see, each memory area is empty. You must now load the console GROMs into the GROM 0-2 locations.
 
Specify the first file name first by pressing F like above. Now press L for Load. You should get a warning message:
 
Caution! Load Grom 0? Confirm with "Y"
 
This is what you want, so press Y. You will see that the remaining two files are subsequently loaded into the memory areas.
 
From now on, this bank will be selectable on the Master Title Screen.
 
=== Saving a cartridge ===
 
Start up the emulation with HSGPL and a cartridge inserted. This will partly deactivate the HSGPL, which is indicated by some warning messages. You are still able to dump the cartridge, though.
 
mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc -flop1 mydumps.dsk -cart ti_invaders.rpk
 
Just like above, type F to set a file name for saving. Enter
 
DSK1.INVADERS
 
=== Loading a cartridge ===
 
Now restart the emulation without the cartridge.
 
mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc -flop1 mydumps.dsk
 
Press F to enter the file name, then L to load.
 
After all files are loaded you can exit the HSGPL loader and check the program list of the memory bank that you just loaded the contents into.


== Using the HSGPL for different systems ==
== Using the HSGPL for different systems ==
The HSGPL may be set up for 40 column operation or for 80 columns. The first option is used when you have a standard TI console; the second is recommended for those that have an EVPC video card, which adds 80 column capabilities.
The problem is that either version should not be used with the wrong system. This is handled by MAME automatically, so you do not have to care about this. If you have a look at the nvram folder in your MAME installation directory you will notice that it contains subfolders named after the systems that were run. For instance, you will find a ti99_4a and a ti99_4ev folder which correspond to the stock console and to the EVPC-enhanced system.
You should now do the flash process for each system that you want to use the HSGPL card in. Each system get individual hsgpl files so there is no mix-up.
== The SGCPU (TI-99/4P) ==
The SGCPU system was designed by the SNUG people and consists of an expansion card that contains the complete chipset of the original TI console. However, instead of the standard GROMs you have to use the HSGPL. And it also requires the EVPC card.
Accordingly, you will have to create a suitable HSGPL card first before you can use the SGCPU. This is done quite easily (as soon as you know it, everything sounds easy):
* Prepare a HSGPL card on a ti99_4ev system as described above. Take care to configure the HGSPL for '''PEB slot 3''', because this is the slot where the HSGPL is configured in the SGCPU emulation.
* Copy the hsgpl files to the ti99_4p subdirectory of the nvram directory.
'''Since the SGCPU is located inside the PEB, you cannot use the same parameter set as used with the consoles. The SGCPU does not have an "ioport", so the parameter "-ioport peb" must be removed and all "ioport:" path elements.'''
The SGCPU emulation is preconfigured with EVPC in slot 2 and HSGPL in slot 3. You need not specify these parameters on the command line.

Latest revision as of 19:38, 30 May 2019

Introduction

The HSGPL is a peripheral expansion expansion card created by the System-99 User Group (SNUG). It contains Flash ROM circuits and RAM circuits, so parts of its memory are persistent. The HSGPL is able to simulate 16 individual cartridges. They can be switched by the console-internal cartridge selection. The intended use is to dump a plugged-in cartridge on disk, and then to upload the data into one of the 16 banks.

In addition, the HSGPL replaces the GROMs in the console. When the card is plugged in, the console GROMs should be removed, or the card will not offer its complete functionality.

This also means that a completely blank HSGPL will not work. In that case, the TI system will immediately lock up with a black screen when turned on. The minimum contents of an HSGPL is a basic DSR and the console GROM contents. Each real HSGPL card is delivered with this minimum content.

The HSGPL emulation

In the TI part of the MAME emulator, the HSGPL card is emulated in src/devices/bus/ti99/peb/hsgpl.cpp. The complete circuitry is emulated by following the functional description (instead of utilizing the schematics and printed board layout). Since MAME does not provide ROM contents due to copyright restrictions, you have to get an own copy of the HSGPL DSR and initial memory contents. If you own an HSGPL you can dump the contents with your real TI and transfer them to the MAME TI emulation. Otherwise you should get in contact with the SNUG people and ask for a copy of the DSR.

To use the HSGPL you have to plug it into a slot of the Peripheral Expansion Box:

mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl ...

Once more, keep in mind:

If you activate the HSGPL extension without the initial ROM contents, the emulation will lock up.

This is not an emulation glitch - it is exactly what will happen with the real device.

With the real hardware, you do not have to care about the initial setup. Moreover, you actually cannot set up the card in-system; the flash ROMs have to be burnt separately. After this initial procedure, you can certainly modify all contents (and, of course, render it unusable if you are careless enough).

In MAME we slightly modify the HSGPL to allow for in-system flashing. We add a DIP switch in the DIP switches menu. You can find it in the OSD menu of MAME:

HSGPL mode: Flash
OSD menu

After you left the on-screen menu, press F3 to reset the system, and the TI should start up. The effect of this switch is that you can now actually access the card, but only in a region that does not hide the system GROMs. This suffices to flash the card.

Once you have uploaded the initial system you must reset this switch to Normal in order to properly use the card.

Setting up Step-By-Step

In the following I will guide you through the setup process, picking you up with a completely blank HSGPL, and dropping you off with a completely working device. The first thing to do is to install a DSR on the card.

Check your MAME version

As always, please make sure you are using a reasonably recent version of MAME. The instructions on this page refer to the releases 0.186 and newer.

Getting the software

The members of the system-99 user group (SNUG) would like to point out that the files on their web pages are intended as a service to owners of a (real) HSGPL card. Please respect copyright. Distribution of these files is not allowed without prior consent of the copyright owners.

On the SNUG Website you can find all required files in TIFILES format. The HSGPL DSR files can be found in the HSGPL section as a ZIP file ("Complete DSR package") for either 40 or 80 character modes.

  • 40 characters: Standard TI console; MAME driver "ti99_4a" or "ti99_4ae"
  • 80 characters: TI console with EVPC expansion card in PEB (v9938 video processor); MAME driver "ti99_4ev"

You cannot use the 80 characters package for the standard console. Also, for the EVPC system, the 80 character version is highly recommended, as it offers more functionality than the 40 character version.

The complete package must be unzipped on your computer, and you must import all contained files into a disk image, for example, using TIImageTool. Note that the names of the imported files must have an equal prefix with an added increasing number. In particular, we found that the name of the first file is slightly different, so you should rename it before use.

In any way, make sure that you eventually have 8 files all named HSGPLDSRn or all named HSGPLDSn with n = 0..7 on your disk image.

Second, you need the DSRLDR3 program. This is a tool to burn contents onto a flash ROM; it can be found in the Utilities section. The DSRLDR3 program is stored in TIFILES format, and you should import it into the same disk image as the DSR files. TIImageTool will suggest a file name like DSRLDR3_E_; you should rename it to DSRLDR3 to be consistent with the following description.

Flashing the DSR on the card

Supposed you have all eight files and the DSRLDR3 on your disk image, you proceed as follows:

  • Launch the MAME emulator
mame64 ti99_4a -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc -flop1 mysetup.dsk -cart editass

You can also start the emulator on the command line without these arguments, or with a front-end tool like QMC2. Do not forget to insert the cards and media as written above.

* RUN PROGRAM FILE * 

FILE NAME?
DSK1.DSRLDR3


When the program starts you have a black screen with cyan-colored text on it. At first you have to set the file name of the DSR files to be burnt onto the card. Type F for Filename and enter the name of the first DSR file on your disk. My files are named HSGPLDSR0 to HSGPLDSR7, so I enter

File: DSK1.HSGPLDSR0

Next, type L for Load. You will get a warning

Caution! Really programming? Confirm with "Y"

Confirm the dialog. If everything goes well you should observe all files being burned on the card, increasing the number of the file and the target location. If you get an error message File-Error occured !! you have most likely misspelled the name of the DSR files, or they are named differently on your image.

If you get a warning message

FlashID not recognized

you should remove the old contents of the HSGPL by deleting the hsgpl files. They can be found in the nvram folder that was automatically created, and there in the system subdirectory (here: hsgpl/ti99_4a).

Finally, a message should appear:

All Files loaded correctly (Any Key)

which proves that all files have been loaded correctly. You can now leave the DSRLDR3 program with QUIT or FCTN-9.

Wait ... keep the configuration switch set to "Flash" - you are not done yet.

Installing the console GROM contents

If you now turn on the HSGPL, you will still get a black screen when you restart the emulation. This is expected, as your HSGPL still has no content in the GROM positions. The data you have just burnt are in a backup area of the card. We will now copy these data to the proper locations.

This must be done with a small assembler program. I wrote such a program that you have to assemble before using.

Type in the source code, assemble using Editor/Assembler (or download and import the object file) and run the program via option 3.

* LOAD AND RUN *

FILE NAME?
DSK1.CPGROM_O

The program will autostart, and after some seconds return to the Master Title Screen. Now you should now open the MAME menu and change the switch to

HSGPL mode: Normal

We now have to unplug the GROMs in the console. Also in the MAME menu, go to the Machine Configuration menu and select

Console GROMs: Off

In the MAME menu, go to File manager and unplug the Editor/Assembler cartridge. You will find an entry at the very top of the selection list called [empty slot]. You can also terminate the emulation and restart without the cartridge.

If you are still running the emulation, exit the menu and reset the console with F3. Otherwise, restart the emulation

mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc

Well, and if everything went well, you now have a slightly different Master Title Screen. Right above the lower color band it says

PRESS ANY KEY, SELECT GRM-BASE

Your HSGPL is ready to use now. Did you already notice that the system feels somewhat faster? Indeed, the GROM simulator in the HSGPL is much faster than the real GROMs.

First tests

  • Press the space key. Do not press any number button yet; they are used to select the GROM base, and as long as these banks are empty you will make your console lock up.
  • Press 1 for TI-BASIC

In TI BASIC, enter

CALL HSGPL

You should be taken into the HSGPL loader. Please consult the manual of the HSGPL for a description how to continue from here. To leave, press FCTN-9 or QUIT or simply Q.

You can also press FCTN-8 in the program selection menu (where you selected TI-BASIC). This should bring you to the HSGPL loader as well.

You must copy the console GROMs in each memory bank that you wish to use with a cartridge. If you simply load a cartridge into a memory bank but forget to also copy the console GROMs, you will get a lock-up when you select the memory bank.

Saving the console GROMs

In the HSGPL loader you notice a set of "GROM x" entries with x from 0 to 7, and four "ROM" entries (0-3). The asterisk indicates that this area is selected for loading or saving. We first deselect all items:

  • Deselect GROM 3-7 by pressing each key from 3 to 7.
  • Deselect ROM 0-3 by pressing FCTN-0 to FCTN-3
  • Select GROM 0-2 by pressing each of the keys 0-2.

Specify a file name first. Press F to enter a file name. You should see a cursor blinking in the field for the file name.

DSK1.GROM0

Now press S to save the memory areas to files GROM0, GROM1, and GROM2 on the image in DSK1.

Copying the console GROMs to another memory bank

Enter the HSGPL loader if your are not yet there. Press the > (greater than) key, and you will see the contents of the next memory bank. This bank (1) will be selected on the Master Title Screen when you press the 1 key. Pressing < (less than) will put you one bank backwards.

As you can see, each memory area is empty. You must now load the console GROMs into the GROM 0-2 locations.

Specify the first file name first by pressing F like above. Now press L for Load. You should get a warning message:

Caution! Load Grom 0? Confirm with "Y"

This is what you want, so press Y. You will see that the remaining two files are subsequently loaded into the memory areas.

From now on, this bank will be selectable on the Master Title Screen.

Saving a cartridge

Start up the emulation with HSGPL and a cartridge inserted. This will partly deactivate the HSGPL, which is indicated by some warning messages. You are still able to dump the cartridge, though.

mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc -flop1 mydumps.dsk -cart ti_invaders.rpk

Just like above, type F to set a file name for saving. Enter

DSK1.INVADERS

Loading a cartridge

Now restart the emulation without the cartridge.

mame64 ti99_4a -ioport peb -ioport:peb:slot3 hsgpl -ioport:peb:slot8 hfdc -flop1 mydumps.dsk

Press F to enter the file name, then L to load.

After all files are loaded you can exit the HSGPL loader and check the program list of the memory bank that you just loaded the contents into.

Using the HSGPL for different systems

The HSGPL may be set up for 40 column operation or for 80 columns. The first option is used when you have a standard TI console; the second is recommended for those that have an EVPC video card, which adds 80 column capabilities.

The problem is that either version should not be used with the wrong system. This is handled by MAME automatically, so you do not have to care about this. If you have a look at the nvram folder in your MAME installation directory you will notice that it contains subfolders named after the systems that were run. For instance, you will find a ti99_4a and a ti99_4ev folder which correspond to the stock console and to the EVPC-enhanced system.

You should now do the flash process for each system that you want to use the HSGPL card in. Each system get individual hsgpl files so there is no mix-up.

The SGCPU (TI-99/4P)

The SGCPU system was designed by the SNUG people and consists of an expansion card that contains the complete chipset of the original TI console. However, instead of the standard GROMs you have to use the HSGPL. And it also requires the EVPC card.

Accordingly, you will have to create a suitable HSGPL card first before you can use the SGCPU. This is done quite easily (as soon as you know it, everything sounds easy):

  • Prepare a HSGPL card on a ti99_4ev system as described above. Take care to configure the HGSPL for PEB slot 3, because this is the slot where the HSGPL is configured in the SGCPU emulation.
  • Copy the hsgpl files to the ti99_4p subdirectory of the nvram directory.

Since the SGCPU is located inside the PEB, you cannot use the same parameter set as used with the consoles. The SGCPU does not have an "ioport", so the parameter "-ioport peb" must be removed and all "ioport:" path elements.

The SGCPU emulation is preconfigured with EVPC in slot 2 and HSGPL in slot 3. You need not specify these parameters on the command line.