mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
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.
300 lines
15 KiB
YAML
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)"
|