Release Z-LOCK


Very Active Member
Nov 30, 2007

I ported Z-LOCK to Pandora.
Z-LOCK is a Japanese shooter with a twist: your shot power is directly proportional to the number of enemies locked on to you.

Movement: DPAD / Left nub
Shot: [A/Y]
Adsorption: [X/B]
Pause: [P]
Quit: [ESC]


The source code is inside the PND and on GitHub.

The Pandora port uses ptitSeb's fork of glshim.

* fix a crash on first run (when waiting to run demo)
* fix a bug which slowed the game down on each game over
Last edited:
Great work!
A little bit difficult for my taste, i'll prefer Titanion, but anyway good that you ported another D programmed game to Pandora.
Hi all :)

@M-HT : thanks for porting that great game to the Pandora ! Do you think you could hack C4A support in ?

It needs some overclocking (~800 MHz) for smooth gameplay though.

And I also had a crash once, I'll try to reproduce it.

Cheers, Magic Sam
[doublepost=1462017399,1462014961][/doublepost]@M-HT : Bug report !

I had the weird feeling that, the more I played that game, the slower it got...

So I used @notaz ' Live system info to see how performance looked like on my Rebirth unit, OC @ 825 MHz, SGX driver 4.10:

-1st play: ~20 FPS (from start to game over)
-2nd play: ~15 FPS
-3rd play: ~10 FPS

There must be some leak somewhere, maybe the resources are not freed correctly upon restart...

Could you please have a look at it ?

Cheers, Magic Sam
I fixed the bug, download the new version on the repo.

I'm not sure about C4A support - there are multiple game modes, you can start at different levels (if you achieved them previously).
Hi all :)

@M-HT : thanks for fixing that bug ! Out of curiosity, what was it about, and what did you do to fix it ?

Cheers, Magic Sam
[doublepost=1462111603,1462109930][/doublepost]I also managed to reproduce the crash I had.

On the very first start, with no prior appdata/z-lock directory existing, if you stay for too long at the title screen, the demo will fail to load and the game will segfault (on a Rebirth unit, latest SZ installed, SGX driver 4.10, OC @ 825 MHz):

PND : /media/Pandora/pandora/menu/z-lock.pnd
PND_FSTYPE : Squashfs
APPDATADIR : /media/Pandora/pandora/appdata/z-lock
PND_CPUSPEED : <unset>
ARGUMENTS : <unset>
[ START ]--- Mount the PND ----------
Mounting : mount -t squashfs -o ro "/dev/loop0" "/mnt/utmp/z-lock"
Mounting the Union FS : mount -t aufs -o exec,dirs="/media/Pandora/pandora/appdata/z-lock=rw+nolwh":"/mnt/pnd/z-lock=rr" none "/mnt/utmp/z-lock"
[SUCCESS]--- Mount the PND ----------
[ START ]--- Starting the application ( ./ ) ----------
Segmentation fault
[SUCCESS]--- Starting the application ( ./ ) ----------
[ START ]--- Restoring the frame buffer status ----------
[SUCCESS]--- Restoring the frame buffer status ----------
[ START ]--- Restoring nub mode ----------
[SUCCESS]--- Restoring nub mode ----------
[ START ]--- uMount the PND ----------
[ START ]--- Waiting the Union to be available ----------
[SUCCESS]--- Waiting the Union to be available ----------
rmdir: failed to remove `/mnt/utmp/z-lock': Device or resource busy
[ START ]--- Waiting the PND mount dir to be free ----------
[SUCCESS]--- Waiting the PND mount dir to be free ----------
cleanup done
[SUCCESS]--- uMount the PND ----------
Return code is : 1

Cheers, Magic Sam
Last edited:
@Magic Sam:
The bug was caused by an object that should have been created only once at the start, but it was also created after game over (while keeping previous instances). Since the object was involved in drawing, that increased the mount of work with each created object.

I can confirm the crash, and I'll take a look at the cause.

Good find.
Hi all :)

High score (normal mode): dead in sector #6 with ~2M points.

EDIT: 1 983 620 points to be exact.

What about you guys ?

Cheers, Magic Sam
I fixed the crash, download the new version on the repo.

@Magic Sam:
Today I reached my highest sector in normal mode - sector 4. So you are better than me.

Have you tried other modes?
.. still sector 2 only... so many projectiles to evade...
Hi all !

@M-HT : thanks for fixing that second bug :)

I have only played in normal mode so far, but I'll try the other modes soon. I believe normal mode, starting from level one, would be a great candidate for C4A support ;)

On a side note, do you guys understand what the absorption button and the counter in the lower right corner are for ?

Cheers, Magic Sam
[doublepost=1462455544,1462454281][/doublepost]OK, I gave all the other modes a go. Score Attack Normal and Time Attack Normal could also use some C4A support :p

N.B: the high score for these two modes don't show up on the title screen, is this a bug ?

Cheers, Magic Sam
[doublepost=1462457050][/doublepost]I finally broke the 2M points barrier in normal mode: 2 293 820 points :D (dead in sector 7)

Cheers, Magic Sam
On a side note, do you guys understand what the absorption button and the counter in the lower right corner are for ?
The adsorption (not absorption) works only in normal mode and boosts your attack power even when your not locked. It lasts a short while and then has to recharge before it can be used again.
Hi all !

@M-HT : oops, sorry for the confusion, and thanks for your explanation :)

New hi-score: 2 655 830 points, dead in sector 8 :D

Cheers, Magic Sam
At last I have tried it.

It's good (all those D shooter are amazing, the D language must have been created just to make shoot'em up!!!)

Got only to level 4 for my 1st run, with only 540k... still a long way to go it seems...