mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 11:19:11 -05:00
The native refs move to the newest genuine Basic builds (GBA 2.3.20, GBC 4.1.14, SC 1.2.14), which add a save-state check of the BIOS area and new zip handling. The Pro releases the store announces circulate only rebuilt, so the Pro Java reading stays on the last genuine build and the release is named in no_genuine_copy.
198 lines
9.5 KiB
YAML
198 lines
9.5 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"
|
|
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)"
|