Releases: EapRules/icerage-native-arm
Release list
v1.1.0 — native resolution on any panel, older-firmware support
Highlights
- Native panel-size rendering: the engine lays itself out from the surface size, so the port now hands it your panel's real resolution — true native fullscreen on 16:9 devices (1280x720 on a Powkiddy X55), unchanged on the R36S. Automatic.
- If the widescreen layout ever looks wrong on your device, set
ICERAGE_RENDER=scaledin the launcher for the classic 640x480 mode (withICERAGE_SCALE=fit|stretch|integer).
- If the widescreen layout ever looks wrong on your device, set
- Runs on older firmwares: rebuilt against glibc 2.29 (was 2.38).
- Smarter launcher: finds the GPU driver by capability (clear on-screen message if your firmware has no usable 32-bit GL), routes audio through PipeWire/Pulse when present, and fixes the missing cover art in EmulationStation on install.
- Clean exit path shared with our other ports.
Install
Drop icerage.zip in ports/autoinstall/ (or install via PortMaster), put your Ice Rage APK next to it, reboot. Updating keeps your game data.
16:9 device owners: reports welcome — the widescreen path is verified in our test rig, and your hardware is the final word.
v1.0.0 — Ice Rage for PortMaster
Ice Rage running natively on Linux ARM handhelds — no emulator and no Android
runtime. The game's own armeabi-v7a library is loaded straight into a Linux process
by a bionic ELF loader, and the pieces of Android it asks for are implemented by hand.
This download contains zero game content. You supply an APK you own.
You need the OUYA build — the Play one will not work
Package net.mountainsheep.icerage, version 1.8 (October 2013).
This is not a preference. The Google Play release is touch-only, and the engine in
the controller build rejects touchscreen events outright:
[W/native-activity] WARNING: Unknown input source (4098)!
4098 is AINPUT_SOURCE_TOUCHSCREEN. Feed it synthetic fingers and the menus never
respond, no matter what you press.
Install
With the SD card in your computer, do steps 1 and 2 together — they are one trip:
- Drop
icerage.zipinto PortMaster'sautoinstall/folder
(ArkOS/dArkOS:/roms/tools/PortMaster/autoinstall/, muOS:/mmc/MUOS/PortMaster/autoinstall/,
AmberELEC/ROCKNIX:/roms/ports/PortMaster/autoinstall/) - Put your APK at
ports/icerage/icerage.apk— create the folder if it is not
there; the install will not remove it. Watch the extension: some sites hand you
.5apkor.apk.zip, and it has to end in.apk.
Then, with the card back in the console:
- Open PortMaster and let it install
- Reboot the console — not optional, see below
- Launch Ice Rage from Ports
Two things that make a good install look broken
The game will not appear in Ports until you reboot. PortMaster installs it
correctly and then says nothing more — the autoinstall path never refreshes the
frontend, so EmulationStation keeps showing the list it loaded at boot. Everything is
already on the card.
Do not press Reinstall or Uninstall under Manage Ports. Both re-download from
PortMaster's catalogue, where this port does not exist, so they fail after removing
the port — and Uninstall deletes the folder with your APK inside it. To reinstall,
drop the zip into autoinstall/ again.
Controls
| Control | Does |
|---|---|
| Left stick | skate |
| A (right-hand button) | shoot, check, accept |
| B (bottom button) | secondary / back |
| L1, R1 | shoulder buttons, also act in the menus |
| Start | the game's own menu |
| Select | nothing |
Select really does nothing: the engine dispatches keys through a jump table covering
Android keycodes 19–107, so BUTTON_SELECT (109) never reaches it. Neither does
BACK (4) nor BUTTON_START (108) — which is why Start sends MENU (82).
If the buttons land wrong, your handheld is lettered Xbox style — set
ICERAGE_FACE_KEYS=legacy or ICERAGE_FACE_LAYOUT=xbox in Ice Rage.sh.
Requirements
armhf userland with 32-bit GPU libraries (CONFIG_COMPAT + 32-bit Mali), glibc 2.38+.
Same bar as box86 and GMLoader.
Tested on an R36S (RK3326, Mali-G31) running dArkOSRE. That is the only device
it has run on — anything else is untested rather than unsupported, and reports are
welcome either way.
Known issues
- The log carries a warning saying the music will be silent. Ignore it —
audio works, music included. The game asks OpenSL ES for a second player fed a
compressed stream that the platform is meant to decode, which this port cannot
do; but the game never depends on it and decodes its own Ogg elsewhere. The
warning describes that unused player, not what you hear. - The game asks for 1920×1080 on a 640×480 panel. It renders anyway, but the layout
was not drawn for this aspect ratio. The port ships a 4:3 loading screen because the
game's own is 16:9 and sat letterboxed. - OUYA store integration is stubbed — purchases and player-account lookups return
empty, so the game behaves as if everything is unlocked and there is no network. - A few cosmetic textures are missing from this build of the game
(Texture not found: ...Santa_Hat.png); they belong to content the APK does not
carry.
Credits
Game by Mountain Sheep. Port by EapRules.
The ELF loader, the fake JNI and the bionic libc thunks derive from
gmloader-next by JohnnyonFlame,
itself descended from Andy Nguyen's Vita so-loader. Released under GPL-3.0.