docs: pizza-boy-gbc read on basic 4.1.15

Pro 7.4.17 has no genuine copy anywhere; no_genuine_copy moves to it. The native references hold at the same lines in the DBTecno-signed Basic 4.1.15 bundle; its Java slot gate moved to MainActivity.java:3207-3213.
This commit is contained in:
Abdessamad Derraz committed 2026-10-24 04:00:37 +02:00
1 parent 28dcb2726f
commit 9489568139
1 file changed
+18 -14
+18 -14
View File
@@ -6,9 +6,9 @@ upstream: closed-source
version_source:
url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboypro&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
no_genuine_copy: "7.4.15"
no_genuine_copy: "7.4.17"
author: "Pizza Emulators"
profiled_date: "2026-10-20"
profiled_date: "2026-10-24"
core_version: "6.0.6"
display_name: "Nintendo - Game Boy / Color (Pizza Boy GBC)"
mode: standalone
@@ -29,13 +29,17 @@ notes: |
are read here, both carrying the developer certificate sha256
b3ee584096acf4667bb9346daa9cce19237ef7ce95c99e9260ac89be0f7d6130 (CN=Davide Berra,
O=DBTecno) and a source stamp: Pro 6.0.6 (versionCode 231), which supplies the Java
and the resources, and Basic 4.1.14 (versionCode 210, an APKMirror bundle), whose
arm64-v8a libpizzaboy-jni.so ships DWARF and an unstripped symbol table and supplies
every native reference below as its own file and line. Java line numbers are those
of Pro 6.0.6 unless a Basic 4.1.14 reference is named. The Pro on the store is 7.4.15
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 the Basic package
alone, apkvision stops at Pro 5.2.2, and archive.org holds 6.0.6 alone. The Pro
and the resources, and Basic 4.1.15 (versionCode 211, an APKMirror bundle of 22 Oct
2026 whose base and arm64-v8a splits carry a valid v2 and v3 signature by that
certificate), whose arm64-v8a libpizzaboy-jni.so ships DWARF and an unstripped symbol
table and supplies every native reference below as its own file and line. Every
native reference first read on Basic 4.1.14 falls on the same lines and functions in
4.1.15, and mmu_load_bios keeps the 0x10000 clear, the 0x2000 read and the 0x100 and
0x900 gate. Java line numbers are those of Pro 6.0.6 unless a Basic 4.1.15 reference
is named. The Pro on the store is 7.4.17 and no genuine copy of it is reachable:
apkcombo no longer resolves, APKPure lists 7.4.17 as coming soon with no file,
APKMirror carries the Basic package alone, apkvision stops at Pro 5.2.2, and
archive.org holds 6.0.6 alone. The Pro
ships its core as a stripped armeabi-v7a build. It carries the same log strings and
the same constants as the Basic core, the 64 KB clear, the 8192 byte read cap, the
256 byte header copy and the 256 and 2304 byte gate, and 65 of the 70 entry points
@@ -55,7 +59,7 @@ notes: |
BIOS and Gameboy Color ROMs BIOS, and it is read only while Load BIOS file is on,
off by default (res/xml/pref_general.xml:89-99). In the free package the same three
preferences are declared android:enabled="false" behind a paid badge, and the Basic
4.1.14 Java keeps the whole handoff to the core behind them. A ROM whose name ends
4.1.15 Java keeps the whole handoff to the core behind them. A ROM whose name ends
in .gb or .sgb takes the first slot, every other name takes the second.
The library never examines the name, the extension or the content: the byte count of
@@ -67,7 +71,7 @@ notes: |
cartridge entry, and the animation runs until it reaches 0x100, at which point the
active MMU returns to the cartridge and the accumulator is restored. A multiplayer
session exchanges the CRC32 of the Game Boy slot so that both peers run the same
file. The Basic 4.1.14 Java carries no such exchange, and its core skips the boot
file. The Basic 4.1.15 Java carries no such exchange, and its core skips the boot
while a multiplayer peer is connected.
Everything else the app opens it makes itself: the default skins and the cheat
@@ -100,7 +104,7 @@ files:
Nothing else is examined: no name, size range, header or hash test exists on
either side of the bridge, and a count that is neither 256 nor 2304 is refused.
A multiplayer session exchanges the CRC32 of this file so that both peers run
the same one. In Basic 4.1.14 the picker alone remains: the document is copied
the same one. In Basic 4.1.15 the picker alone remains: the document is copied
into the temp directory, and when its name ends in zip every file entry is
extracted there instead, the last one written becoming the stored path.
source_ref: "Pizza Boy GBC Pro 6.0.6 MainActivity.java:702 (native method),
@@ -109,7 +113,7 @@ files:
codes), :96-113 (picker result and copy), :116-192 (both preferences),
Common.java:42 (copy to the application directory), FileDialog.java:949-975
(legacy browser, zip entry to bios.bin), res/xml/pref_general.xml:89-99
(defaults); Pizza Boy C Basic 4.1.14 MainActivity.java:3196-3202 (gate and slot
(defaults); Pizza Boy C Basic 4.1.15 MainActivity.java:3207-3213 (gate and slot
selection), SettingsActivity.java:66-155 (picker result, zip entries, copy),
wd.java:1607-1630 (copy to the temp directory), libpizzaboy-jni.so
pizza.c:1028-1029 (path into global_bios_file), global.c:28 (char[256]),
@@ -136,6 +140,6 @@ files:
gap the 2304 byte layout leaves for it.
source_ref: "Pizza Boy GBC Pro 6.0.6 MainActivity.java:8073-8078 (slot selection),
SettingsActivity.java:98 (preference key), :158-192 (preference and picker),
res/xml/pref_general.xml:97-99; Pizza Boy C Basic 4.1.14 libpizzaboy-jni.so
res/xml/pref_general.xml:97-99; Pizza Boy C Basic 4.1.15 libpizzaboy-jni.so
mmu.c:435-452 (read, header copy, 2304 gate), gameboy.c:1177-1180 (model from
the return value), :1193-1199 (program counter, accumulator, palette)"