v0.5 - Memcard writeback, music, safer exit
⬆ Superseded by v0.6
v0.6 carries every feature of v0.5 plus the Pokemon creator for XD/Colosseum, Gen 3 EV legality caps, the cold-boot memcard scan fix, and the proper Swiss exit. Grab v0.6 unless you specifically need this build.
⚠️ Back up your saves firstv0.5 introduces direct memory-card writeback. Always back up your
.gcifiles with GCMM first. The bytes you write replace what's on the card with no undo.
What's in v0.5
Memory-card writeback (XD + Colosseum)
After the v0.4 scan/read path, you can now save edited Pokémon back to the physical memory card via "Save to memory card" in the memcard submenu.
- Self-verify before write: PokéBridge re-parses its own re-encrypted output before touching
CARD_Write. If our checksum/encryption logic produces a save we can't even round-trip ourselves, we refuse to write and tell you instead of stomping the card. - PKHeX-correct body checksum: the body checksum at slot
0x10..0x20is stored in PKHeX's reverse word order (a prerelease build got this wrong and corrupted a tester save). - GCMM-canonical I/O pattern:
CARD_SetGamecode/SetCompany+CARD_Open, matching Suloku's GCMM. Sector-aligned writes viaCARD_GetSectorSize. - Pokémon Box is detection-only — parser not implemented yet.
Background music
- 3-track playlist (Title / Match Intro / Colosseum) loops gaplessly via
libaesnd+ a software timer that advances tracks at each track's natural duration. - Why libaesnd, not libasnd? libasnd's DSP task spin-loops on mailbox handshakes in IRQ context and races EXI completion, deadlocking
CARD_Mount. Diagnosed publicly by Extrems. Swiss / Wii64 / pcsxgc all use libaesnd for the same reason. - BYO songs: drop WAVs in
data/and runpython3 tools/embed_audio.py {title,match,colosseum} data/your_song.wav. The embed tool byte-swaps 16-bit PCM to BE for the GameCube DSP. - Audio headers are gitignored;
setup_assets.shwrites silent stubs if you skip them.
Exit-to-loader UX
- Picking "Exit" shows a confirmation screen, then returns to Swiss / IPL.
STARTis a global exit shortcut from the main menu.
Install
Drop the attached pokebridge.dol onto your Swiss SD at sd:/apps/pokebridge/boot.dol.