Skip to content

Releases: EapRules/icerage-native-arm

v1.1.0 — native resolution on any panel, older-firmware support

Choose a tag to compare

@EapRules EapRules released this 07 Aug 01:13

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=scaled in the launcher for the classic 640x480 mode (with ICERAGE_SCALE=fit|stretch|integer).
  • 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

Choose a tag to compare

@EapRules EapRules released this 30 Jul 17:02

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:

  1. Drop icerage.zip into PortMaster's autoinstall/ folder
    (ArkOS/dArkOS: /roms/tools/PortMaster/autoinstall/, muOS: /mmc/MUOS/PortMaster/autoinstall/,
    AmberELEC/ROCKNIX: /roms/ports/PortMaster/autoinstall/)
  2. 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
    .5apk or .apk.zip, and it has to end in .apk.

Then, with the card back in the console:

  1. Open PortMaster and let it install
  2. Reboot the console — not optional, see below
  3. 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.