mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 15:43:45 -06:00
Each standalone profile records where its version is read: the source at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package), or, where no reading can be made, kind unverified with the reason: a host the tools cannot read, a forge gone or not answering, no build recorded as read, a pin on another branch. Those keep their value, unconfirmed.
202 lines
9.7 KiB
YAML
202 lines
9.7 KiB
YAML
emulator: "Pizza Boy SC"
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboyscpro"
|
|
upstream: closed-source
|
|
version_source:
|
|
url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboyscpro&hl=en"
|
|
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
|
|
no_genuine_copy: "1.4.34"
|
|
author: "Pizza Emulators"
|
|
profiled_date: "2026-10-20"
|
|
core_version: "1.2.14"
|
|
version_basis:
|
|
kind: package
|
|
url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboyscbasic"
|
|
artifact: "it.dbtecno.pizzaboyscbasic XAPK versionName (versionCode 43)"
|
|
display_name: "Sega - MS/GG/MD/CD (Pizza Boy SC)"
|
|
mode: standalone
|
|
cores:
|
|
- "pizza-boy-sc"
|
|
- "Pizza Boy SC"
|
|
- "PIZZA-BOY-SC"
|
|
- "it.dbtecno.pizzaboyscpro"
|
|
- "it.dbtecno.pizzaboyscbasic"
|
|
systems:
|
|
- sega-mastersystem
|
|
- sega-gamegear
|
|
- sega-megadrive
|
|
- sega-megacd
|
|
|
|
notes: |
|
|
Two Android packages, closed source, sold and given away on Google Play under the
|
|
Pizza Boy SC name, reached by ES-DE through its PIZZA-BOY-SC find rule and started
|
|
with the game passed as the rom_uri extra: it.dbtecno.pizzaboyscpro, the paid build
|
|
the rule names first, and it.dbtecno.pizzaboyscbasic, the free one. The build read
|
|
here is Basic 1.2.14 (versionCode 43), the Play split set Uptodown serves as an XAPK,
|
|
every split carrying the source stamp and signed by the Play App Signing certificate
|
|
sha256 5ae32245362ccafab6977e759f658dda66bac81cebdd804581cb55db2f219149, the one
|
|
Basic 1.2.4 carried. The Pro on the store is 1.4.34 and no genuine copy of it is
|
|
reachable: apkcombo no longer resolves, the APKPure API holds no entry for either
|
|
package, APKMirror and Uptodown carry no Pro build, archive.org holds none, and the
|
|
one apkvision copy, labelled Pro 1.3.7, is signed CN=APKVISION.ORG with no source
|
|
stamp and was rejected. The Basic library serves both packages: besides its own
|
|
entry points it exports Java_it_dbtecno_pizzaboyscpro_MainActivity_jniEnableCallback
|
|
and Java_it_dbtecno_pizzaboyscpro_MainActivity_jniEnableMultiplayerCallback.
|
|
|
|
The core is libsc.so, a Rust tree built as one workspace whose compilation units
|
|
are named in its own panic and log records: emulated/systems/genesis,
|
|
emulated/systems/sms, emulated/systems/mega_cd, emulated/components/cdrom,
|
|
emulated/common and frontend/android. The arm64-v8a build shipped in the split is
|
|
stripped and carries no DWARF, so the file and line of every reference below comes
|
|
from the file and line constants the Rust log calls load and the Location records
|
|
the panic paths embed. Four machines run: engine start compares the system name
|
|
against SMS, GameGear and SegaCD and falls through to Genesis, the branches logging
|
|
at lib.rs:569, 590 and 602, which covers Master System and Mark III, Game Gear, Mega
|
|
Drive and Genesis, and Mega CD and Sega CD. Discs are read from cue and chd images
|
|
through components/cdrom.
|
|
|
|
Four BIOS slots exist, one per machine, set in one call whose log reads
|
|
"jni setBIOSFiles sms: {} gg: {} cd: {} md: {}" (lib.rs:475). A fifth setter stores
|
|
a single path in a slot of its own that engine start never reads (lib.rs:467), and
|
|
setBIOSBoot logs "TODO jni setBIOSboot" and does nothing (lib.rs:493). Each branch
|
|
reads the slots its machines use, the Master System one reading the Game Gear slot
|
|
as well, and an empty slot is an ordinary case for Master System, Game Gear and Mega
|
|
Drive.
|
|
Only the Mega CD slot is mandatory: without it the run stops at "MegaCD Bios not
|
|
provided" (lib.rs:616) and engine start returns its failure code.
|
|
|
|
The Mega CD image is the only file the core examines. It is read as a plain file and
|
|
its length compared with 131072, then handed to the machine, which reads it again,
|
|
repeats the same comparison and panics on a mismatch
|
|
(megacd_main_machine.rs:169-178). Nothing else about it is tested: no name, no
|
|
header, no hash, and no region, the Game Region setting being passed separately as
|
|
jap, usa or eu and never selecting a file.
|
|
|
|
The user supplies each file through the document picker, which filters nothing:
|
|
the chosen document is copied into the application temp directory under the name
|
|
the picker reports, or, when that name ends in zip, the first entry is extracted
|
|
there instead, and the absolute path of the copy is stored. In the free package the
|
|
BIOS preferences are declared android:enabled="false" behind a paid badge, and its
|
|
Java never hands a path to the core.
|
|
|
|
Everything else the app opens it makes itself: the default skins, the cheat
|
|
descriptors and the two shaders are raw resources unpacked at first run, and the
|
|
box art, cheat, layout, sticker and per-ROM databases are created by their own
|
|
CREATE TABLE.
|
|
|
|
files:
|
|
- name: bios_CD_U.bin
|
|
system: sega-megacd
|
|
required: true
|
|
agnostic: true
|
|
variant_group: "megacd-boot-rom"
|
|
size: 131072
|
|
validation: [size]
|
|
description: "Sega CD boot ROM"
|
|
note: >-
|
|
Chosen from any location under any name through the document picker, or, when
|
|
the picked document is named .zip, taken from its first entry. The stored path
|
|
is read at engine start and the byte count compared with 131072, and the machine
|
|
compares it a second time and panics when it differs. An absent path ends the
|
|
run with "MegaCD Bios not provided", an empty one with "MegaCD BIOS path is
|
|
missing", a failed read with "Error loading BIOS file", and a wrong length with
|
|
"Invalid BIOS len". The core holds one Mega CD slot and applies no other test,
|
|
so the boot ROM of any region satisfies it. The three are listed because the
|
|
region of the discs decides which one has to be installed.
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:475
|
|
(four slot handoff), :569 (SegaCD branch), :616 (absent), :619 (validation
|
|
entry), :625 (empty path), :632 (read failure), :644 (length), :648 (accepted);
|
|
emulated/systems/mega_cd/src/megacd_main_machine.rs:169-178 (second read, length
|
|
test and panic); SettingsActivity.java:176-224 (picker, zip entry, stored path),
|
|
yg.java:1591-1626 (first file entry), res/xml/pref_general.xml:129-152
|
|
(preferences and defaults)"
|
|
|
|
- name: bios_CD_E.bin
|
|
system: sega-megacd
|
|
required: true
|
|
agnostic: true
|
|
variant_group: "megacd-boot-rom"
|
|
size: 131072
|
|
validation: [size]
|
|
description: "Mega CD boot ROM"
|
|
note: >-
|
|
Same slot, same picker and same length test as the other Mega CD boot ROMs.
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:619-648,
|
|
emulated/systems/mega_cd/src/megacd_main_machine.rs:169-178"
|
|
|
|
- name: bios_CD_J.bin
|
|
system: sega-megacd
|
|
required: true
|
|
agnostic: true
|
|
variant_group: "megacd-boot-rom"
|
|
size: 131072
|
|
validation: [size]
|
|
description: "Mega CD boot ROM (Japan)"
|
|
note: >-
|
|
Same slot, same picker and same length test as the other Mega CD boot ROMs.
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:619-648,
|
|
emulated/systems/mega_cd/src/megacd_main_machine.rs:169-178"
|
|
|
|
- name: bios_U.sms
|
|
system: sega-mastersystem
|
|
required: false
|
|
agnostic: true
|
|
variant_group: "mastersystem-boot-rom"
|
|
description: "Master System boot ROM"
|
|
note: >-
|
|
Picked and stored like the Mega CD image and handed to the machine as a path.
|
|
Nothing about the file is examined on either side of the bridge, and an empty
|
|
slot is not an error: the cartridge runs with the boot sequence skipped.
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:475
|
|
(slot), :590 (branch reading the Master System and Game Gear slots),
|
|
emulated/systems/sms/src/system.rs:200 (path logged into the machine),
|
|
emulated/systems/sms/src/sms_machine.rs:95 (detection)"
|
|
|
|
- name: bios_E.sms
|
|
system: sega-mastersystem
|
|
required: false
|
|
agnostic: true
|
|
variant_group: "mastersystem-boot-rom"
|
|
description: "Master System boot ROM (Europe)"
|
|
note: "Same slot and same absence of tests as the other Master System boot ROMs."
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:590,
|
|
emulated/systems/sms/src/system.rs:200"
|
|
|
|
- name: bios_J.sms
|
|
system: sega-mastersystem
|
|
required: false
|
|
agnostic: true
|
|
variant_group: "mastersystem-boot-rom"
|
|
description: "Master System boot ROM (Japan)"
|
|
note: "Same slot and same absence of tests as the other Master System boot ROMs."
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:590,
|
|
emulated/systems/sms/src/system.rs:200"
|
|
|
|
- name: bios.gg
|
|
system: sega-gamegear
|
|
required: false
|
|
agnostic: true
|
|
description: "Game Gear boot ROM"
|
|
note: >-
|
|
Its own slot, separate from the Master System one, both read on the branch that
|
|
serves the two machines. Picked and stored the same way, handed to the machine
|
|
as a path, and never examined. An empty slot is not an error.
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:475
|
|
(slot), :590 (branch reading the Master System and Game Gear slots)"
|
|
|
|
- name: bios_MD.bin
|
|
system: sega-megadrive
|
|
required: false
|
|
agnostic: true
|
|
description: "Mega Drive TMSS boot ROM"
|
|
note: >-
|
|
Read on the Genesis branch, the one engine start falls through to when the
|
|
system name is neither SMS, GameGear nor SegaCD. Picked and stored the same
|
|
way and never examined. The machine reports it as "BIOS detected" and runs
|
|
without it when the slot is empty.
|
|
source_ref: "Pizza Boy SC Basic 1.2.14 libsc.so frontend/android/src/lib.rs:475
|
|
(slot), :602 (Genesis branch and slot read),
|
|
emulated/systems/genesis/src/system.rs:268 (path logged into the machine),
|
|
emulated/systems/genesis/src/genesis_machine.rs:134 (detection)"
|