emulator: TIC-80 type: libretro core_classification: game_engine source: "https://github.com/libretro/TIC-80" upstream: "https://github.com/nesbox/TIC-80" profiled_date: "2026-03-25" source_commit: "14fd99edc29962778bc88d81773288ffc6e8aa53" core_version: "0.80.0" display_name: "TIC-80" cores: - tic80 systems: - tic80 notes: | Fantasy computer for making, playing and sharing tiny games. The libretro repo wraps nesbox/TIC-80 as a submodule; the libretro wrapper (tic80_libretro.c) lives in the upstream repo itself. Content loaded entirely via libretro data buffer (need_fullpath = false, src/system/libretro/tic80_libretro.c:346). No call to RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No code path reads any file from the system directory. All VM resources (sprites, palette, font, sound engine) are compiled into the binary. TIC_MODULE_EXT (dynamic scripting plugins) is disabled in libretro builds via #if !defined(__LIBRETRO__) in include/tic80_config.h:36. files: [] platform_details: cartridge_format: extensions: "tic, png" source_ref: "src/system/libretro/tic80_libretro.c:345" note: | .tic is the native cartridge format. .png loads cartridges encoded as cover images (code stored in PNG metadata). runtime: source_ref: ".gitmodules, nesbox TIC-80 runtime (the core submodule)" note: | Entire runtime compiled into the binary. No external dependencies. State serialization uses TIC_PERSISTENT_SIZE * 4 bytes of pmem() data (src/system/libretro/tic80_libretro.c:1227-1267).