Skip to content

# REminiscence - RetroBIOS

Type | libretro
Classification | community_fork
Source | https://github.com/libretro/REminiscence
Upstream | https://github.com/cyxx/REminiscence
Version | 0.3.6
Profiled | 2026-03-25
Cores | reminiscence
Systems | flashback

Source analysis

- content_type: game_data content_extensions:

- map

- system_directory_used: False

- filesystem_access: True

- data_files_location: same directory as loaded content game_data_files:

  dos_floppy:

      **required:**

      - LEVEL1.MAP through LEVEL7.MAP (level map data)
      - LEVEL1.* (MBK, PGE, PAL, CT, SPC, RP, ANI, OBJ, TBN, SGD, BNQ, LEV)
      - GLOBAL.ICN, GLOBAL.SPC, GLOBAL.FIB
      - PERSO.SPR, PERSO.OFF
      - FB_TXT.FNT
      - ENGCINE.TXT or equivalent language file
      - ENGCINE.BIN or equivalent

      **optional:**

      - intro, options, journal, etc. (.mod files for cutscene music)
      - VOICE.VCE (SegaCD voice data)

  dos_cd:

      **additional:**

      - INTRO.SEQ, CREDITS.SEQ, and other .SEQ cutscene videos (SEQ playback disabled in libretro build)

  demo:

      - **archive:** DEMO_UK.ABA (contains all demo data in a single archive)

detection_order:

- file: DEMO_UK.ABA, type: DOS Demo
- file: INTRO.SEQ, type: DOS CD
- file: LEVEL1.MAP, type: DOS Floppy
- file: LEVEL1.LEV, type: Amiga (rejected by libretro port)
- file: DEMO.LEV, type: Amiga Demo (rejected by libretro port)

Technical notes

Game engine re-implementation of Flashback (Delphine Software, 1992) by Gregory Montoir, ported to libretro by Stuart Carnie. Version 0.3.6 (upstream is at 0.5.5).

The core sets need_fullpath = true and valid_extensions = "map" (libretro.cpp:66). Content loading (retro_load_game) extracts the parent directory from the provided .MAP file path and uses it as the data root via FileSystem (libretro.cpp:194-196).

Version detection (libretro.cpp:125-148) probes for these files in order: DEMO_UK.ABA -> DOS Demo INTRO.SEQ -> DOS CD LEVEL1.MAP -> DOS LEVEL1.LEV -> Amiga DEMO.LEV -> Amiga Demo Only kResourceTypeDOS is accepted (line 199); Amiga data is rejected.

Language detection (libretro.cpp:150-174) probes for: ENGCINE.TXT -> English FR_CINE.TXT -> French GERCINE.TXT -> German SPACINE.TXT -> Spanish ITACINE.TXT -> Italian FRCINE.TXT -> French (Amiga) Falls back to English if none found.

All game data files are loaded from the content directory via FileSystem (fs.cpp), which scans the directory and matches filenames case-insensitively (strcasecmp at fs.cpp:52). The resource system (resource.cpp) loads files by constructing names like "LEVEL1.MAP", "GLOBAL.ICN", "PERSO.SPR", "FB_TXT.FNT", etc.

The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All data files must live alongside the loaded .MAP content file. No BIOS or firmware files; the required files are the original Flashback DOS game data.

Music loaded from .mod files (mod_player.cpp, staticres.cpp:3198-3225). Optional; the core has a built-in SFX player for in-game action music (sfx_player.cpp with embedded music data in staticres.cpp).

VOICE.VCE from the SegaCD version can be placed in the data directory for in-game voice playback (resource.cpp:900-941). Optional.

SEQ cutscene playback is disabled in the libretro build: g_options is zero-initialized (game.cpp:30) and rs.cfg is never parsed, so use_seq_cutscenes defaults to false. The core always uses polygon-based cutscenes (cutscene.cpp).

Upstream (0.5.5) additionally supports Amiga, Macintosh, PC98 data, MIDI music, OGG playback, SEQ cutscenes, and widescreen modes. None of these are in the libretro port.

No BIOS or firmware files required.

Why no files

Game engine core. All data files (game data, music, voice) are loaded from the content directory alongside the .MAP file via FileSystem. The core never accesses the system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is never called). The .info declares firmware_count=0, consistent with the code.

Generated on 2026-03-25T14:56:43Z