Skip to content

# PicoDrive - RetroBIOS

Type | libretro
Classification | official_port
Source | https://github.com/libretro/picodrive
Upstream | https://github.com/irixxxx/picodrive
Version | 1.99
Profiled | 2026-03-24
Cores | picodrive
Systems | sega-megadrive, sega-genesis, sega-megacd, sega-segacd, sega-32x, sega-mastersystem, sega-gamegear, sega-sg1000, sega-sc3000, sega-pico

Platform details

megacd: - bios_size: 131072 - hle_available: False - region_specific: True - extensions_tried: ['.bin', '.zip'] - source_ref: pico/pico_int.h:559, platform/libretro/libretro.c:1309-1317 32x: - m68k_bios_size: 256 - master_sh2_bios_size: 2048 - slave_sh2_bios_size: 1024 - hle_available: True - source_ref: pico/pico.h:54-55, pico/pico_int.h:679-693 sms: - hle_available: True - note: No BIOS file loaded. VDP/RAM initialized to post-BIOS state. - source_ref: pico/sms.c:1080-1097

Technical notes

PicoDrive is a fast Mega Drive / Genesis emulator with Mega CD, 32X, Master System, Game Gear, SG-1000, SC-3000 and Sega Pico support. The libretro port is part of the PicoDrive source tree (platform/libretro/).

Mega CD / Sega CD games require a region-matching BIOS file. The core searches the system directory for each name in order, trying .bin then .zip extension, and uses the first file found. If no BIOS is found, CD games fail to load with PM_BAD_CD_NO_BIOS. MSU-MD games can run without BIOS.

BIOS filename search order (platform/libretro/libretro.c:1264-1328): US: us_scd2_9306, SegaCDBIOS9303, us_scd1_9210, bios_CD_U EU: eu_mcd2_9306, eu_mcd2_9303, eu_mcd1_9210, bios_CD_E JP: jp_mcd2_921222, jp_mcd1_9112, jp_mcd1_9111, bios_CD_J

32X BIOS files (m68k, master SH2, slave SH2) are fully optional. The engine has built-in HLE that generates replacement code at startup when the BIOS pointers are NULL (pico/32x/memory.c:2199 get_bios(), pico/32x/32x.c:172). No current frontend (libretro or standalone) loads these files; the standalone loading code is disabled (#if 0 in platform/common/emu.c:1529).

carthw.cfg is a cartridge hardware database loaded from the system directory. A built-in version is compiled into the core (pico/carthw_cfg.c). The external file supplements or overrides game-specific hardware detection (SVP, EEPROM types, special mappers, copy protection).

Master System, Game Gear, SG-1000, SC-3000: no BIOS file loaded. The core initializes VDP registers and RAM to simulate post-BIOS state (pico/sms.c:1080-1097).

16 files | 3 required, 13 optional | 10 in repo, 6 missing | 3 with HLE fallback

`carthw.cfg` -optional, missing from repo

- Source: `platform/libretro/libretro.c:1619, pico/cart.c:1020-1022`
- Cartridge hardware database for special mapper and EEPROM detection. Built-in fallback compiled into the core.

`us_scd2_9306.bin` -required

- System: sega-segacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1265`
- US Sega CD Model 2 BIOS (September 1993). First in US search order.

`SegaCDBIOS9303.bin` -optional, missing from repo

- System: sega-segacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1265`
- US Sega CD BIOS (March 1993). Second in US search order.

`us_scd1_9210.bin` -optional, missing from repo

- System: sega-segacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1265`
- US Sega CD Model 1 BIOS (October 1992). Third in US search order.

`bios_CD_U.bin` -optional

- System: sega-segacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1265`
- Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- US Sega CD BIOS (generic name). Last in US search order.

`eu_mcd2_9306.bin` -required

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1268`
- EU Mega CD Model 2 BIOS (June 1993). First in EU search order.

`eu_mcd2_9303.bin` -optional, missing from repo

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1268`
- EU Mega CD Model 2 BIOS (March 1993). Second in EU search order.

`eu_mcd1_9210.bin` -optional, missing from repo

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1268`
- EU Mega CD Model 1 BIOS (October 1992). Third in EU search order.

`bios_CD_E.bin` -optional

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1268`
- Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- EU Mega CD BIOS (generic name). Last in EU search order.

`jp_mcd2_921222.bin` -required

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1271`
- JP Mega CD Model 2 BIOS (December 1992). First in JP search order.

`jp_mcd1_9112.bin` -optional

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1271`
- JP Mega CD Model 1 BIOS (December 1991). Second in JP search order.

`jp_mcd1_9111.bin` -optional, missing from repo

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1271`
- JP Mega CD Model 1 BIOS (November 1991). Third in JP search order.

`bios_CD_J.bin` -optional

- System: sega-megacd
- Size: 128.0 KB
- Source: `platform/libretro/libretro.c:1271`
- Platforms: batocera, emudeck, lakka, recalbox, retroarch, retrobat, retrodeck, retropie
- JP Mega CD BIOS (generic name). Last in JP search order.

`32X_G_BIOS.BIN` -optional, HLE available

- System: sega-32x
- Size: 256 B
- Source: `pico/32x/memory.c:2206-2243`
- Platforms: retrobat, retrodeck
- 32X 68K (Genesis-side) BIOS. HLE replacement generated when NULL.

`32X_M_BIOS.BIN` -optional, HLE available

- System: sega-32x
- Size: 2.0 KB
- Source: `pico/32x/memory.c:2249-2276`
- Platforms: retrobat, retrodeck
- 32X Master SH2 BIOS. HLE replacement generated when NULL.

`32X_S_BIOS.BIN` -optional, HLE available

- System: sega-32x
- Size: 1.0 KB
- Source: `pico/32x/memory.c:2279-2297`
- Platforms: retrobat, retrodeck
- 32X Slave SH2 BIOS. HLE replacement generated when NULL.

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