Emulators

JavaScript TI-99/4a can be found at http://js99er.net/#/

  Fil Tilrettet
ZIP-arkiv v9t9.zip 17-08-2019 by Normann P. Nielsen
ZIP-arkiv ti99_4a.zip 17-08-2019 by Normann P. Nielsen
ZIP-arkiv ti99sim-0.0.11.win32.zip 17-08-2019 by Normann P. Nielsen
ZIP-arkiv classic99.zip 17-08-2019 by Normann P. Nielsen
ZIP-arkiv v9t9-170305.zip 17-08-2019 by Normann P. Nielsen
ZIP-arkiv Win994a_Install_V3010_(x64).zip 17-08-2019 by Normann P. Nielsen
ZIP-arkiv Win994a_Install_V3010.zip 17-08-2019 by Normann P. Nielsen

Github

Last updated: 05 March 2017 06:08 PM

V9t9 emulates the TI-99/4A on your computer.

It supports:

  • Configurable PC controller to joystick mapping
  • RS232/PIO output and TI Impact Printer emulation
  • Reading/writing cassette recordings to files
  • Drag and drop / auto-detection of modules, disks, demos, 99/4A files
  • Ability to save/restore sessions
  • Module formats: V9t9, MESS (.rpk/.zip), PBX banked modules
  • Disk support (files in native filesystem, sector images, track images)
  • TMS 9918A video
  • TMS 9919 sound
  • TMS 5220 speech
  • Demo playback and recording support
  • UCSD P-Code System
  • Rudimentary debugger
  • Image import
  • "Realistic" rendering of the monitor

(Some features here are advanced.)

Examples

Sound samples:


Recent Changes

Last updated: 05 March 2017 06:08 PM

2017/03/05 (download)

New/published features:
  • Allow configuring PC controller to joystick mappings
  • Extract image importer into its own tool (v9t9.sh -tool ConvertImages), with enhanced support for various 4/8/15/16 bit depth modes and palettes
Bug fixes:
  • Allow editing the way controllers map to joysticks (bug #13)
  • Fix detection of keyboard in certain modules (bug #9)
  • Find P-Code binaries more reliably (bug #8)
  • Improve keyboard mapping for joysticks (bug #6)
  • Add help to v9t9.sh
  • If v9t9 crashes on Linux, due to PulseAudio issues, you can pass -Dv9t9.sound.java=true to use Java implementation
  • Avoid cases where configuration settings are lost on macOS
  • Fix bug in X instruction
  • Various disassembler/assembler fixes

2015/07/21 (download)

New/published features:
  • Add RS232/PIO configuration -- for now, just determining whether the printer dialog opens or not
  • Improve printer dialog UI, allowing saving images to disk, and using less memory when multiple pages are printed
  • Add cassette reading/writing configuration button
  • Support PgUp/PgDn and Ctrl Home/End in debugger CPU instruction view
Bug fixes:
  • Improve emulation speed significantly (for lower-end machines) (related to bug #2)
  • Improve video updating synchronization for less tearing (bug #3)
  • Fix keyboard buffering that interfered with gameplay (bug #4)
  • Fix cataloging and distinguishing of modules which are named the same (bug #5).
    V9t9 knows about a large number of unnamed (auto-start) and ambiguously named modules ("Milliken", "For English") and names them for you. V9t9 now also identifies and filters out duplicate modules. 
    NOTE: the format of the modules.xml file has changed, so saving any changes with this version may not work with older releases.
  • Improve setup wizard load speed and make modules page simpler.
  • Fix disk/device selector history (can easily swap directories/images between DSKx entries without opening/closing dialog)
  • Ship v9t9render libraries. If V9t9 crashes on startup for you, especially when running under VirtualBox, try passing --client SWTAWT to v9t9.sh or v9t9.bat to work around it.
Site features:
  • Added archives of older V9t9 builds.

2015/07/02 (download)

  • add -Djna.nosys=true to v9t9.sh by default.
  • allow VMARGS to be set outside v9t9.sh.
  • allow -Dv9t9.sound.rate=... to change ALSA rate and -Dv9t9.sound.java=true to bypass custom sound usage for Linux and Windows (possible fixes for bug #2)
  • fix problem with USCD P-System option no longer being available (thanks to RvK for noticing)
  • try again to fix OS X class loading issues (thanks Scott S. and Michael R. for reminding me)
  • revamped device configuration -- one button for selecting devices, then each device icon allows individual configuration
  • other GUI tweaks

2014/05/19 (download)

  • fix OS X support (for real?)
  • added initial RS232 " PIO support with TI Impact Printer emulation (try the "Printer Example" demo)
  • fix Windows XP (pre-OpenGL 1.5) support

2013/10/20 (download)

  • fix bug with joystick 'fire' detection in hand-coded assembly
  • add breakpoint support to debugger (right-click on an instruction to set/reset)
  • fix bug using numeric keypad as joysticks (use Num Lock + Scroll Lock)
  • fix launching for Win 7

2013/06/17 (download)

  • added support for Corcomp double-density disk controller
  • make audio gate more consistent
  • fix double-sided disk detection with *.dsk files
  • add EA/8K Super Cart support
  • fixed bug losing history from disk selector dialog
  • fixed bug leading to appearance that module list setup could not find all the required files
  • changed module list setup. Instead of showing only modules registered in a central database, V9t9 will prompt you to establish a modules.xml file containing a custom list of modules detected on your ROM paths.
  • more accurate DIV cycle counting

Older releases

Well, I don’t have any and can’t rebuild them, since they use Java Web Start, which is essentially obsolete now and apparently impossible to build or use in new Java releases.

Running

Setup

Have Java 6 or newer installed on your system.

You will need ROMs to actually use the emulator. I don’t provide these but this page will give you some instructions.

Installation

Download the v9t9.zip archive and unzip it somewhere on your system.

Running from Windows

Launch V9t9 by double-clicking the v9t9.bat file.

If this exits immediately, be sure java is on your PATH. If it crashes under a VM, try passing –client SWTAWT.

Alternately, run a Command Prompt and type:

cd \path\to\extracted\v9t9
v9t9.bat

Running from OS X or Linux

Launch V9t9 by double-clicking the v9t9.sh file.

If this exits immediately, be sure java is on your PATH. If it crashes under a VM, try passing –client SWTAWT.

Alternately, run a Terminal and type:

cd /path/to/extracted/v9t9
./v9t9.sh

Keyboard Mappings

The 99/4A keyboard has 40 keys and your keyboard has more. The 99/4A formed the rest of the ASCII character set using the “Fctn” key with other alphanumeric keys. Also, 99/4A programs often refer to symbolic key names like “REDO” and “PROC’D”, which map to “Fctn” plus number keys.

In V9t9, use “Alt” for “Fctn”.

These are the Fctn-+number mappings:

  • Fctn-1 = DELETE
  • Fctn-2 = INSERT
  • Fctn-3 = ERASE
  • Fctn-4 = CLEAR (this also stops BASIC programs and some RS232/PIO device operations; hold it down)
  • Fctn-5 = BEGIN
  • Fctn-6 = PROC'D
  • Fctn-7 = AID (often used for help)
  • Fctn-8 = REDO
  • Fctn-9 = BACK (like Esc)

These keys that don’t exist on the 99/4A are automatically mapped as follows by V9t9.

These choices try to align with the patterns of typical 99/4A software. If you object, please file a feature request!

  • Arrow Down = Fctn-X
  • Arrow Up = Fctn-E
  • Arrow Left = Fctn-S
  • Arrow Right = Fctn-D
  • Home = Fctn-5 (BEGIN)
  • End = Fctn-0
  • Insert = Fctn-2 (INSERT)
  • Delete = Fctn-1 (DELETE)

(The keys above are the same for the numeric keypad when Num Lock is enabled and joystick mode is not enabled.)

  • Page Up = Fctn-6 (PROC’D)
  • Page Down = Fctn-4 (CLEAR)
  • Fnumber = Fctn-number

Joystick Mappings

The standard 99/4A system came with two joysticks – aka “handheld controllers”.

V9t9 provides several ways to emulate the 99/4A joysticks.

PC Controllers

V9t9 can use connected PC controllers or joysticks and map them to 99/4A joysticks.

  • V9t9 only selects controllers with X and Y controls which don’t act like mice.
  • You must restart V9t9 for it to detect and use changes in connected joysticks.
  • Select the “Joystick” icon in the left-hand toolbar to configure how the connected controllers map to the TI Joystick.
  • This dialog (in Interactive mode) shows live updates of whichever controllers were detected at startup and allows you to assign their components to Joystick 1 or 2 (or neither) and then choose how each component contributes to the joystick.

    • IGNORE: the component is not used (handy for buggy USB controllers with stuck values)
    • X_AXIS, Y_AXIS: map an analog control to the X or Y axes
    • DIRECTIONAL: map a single analog control to X and Y axes
    • UP, DOWN, LEFT, RIGHT: map buttons to these directions (useful for Playstation 3 directional-pad buttons)
    • BUTTON: map the button to Fire
  • You may also edit the configuration (Edit mode). The syntax should be somewhat obvious.

V9t9 will keep track of various combinations of detected controllers, but may not migrate settings from e.g. controller A if you run with controllers A and B the next time.

Whatever edits you make in the Interactive or Edit modes applies only for the specific controller setup active when you run V9t9.

See ~/.v9t9j/config and ControllerConfig and Joystick1Config and Joystick2Config for details if you want to copy settings between controller configurations without doing this by hand.

Emulating with host keyboard

V9t9 can use the keyboard’s numeric keypad as “joystick #1” (and also “joystick #2” if you enjoy a difficult challenge).

Press Scroll Lock to toggle between modes.

By default the numeric keypad is used for ASCII numbers or 99/4A keyboard arrows (whatever Num Lock indicates). You’ll see a notification to the lower-right telling you the current mode.

When you see “Using numpad for joystick #1 (shift for #2)”, you can use the numeric keypad.

    8

4   5   6      fire = 'Enter', '+', or '-'   reset = 5 (in case something's stuck)

    2

If you need to emulate “joystick #2”, hold down Shift. (I told you it’d be a challenge.)

Standard keyboard mappings

99/4A programs usually support keyboard-only setups:

Player 1:

    E      

S       D      fire = Q

    X

Player 2:

    I

J       K      fire = Y

    M

Contact

Please see this page for details.

History

I’ve been working on this in various forms since 1992, when I started working on the idea in Turbo Pascal as “tiemul.pas” in the computer lab, and once crashed the computer’s server when I ran it there without permission.

That next summer, I started rewriting the emulator in assembly for DOS and soon made the emulator into a product: “TI Emulator!” (yes, with the exclamation point). It was my first venture into the world of business – and copyright infringement. (I had been shipping ROMs around, and TI reminded me that I should have a license agreement and be paying royalties.)

This was an exciting time, interacting with people all over the world through letters and emails. A loyal user suggested the name “V9t9” and the product was renamed and a few more versions were released.

I got several requests to support then-current custom hardware for the aging TI-99/4A, but unfortunately was not experienced enough to infer the operation of hardware without having it in person, so those efforts never got off the ground.

A few years later, I moved from DOS to Linux and started porting V9t9 to C. This project was exciting, since it involved making the thing portable and capable of supporting multiple kinds of graphics, sound, and input APIs. This port never really saw the light of day (it was a bit way too geeky for the average user to understand, and only built against GNU C in Linux and Metrowerks Codewarrior in Windows).

Many years later, I started porting V9t9 to Java in 2005. The Java port was originally quite nastily ported directly from the C port, and I’ve been gradually rewriting chunks in a proper object oriented format ever since.

I would be remiss not to mention the driving motivation for continuing to work on the emulator at all in the 2000’s, after my original TI-99/4A became mostly unusable (no access to a TV or monitor with RCA connectors, for example) – Thierry Nouspikel’s excellent compendium of technical data, The TI-99/4A Tech Pages.
I have gone back to this site again and again over the years to refine my understanding of hardware I’ve not used in years.

Advanced

Please see this page for advanced usage and configuration.

License

The V9t9 Java codebase is licensed under EPL v1.0, with the exception that no commercial redistribution is allowed.

This software includes content licensed under EPL v1.0; code from the Base64 library;
Vlad Roubtsov’s HRTimer library; LWJGL utilities from Kevin Glass and Brian Matzon; and the various packages from Apache Commons.




TI Cartrigdes

Expand to see files...

File Size

4aFlyer.TICart

25896

A-Maze-ing.TICart

234111

Addition and Subtraction 1.TICart

270879

Addition and Subtraction 2.TICart

231489

Addition.TICart

216555

Adventure.TICart

246302

Alien Addition.TICart

225553

Alligator Mix.TICart

272418

Alpiner.TICart

288163

Ant Colony.TICart

20886

Ant Eater.TICart

20039

Beginning Grammar.TICart

274377

Beyond Parsec.TICart

21376

Black Hole.TICart

19601

Blackjack & Poker.TICart

220188

Blasto.TICart

244174

Boxer.TICart

16409

Break Thru!.TICart

20156

Buck Rogers.TICart

252397

Burger Builder.TICart

20086

BurgerTime.TICart

268957

Car Wars.TICart

222898

Centipede.TICart

19675

Chicken Coop.TICart

20774

Chisholm Trail.TICart

241019

Circuit Analysis 1.TICart

117460

Computer Math Games I.TICart

40797

Computer Math Games II.TICart

167376

Computer Math Games III.TICart

268261

Computer Math Games IV.TICart

35999

Computer Math Games VI.TICart

256475

Computer War.TICart

27115

Congo Bongo.TICart

237509

Connect Four.TICart

243415

Crossfire.TICart

19258

Database Management.TICart

123577

Decimal Deli 2.TICart

47420

Decimals.TICart

256327

Defender.TICart

20881

Demolition Division.TICart

273710

Demonstration.TICart

166258

Diagnostic.TICart

200413

DigDug.TICart

27820

Disk Duplicator.TICart

19939

Disk Manager 1.TICart

182884

Disk Manager 2.TICart

156371

Disk Manager 3.TICart

156469

Division 1.TICart

207849

Divison.TICart

168713

DonkeyKong.TICart

24675

Dragon Mix.TICart

244503

Driving Demon.TICart

20490

Early LOGO Learning Fun.TICart

265981

Early Learning Fun.TICart

268456

Early Reading.TICart

293793

Editor Assembler.TICart

97283

Equations.TICart

243479

Escape.TICart

17627

Facemaker.TICart

266532

Fantastic Fractions 1.TICart

52775

Fantasy.TICart

36336

Fathom.TICart

266017

Football.TICart

212782

Fractional Numbers.TICart

249111

Germ Patrol.TICart

45888

Hangman.TICart

201613

Home Financial Decisions.TICart

256205

Hopper.TICart

251365

Household Budget Management.TICart

257746

Hunt the Wumpus.TICart

256614

Hustle.TICart

189012

Individual Accounting.TICart

37471

Indoor Soccer.TICart

177483

Integers.TICart

245156

Jawbreaker II.TICart

242930

Laws of Arithmetic.TICart

261734

Lobster Bay.TICart

34191

MASH.TICart

287844

Measurement Formulas.TICart

263656

Mechatronic Extended Basic II Plus.TICart

59172

Meteor Multiplication.TICart

240055

Micro Pinball II.TICart

27119

Micro Tennis.TICart

27908

Microsoft Multiplan.TICart

253180

Microsurgeon.TICart

274569

Milton Bradley Games.TICart

43004

Mind Challengers.TICart

268089

Mini Memory.TICart

175500

Mini Writer.TICart

20109

Minus Mission.TICart

247356

Moon Mine.TICart

271940

Moonsweeper.TICart

280128

Mouse Attack.TICart

35913

Ms Pacman.TICart

26549

Multiplication 1.TICart

160350

Multiplication.TICart

218585

Munch Man II.TICart

20966

Munch Man.TICart

253481

Munchmobile.TICart

251916

Music Maker SDA.TICart

185602

Music Maker.TICart

177938

Number Magic.TICart

185290

Number Readiness.TICart

264254

Numeration 1.TICart

278255

Numeration 2.TICart

270526

Othello.TICart

222746

Pacman.TICart

24235

Parsec.TICart

266967

Percents.TICart

253332

Personal Real Estate.TICart

241308

Personal Record Keeping.TICart

278969

Personal Report Generator.TICart

230646

Peter Pan's Space Odyssey.TICart

45702

Physical Fitness.TICart

219296

Picnic.TICart

26800

Picture Parts.TICart

41457

Pinocchio's Great Escape.TICart

44883

Plato.TICart

260737

Pole Position.TICart

29155

Popeye.TICart

32613

Princess & Frog.TICart

20389

ProTyper.TICart

20637

Pyramid Puzzler Multiplication.TICart

47999

Qbert.TICart

26157

Rabbit Trail.TICart

21308

Reading Cheers.TICart

55310

Reading Flight.TICart

300243

Reading Fun.TICart

244395

Reading On.TICart

294792

Reading Power.TICart

55311

Reading Rally.TICart

262991

Reading Round-Up.TICart

272204

Reading Wonders.TICart

56054

Return to Pirate's Isle.TICart

290350

Rotor Raiders.TICart

18933

SF Accounting Assistant.TICart

50510

SF Activity Accountant.TICart

35710

SF Attendance Recorder.TICart

51046

SF Class Data Recorder.TICart

37831

SF Course Manager.TICart

49638

SF Payroll Assistant.TICart

50121

SF Salary Planner.TICart

38262

SF School Mailer.TICart

43911

Saint Nick.TICart

22811

Schnoz-ola.TICart

21089

Scholastic Spelling - Level 3.TICart

48415

Scholastic Spelling - Level 4.TICart

49866

Scholastic Spelling - Level 5.TICart

50339

Scholastic Spelling - Level 6.TICart

50765

Securities Analysis.TICart

205312

Simon Says.TICart

14451

Slymoids.TICart

262983

Sneggit.TICart

242165

Sorgan II.TICart

27267

Space Journey Percent.TICart

44521

Speech Editor.TICart

172336

Speed Reading.TICart

20469

Spys Demise.TICart

17542

Star Maze Division.TICart

46013

Star Runner.TICart

29131

Star Trek.TICart

264412

Starship Pegasus.TICart

25704

Statistics.TICart

231048

Story Machine.TICart

286194

Strike Three!.TICart

24085

Subtraction.TICart

225922

Super Demon Attack.TICart

237161

Super Extended Basic.TICart

60664

TI Extended Basic V2.5.TICart

189705

TI Extended Basic.TICart

160146

TI Invaders.TICart

254469

TI Logo II.TICart

242529

TI Logo.TICart

178360

TI Planner.TICart

21056

TI Toad.TICart

19757

TI Writer.TICart

220365

Tax-Investment Record Keeping.TICart

261590

Terminal Emulator I.TICart

204714

Terminal Emulator II.TICart

236354

The Attack.TICart

244228

The Extra-Terrestrial.TICart

29015

Tombstone City.TICart

269266

Topper.TICart

21056

Touch Typing Tutor.TICart

278731

Treasure Island.TICart

259126

Tunnels of Doom.TICart

239789

Typo Man.TICart

20559

Verb Viper.TICart

23576

Video Chess.TICart

273254

Video Games 1.TICart

228880

Video Vegas.TICart

19453

Video-Graphs.TICart

206943

Von Drake's Molecular Mission.TICart

49660

Weight Control & Nutrition.TICart

233671

Wing War.TICart

35333

Word Invasion.TICart

252130

Word Radar.TICart

218945

Yahtzee.TICart

256844

Zero Zap.TICart

258987

No valid Data Center license found

Please go to Atlassian Marketplace to purchase or evaluate Refined Toolkit for Confluence Data Center.
Please read this document to get more information about the newly released Data Center version.

TI Tapes

Expand to see files...

No valid Data Center license found

Please go to Atlassian Marketplace to purchase or evaluate Refined Toolkit for Confluence Data Center.
Please read this document to get more information about the newly released Data Center version.

Downloads

  • Ingen etiketter