Repository navigation
feat: take the app icon from Pocket3D on every console - #36
Merged
Merged
Conversation
vendor/pocketjs moves from 223be88d to 81a100ba on PocketJS main (v0.14.0 and pocketjs#534). That commit adds engine/pocket3d/icon/, the Pocket3D app icon in the size and file form each console's launcher reads, and `icon` on packageVitaVpk. Every console build now reads its icon from that checkout, and this repository tracks no icon file. - psp: xmb_icon_png in Psp.toml names psp/ICON0.PNG. assets/ICON0.png is deleted. assets/PIC1.png, the XMB backdrop, stays OpenStrike's own. - vita: scripts/vita.ts gives POCKET3D_ICON.vita to packageVitaVpk as `icon`, which replaces sce_sys/icon0.png. static/sce_sys/icon0.png is deleted, so the static tree holds the staged maps only. scripts/e2e-vita.ts expects the same file in the VPK. - 3ds: scripts/3ds.ts passes 3ds/icon.png and 3ds/icon-small.png as ICON and SMALL_ICON to PocketJS's Makefile, which gives both to smdhtool. icon.svg and the build step that rasterized it are deleted. - ipod: hosts/ipodtouch4/ipodtouch4.json names ios/Icon@2x.png as `icon`. PocketJS's packager writes the bundle's 114- and 57-pixel icons from it, and its Info.plist sets UIPrerenderedIcon. - scripts/gen-cover.ts builds PIC1.png only. test/pocket3d-icon.test.ts fails when Git tracks an icon file here or a build stops reading the PocketJS files. It replaces test/openstrike-vita-artwork.test.ts, which checked the deleted Vita icon, and runs on every pull request from .github/workflows/icon.yml. Verified from artifacts built on the host, with no console: - PSP release EBOOT: PBP entry 1 equals psp/ICON0.PNG, entry 4 equals assets/PIC1.png. - Vita release VPK: sce_sys/icon0.png equals vita/icon0.png. - 3DS release .3dsx: its SMDH equals one made from the two files by the same smdhtool in the same Docker image, and differs from one made from icon.png alone. - iPod touch bundle and .ipa: the 114-pixel icon decodes to the pixels of ios/Icon@2x.png. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
On PSP, PS Vita, Nintendo 3DS and iPod touch 4 the app icon is now the Pocket3D app icon that PocketJS provides, and this repository tracks no icon file.
vendor/pocketjsmoves from223be88dto81a100baon PocketJS main (v0.14.0 and pocketjs#534; the old pin is an ancestor of the new one). That commit addsengine/pocket3d/icon/,tools/pocket3d-icon.ts(POCKET3D_ICON) andicononpackageVitaVpk. No Rust crate changed between the two pins, so noCargo.lockchanges.vendor/pocketjs/engine/pocket3d/icon/psp/ICON0.PNG(144×80)xmb_icon_pngincrates/openstrike-psp/Psp.tomlvita/icon0.png(128×128, 8-bit indexed)icon: POCKET3D_ICON.vitatopackageVitaVpkinscripts/vita.ts;scripts/e2e-vita.tsexpects the same file in the VPK3ds/icon.png(48×48),3ds/icon-small.png(24×24)ICONandSMALL_ICONinscripts/3ds.ts, which PocketJS's 3DS Makefile gives tosmdhtoolios/Icon@2x.png(114×114)iconinhosts/ipodtouch4/ipodtouch4.json; PocketJS's packager writes the bundle's 114- and 57-pixel icons from it, and itsInfo.plistsetsUIPrerenderedIconDeleted:
crates/openstrike-psp/assets/ICON0.pngcrates/openstrike-vita/static/sce_sys/icon0.pngcrates/openstrike-3ds/icon.svg, withrender3dsIcons()inscripts/3ds.tsand its test intest/3ds-tooling.test.tstest/openstrike-vita-artwork.test.ts(it checked the deleted Vita icon)scripts/gen-cover.tsnow buildscrates/openstrike-psp/assets/PIC1.pngonly.PIC1.png, the XMB backdrop, is unchanged and stays OpenStrike's own picture.test/pocket3d-icon.test.tsis the guard: it fails when Git tracks an icon file (ICON0.png,icon0.png, a 3DSicon*.png/icon.svg, a bundleIcon*.png) or when one of the four builds stops reading the PocketJS files.bun run test:iconruns it (replacingtest:vita-package), and.github/workflows/icon.ymlruns it on every pull request with no path filter.README.mdgains a "Pocket3D app icon" section beside the title card section, with the table above, the rule and a pointer tovendor/pocketjs/skills/pocket3d-brand/SKILL.md. The PSP and Vita sections andcrates/openstrike-vita/README.mdno longer describe an OpenStrike icon.Verification
All from artifacts built on the host. No console was used.
crates/openstrike-psp/target/mipsel-sony-psp/release/EBOOT.PBPanddist/PSP/GAME/OpenStrike/EBOOT.PBP, PBP entry 1 (ICON0.PNG)psp/ICON0.PNGcrates/openstrike-psp/assets/PIC1.pngdist/vita/OpenStrike.vpk,sce_sys/icon0.pngvita/icon0.pngdist/3ds/openstrike.3dsx,dist/3ds/sd/3ds/OpenStrike/OpenStrike.3dsxand the copy insideOpenStrike-3DS-SD.zip: the 14016-byte SMDH at the offset the 3DSX extended header recordssmdhtool --createwith the same three strings from3ds/icon.pngand3ds/icon-small.png, indevkitpro/devkitarm@sha256:116afba8…(the build's image)3ds/icon.pngalone, sosmdhtoolhalves it for the small slotOpenStrike.app/PocketClassic-User-v7@2x.png(114×114), also insideOpenStrike.ipaios/Icon@2x.pngOpenStrike.app/PocketClassic-User-v7.png(57×57)ios/Icon.pngOpenStrike.app/Info.plistUIPrerenderedIcontrue,CFBundleIconFilePocketClassic-User-v7.png,CFBundleDisplayNameOpenStrikeHost checks:
bun run check:platforms(typecheck,pocket checkfor psp and vita): pass.bun testontest/pocket3d-icon.test.ts,3ds-tooling,tactical-touch,primary-touch,primary-touch-gesture,strike-sdk,psp-memory,psp-toolchain,psp-map-read,cook-map,symbian-tooling,map-viewer: 48 pass, 0 fail.bun run test:iconin a clean clone with onlyvendor/pocketjsinitialised and nonode_modules: 6 pass. With anICON0.pngadded to the index it fails and names the file.Not run:
test/3ds-device-lease.test.tsandtest/test_3ds_deploy.py: the first takes the 3DS wire lease, so both are left to CI.scripts/e2e-vita.ts(Vita3K),scripts/e2e-psp.tsandscripts/e2e-3ds.ts: emulator golden runs. The one line changed ine2e-vita.tsis the expected icon path; the VPK comparison above is the same check.ICONandSMALL_ICON.Out of scope: the desktop and Nokia E7 builds do not take the Pocket3D app icon.
🤖 Generated with Claude Code