feat: add 10 emulator profiles (batch 4)
blastem (MD, no BIOS needed), dosbox_pure (14 MT-32 ROMs + SF2),
desmume (NDS, 3 files all HLE), cap32 (CPC, all embedded),
mu (Palm OS, 5 ROMs), bk (Elektronika BK, 9 Soviet ROMs),
gearsystem (SMS/GG, 2 optional boot ROMs),
beetle_ngp (Neo Geo Pocket, pure HLE), beetle_wswan (WonderSwan, pure HLE),
galaksija (Yugoslav computer, all embedded)
51 total profiles. Cross-reference: 658 undeclared, 177 in repo.
2026-03-17 19:27:35 +01:00
|
|
|
emulator: BlastEm
|
feat: core profiles, data_dirs buildbot, cross_ref fix
profiles: amiberry (new), amiarcadia, atari800, azahar, b2,
bk, blastem, bluemsx, freeintv updated with source refs,
upstream field, mode field, data_directories.
_data_dirs.yml: buildbot source for retroarch platforms,
strip_components for nested ZIPs, freeintv-overlays fixed.
cross_reference.py: data_directories-aware gap analysis,
suppresses false gaps when emulator+platform share refs.
refresh_data_dirs.py: ZIP strip_components support,
for_platforms filter, ETag freshness for buildbot.
scraper: bluemsx single ref, freeintv overlays injection.
generate_pack.py: warning on missing data directory cache.
2026-03-18 21:20:02 +01:00
|
|
|
type: standalone + libretro
|
2026-03-23 10:58:32 +01:00
|
|
|
core_classification: official_port
|
feat: add 10 emulator profiles (batch 4)
blastem (MD, no BIOS needed), dosbox_pure (14 MT-32 ROMs + SF2),
desmume (NDS, 3 files all HLE), cap32 (CPC, all embedded),
mu (Palm OS, 5 ROMs), bk (Elektronika BK, 9 Soviet ROMs),
gearsystem (SMS/GG, 2 optional boot ROMs),
beetle_ngp (Neo Geo Pocket, pure HLE), beetle_wswan (WonderSwan, pure HLE),
galaksija (Yugoslav computer, all embedded)
51 total profiles. Cross-reference: 658 undeclared, 177 in repo.
2026-03-17 19:27:35 +01:00
|
|
|
source: "https://github.com/libretro/blastem"
|
feat: core profiles, data_dirs buildbot, cross_ref fix
profiles: amiberry (new), amiarcadia, atari800, azahar, b2,
bk, blastem, bluemsx, freeintv updated with source refs,
upstream field, mode field, data_directories.
_data_dirs.yml: buildbot source for retroarch platforms,
strip_components for nested ZIPs, freeintv-overlays fixed.
cross_reference.py: data_directories-aware gap analysis,
suppresses false gaps when emulator+platform share refs.
refresh_data_dirs.py: ZIP strip_components support,
for_platforms filter, ETag freshness for buildbot.
scraper: bluemsx single ref, freeintv overlays injection.
generate_pack.py: warning on missing data directory cache.
2026-03-18 21:20:02 +01:00
|
|
|
upstream: "https://www.retrodev.com/blastem/"
|
2026-03-23 10:58:32 +01:00
|
|
|
profiled_date: "2026-03-23"
|
2026-03-18 05:19:57 +01:00
|
|
|
core_version: "v0.6.3-pre"
|
|
|
|
|
display_name: "Sega - Mega Drive - Genesis (BlastEm)"
|
feat: add 10 emulator profiles (batch 4)
blastem (MD, no BIOS needed), dosbox_pure (14 MT-32 ROMs + SF2),
desmume (NDS, 3 files all HLE), cap32 (CPC, all embedded),
mu (Palm OS, 5 ROMs), bk (Elektronika BK, 9 Soviet ROMs),
gearsystem (SMS/GG, 2 optional boot ROMs),
beetle_ngp (Neo Geo Pocket, pure HLE), beetle_wswan (WonderSwan, pure HLE),
galaksija (Yugoslav computer, all embedded)
51 total profiles. Cross-reference: 658 undeclared, 177 in repo.
2026-03-17 19:27:35 +01:00
|
|
|
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.
|
|
|
|
|
|
feat: core profiles, data_dirs buildbot, cross_ref fix
profiles: amiberry (new), amiarcadia, atari800, azahar, b2,
bk, blastem, bluemsx, freeintv updated with source refs,
upstream field, mode field, data_directories.
_data_dirs.yml: buildbot source for retroarch platforms,
strip_components for nested ZIPs, freeintv-overlays fixed.
cross_reference.py: data_directories-aware gap analysis,
suppresses false gaps when emulator+platform share refs.
refresh_data_dirs.py: ZIP strip_components support,
for_platforms filter, ETag freshness for buildbot.
scraper: bluemsx single ref, freeintv overlays injection.
generate_pack.py: warning on missing data directory cache.
2026-03-18 21:20:02 +01:00
|
|
|
files:
|
2026-03-23 10:58:32 +01:00
|
|
|
# rom.db is embedded in the libretro binary (libblastem.c:532-542,
|
feat: core profiles, data_dirs buildbot, cross_ref fix
profiles: amiberry (new), amiarcadia, atari800, azahar, b2,
bk, blastem, bluemsx, freeintv updated with source refs,
upstream field, mode field, data_directories.
_data_dirs.yml: buildbot source for retroarch platforms,
strip_components for nested ZIPs, freeintv-overlays fixed.
cross_reference.py: data_directories-aware gap analysis,
suppresses false gaps when emulator+platform share refs.
refresh_data_dirs.py: ZIP strip_components support,
for_platforms filter, ETag freshness for buildbot.
scraper: bluemsx single ref, freeintv overlays injection.
generate_pack.py: warning on missing data directory cache.
2026-03-18 21:20:02 +01:00
|
|
|
# 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
|
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
|
|
|
hle_fallback: true
|
feat: core profiles, data_dirs buildbot, cross_ref fix
profiles: amiberry (new), amiarcadia, atari800, azahar, b2,
bk, blastem, bluemsx, freeintv updated with source refs,
upstream field, mode field, data_directories.
_data_dirs.yml: buildbot source for retroarch platforms,
strip_components for nested ZIPs, freeintv-overlays fixed.
cross_reference.py: data_directories-aware gap analysis,
suppresses false gaps when emulator+platform share refs.
refresh_data_dirs.py: ZIP strip_components support,
for_platforms filter, ETag freshness for buildbot.
scraper: bluemsx single ref, freeintv overlays injection.
generate_pack.py: warning on missing data directory cache.
2026-03-18 21:20:02 +01:00
|
|
|
note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override."
|
2026-03-23 10:58:32 +01:00
|
|
|
source_ref: "libblastem.c:532-542 read_bundled_file()"
|
feat: core profiles, data_dirs buildbot, cross_ref fix
profiles: amiberry (new), amiarcadia, atari800, azahar, b2,
bk, blastem, bluemsx, freeintv updated with source refs,
upstream field, mode field, data_directories.
_data_dirs.yml: buildbot source for retroarch platforms,
strip_components for nested ZIPs, freeintv-overlays fixed.
cross_reference.py: data_directories-aware gap analysis,
suppresses false gaps when emulator+platform share refs.
refresh_data_dirs.py: ZIP strip_components support,
for_platforms filter, ETag freshness for buildbot.
scraper: bluemsx single ref, freeintv overlays injection.
generate_pack.py: warning on missing data directory cache.
2026-03-18 21:20:02 +01:00
|
|
|
|
|
|
|
|
# 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"
|
feat: add 10 emulator profiles (batch 4)
blastem (MD, no BIOS needed), dosbox_pure (14 MT-32 ROMs + SF2),
desmume (NDS, 3 files all HLE), cap32 (CPC, all embedded),
mu (Palm OS, 5 ROMs), bk (Elektronika BK, 9 Soviet ROMs),
gearsystem (SMS/GG, 2 optional boot ROMs),
beetle_ngp (Neo Geo Pocket, pure HLE), beetle_wswan (WonderSwan, pure HLE),
galaksija (Yugoslav computer, all embedded)
51 total profiles. Cross-reference: 658 undeclared, 177 in repo.
2026-03-17 19:27:35 +01:00
|
|
|
|
|
|
|
|
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.
|