Well, here's my contribution to the TI-99/4A community. A few years back, I thought it would be neat to be able to play my old TI games on my PC. Instead of doing the smart thing (looking for an existing emulator), I sat down and wrote my own. At first is was a simple text-based simulation of the TI. Then I added graphical support for the OS/2 Presentation Manager. When I got bored with that, I ported it to Windows and added sound support. Now I've decided to try my hand at a Linux/cross-platform version. In the spirit of Linux and Open Source, I'm releasing the code under the GPL license.

Note: In order to run the emulator, you need to create a cartridge that contains the console ROM & GROMs from the TI. Texas Instruments will not allow these to be distributed, so you'll need to find a way to get them yourself. Please don't e-mail me asking for a copy - I won't even bother to respond. If you have a working copy of v9t9, instructions are included to help you create the required cartridge.

What's New

TI Screen


Version 0.15.0: This is mostly a maintenance release with small improvemnts to several areas. First, the speech emulator code has been updated to use the proper lookup table values. This should result is a much more accurate sound for synthesized speech. The audio system was also tweaked and a better resampler was used to improve the overall quality of speech. The SDl version of the emulater has had the CAPSLOCK logic updated to correctly track the state of the CAPSLOCK key. Finally, there have been many changes to the handling of files and disk images. The disk utility also has the ability to create blank formatted disk. For a complete set of changes check here.

This release also contains binaries for Windows. The source package also contains the VS2015 solution and project files for building on Windows.


Version 0.14.0: This was going to be a smaller release with only a few minor bugs fixed. Along the way, parts of the code were re-designed which allowed some new features to be added (e.g. support for the UCSD p-System). Several new utilities were also created to help make creating and tracking cartridges easier (e.g. mkcart and catalog). A new script setup was also added to help get a new install up and running by automatically creating a number of cartridge files required the emulator.

Note: As part of the internal re-design, the 'roms' folder has been renamed to 'console'. If you're upgrading an existing install, make sure you rename any 'roms' folders you already have (~/.ti9isim/roms, /opt/ti99sim/roms, etc). Also, the .dat files for the TI-99/4A console and Gram Kracker cartridges have been updated. If you want to upgrade these cartridges, it may be easiest to create them using the supplied setup script. Finally, as part of this re-design, the name of the main console cartridge (TI-994A.ctg) is a bit more flexible. The system will look for the legacy name first and, if it's not found, look for the cartridge based on a list of known SHA1 values for various versions of the TI-99/4A console.


Version 0.13.0: Another set of incremental changes. The main focus in this release is improved disk image support. The biggest change is read-only support for HxC disk images. The emulator and utilities can now read data from these HFE images (write support is next on the list). This means if you have an HFE image of a disk that uses weird copy protection (e.g. Miller Graphics' DISkASSEMBLER that uses data outside the sector area) it should work properly. The utility disk access routines now handle large disks (those with an AU greater than 1) properly.

Other improvements: Support for cartridges with up to 256 banks of bank-swapped ROM. convert-ctg has been updated to make it easier to create cartridges with either normal or inverted style 74LS379 banking.

Finally, bitmap mode support has been improved with proper support for color & pattern table size masking.


Version 0.12.1: Here's a quick update to fix a few problems that cropped up in the 0.0.12 release (sorry about that). While I'm at it, I'm changing the version number format to be a bit more reasonable major.minor.patch notation.


Version 0.0.12: It's not dead yet! I'm continuing to work on ti99sim on and off and using it as a platform to experiment with different ideas and language features. This release includes a switch to C++11. Unfortunately, my copy of Visual Studio doesn't like a lot of the newer features, so I'm not including a Windows version in this release. I'm not dropping Windows support, just skipping it for a release or two until Visual Studio catches up. I also don't have a Mac OS X development environment, so there are no Mac binaries, but everything should build and run on one if you have the appropriate tools. Finally, there was some work to make sure everything runs on the Raspberry Pi.

Aside from a lot of internal changes, this release is mainly focused on improved disk support including support for 80 track disk images for all command line tools. The other big change is support for the CF7+ in ti99sim itself. All versions of ti99sim can now read and write to CF7+ devices/images. See the list of changes for more information


Version 0.0.11: There hasn't been any single feature that warranted a new release, but since it's been so long since the last release, I thought I'd make a new one. The biggest change is the support for 64-bit systems. New Makefiles should make it easier to build on the Mac. There have also been a number of minor changes to the utilities and internal code (see the README file for details). Finally, limited support for CF7+/nanoPEB images has been added.


Version 0.0.10: Minor improvements to some of the utilities and a fix for the install. The most notable improvement to the utilities is the ability to read .ark files (files compressed using Barry Boone's archiver). Using the disk utility, files in an archive can be extracted to a file and added to an existing disk image (oh yeah, disk can now add files as well).


Version 0.0.9: Finally, ti99sim now runs on Mac OS X! I managed to convince my brother to let me play around on his Mac in an effort to get ti99sim working. The good news: It compiles and runs just fine on the Mac (last time I checked). The bad news: 1) I don't currently have access to the Mac, so no Mac release in the archives yet. 2) I'm not familiar enough with Mac OS X to make a proper install package. In order to use ti99sim, you'll need to open a terminal window and use the command line (just like everybody else).

For those of you that don't have a Mac, this release also adds resizable window support, new scaling routines (Scale2X & Scale3X from the AdvanceMAME project) for double-size and triple-size windows, an alternate color palette selection, selectable master volume level, and several minor improvements. There is also a new utility that will let you play speech samples from the speech synthesizer ROM from the command line.


Version 0.0.8: Changes include: improved support for international keyboards, more accurate clock cycle emulation, proper support of reduced frame rates, better audio quality under Windows NT, and a verbose mode added to most programs. Emulation of the TMS9901 has also been rewritten to provide programs access to the chip's timer mode. There is also a new utility: dumpspch. This program allows you to dump a valid TI Speech ROM to either a hexadecimal or parsed text file. The parsed file allows you to more easily edit the individual LPC-10 speech frames. The modified file can then be converted back to a valid spchrom.bin file using mkspch. The decode utility has also been reworked to do a better job at detecting and recovering audio data from .wav files. The number of different .wav file formats supported has also been expanded. The README.html file has been updated and cleaned up as well.


Version 0.0.7: There was a bug in the convert-ctg utility released in v0.0.6 that resulted in the inability to create a DSR cartridge (which meant no disk I/O). The TMS9918A (VDP) emulation support has also been improved and includes multicolor mode support, 4 sprite/line limit, 5th sprite detection, and coincidence checking. A few more minor changes and one new utility: list - a simple command line tool to list a TI BASIC/Extended BASIC program.




Sound Support

Speech Synthesis

Joystick Support

Disk Support

Coming soon

Programs included




If you have any questions, comments, or suggestions, let know.