chore: re-profile Linkboy 3.11.4

Linkboy 3.11.4 adds a cartridge logo check before the BIOS boot and a second built-in BIOS variant. My Boy! 2.1.1, My OldBoy! 2.0.3, FPse 13.0 and FPseNG 1.17 circulate only rebuilt: their profiles stay on the last genuine build and name the release.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 04:49:24 +02:00
1 parent 77389236e6
commit 8a44161810
5 files changed
+42 -25

No files matched your search

+1
View File
@@ -6,6 +6,7 @@ upstream: closed-source
version_source:
url: "https://play.google.com/store/apps/details?id=com.emulator.fpse64&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
no_genuine_copy: "1.17"
author: "Schtruck & LDchen"
profiled_date: "2026-08-11"
core_version: "1.13"
+1
View File
@@ -6,6 +6,7 @@ upstream: closed-source
version_source:
url: "https://play.google.com/store/apps/details?id=com.emulator.fpse&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
no_genuine_copy: "13.0"
author: "Schtruck & LDchen (EMUSOFT)"
profiled_date: "2026-08-11"
core_version: "12.1"
+27 -18
View File
@@ -7,8 +7,8 @@ version_source:
url: "https://play.google.com/store/apps/details?id=com.pixelrespawn.linkboy&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
author: "Pixel Respawn LLC"
profiled_date: "2026-08-11"
core_version: "3.11.0"
profiled_date: "2026-10-20"
core_version: "3.11.4"
display_name: "Nintendo - Game Boy / Color / Advance (Linkboy)"
mode: standalone
cores:
@@ -23,13 +23,15 @@ systems:
notes: |
Android package com.pixelrespawn.linkboy, closed source, free on Google Play with a
paid unlock, reached by ES-DE through its LINKBOY find rule. Two Play distribution
builds are read here, 3.11.0 (versionCode 86, minSdk 26, targetSdk 36, xapk sha256
paid unlock, reached by ES-DE through its LINKBOY find rule. Three Play distribution
builds are read here, 3.11.4 (versionCode 93, minSdk 32, targetSdk 36, xapk sha256
4432cf9ab8ce2d148e8a0e89c26b786e4e7d060f43885d062f6d446b03ca4d32), 3.11.0
(versionCode 86, minSdk 26, xapk sha256
83b92276d28d71e491ebcbec3fa85cef42ef49d8ee0c6fd1bbe0045bc118f866) and 1.4.2
(versionCode 12), both carrying the app signing certificate sha256
(versionCode 12), all carrying the app signing certificate sha256
feb643cfdd9c49f58eb325fde3d869cefcf59e45dfadb8e540beca35a7b1c28e and the Play
distribution source stamp. Emulation lives in liblinkboy.so behind a JNI bridge.
Addresses below are armeabi-v7a of 3.11.0 and class names are those of its
Addresses below are armeabi-v7a of 3.11.4 and class names are those of its
obfuscated dex.
Four subsystems are declared: GBA, GBC, GB and SGB (ve0.java:16-21). An SGB
@@ -43,22 +45,29 @@ notes: |
to a ROM are written or supplied per game, not fixed files.
An image is read only while the use-bios preference is on, which is off until set
(wo0.java:63, a75.java:165-173, c51.java:186,268, w41.java:243). The loader appends
(wo0.java:63, b75.java:165-173, c51.java:186,268, w41.java:243). The loader appends
firmware/ and the name to the directory handed to setDataDir, the app's external
files directory (c51.java:69, hg3.java:32-38), and opens the result with fopen "rb".
A file whose length is not exactly the expected size is closed and treated as
absent, as is a short read. On success the loader returns the crc32 of the bytes
(liblinkboy.so 0x1c870-0x1ca10, crc32 at 0x1c4cc).
(liblinkboy.so 0x1ca40-0x1cbe0, crc32 at 0x1c69c).
A missing image stops nothing. The GBA path copies a replacement bios compiled into
the library over the 16 KB region and zero fills the remainder (0x109de8-0x109e64).
The GB and GBC path hands the reset routine a boot rom present flag, false when no
image was loaded, and the machine starts from its post boot state
(0x14f534-0x14f5b8, 0x14f638-0x14f654).
A missing image stops nothing. The GBA path copies a 236 byte replacement bios
compiled into the library over the 16 KB region and zero fills the remainder. Since
3.11.4 a second variant of that replacement is taken when the game code is B4GJ or
B4SJ (0x10a06c-0x10a108). The GB and GBC path hands the reset routine a boot rom
present flag, false when no image was loaded, and the machine starts from its post
boot state (0x14f7f4-0x14f878, 0x14f8f8-0x14f914).
Since 3.11.4 a loaded GBA image is not run for every cartridge. When the ROM is at
least 0xa0 bytes the crc32 of the 156 header bytes from offset 4 is compared with a
fixed value, and a mismatch logs "Invalid logo, skipping BIOS" and resets with the
boot flag false. The image stays installed and the machine starts from its post
boot state (0x10a14c-0x10a1a4).
Save states record the crc32 of the image they were made under. Loading a state
whose value differs from the running machine re-reads the file and refuses the state
when the crc32 still disagrees (0x10aa40-0x10aa98, 0x14fe00-0x14fe64).
when the crc32 still disagrees (0x10ad00-0x10ad58, 0x1500c0-0x150124).
files:
- name: gba_bios.bin
@@ -71,8 +80,8 @@ files:
validation: [size, md5]
config_key: "use-bios"
description: "Game Boy Advance BIOS"
note: "Read into the 16 KB bios region when use-bios is on. Absent, mismatched in size or short, the region is filled with a replacement bios compiled into the library and zero padded."
source_ref: "Linkboy 3.11.0 cr.java:8, br.java:24-88, liblinkboy.so 0x109de8-0x109e64 (size argument 0x4000), loader 0x1c870-0x1ca10"
note: "Read into the 16 KB bios region when use-bios is on. Absent, mismatched in size or short, the region is filled with a replacement bios compiled into the library and zero padded. A cartridge whose header logo fails the crc32 test boots past it."
source_ref: "Linkboy 3.11.4 cr.java:8, br.java:24-88, liblinkboy.so 0x10a06c-0x10a108 (size argument 0x4000), 0x10a14c-0x10a1a4 (logo test), loader 0x1ca40-0x1cbe0"
- name: gbc_bios.bin
path: firmware/gbc_bios.bin
@@ -85,7 +94,7 @@ files:
config_key: "use-bios"
description: "Game Boy Color boot ROM"
note: "Read when use-bios is on and the machine is a Game Boy Color. Without it the reset routine receives a false boot rom flag and the machine starts from its post boot state."
source_ref: "Linkboy 3.11.0 cr.java:8, br.java:24-88, liblinkboy.so 0x14f5a0-0x14f5b0 (size argument 0x900), 0x14f638-0x14f654, loader 0x1c870-0x1ca10"
source_ref: "Linkboy 3.11.4 cr.java:8, br.java:24-88, liblinkboy.so 0x14f860-0x14f870 (size argument 0x900), 0x14f8f8-0x14f914, loader 0x1ca40-0x1cbe0"
- name: gb_bios.bin
path: firmware/gb_bios.bin
@@ -98,4 +107,4 @@ files:
config_key: "use-bios"
description: "Game Boy boot ROM"
note: "Read when use-bios is on and the machine is a Game Boy. Without it the reset routine receives a false boot rom flag and the machine starts from its post boot state."
source_ref: "Linkboy 3.11.0 cr.java:8, br.java:24-88, liblinkboy.so 0x14f58c-0x14f59c (size argument 0x100), 0x14f638-0x14f654, loader 0x1c870-0x1ca10"
source_ref: "Linkboy 3.11.4 cr.java:8, br.java:24-88, liblinkboy.so 0x14f84c-0x14f85c (size argument 0x100), 0x14f8f8-0x14f914, loader 0x1ca40-0x1cbe0"
+8 -4
View File
@@ -6,8 +6,9 @@ upstream: closed-source
version_source:
url: "https://play.google.com/store/apps/details?id=com.fastemulator.gba&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
no_genuine_copy: "2.1.1"
author: "Pixel Respawn LLC"
profiled_date: "2026-08-12"
profiled_date: "2026-10-20"
core_version: "2.0.3"
display_name: "Nintendo - Game Boy Advance (My Boy!)"
mode: standalone
@@ -26,9 +27,12 @@ notes: |
are read here: 2.0.3 (versionCode 90053, minSdk 21, targetSdk 33, arm64-v8a and
armeabi-v7a, bundletool v1 signer and the Play source stamp) and 1.8.0 (versionCode
90048, armeabi and x86). Line numbers below are those of 2.0.3 and native addresses
are arm64-v8a of the same build; 1.8.0 addresses are its x86 library. Four rebuilt
copies were rejected on their certificate: 2.0.9 (CN=APKVISION.ORG), 2.0.8 (C=RU,
O=A1), 2.0.6 (C=IN) and a second 1.8.0 (O=jojoy.mod).
are arm64-v8a of the same build, and 1.8.0 addresses are its x86 library. 2.1.1
(versionCode 90062) is the current Play build, and every copy of it reached here is
rebuilt. Seven rebuilt copies were rejected on their certificate: 2.1.1
(CN=APKVISION.ORG, with an injected second dex), 2.1.1 (the AOSP test key), 2.0.9
(CN=APKVISION.ORG), 2.0.8 (C=RU, O=A1), 2.0.6 (C=IN), 2.0.6 (O=APKMODY) and a second
1.8.0 (O=jojoy.mod).
One system is emulated, Game Boy Advance, in libgba.so behind a JNI bridge
(Link.java:21-23,83). Content is a .gba or .bin document, or the first entry with one
+5 -3
View File
@@ -6,8 +6,9 @@ upstream: closed-source
version_source:
url: "https://play.google.com/store/apps/details?id=com.fastemulator.gbc&hl=en"
pattern: '\[\[\["([^"]+)"\]\],\[\[\[\d+'
no_genuine_copy: "2.0.3"
author: "Pixel Respawn LLC"
profiled_date: "2026-08-12"
profiled_date: "2026-10-20"
core_version: "2.0.0"
display_name: "Nintendo - Game Boy / Game Boy Color (My OldBoy!)"
mode: standalone
@@ -29,8 +30,9 @@ notes: |
signer and the Play source stamp) and 1.5.1 (versionCode 90020, minSdk 9, armeabi,
v1 signature verified entry by entry). Line numbers below are those of 2.0.0 and
native addresses are arm64-v8a of the same build; 1.5.1 addresses are its armeabi
library. 2.0.2 (versionCode 90024) is the current Play build, offered by no mirror
reached here.
library. 2.0.3 is the current Play build, offered genuine by no mirror reached here.
One rebuilt copy was rejected on its certificate: 2.0.1 (C=IN), served under a 2.0.3
page.
Emulation runs in libgbc.so behind a JNI bridge (Link.java:23,29-97). Content is a
.gb, .gbc, .cgb or .dmg document, or the first entry with one of those extensions in a