Files
libretro/emulators/blastem.yml
Abdessamad Derraz de1940d57c feat: hle_fallback on 39 emulator profiles (266 entries)
Batch analysis of all 273 profiles to identify HLE/embedded
fallbacks. Added hle_fallback: true where the core has verified
software replacement for missing BIOS files:

- Embedded ROMs: vice (102), ep128emu (22), fuse (18), frodo (4)
- HLE BIOS: bsnes* (33 across 3 profiles), puae (9 AROS),
  noods (4), melonds* (6 FreeBIOS), flycast (3 reios)
- Open-source replacements: sameboy (8), pokemini (1), gpsp (1)
- Built-in fallbacks: np2kai (7), atari800 (6 Altirra),
  picodrive (3), quasi88 (4), gambatte (2)

Conservative: only added where notes or source code confirm HLE.
Skipped 50+ profiles where files are optional alternatives, not
HLE replaceable (neocd, opera, kronos, pcem, etc.)
2026-03-19 13:03:48 +01:00

82 lines
3.0 KiB
YAML

emulator: BlastEm
type: standalone + libretro
source: "https://github.com/libretro/blastem"
upstream: "https://www.retrodev.com/blastem/"
profiled_date: "2026-03-18"
core_version: "v0.6.3-pre"
display_name: "Sega - Mega Drive - Genesis (BlastEm)"
cores:
- blastem
systems:
- sega-megadrive
- sega-mastersystem
notes: |
BlastEm is a cycle-accurate Sega Mega Drive/Genesis emulator with basic
Master System support. In standalone mode it supports TMSS ROM loading and
multiple hardware models (MD1 VA0 through MD3 VA2, Teradrive). The Jaguar
emulator (blastjag) is a separate standalone binary, not part of the
libretro core.
The libretro port (libblastem.c) does NOT expose any core options and
defaults to model md1va3 which has TMSS disabled. There is no way to
select a TMSS-enabled model through the libretro interface.
Even if a TMSS-enabled model were forced, read_bundled_file() in the
libretro build only serves rom.db and returns NULL for tmss.md, so TMSS
ROM loading would fail (fatal_error at genesis.c:1923).
Sega CD / Mega CD is not supported (only a TODO comment in system.c:16).
No BIOS files are required or loaded by the libretro core.
files:
# rom.db is embedded in the libretro binary (libblastem.c:532-540,
# extern const char rom_db_data[]). The external file is an optional
# override — .info lists it as firmware0_opt=true.
# .info sha1 E5414FB1C4CC7D7F5101C07E4547316779BA3D97 does not match
# the version in our repo (sha1 02c287d1...) — rom.db changes between
# BlastEm releases.
- name: rom.db
system: sega-megadrive
required: false
hle_fallback: true
note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override."
source_ref: "libblastem.c:532-540 read_bundled_file()"
# TMSS ROM — only used in standalone mode with tmss-enabled model
# libretro build returns NULL for tmss.md (libblastem.c:541)
- name: tmss.md
system: sega-megadrive
required: false
mode: standalone
size: 2048
note: "TMSS startup ROM. Standalone only (models md1va6, md2va1+). Libretro core uses md1va3 (tmss off), no way to change."
source_ref: "genesis.c:1910-1923"
analysis:
tmss:
standalone_support: true
libretro_support: false
default_model: md1va3
default_tmss: "off"
rom_filename: tmss.md
rom_size: 2048 # 2 KB
config_path: "system\0tmss_path\0"
source_ref: "genesis.c:1910"
notes: |
TMSS ROM is loaded from tmss.md (configurable via system/tmss_path).
Models with tmss=on: md1va6, md2va1, md2va2, md3va1, md3va2.
Models with tmss=off: md1va0, md1va3 (default), teradrive.
The libretro build uses md1va3 (tmss off) with no option to change.
sega_cd:
supported: false
source_ref: "system.c:16"
notes: "TODO comment only: 'Differentiate between vanilla Genesis and Sega CD/32X games'"
jaguar_bios:
libretro_relevant: false
notes: |
blastjag (jaguar.c) is a separate standalone binary, not compiled
into the libretro core. Requires BIOS as first CLI argument.