LiberTI ======= Libre TI-83 calculator emulator designed for [LibreCalc][1]. Build Instructions ------------------ You must first satisfy the build dependencies of LiberTI. | Library/Tool | Purpose | |----------------------------|-----------------------------------------------| | POSIX Make | Build scripts | | C99 Compiler | (Prefer GCC or Clang) Source compilation | | GNU Scientific Library | Complex math calculations and data structures | | Simple DirectMedia Layer 2 | Graphics and threading | | SDL2 Image | Image loading support | | Delwink's libpfxtree | Keyword parsing for the encoder | | libconfig | Calculator states and configurations | On Debian GNU/Linux and derivatives, you can install these with the following command: # apt-get install build-essential libgsl0-dev libsdl2-dev \ libsdl2-image-dev libconfig-dev For libpfxtree, download the latest stable source from [Delwink's site][3], and build/install according to the README inside. After the dependencies are installed, you can build LiberTI as follows: $ make If you wish to install LiberTI to the system, you can run the following: # make install Fonts ----- The font files used in LiberTI are compiled statically into the program in `font.c`. This was done to reduce the need for file IO at runtime (just one more way the program can fail). However, some users might want to change the fonts for one reason or another. `font.png` at the root of this repository contains the primary font. If you wish to modify it, you can take the following steps to include them in the finished program: Use your favorite hex dumping program to dump the changed file. With `xxd`: $ xxd -i font.png ti83.c This will create a C file with the dumped bytes. For `font.png`, rename the array to `FONT_PNG_DATA`. For both, change the length variable to a `#define` as done in `font.c`, then paste the new array into place. Make sure to change the length constants at the top of `font.c` to be the new lengths, or you will get errors when running `liberti`. The reason this was not added as part of the build script is because these fonts are not supposed to change for the official release of LiberTI, and it would be an extra dependency to add `xxd` which is part of `vim-common` just for these hex dumps. Disclaimer ---------- This project was created independently by David McMackins for Delwink, LLC as a **replacement** for LibreCalc's existing TI emulator. LiberTI is not (yet) officially endorsed or supported by LibreCalc. Hacking ------- Copy the style you see in the code. Do not use spaces for indentation. To submit a patch, [submit your diff to Delwink][2], or use GitHub's pull request system. License ------- LiberTI is free (libre) software, released under the terms of version 3 of the GNU Affero General Public License. You are free to copy, modify, and redistribute this software and use it for whatever purpose. See [COPYING](COPYING) for details. [1]: http://www.librecalc.com/en/ [2]: mailto:contribute@delwink.com [3]: http://delwink.com/software/libpfxtree.html