docs: pizza-boy-gba read on basic 2.3.22

Pro 3.9.0 has no genuine copy anywhere; no_genuine_copy moves to it. The native and Basic Java references hold at the same lines in the DBTecno-signed Basic 2.3.22 bundle, which also carries the multiplayer BIOS CRC32 exchange.
This commit is contained in:
Abdessamad Derraz committed 2026-10-24 04:00:37 +02:00
1 parent d76c76e41e
commit 28dcb2726f
1 file changed
+19 -15
+19 -15
View File
@@ -6,9 +6,9 @@ upstream: closed-source
version_source:
url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboygbapro&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
no_genuine_copy: "3.8.24"
no_genuine_copy: "3.9.0"
author: "Pizza Emulators"
profiled_date: "2026-10-20"
profiled_date: "2026-10-24"
core_version: "2.8.13"
display_name: "Nintendo - Game Boy Advance (Pizza Boy GBA)"
mode: standalone
@@ -27,18 +27,21 @@ notes: |
builds are read here, both carrying the source stamp: Pro 2.8.13 (versionCode 343,
Play App Signing certificate sha256
6b5547246e41921f25eba8abb1bc018729c4f0b8db029debbd3380a2b1ec2fe1), which supplies the
Java and the resources, and Basic 2.3.20 (versionCode 253, an APKMirror bundle whose
base and arm64-v8a splits carry the developer certificate sha256
Java and the resources, and Basic 2.3.22 (versionCode 255, an APKMirror bundle of
22 Oct 2026 whose base and arm64-v8a splits carry a valid v2 and v3 signature by the
developer certificate sha256
b3ee584096acf4667bb9346daa9cce19237ef7ce95c99e9260ac89be0f7d6130, CN=Davide Berra,
O=DBTecno), 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 2.8.13. Two rebuilt copies of Pro 1.35.11 were rejected on
O=DBTecno, and the Play source stamp), 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 Basic reference first read on 2.3.20 falls on the same lines and
functions in 2.3.22, with the same 0x4000 read and 744 byte replacement in mmu_init.
Java line numbers are those of Pro 2.8.13. Two rebuilt copies of Pro 1.35.11 were rejected on
their certificate, one signed C=debugging with no source stamp and one signed
O=APKMODY. 69 of the 77 native methods the Pro declares are exported by the Basic
2.3.3 core, the three BIOS entry points among them: one core, compiled per package.
The Pro on the store is 3.8.24 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 Basic 1.9.5, and the
The Pro on the store is 3.9.0 and no genuine copy of it is reachable: apkcombo no
longer resolves, APKPure answers 410 for the Pro package, APKMirror carries the Basic
package alone, Uptodown has no page for it, apkvision stops at Basic 1.9.5, and the
newest archive.org item, labelled Pro 2.8.14, holds no file.
One system is emulated, Game Boy Advance: the core is built from a tree named
@@ -49,7 +52,7 @@ notes: |
The BIOS is the one file the user supplies, and it is read only while Load BIOS file
is on, off by default. The picker and the Run BIOS animation switch, on by default,
both depend on that box (res/xml/pref_general.xml). In the free package the same
three preferences are declared android:enabled="false". The Basic 2.3.20 Java keeps
three preferences are declared android:enabled="false". The Basic 2.3.22 Java keeps
the whole handoff to the core behind them, and its document picker copies the
chosen file as it is, with no zip extraction.
@@ -57,7 +60,7 @@ notes: |
its own replacement, and one cartridge, checksum 0xc7d89508, forces the same at load
time. When a real image is installed the boot animation starts execution at 0 rather
than at the cartridge entry, and a multiplayer session exchanges the CRC32 of the file
so that both peers run the same one. In Basic 2.3.20 a save state records the CRC32
so that both peers run the same one. In Basic 2.3.22 a save state records the CRC32
of the 16 KB BIOS area, and a state written under another image is refused with
"Cannot restore stat: saved with another BIOS".
@@ -87,7 +90,7 @@ files:
that a real image is installed. Nothing about the file is examined: any read
returning at least one byte is accepted, and no size, name or hash test exists on
either side of the bridge. A read of zero bytes leaves the replacement in place
and logs "Cannot read BIOS file". In Basic 2.3.20 the document picker copies the
and logs "Cannot read BIOS file". In Basic 2.3.22 the document picker copies the
file into the temp directory under the name the picker reports without opening
a zip, and the legacy browser extracts a picked zip entry under its own name to
the uncompressed directory.
@@ -95,10 +98,11 @@ files:
(preference and picker), FileDialog.java:57,72,77,846-857 (legacy browser, zip entry
to bios.bin), Common.java:85-105 (copy to temp), :160-190 (single entry unzip),
MainActivity.java:833,835,865 (bridge), :10936-10941 (gate and handoff),
res/xml/pref_general.xml (defaults); Pizza Boy A Basic 2.3.20
res/xml/pref_general.xml (defaults); Pizza Boy A Basic 2.3.22
SettingsActivity.java:206-236, xw.java:2531-2554 (copy without zip extraction),
yj.java:279-300 (legacy browser zip entry), h3.java:123-128 (gate and handoff),
lt.java:76-80 (state refused), libpizzaboy-jni.so pizza.c:931-937 (path buffer),
lt.java:76-80 (state refused), MainActivity.java:524-541 (CRC32 of the file),
pv.java:56, :299, nu.java:173-186 (multiplayer BIOS exchange), libpizzaboy-jni.so pizza.c:931-937 (path buffer),
:944-945 (boot flag), :637-646 (low precision BIOS), global.c:22-24, :97-99
(defaults), mmu.c:1840-1853 (replacement, gate, read, flag), :2422-2426 (forced
HLE), cpu.c:34-40 (boot vector), gba.c:2739-2743 (CRC32 in the save state),