emulation installation - jedimatt42/tipi GitHub Wiki

Emulation Installation

There are 2 tiers of emulation possible - TI emulators that support TIPI, and those can either connect to a real PI or an emulated PI.

Js99er and MAME can both now connect to a real PI or an emulated PI.

Note: Classic99 enables some TIPI features natively without a PI, primarily TCP sockets.

Emulating the PI

A bundle with all the files you require is available at jedimatt42.com/downloads

This includes a pre-configured raspbian sd-card image to use as a raw drive file with QEMU.

The download bundle contains .bat scripts to run QEMU with the emulation as well as an NFS server to serve your TIPI. folder from the host pc to the emulation.

The emulation has been tested on Linux as well. However scripts are not included. But you can translate the .bat file into a linux QEMU command line. It is a simple script just capturing the requisite arguments to qemu.

TIPI is not an emulation of TI-99/4A hardware. It is a unique and independent implementation of storage, network, and other peripherals. Emulation in this context refers to TI-99/4A emulators that support TIPI features.

  • js99er.net supports connecting to a running set of TIPI services either on a real Raspberry PI or through a QEMU based PI emulation running the real TIPI services.
  • MAME v0.242 adds TIPI support (in early development, not stable): Atariage MAME Release Thread
  • Classic99 implements some TIPI device and message level protocols directly. It is baked in.

Configuring from a fresh TIPI sdimage

Run the emulation with the latest TIPI hardware sdimage.

  1. Enable emulation mode, by running /home/tipi/tipi/emulation/emu_config.sh and responding to the prompts. Typically y for emulation, y for nfs if you ran that included WinNFS service, and n for PDF support.

  2. Edit the /etc/fstab and delete the 3 TMPFS entries. The QEMU configuration does not have enough RAM for so much TMPFS usage.

  3. Disable tipiwatchdog.service - it's not needed, and may crash since GPIO isn't actually available: sudo systemctl disable tipiwatchdog.service

  4. exit the emulation clean: sudo shutdown now

Options in the standard image that might need fixing

raspi-config should be run to change the locale, and keyboard defaults for the system

Using a real PI with an emulator

You can use a real PI, and the latest SD image. You will have to setup the networking following the Raspberry PI documentation: headless network setup

Be sure to touch the ssh file in the boot partition so sshd is enabled. Then you can get in and use raspi-config to setup locale, hostname, and other items.

Enable emulation mode, by running /home/tipi/tipi/emulation/emu_config.sh and responding to the prompts. On a real Raspberry PI, PDF conversion can be enabled, and you probably don't want tipi_disk mounted via NFS. Or, you can use the TIPI web-ui Tools -> Emulation Mode end select Emulator Websocket Mode and press Submit

In most cases you'll answer 'y' YES to enable emulation websocket, 'n' NO to NFS, and 'y' YES to PDF support.

You should leave the tmpfs and other services as they are for a normal PI setup.

The tipi service needs to be restarted if using the commandline tool. Run sudo systemctl restart tipi.service. The web-ui will do this automatically.

Configuring js99er.net

  1. Go to http://js99er.net in your web-browser.
  2. Make sure the browser is wide enough to see the configuration tabs on the right.
  3. Select the 'Options' configuration tab. It may need > scrolling to the right to see it.
  4. In the TIPI Emulation field, select Full TIPI Emulation
  5. In the RPi Emulator field, enter the websocket url to your Raspberry PI: ws:tipi.local:9901/tipi

(you can replace tipi.local with your Raspberry PI's hostname or ip address)

  1. The js99er emulation should restart when you change the websocket url. If it did not, use the Reset button in the button bar at the bottom of the page.

Notes

  • The Qemu windows bundle hasn't been updated in a while. You can use the latest TIPI 2.x sdimage instead of the one included in the bundle.
  • The TIPI services should be upgraded using CALL TIPI the same as real hardware.
  • use http://js99er.net as the https: scheme will trigger browser restrictions that prevent the websocket from connecting.

Design info

For behind the scenes details on how emulators connect to TIPI, see the TIPI-Protocol