Skip to content
A Game Boy emulator for the TI-84 Plus CE and TI-83 Premium CE.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jul 29, 2018
tiboyce-convertsav Dynamically link to Universal CRT, update documentation for release. Apr 4, 2019
tiboyce-romgen Dynamically link to Universal CRT, update documentation for release. Apr 4, 2019
.gitignore Just a few formatting updates and things (#62) Feb 16, 2019
.travis.yml Add tiboyce-convertsav to .travis.yml Feb 17, 2019
CHANGELOG.md Dynamically link to Universal CRT, update documentation for release. Apr 4, 2019
LICENSE.md Just a few formatting updates and things (#62) Feb 16, 2019
README.md Dynamically link to Universal CRT, update documentation for release. Apr 4, 2019
conv_skin.py Just a few formatting updates and things (#62) Feb 16, 2019
decode.asm Fix a crash caused when the JIT overflows during banked call decoding. Jul 27, 2018
font.bin First shot at in-game menu implementation Aug 28, 2016
gb_skin.png Just a few formatting updates and things (#62) Feb 16, 2019
jit.asm Refactor JIT flushing logic; force a flush after two cache flushes. Oct 6, 2018
launcher.asm Major refactor of ROM menu, LCD mode switching, and error handling. Oct 31, 2018
lzf.asm Implement LZF compression/decompression for save files. May 17, 2018
menu.asm Fix missing Back option in the Graphics Options menu. Feb 17, 2019
opcodegen.asm Add bank checking to callstack returns; change error handling. Fixes #20 Jul 8, 2018
ophandler.asm Refactor JIT flushing logic; force a flush after two cache flushes. Oct 6, 2018
render.asm Major refactor of ROM menu, LCD mode switching, and error handling. Oct 31, 2018
setup.asm Add state hotkeys and menu descriptions for all hotkeys. Resolves #22. Jan 26, 2019
skin.asm Just a few formatting updates and things (#62) Feb 16, 2019
text.asm Add overlay messages for state saves and loads; optimize speed display. Jan 25, 2019
tiboyce.asm Add state hotkeys and menu descriptions for all hotkeys. Resolves #22. Jan 26, 2019
vblank.asm Add state hotkeys and menu descriptions for all hotkeys. Resolves #22. Jan 26, 2019
waitloop.asm Add bank checking to callstack returns; change error handling. Fixes #20 Jul 8, 2018
z80mode.asm Schedule the initial event one cycle after the loaded state. Nov 5, 2018

README.md

TI-Boy CE

Build Status License: GPL v3

TI-Boy CE is a Game Boy emulator for the TI-84 Plus CE and the TI-83 Premium CE graphing calculators.

Currently only the original Game Boy is supported, no Game Boy Color (and never Game Boy Advance).

This emulator is currently in the alpha state, so while it is intended to be stable, it is possible that it could crash and cause data loss. It is advised to put any important files in Archive memory before running the emulator.

Grab the latest pre-built releases at https://github.com/calc84maniac/tiboyce/releases or check out the Build Instructions to build from source.

Features

  • Emulates original Game Boy hardware (except audio and linking)
  • Emulates real-time clock for certain cartridges
  • Save states with compression
  • Fullscreen and 1:1 scaling modes (with optional skin)
  • Automatic and manual frameskip
  • Turbo mode (with speed display)
  • GBC-style selectable color palettes for Game Boy games
  • Customizable controls

Converting ROM Files

The easiest method is to use the online converter here. All conversion is done locally in your browser, so there's no need to worry about uploading copyrighted data.

Alternatively, a command-line utility (tiboyce-romgen.exe) to convert ROM files to TI AppVars is included. There are a couple of ways to do this:

  1. Open a command prompt and navigate to the directory containing the utility using cd. Then run the following:

    tiboyce-romgen.exe -t "Game Title Here" "path\to\romfile" NamePrefix
    
  2. Drag-and-drop a ROM file onto the utility, which will then prompt for a game title and a name prefix.

Note that the name prefix provided for the ROM must be at most 5 characters long. This is because the remaining 3 characters are used for naming additional files created by the utility and the emulator itself. The game title provided will be displayed in the emulator's ROM list.

The utility will generate multiple AppVar (*.8xv) files with the given prefix. Send all of them to the calculator in Archive memory.

If you get a missing DLL error when running the command-line utility, you may need to install the Universal C Runtime.

To convert save files between PC and AppVar formats, see the Converting Save Files section below.

Running the emulator

Send the TIBOYCE.8xp and TIBoyDat.8xv files to the calculator. Optionally also send the TIBoySkn.8xv file which contains a skin image.

If your calculator is running OS v5.3 or newer, you can keep all of these files in Archive and run prgmTIBOYCE from the prgm menu.

If your calculator is older than OS v5.3, the TIBOYCE program must be unarchived. Run it with Asm(prgmTIBOYCE).

You should now see a list of the ROMs on the calculator. Choose one with and start it with 2nd enter.

Default controls

Game controls:

  • D-Pad:
  • A: 2nd
  • B: alpha
  • Start: mode
  • Select: XTθn

Emulator controls:

  • Open menu: clear
  • Turbo mode: zoom
  • Save state: sto>
  • Load state: ln
  • State slot: log + 0-9
  • Quick exit (non-configurable): on

Menu controls (non-configurable):

  • Choose menu item:
  • Change option:
  • Select item: 2nd enter
  • Close menu: clear

File Types

The various files used by the emulator are as follows (replace Name with ROM prefix and # with digits):

File Description
Name.8xv The file specifying the game title and how large the ROM is.
NameR##.8xv Multiple files containing the actual ROM data.
NameSAV.8xv The contents of the battery-backed cartridge save data.
NameStA.8xv The automatic save state for this game.
NameSt#.8xv The manual save state for the given numbered slot.
NameSv#.8xv The cartridge save associated with a numbered save state.
TIBoyCE.8xp The executable launcher.
TIBoyCfg.8xv The current emulator configuration.
TIBoyDat.8xv The core emulator data, loaded by the launcher.
TIBoySkn.8xv An optional skin to be displayed in “no scaling” mode.

Note that save states cannot be loaded properly if the associated cartridge save data file is deleted or replaced. When transferring save states, make sure to include both the St# and Sv# files. However, this doesn't apply to games that have no cartridge save data in the first place.

Converting Save Files

You can convert between PC emulator and TI-Boy CE save file formats using the provided utilities.

Note that only cartridge save files (*.sav or *.srm on PC or *SAV.8xv on calculator) may be converted. Save states are emulator-specific and cannot be converted.

The easiest method is to use the online converter here. All conversion is done locally in your browser, so there's no need to worry about uploading personal data.

Alternatively, a command-line utility (tiboyce-convertsav.exe) to convert between save file formats is included. There are a couple of ways to do this:

  1. Open a command prompt and navigate to the directory containing the utility using cd. Then run the following:

    tiboyce-convertsav.exe "path\to\inputfile" "path\to\outputfile"
    
  2. Drag-and-drop a save file onto the utility, which will then prompt for an output file name.

Note that when creating a *SAV.8xv AppVar, the name prefix provided must be the same as the converted ROM, or TI-Boy CE will not load it. This utility may also be used to change the prefix of a save AppVar if a ROM was converted with a different name.

If you get a missing DLL error when running the command-line utility, you may need to install the Universal C Runtime.

Build Instructions

To build the emulator from source, first grab the latest release of SPASM-ng.

SPASM-ng v0.5-beta.3 is new enough to build properly; however, if you use that release you should ignore any warnings about file sizes exceeding 24KB.

For simplicity's sake, I'll call the name of the executable spasm below. Run the following to produce the emulator files:

spasm -E -A launcher.asm TIBOYCE.8xp

spasm -E -A tiboyce.asm TIBoyDat.8xv

spasm -E -A skin.asm TIBoySkn.8xv

To build the rom generation tool, use the provided Visual Studio solution in the tiboyce-romgen directory, or you can build the source for any platform with your C compiler of choice.

The same applies to the save converter in the tiboyce-convertsav directory.

Issues / Bugs

Report issues / bugs to the issue tracker, found here:

https://github.com/calc84maniac/tiboyce/issues

License

TI-Boy CE — a Game Boy emulator for the TI-84 Plus CE calculator family. Copyright © 2018 – 2019 Brendan Fletcher

You can’t perform that action at this time.