Ds994A - Gamebrew

Ds994A - Gamebrew
DS99/4a
AuthorDave Bernazzani (wavemotion-dave)
TypeComputer
Version1.6
LicenseMixed
Last Updated2023/08/17
Download
Website
Source

DS99/4a is a Texas Instruments TI99/4a Emulator for the DS/DSi. Parsec, Alpiner, Tunnels of Doom and Hunt the Wumpus - all the classic TI games the way you remember them on your venerable handheld.

To run requires the TI BIOS ROMS in the /roms/bios directory. See BIOS files further down for the ones you need.

How to setup

You will need the two console BIOS files as described below. Place both .bin BIOS files into /roms/bios (you can just make the directory on your SD card).

You will also need the emulator itself. You can get this from the GitHub page - the only file you need here is DS994a.nds (the .nds is a Nintendo executable file). You can put this anywhere - most people put the .nds file into the root of the SD card.

If you want to play disk based games (Adventure, Tunnels of Doom, etc) you will need 994adisk.bin (often just named disk.bin but you need to rename it and put it into /roms/bios).

You will need games to play... right now the emulator supports C/D/G files plus "8" non-inverted files and "9" inverted files. Basically just try loading a file to see if it works, the ROMs should have a .bin extension.

Recommend you put your game ROMs into /roms/ti99 as the emulator will default to that directory. That's where the cool kids keep them.

Recommend you put any disk files needed in a directory easily accessible (near) where you store your rom files so it's a faster navigation.

BIOS files

Here are the BIOS file CRC32 hashes the author used for testing - seek these out if you want maximum compatibility. Place these into /roms/bios:

* db8f33e5	994aROM.bin (8K)
* af5c2449	994aGROM.bin (24K)
* 8f7df93f	994aDISK.bin (8K) - only required if you want .DSK support, often named disk.bin

Make sure sure to check out to the documentation, which contains instructions on running specific games.

File Types Supported

DS994a supports the following file types:

  • Files whose base filename ends in C/D/G files also known as 'mixed mode'. If there is a 'D' file, it must be exactly 8K. C is the main binary and G is the GROM binary. If a C/D/G file is detected, only the C (or G if it's GROM-only) will be shown in the file listing.
  • Files whose base filename ends in 3 or 9 are considered "inverted" files and the banks will be swapped appopriately.
  • All other files are considered '8' files which is non-inverted banking up to 2048K (2MB) for the DSi and up to 512K for the older DS hardware.
  • There is a limit of 512 ROM files per directory and 256 DSK images per directory. You can have as many directories as you wish.
  • Filenames are limited to 128 characters. Shorten your ROM filenames if you run into this.

Configuration

There are two levels of configuration:

  • Global Configuration sets defaults for all games - though most things can be overridden at the individual game level.
  • Game Configuration is specific to the game you've loaded.

Be sure to use the START button to save out your configuration options so they persist on future launches of the emulator.

Emulated Disk Drives

DS994a will support 3 Disk Drives all at up to 360KB as DSK1, DSK2 and DSK3. The first two drives are fully buffered and read/write. DSK3 is read-only. This uses the TI99 standard Disk Controller but with a modification to allow up to 360KB drives to be supported. Any writes to disk should be auto-persisted and writen back to the SD card.

Please be aware that a rare glitch can occur when writing to certain SD cards, particularly when using homebrew libraries for writing the SD on the Nintendo DS with emulation. To mitigate this issue, a precautionary measure has been implemented whereby the original .DSK file is renamed to .DSK.BAK before the write process begins, allowing it to be retained for future reference.

If the write fails and freezes up, the next time you boot the emulator and load that disk, it will check if the .DSK.BAK file is around and will revert to that as needed (it does mean that you will have lost your last save...). Also, in the DISK MENU you can 'BACKUP DISK' which you should do occasionally... this will make a /BAK directory and copy the desired .DSK file into that directory for safe-keeping. Using these precautionary methods, you should be able to work around any potential glitches when writing the disk files back to the SD card. Most users will not run into such issues.

Keyboards and Menus

Two virtual keyboards are supported, both emulate the look and feel of a real TI keyboard. One has a slightly 3D/raised-key look and the other is a more flat look. Experiment and find the one that best suits you - you can set a global default choice in the Global Configuration menu.

Pressing the TI logo in the upper right will bring up a mini-menu to let you save the game state, exit the game, load up a .DSK image, etc.

Key Mapping

You can map all 12 of the DS keys (ABXY, D-Pad, Start, Select, Left/Right Shoulder Buttons) to any TI key (Joystick 1, Joystick 2 or Keyboard Key). By default the shoulder buttons are used for FCTN and SHIFT which is convienent as there are many games that require the Function keys. You can also press the X key to toggle P1, P2 and Keyboard Game mapping while in the "Configure Keys" area.

There are also some special keys that are always available:

  • Hold Left Shoulder + Right Shoulder + X and you will swap the top/bottom screens.
  • Hold Left Shoulder + Right Shoulder + Y and you will take a .BMP snapshot of the top screen (written to SD card with date/time as the filename).

Memory/System Configurations

By default each game is configured to run on a 32K expanded system which runs 99% of all TI99/4a games. The SAMS support must be enabled on a per-game basis (you can also set to have the SAMS support enabled globally).

Be aware - the SAMS handling does require a more accurate emulation core and will slow down the emulation by almost 20%. That's generally fine for the DSi and above but my recommendation is to use the default 32K expanded system for virtually all games and only enable the SAMS support for the few things that need it.

Blend Mode (DSi)

DS99/4a supports a "blend mode" which borrowed from StellaDS. In this mode, two frames are blended together - this is really useful when playing games like TI Invaders or Scramble where the bullets on screen are small and the DSi LCD just doesn't hold onto the pixels long enough to be visible.

These games were designed to run on an old tube TV with phosphor which decays slowly so your eye will see slight traces as the image fades. This emulates that (crudely). On the DSi using this new mode renders those games really bright and visible.

The DSi XL/LL has a slower refresh on the LCD and it more closely approximates the old tube TVs... so blend mode is not needed for the XL/LL models.

However, using blend mode comes at at 15% CPU cost. The DSi can handle it... the DS-LITE/PHAT might struggle a bit on more complicated games.

The recommendation is as follows:

  • DSi non XL/LL - use Blend Mode for the games that benefit from it (e.g. TI Invaders).
  • DSi XL/LL - don't bother... the XL/LL screen decay is slower and games look great as-is.
  • DS-LITE/PHAT - you can try it but the framerate might drop below 60 on some games.

To enable this new blend mode, pick your game and go into the "Game Options" sub-menu and turn it on.

To run this on your DS or DSi (or 2DS/3DS) requires that you have the ability to launch homebrews.

For the older DS units, this is usually accomplished via a FlashCart such as the R4 or one of the many clones. These tend to run about US$25.

If you have a DSi or above, you can soft-mod your unit and run something like Twilight Menu++ or Unlaunch which will run homebrew software on the DS. The DSi has a convienent SD card slot on the side that saw very little use back in the day but is a great way to enjoy homebrews. See to get started on how to soft-mod your unit.

Sarah Jenkins
Author

Sarah Jenkins

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.