Files
libretro/emulators/teknoparrot.yml
T
Abdessamad Derraz 499c81a8de fix: prove the boot.id gate in TeknoParrot cxbxr
The media board ROM ref now cites the XBE directory build, the boot.id
exists test that makes the system Chihiro and the gate that skips the
ROM checks in TeknoParrot's cxbxr-emu.dll.
2026-11-10 14:17:08 +01:00

300 lines
15 KiB
YAML

emulator: TeknoParrot
type: standalone
core_classification: other
source: "https://github.com/teknogods/TeknoParrotUI"
upstream: closed-source
author: "TeknoGods"
profiled_date: "2026-10-20"
source_commit: "b75872addc1d5cce81a62f4c1468eab59e2d3cbe"
upstream_gone: "teknogods/TeknoParrotUI answers 404 on the API and the web, and the teknogods organisation no longer lists it. Observed 2026-11-06. thecrixux/TeknoParrotUI keeps master at the analysed commit."
source_mirror: "https://github.com/thecrixux/TeknoParrotUI"
core_version: "TeknoParrotUI 7ffcdf1"
version_basis:
kind: unverified
why: host_gone
display_name: "Arcade - PC-based and Sega/Namco boards (TeknoParrot)"
cores:
- teknoparrot
systems:
- sega-naomi
- sega-naomi2
- sega-naomigd
- sammy-atomiswave
- sega-hikaru
- sega-chihiro
- sega-triforce
- sega-lindbergh
- namco-system246
- namco-system256
- namco-system357
mode: standalone
notes: |
Launcher and emulator suite for arcade boards. TeknoParrotUI is open source
and read here at its pinned commit. It runs a game through one of the
components its updater installs from the releases of teknogods/TeknoParrot,
every one of them closed source: the TeknoParrot and ElfLdr2 loaders for
PC-based and Lindbergh boards, forks of Dolphin (Triforce), Play! and PCSX2x6
(Namco System 246/256), RPCS3 (Namco System 357/369) and Cxbx-Reloaded
(Chihiro), and a family of board emulators named Tekno* (TeknoNaomi,
TeknoMVS, TeknoCPS, TeknoModel2 and others).
ref: TeknoParrotUi/MainWindow.xaml.cs:509-669,
TeknoParrotUi.Common/EmulatorType.cs:9-67
RetroBat starts TeknoParrotUi.exe and picks the component by the core name:
triforce, pcsx2x6, play, namco2x6, namco3xx, chihiro, or none for the
loaders. For Triforce, System 2x6 and Chihiro the game image itself is
written as the profile's game path.
ref: emulatorlauncher emulatorLauncher/Generators/TeknoParrot.generator.cs:177-201,
emulatorlauncher emulatorLauncher/Generators/TeknoParrot.generator.cs:266-270
The components read here are the release assets of 2026-10: TeknoNaomi
0.1.0.5, pcsx2x6 1.0.0.11, RPCS3 1.0.0.7, cxbxr 1.0.0.20, CrediarDolphin
1.0.0.10, Play 1.0.0.34 and TeknoParrotElfLdr2Core 1.0.0.1472. TeknoNaomi,
TeknoMVS, TeknoModel2 and TeknoS11 are protected with VMProtect
(release-manifest.json "protected": true) and expose no ROM name, size or
hash to a static read. The TeknoParrot and ElfLdr2 loaders name no
firmware either.
TeknoNaomi takes --set, --rom-root (the folder of the selected game ZIP) and
--chd-root. Its catalog, exported into TeknoParrotUI, gives each of the 349
sets the ordered list of romsets it opens under the ROM root: the set, its
parent, then a BIOS set. Nine BIOS sets close those lists. Their members and
hashes live only inside the protected binary.
ref: TeknoParrotUi.Common/TeknoNaomiCatalog.cs:17-372,
TeknoParrotUi.Common/TeknoNaomiLaunch.cs:56-77,
TeknoParrotUi.Common/TeknoNaomiLaunch.cs:90-98
The pcsx2x6 component is ReaverTeknoGods/pcsx2x6 at
c6e731ac0b9859011d358c021b7e2c9c95296a93 (the build reports
v0.0.22-24-gc6e731ac0), a fork of PS2Homebrew-arcade/pcsx2x6 whose merge
base with it is 956d4c66b0ac2eaefe7591a763f7b3cc80d1eae1. The release ships
portable.txt, and an empty portable.txt puts the data root in a TeknoParrot
folder beside the executable, so the BIOS folder is pcsx2x6/TeknoParrot/bios.
ref: pcsx2x6 pcsx2/Pcsx2Config.cpp:2196-2202, pcsx2x6 pcsx2/Pcsx2Config.cpp:2311
Play! runs System 246/256 games from its arcadedefs (dongle, CD or HDD image)
with HLE and loads no BIOS. CrediarDolphin ships Sys/Triforce/segaboot.gcm,
which it opens for the test menus, and the free DSP ROMs in Sys/GC. The
RPCS3 fork refuses to boot without installed PS3 firmware ("Missing Firmware
Detected!"). The cxbxr fork keeps the Chihiro media board files of
Cxbx-Reloaded under EmuMediaBoard.
Not documented: the BIOS sets of TeknoMVS, TeknoCPS, TeknoSS32 and the other
Tekno* board emulators. TeknoParrotUI names only the game ZIP for them
(ExecutableName in GameProfiles) and the binaries are protected.
files:
# TeknoNaomi BIOS sets, read from the ROM root beside the game ZIP
- name: naomi.zip
required: true
category: bios_zip
system: sega-naomi
description: "NAOMI BIOS"
note: "Last media directory of 160 catalog sets."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:22, TeknoParrotUi.Common/TeknoNaomiLaunch.cs:56-77"
- name: naomi2.zip
required: true
category: bios_zip
system: sega-naomi2
description: "NAOMI 2 BIOS"
note: "Last media directory of 45 catalog sets."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:42"
- name: naomigd.zip
required: true
category: bios_zip
system: sega-naomigd
description: "NAOMI GD-ROM BIOS"
note: "Last media directory of 92 catalog sets, the GD-ROM games whose disk images are read from --chd-root."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:38"
- name: awbios.zip
required: true
category: bios_zip
system: sammy-atomiswave
description: "Atomiswave BIOS"
note: "Last media directory of 34 catalog sets."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:31"
- name: hikaru.zip
required: true
category: bios_zip
system: sega-hikaru
description: "Hikaru BIOS"
note: "Last media directory of 8 catalog sets."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:363"
- name: hod2bios.zip
required: true
category: bios_zip
system: sega-naomi
description: "The House of the Dead 2 BIOS"
note: "Last media directory of hotd2, hotd2e, hotd2o and hotd2p."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:123-126"
- name: f355bios.zip
required: true
category: bios_zip
system: sega-naomi
description: "Ferrari F355 Challenge twin BIOS"
note: "Last media directory of f355twin, f355twinp and f355twn2."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:100-102"
- name: f355dlx.zip
required: true
category: bios_zip
system: sega-naomi
description: "Ferrari F355 Challenge deluxe BIOS"
note: "Last media directory of f355 and f355p."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:98-99"
- name: airlbios.zip
required: true
category: bios_zip
system: sega-naomi
description: "Airline Pilots deluxe BIOS"
note: "Last media directory of alpilot."
source_ref: "TeknoParrotUi.Common/TeknoNaomiCatalog.cs:29"
# pcsx2x6 component, System 246/256 (RetroBat core pcsx2x6)
- name: COH-H31100.rom0
found_by: content
path: "pcsx2x6/TeknoParrot/bios/COH-H31100.rom0"
system: namco-system246
required: true
min_size: 4194304
max_size: 8388608
validation: [size, romdir]
romdir:
reset_compare: 10
missing_reset: ends_walk
terminated_names: true
extinfo: true
unreadable_romver: ends_walk
truncated_walk: ends_walk
description: "COH-H arcade board BIOS"
aliases:
- COH-H31000.BIN
- 246C.bin
- 256.BIN
note: >-
Found by content: the BIOS folder is listed with a * mask, files outside 4
to 8 MB are skipped, and the first whose romdir holds RESET and a readable
ROMVER is used. The boot stops when none loads. The name is the one the
board dumper writes. The aliases are the three board dumps held here.
source_ref: "pcsx2x6 pcsx2/ps2/BiosTools.cpp:16-17, pcsx2x6 pcsx2/ps2/BiosTools.cpp:80-206, pcsx2x6 pcsx2/ps2/BiosTools.cpp:267-291, pcsx2x6 pcsx2/VMManager.cpp:1663-1676"
- name: COH-H31100.rom1
path: "pcsx2x6/TeknoParrot/bios/COH-H31100.rom1"
system: namco-system246
required: false
max_size: 4194304
description: "ROM1 board region"
note: "Tried as {bios}.rom1 then {biosbase}.rom1, read into the 4 MB ROM1 region. Skipped when absent."
source_ref: "pcsx2x6 pcsx2/ps2/BiosTools.cpp:223-250, pcsx2x6 pcsx2/ps2/BiosTools.cpp:375"
- name: COH-H31100.rom2
path: "pcsx2x6/TeknoParrot/bios/COH-H31100.rom2"
system: namco-system246
required: false
max_size: 4194304
description: "ROM2 board region"
note: "Tried as {bios}.rom2 then {biosbase}.rom2, read into the 4 MB ROM2 region. Skipped when absent."
source_ref: "pcsx2x6 pcsx2/ps2/BiosTools.cpp:223-250, pcsx2x6 pcsx2/ps2/BiosTools.cpp:376"
- name: COH-H31100.nvm
path: "pcsx2x6/TeknoParrot/bios/COH-H31100.nvm"
aliases:
- COH-H31000.NVM
- 246C.nvm
- 256.NVM
system: namco-system246
required: false
hle_fallback: true
size: 1024
description: "Board NVRAM"
note: "The BIOS path with its extension replaced by nvm. A default image is built when it cannot be read, and a hardcoded iLinkId stands in when the file carries none."
source_ref: "pcsx2x6 pcsx2/CDVD/CDVD.cpp:164-167, pcsx2x6 pcsx2/CDVD/CDVD.cpp:169-196"
- name: COH-H31100.mec
path: "pcsx2x6/TeknoParrot/bios/COH-H31100.mec"
aliases:
- COH-H31000.MEC
- 246C.mec
- 256.MEC
system: namco-system246
required: false
hle_fallback: true
size: 4
description: "Mechacon version"
note: "The BIOS path with its extension replaced by mec. Written with the default mechacon version when absent."
source_ref: "pcsx2x6 pcsx2/CDVD/CDVD.cpp:196-211"
# RPCS3 component, System 357/369 (RetroBat core namco3xx)
- name: PS3UPDAT.PUP
system: namco-system357
required: true
storage: large_file
description: "PlayStation 3 system software update"
note: "Installed into dev_flash through Install firmware from PS3UPDAT.PUP. Without dev_flash/sys/external/liblv2.sprx the boot stops and the \"Missing Firmware Detected!\" dialog asks for PS3UPDAT.PUP."
source_ref: "RPCS3 1.0.0.7 rpcs3.exe (sha256 89990c08039bdb21) Emulator::Load 0x14109dac2-0x14109db62 (ppu_exec ok and fs::is_file of dev_flash sys/external/liblv2.sprx false), 0x14109dbc0-0x14109dbd2 (an LLE firmware module is configured), 0x14109dc75-0x14109dced (Kill, then on_missing_fw on the main thread, boot ends), main_window 0x140cc6b50-0x140cc6b82 (Missing Firmware Detected! dialog), HandlePupInstallation 0x140cc1456: 0x140cc15a7 (fs::file open of the selected PUP), 0x140cc15ff (could not be opened), 0x140cc1635-0x140cc16d3 (pup_object parse: empty, not a PUP, incomplete)"
# cxbxr component, Chihiro (RetroBat core chihiro)
- name: fpr21042_m29w160et.bin
path: "EmuMediaBoard/fpr21042_m29w160et.bin"
system: sega-chihiro
required: true
size: 2097152
validation: [size]
description: "Chihiro media board flash ROM"
note: "Opened when a title is started directly (boot flags zero), the system is Chihiro and a boot.id sits beside the XBE. The emulator aborts when it is missing or not 2 MB, then writes the two SEGABOOT halves out of it when they are absent."
source_ref: "cxbxr 1.0.0.20 cxbxr-emu.dll (sha256 4396e61e874359c9) FUN_100c2dc0 0x100c2dc0-0x100c2dfa (static std::string fpr21042_m29w160et.bin), FUN_103deed0 0x103df12c-0x103df16c (xbeDirectory, parent_path FUN_10200420 of the XBE path), 0x103df408-0x103df4d4 (auto detect: XbeType 0, 1 or other gives system 2, 4 or 8, then filesystem::exists FUN_100cbc80 of xbeDirectory / boot.id, string 0x10652c54, sets 8 Chihiro), 0x103df572-0x103df646 (BootFlags zero, system 8 and a second exists of xbeDirectory / boot.id, otherwise jump to 0x103dfa07 past the ROM block), 0x103df6a7-0x103df72d (EmuMediaBoard path plus that name, exists check, CxbxrAbort Chihiro Media Board ROM could not be found), 0x103df744-0x103df769 (fopen, abort when it fails), 0x103df777-0x103df7b2 (fseek end, ftell, abort unless 0x200000), 0x103df83a-0x103df92e (SEGABOOT halves written when absent)"
- name: ic10_g24lc64.bin
path: "EmuMediaBoard/Chihiro/ic10_g24lc64.bin"
system: sega-chihiro
required: true
description: "Base board QC microcontroller firmware"
note: "\"Failed to load base board firmware\" and abort when it cannot be loaded."
source_ref: "cxbxr 1.0.0.20 cxbxr-emu.dll (sha256 4396e61e874359c9) FUN_102d0f70 0x102d10ae-0x102d10d7 (std::string ic10_g24lc64.bin), 0x102d12f7-0x102d13d6 (EmuMediaBoard\\Chihiro path, fopen and mapped-file helper FUN_102d0bf0 into 0x1070e560), 0x102d1461-0x102d1465 and 0x102d1af1-0x102d1b04 (CxbxrAbort Failed to load base board firmware)"
- name: pc20_g24lc64.bin
path: "EmuMediaBoard/Chihiro/pc20_g24lc64.bin"
system: sega-chihiro
required: true
description: "Base board SC microcontroller firmware"
note: "\"Failed to load base board qc firmware\" and abort when it cannot be loaded."
source_ref: "cxbxr 1.0.0.20 cxbxr-emu.dll (sha256 4396e61e874359c9) FUN_102d0f70 0x102d10ff-0x102d1128 (std::string pc20_g24lc64.bin), 0x102d1496-0x102d1576 (path, FUN_102d0bf0 into 0x1070e590), 0x102d15d1-0x102d15d5 and 0x102d1b0e-0x102d1b21 (CxbxrAbort Failed to load base board qc firmware)"
- name: ic11_24lc024.bin
path: "EmuMediaBoard/Chihiro/ic11_24lc024.bin"
system: sega-chihiro
required: true
description: "Base board configuration EEPROM"
note: "\"Failed to load base board EEPROM\" and abort when it cannot be loaded."
source_ref: "cxbxr 1.0.0.20 cxbxr-emu.dll (sha256 4396e61e874359c9) FUN_102d0f70 0x102d1150-0x102d117c (std::string ic11_24lc024.bin), 0x102d1606-0x102d1669 (path, FUN_102d0bf0 into 0x1070e578), 0x102d1688-0x102d168c and 0x102d1b2b-0x102d1b3e (CxbxrAbort Failed to load base board EEPROM)"
- name: backup_ram.bin
path: "EmuMediaBoard/Chihiro/backup_ram.bin"
system: sega-chihiro
required: false
unsourceable: "written by the emulator, no canonical file"
has_builtin: true
description: "Base board backup memory"
note: "Created by the emulator as 128 KiB of zeros when absent (\"Could not create Backup File\" on failure), then loaded."
source_ref: "cxbxr 1.0.0.20 cxbxr-emu.dll (sha256 4396e61e874359c9) FUN_102d0f70 0x102d1180-0x102d11c2 (std::string backup_ram.bin), 0x102d16eb-0x102d1725 (exists check), 0x102d1789-0x102d17cb (fopen, fseek 0x1ffff, fputc 0, fclose), 0x102d17ad and 0x102d1b4d-0x102d1b60 (CxbxrAbort Could not create Backup File), 0x102d1865 and 0x102d1887-0x102d188b, 0x102d1b6a-0x102d1b7d (FUN_102d0bf0 load, CxbxrAbort Failed to load base board BACKUP RAM)"
# CrediarDolphin component, Triforce (RetroBat core triforce)
- name: segaboot.gcm
path: "CrediarDolphin/Sys/Triforce/segaboot.gcm"
system: sega-triforce
required: false
bundled: true
size: 2097152
sha1: "87918619c632ac9de270d4fdf396a57eb57fc620"
description: "Triforce boot program"
note: "Shipped in the CrediarDolphin 1.0.0.10 release. User/Triforce/segaboot.gcm is preferred when present. Read into the media board firmware for the test menus, \"Failed to open segaboot.gcm, which is required for test menus\" and no test menu otherwise."
source_ref: "CrediarDolphin Source/Core/Core/HW/DVD/AMMediaboard.cpp:498-526 at ReaverTeknoGods/CrediarDolphin 44afbabf7135303e9a29805f4b0bc12080545d3a (the revision Dolphin.exe 1.0.0.10, sha256 d7e5a7fe2989c7db, reports as its build and whose message it carries)"