diff --git a/emulators/pizza-boy-gbc.yml b/emulators/pizza-boy-gbc.yml index 972d90d6f..566895fda 100644 --- a/emulators/pizza-boy-gbc.yml +++ b/emulators/pizza-boy-gbc.yml @@ -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)"