Classic99 is a Win32-based emulator, whose author, Tursi (Mike Brent), is very talented in many other arenas, including those of console gaming.
It is special in the fact that the author not only acquired permission from Texas Instruments to distribute code with their copyrighted ROMs, but also allows his own source code (minus the copyrighted ROMs) for others to use.
Classic99 has an interesting quality in that it can read a raw TI file (as binary) from a folder on a PC. It doesn't necessarily require a disk image in order to load and use a file. It also has some other niceties, such as the use of DirectX for speed-up in drawing, along with the ability to also use a 'filter' to make the output look more like a TV image.
Classic99 started life on the Amiga as Ami99 in '94 or '95, and was later ported to DOS with the same name. Sometime after being ported to Windows it was renamed to Classic99 after confusion about whether it was still for the Amiga or not.
- Emulation of the 9900 including cycle counting and external opcodes.
- Partial emulation of the 9901, including timers, DSR select, joystick and keyboard
- Full emulation of the sound system, including the noise channels with variable pitch and simulated DAC via both high frequency and CRU input
- Nearly full emulation of the 9918A including undocumented and illegal mode settings and pixel-accurate sprite collisions (sprite flicker is not emulated)
- Disk emulation via the 'Files On A Disk' approach, compatible with V9T9 and TIFILES formatted files (with TIFILES preferred to allow transfer with a real TI). Capable of reading Windows text files as DF80 to allow direct loading of Windows generated assembly object files. Use of Windows paths permits subfolders and variable length filenames, as well as removing the limit on files on a 'disk'. (In practice some TI programs will still limit filename length).
- Classic99 can not read disk images today, neither PC99 nor V9T9 format. A tool like Fred Kaal's TIDIR can be used to extract individual files from a disk image for use with Classic99.
- Speech emulation through external DLL, based on publically available 5220 emulation (some modes not working due to timing issues).
- Display filtering - both to enhance resolution and to reproduce NTSC artifacting, through external DLLs based on code contributed by third parties. Display available via GDI or DirectX, both Windowed and Full Screen available for DirectX
- Speed control - the CPU may be over- or under-clocked in configuration, or the entire system may be sped up
- Audio synth effects - the three-voice square waves may be replaced on a per-channel basis with various instrument samples. For some music this provides a very interesting, if inaccurate, effect.
- Built-in ROMs - provided under license from Texas Instruments - includes console ROMs for the 99/4, 99/4A, and v2.2 99/4A, as well as a number of games, right from the menus. Certain disk files, such as QUEST for Tunnels of Doom, and the Editor/Assembler files, are also built in.
- Integrated debugger - offers disassembly, memory view, register dump, debug output, and single step. Read-only at the moment - real-time modification is not possible. (The debugger is still a work in progress and not highly visible. Press 'Home' to activate it, press 'F1' to pause, 'F2' to single step when paused).
- High compatibility - Classic99 runs most software correctly. Known issues are Arc303 (creating compressed archives - unpacking them works fine), TE2 text-to-speech, and the TI Assembler. Writing disk files is the weakest point at the moment, most other functions work well.
Classic99 can be found here: http://www.harmlesslion.com/software/classic99