Voxelmanip Forums
ROllerozxa ROllerozxa
Site Admin
Posted on 2022-07-15 15:51 Link | ID: 225
Magma Mobile is a rather prolific mobile game developer from the good old days, Push Roll being one of their older titles.

It is a puzzle game where you push (or roll?) these creatures on the playfield. You can cause chain reactions by bumping several ones together, but you cannot push one which is located directly next to another one. 'ts pretty fun, I remember once getting to at least the Ocean world on one device.

Oh and the music is pretty good too. The menu music is Blup by maf464 and the in-game music is Mafland 2006 by the same artist... Which is actually a remix of mafland.xm, a tracker song! :D Surprisingly, the 2006 version also has an unofficial remix itself which is... "Mafslam".

Since Magma Mobile is still around and don't show any signs of removing their older lineup of games (last update was 2018, pretty recent for this forum), I'll link to its Google Play page.
ROllerozxa ROllerozxa
Site Admin
Posted on 2022-11-04 20:33 Link | ID: 551
I was meant to put this in a post on my blog which applies for all Magma Mobile games, but I'll just put this here:

K.WAV

Most older Magma Mobile games store all their assets in a big blob called K.WAV. While it might look daunting at first, its format is quite simple and easy to extract.

The K.WAV format is essentially a bunch of separate files squashed together, one after another. In each Magma Mobile game, if you run it through a decompiler there is an array of file sizes in the com.magmamobile.game.{game_name}.K class called SIZES. 6 simple lines of Python code can take this and split the K.WAV file into separate files.

with open("K.WAV", "rb") as f:
i = 1
for size in sizes:
with open("out/%s" % i, "wb") as f2:
f2.write(f.read(size))
i = i + 1

Now, there should be an out folder with a bunch of files, numbered after their file index. If you're on a decent operating system, you should see proper file thumbnailing, letting you know what each file is. Generally, they're mostly standard PNG files, OGG files, raw text files and JSON files. However, Push Roll's levels for instance are stored in a custom binary format that hasn't been documented by anyone yet (Although I would certainly like to document it sometime).