Skip to content

New Port: The Swapper#2583

Draft
Producdevity wants to merge 2 commits into
PortsMaster:mainfrom
Producdevity:feat/the-swapper-port
Draft

New Port: The Swapper#2583
Producdevity wants to merge 2 commits into
PortsMaster:mainfrom
Producdevity:feat/the-swapper-port

Conversation

@Producdevity

Copy link
Copy Markdown
Contributor

Game Information

Authorship & Testing

  • I wrote and understand this script/patch myself, or clearly marked which parts came from an AI assistant and reviewed them
  • I can explain every non-standard line in my launch script

Submission Requirements

CFW Tests

Ensure your game has been tested on all major CFWs:

  • ArkOS (R36S / RK3326 not supported)
  • AmberELEC
  • ROCKNIX
  • muOS
  • Knulli
  • Crossmix (Optional)
  • Other: dArkOS (R36S / RK3326 not supported)

Resolution Tests

Test all major resolutions:

  • 480x320 (Optional)
  • 640x480
  • 720x720 (RGB30) (Optional)
  • Higher resolutions (e.g., 1280x720)

File Structure

  • Your port should have the following structure:
    • portname/
      • port.json
      • README.md
      • screenshot.png
      • cover.png
      • gameinfo.xml
      • Port Name.sh
      • portname/

Script Conventions

The non standard parts are:

  • First-launch patcher: ASTC texture compression + normal-map downscaling to fit GPU memory budget on 1GB devices. Uses PortMaster's fancy patcher UI (utils/patcher.txt).
  • ASTC runtime hook (libtexture_astc.so via LD_PRELOAD): intercepts glTexImage2D at runtime to substitute pre-compressed ASTC textures to reduce VRAM usage.
  • FMOD compatibility layer (libfmodex.so): translates FMOD audio calls to SDL_mixer, including streaming for large audio assets.
  • Steam shim (libsteam_api.so): reports Steam as unavailable. Does not emulate Steam, bypass ownership, or decrypt tickets.
  • MONO_MANAGED_WATCHER=1: required to prevent a Mono FileSystemWatcher infinite-recursion crash on Linux.
  • gl4es: bundled in gl4es.aarch64/ and loaded via SDL_VIDEO_GL_DRIVER. The game's engine requires desktop GL version strings that GLES-only devices don't provide.

Additional Resources

For an in-depth guide on creating a pull request, refer to: PortMaster Game Packaging Guide

@Producdevity

Copy link
Copy Markdown
Contributor Author

Set to draft until tested on AmberELEC and Rocknix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant