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" 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, tic80_libretro.c:340). 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 tic80_config.h:36. files: [] platform_details: cartridge_format: extensions: "tic, png" source_ref: "tic80_libretro.c:339" note: | .tic is the native cartridge format. .png loads cartridges encoded as cover images (code stored in PNG metadata). runtime: source_ref: "nesbox/TIC-80 (submodule at core/)" note: | Entire runtime compiled into the binary. No external dependencies. State serialization uses TIC_PERSISTENT_SIZE * 4 bytes of pmem() data (tic80_libretro.c:1203-1243).