This repository is a fork of CGDOOM which was ported originally by MPoupe. Credit goes to: * Mrakoplaz for the original TI-Nspire port from MS-DOS sources. * Critor for the Nspire CX (now CX II) port (which includes support for a number of WAD files). * MPoupe for the original fx-CG 10/20 port of DOOM. * ComputerNerd for the first attempts at an fx-CG 50 port. * Lephenixnoir for the final fixes and fx-CG 50 version. TODO: -> Fix screen not cleared when changing resolution -> Shareware WAD crashes at the end of E1M4 (and in E1M9) -> Ultimate DOOM WAD runs out of memory at the end of E1M2 -> Some bad textures here and there -> Supply more VRAM memory to internal allocator -> Level selector -> Rate-limit the game when overclocking -> Run key? -> FPS counter on-screen -> Try and support more WADs -> Reenable LTO if possible -> Built-in overclocking? CGDOOM used to be compiled with the mini-SDK. However, it's become quite difficult to get a copy of that. Instead, this port is built with a slightly modified PrizmSDK from Jonimoose/libfxcg. The differences are (I might push it later): * TOOLCHAIN_PREFIX=sh-elf- (in libc/ and libfxcg/) * Syscall 0x1B0B, getSecondaryVramAddress() is added in libfxcg/ * abort() is removed from libc/ (CGDOOM has its own) * calloc() defined in libc/ (just a call to sys_calloc) * sys_calloc() fixed in libfxcg/ to use memset (memsetZero is broken) * Linker script outputs in elf32-sh format * Linker script sets 500k of RAM instead of 64k * LTO disabled (hopefully it could be reenabled later) * Syscall memcpy() (apparently broken) replaced by fxlibc memcpy() * fxlibc qsort() is added in libc/ * Linker script provides addresses to unused section of user RAM [1] https://github.com/Jonimoose/libfxcg/