Skip to content

colemancda/junkbot-swift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

495 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swift-junkbot

A Swift remake of LEGO Junkbot.

Screenshot 2026-07-04 at 10 43 38 AM

Ports

The core game/simulation logic (Sources/JunkbotCore) is shared across several native targets under ports/:

Port Status Notes
ports/Web ✅ Working WASM build (make all from the repo root), loaded by the HTML5 frontend.
ports/SDL2 ✅ Working Native desktop build against SDL2/SDL2_image/SDL2_mixer (via PureSwift/SDL).
ports/SDL3 ✅ Working Same as SDL2, against SDL3/SDL3_image/SDL3_mixer.
ports/Darwin ✅ Working SpriteKit-based native app: Junkbot-macOS/Junkbot-tvOS (Junkbot.xcodeproj) and JunkbotMobile (JunkbotMobile.swiftpm, a Swift Playgrounds App Playground for iOS). All three build in CI; macOS is confirmed running end-to-end.
ports/portmaster ✅ Working Bundles the SDL2/SDL3 builds for PortMaster handheld distribution; Tested on Anbernic DS running Rocknix.
ports/Android ✅ Working Cross-compiled Swift (JunkbotCore + the SDL3 game code shared with ports/SDL3) in a Java SDLActivity shell. Verified end-to-end on an emulator: title screen, level loading, sprite rendering, touch input.
ports/N64 ✅ Working Nintendo 64 build in Embedded Swift (mips-none-none-elf) against the open-source libdragon SDK; software-rasterized (no RDP texture pipeline - TMEM is too small for the sprite count). Verified end-to-end in ares: analog-stick/D-pad-driven cursor grab/drag/drop, sound effects/music, HUD overlay, level switching.
ports/NDS ✅ Working Nintendo DS build in Embedded Swift (armv5te), no maxmod/streaming. Verified end-to-end in melonDS: touch-drag gameplay on the bottom screen, sound effects/music, and a bitmap-font info panel on the top screen.
ports/3DS ✅ Builds Embedded Swift ARM11 build; same scrollable-bottom-screen design as ports/NDS. Builds and links end-to-end; not yet run on real hardware or an emulator.
ports/iPod ✅ Working Rockbox plugin for the iPod Nano 2G in Embedded Swift (armv4t, the Nano's FPU-less ARM940T), linked into junkbot.rock by Rockbox's own build system. Sprites and all 121 levels load from /.rockbox/junkbot/ at startup instead of being compiled in (the level data alone is 3x a plugin's entire 512 KB code budget). Click-wheel cursor controls; installed and run on a real Nano 2G.

See each port's own README (where present) for build details, and root .github/workflows/ for what's verified in CI.

About

Lego's Junkbot game ported to Swift

Resources

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors