6.5 KiB
Package, Image, Netbridge, and Firmware Notes
Scope
This page records first-pass static work for the non-main-game targets listed in next-analysis-targets.md.
Generated artifacts:
analysis/static-triage/game-image-bin.binwalk.txtanalysis/static-triage/spike-menu-image-bin.binwalk.txtanalysis/static-triage/game-image-bin.strings-head.txtanalysis/static-triage/spike-menu-image-bin.strings-head.txtanalysis/static-triage/netbridge.stringsanalysis/static-triage/netbridge.objdump-p.txtanalysis/static-triage/node-firmware-ranges.mdanalysis/static-triage/pokemon_pro_0_83_0_sidx.stringsanalysis/static-triage/pokemon_pro_0_83_0_sidx.head.hexanalysis/static-triage/sidx-path-summary.txtanalysis/static-triage/key-artifact-sha256.txt
image.bin Files
Targets:
/games/pokemon_pro/image.bin/games/pokemon_pro/spike3/spike_menu/image.bin
Hashes:
/games/pokemon_pro/image.bin:2f1a958c1f859c339c716e53cc9ee752412373c486ea2a1bfd116eefce4617a3/games/pokemon_pro/spike3/spike_menu/image.bin:a7df00dbbfb75838fd19d57ada30f4247d2ef1bc4b357ca0a64ab60f3a679af0
Both files start with the same 0xb0-byte-looking binary header shape. First 8 bytes are b0 00 00 00 00 00 00 00. The game image has early little-endian values including 0x1be18, 0x1bdf8, 0x18fd0, and 0x18c70; the spike-menu image has corresponding smaller values including 0x3d00, 0x3ce0, 0xef8, and 0xb98.
binwalk results:
/games/pokemon_pro/image.binreported copyright strings at0x1ca6cand0x1ddee, plus a likely false-positiveJBOOT STAGsignature at0xd36e9d6./games/pokemon_pro/spike3/spike_menu/image.binreported copyright strings at0x4954and0x5cd6.
The first strings in both images are Stern EULA text. This is consistent with a Radium/runtime serialized image rather than a normal media archive. The .sidx path table below strongly links these images to Radium asset trees under assets/lcd/demand_loaded/ and assets/lcd/auto_loaded/.
Update Index .sidx
Target:
/games/spk/index/pokemon_pro-0_83_0.sidx
SHA-256:
caf06531ca1b969b6d727d76af7ace8931277dbdb6584ecb5a238f427fe0a76a
strings -a -t x over the .sidx file found 686 package paths. Examples:
0x40:pokemon_pro/spike3/netbridge/rp2040.cfg0x68:pokemon_pro/spike3/netbridge/spike3-swd.cfg0x94:pokemon_pro/spike3/netbridge/netbridge.elf0xbf:pokemon_pro/spike3/netbridge/version.txt0xe8:pokemon_pro/spike3/powerdist/powerdist_ext.hex0x117:pokemon_pro/spike3/powerdist/version.txt0x140:pokemon_pro/spike3/spike_menu/game0x163:pokemon_pro/spike3/spike_menu/image.bin0x18b:pokemon_pro/spike3/spike_menu/assets/lcd/demand_loaded/.../scene.radium0x1232:pokemon_pro/spike3/spike_menu/assets/nuk/fonts/Hack-Regular.ttf
The final path entries include game Radium assets such as:
pokemon_pro/assets/lcd/auto_loaded/60ed7e5036b8ce09d35a3e101ea6fc1380b37d97/scene.assets/2.asset/247.assetpokemon_pro/assets/lcd/auto_loaded/60ed7e5036b8ce09d35a3e101ea6fc1380b37d97/scene.radiumpokemon_pro/assets/lcd/auto_loaded/856d8afd38e1c753b3536bccebf3b4c925a4fc6e/scene.radium
Inference: the .sidx file is a package/content index for the installed .spk payload. It enumerates files, but this pass did not fully reverse record headers, hashes, or size fields.
Netbridge
Target:
/games/pokemon_pro/spike3/netbridge/netbridge.elf
Confirmed facts:
- SHA-256:
05b7f7c329da79fb24078df69c8401c7a47be5c8a855b73fb937e052bce28d85 - ELF: 32-bit little-endian ARM, statically linked, debug info present, not stripped.
- Program headers map executable code at
0x10000000, initialized data at0x200000c0, and RAM regions at0x20000000and0x20040000.
Strings/function names from netbridge.elf:
uart_node.cUART_NodeRxIrqUART_NodeTxIrqUART_NodeGetMessageBlockNODE_InitNODEBUS_PollNODEUART_WriteNODEUART_WritePollNODEUART_WriteAddressNODE_SendBreakWS2812_NodeSetLED
This confirms netbridge is directly related to nodebus UART communication and WS2812 LED-node operations.
OpenOCD configs already documented in applications-and-services.md:
spike3-swd.cfgmaps SWCLK to Raspberry Pi GPIO 11 and SWDIO to GPIO 10.rp2040.cfgis present for RP2040 target handling.
Deeper Ghidra-backed netbridge protocol notes and the host-side emulator scaffold are now documented in netbridge-re.md.
Node Firmware
The 17 top-level node firmware HEX files under /games/pokemon_pro are Intel HEX style data payloads. All parsed data ranges begin at 0x1000, consistent with Cortex-M images that leave a bootloader or vector-reserved area below that address.
Parsed ranges:
| Path | Records | Data bytes | Min addr | Max addr |
|---|---|---|---|---|
/games/pokemon_pro/coil4_lednode-LPC1313-1_33_0.hex |
1541 | 24576 | 0x1000 |
0x6fff |
/games/pokemon_pro/coil4node-LPC1112_101-1_33_0.hex |
772 | 12288 | 0x1000 |
0x3fff |
/games/pokemon_pro/coil4node-LPC1112_201-1_33_0.hex |
772 | 12288 | 0x1000 |
0x3fff |
/games/pokemon_pro/coil4node-LPC1313-1_33_0.hex |
1541 | 24576 | 0x1000 |
0x6fff |
/games/pokemon_pro/hdmi_ws2812node-LPC1313-1_33_0.hex |
900 | 14336 | 0x1000 |
0x47ff |
/games/pokemon_pro/hdminode-LPC1313-1_33_0.hex |
836 | 13312 | 0x1000 |
0x43ff |
/games/pokemon_pro/lcdnode-LPC1113_302-1_33_0.hex |
1093 | 17408 | 0x1000 |
0x53ff |
/games/pokemon_pro/magsensornode-LPC812-1_33_0.hex |
772 | 12288 | 0x1000 |
0x3fff |
/games/pokemon_pro/node4-LPC1124_303-1_33_0.hex |
900 | 14336 | 0x1000 |
0x47ff |
/games/pokemon_pro/node4-LPC812-1_33_0.hex |
772 | 12288 | 0x1000 |
0x3fff |
/games/pokemon_pro/pinnode-LPC1112_101-1_33_0.hex |
772 | 12288 | 0x1000 |
0x3fff |
/games/pokemon_pro/pinnode-LPC1112_201-1_33_0.hex |
772 | 12288 | 0x1000 |
0x3fff |
/games/pokemon_pro/pinnode-LPC1313-1_33_0.hex |
1606 | 25600 | 0x1000 |
0x73ff |
/games/pokemon_pro/tmc2590node-LPC1313-1_33_0.hex |
836 | 13312 | 0x1000 |
0x43ff |
/games/pokemon_pro/tmc5041node-LPC1313-1_33_0.hex |
964 | 15360 | 0x1000 |
0x4bff |
/games/pokemon_pro/ws2812node-LPC1313-1_33_0.hex |
900 | 14336 | 0x1000 |
0x47ff |
/games/pokemon_pro/ws2812pinnode-LPC1313-1_33_0.hex |
1157 | 18432 | 0x1000 |
0x57ff |
/games/pokemon_pro/spike3/powerdist/powerdist_ext.hex is present in the .sidx package index and remains a separate follow-up target for power-distribution firmware parsing.