Release GINGE Update and Ruckage Pack!


So I uploaded a new pack, a small collection of some of JyCet's games (Crazy Jack and Glouton).


I didn't include Drill2x as there is already a native port of Mr. Drillux, or any of the emu frontends.


Go play Glouton, it is a beautiful mashup of snake and pacman to sum it up simply... very fun and quite a well designed game! (Still can't believe he submitted it to the crap games contest back in the day... if that's a turd it's a 24 carat gold turd encrusted with shiny gameplay jewels!)


Now for some updated info:


Slowly getting touchscreen support integrated, still got a couple hiccups but I think I should be able to pull it off (and have it automagically work with most if not all software if I get this right). If anybody has a link to a good solid source of information about how the Pandora touchscreen is setup, polled, etc. I'd love to look at it. I've read tidbits here and there but it's mostly guesswork on my part so far...


I'm trying to find an old GP2X toolchain based on gcc 2.95 and glibc 2.2.5, if I can manage to find a working one and get the loader compiling with it I may just be able to get some of the older games running (stuff that only runs in compat on open2x like ztunnel and a few others, the real problem stems from differences in libm which causes division by 0 and other such problems.) These games require libm-2.2.5 and libc-2.2.5, but if I compile the loader with glibc 2.3.6 the loader itself will choke on these libs and close.


Python support is giving me similar issues, division by zero somewhere in the mix. I'm gonna keep trying to figure something out for it but it's been giving me issues :p


BennuGD support needs to be tweaked a little bit too, I've incorporated the newest running bennugd runtime BUT the newer ones always segfault (almost seems like it's detecting the Pandora as a Caanoo when it does it's OS detection and segfaulting). That means about 3/4 of the bennugd software works, but some of the newer bennugd titles won't work with the older runtime. Might have to try and download the newest bennugd source and modify it to suite the awkward environment)


FXI/UFXI support should be almost perfect, still a few hiccups but in general it's seeming quite solid now. I just need to fix my code to add the -nosplash/--nosplash to the end if it's not already there for games that are still choking on the splash screen.


Personally I've noticed that on Wiz gp2xmenu almost instantly burns itself into the screen. I'm thinking I might just modify the skin to something darker and avoid white in general to avoid the issue, what do you guys think? When I do get around to that I'm intending to also integrate some of the bennugd fixes, hopefully the screen rotation code from picodrive (so that it'll work on F300 also) and add some of the missing libs to increase compatibility! In my personal build atm I'm using the mammut skin to make things a bit darker, but I still find it to have too much white.


gmenu2x is slowly coming along, PokeParadox has given me his source to look at too and that's been helpful :)  I'm intending to keep it separate from GINGE, but have it integrated so that it will load up PND's normally and use GINGE to load GP2X/Wiz software! In addition I hope to get it able to read the packs and treat them like built-in games and display them in gmenu2x and stuff. Touchscreen is working in the menu (W00t!), but there is tonnes to still do on it :p


Also, if anybody has any input on how to successfully uncramfs the Caanoo firmware to get the libs or any other method of retrieving the libs easily I'd greatly appreciate the input. I'm almost at the point where I think I'm just gonna try and ssh into the Caanoo and let it slow transfer the firmware files to my desktop pc for a day or two... Most issues with Caanoo software stem from not having those libs. Ofcourse that will lead to needing to add support for the analog controls, etc. but if I can get them running that'll be my motivation :p


Linux-SWAT: Sad to say I haven't gotten to checking out the SL4P issues, been spreading myself a little thin as-is, but do intend to check it out once I've got some of the other issues dealt with ;)


Still trying to wrap my head around GLBasic's issues, seems to be kinda a two-fold problem: 1 it uses readlink to get the location of the running process to find the datafiles, but readlink is returning the location of the GINGE loader, 2 it does some weird setup to the environment in code and tends to unset the GINGE variables that make this all work :p  (only on some of the GLBasic games). I'll keep slaving away at it as I REALLY like iPrice's games and quite a few other GLBasic made games...


I've also started compiling a list of issues that are way over my head, compiling list of games that aren't working because of them and will hopefully forward them to Notaz to see if he can give me input and help with them. This is his baby I stole so maybe he'll be willing to take it back, laugh at how fat I let it get and coax it into a little healthier living :p


And finally, if anybody has any major insight into how the Wiz/Caanoo libopengleslite module works and what it supports and how I could go about opening a opengles 1.1 context on Pandora in fb mode to hopefully pass it into I'd greatly appreciate it! There is probably about 50ish games for Wiz that this would help get running. I've got the basic concept of how I want to do it in my mind, just don't know how to...
 
If Mr. Drillux is what I'm thinking of, I have to underclock to play it because otherwise it plays far too fast.  I tend to just emulate Mr Driller on gpSP instead these days.
 
Levi: Do you want me to throw drill2x in there then? I can quite easily if you'd like it...


As a note: I messed up guys, I assumed friq was by zacaj (he released an almost identical game called frik for iphone :p), so I'm removing it from the pack and putting it into the (yet unreleased) quiest pack along with all quiest's other games... *facepalm* once again...
 
Last edited by a moderator:
So I uploaded a new pack, a small collection of some of JyCet's games (Crazy Jack and Glouton).


I didn't include Drill2x as there is already a native port of Mr. Drillux, or any of the emu frontends.


Go play Glouton, it is a beautiful mashup of snake and pacman to sum it up simply... very fun and quite a well designed game! (Still can't believe he submitted it to the crap games contest back in the day... if that's a turd it's a 24 carat gold turd encrusted with shiny gameplay jewels!)


Now for some updated info:


Slowly getting touchscreen support integrated, still got a couple hiccups but I think I should be able to pull it off (and have it automagically work with most if not all software if I get this right). If anybody has a link to a good solid source of information about how the Pandora touchscreen is setup, polled, etc. I'd love to look at it. I've read tidbits here and there but it's mostly guesswork on my part so far...


I'm trying to find an old GP2X toolchain based on gcc 2.95 and glibc 2.2.5, if I can manage to find a working one and get the loader compiling with it I may just be able to get some of the older games running (stuff that only runs in compat on open2x like ztunnel and a few others, the real problem stems from differences in libm which causes division by 0 and other such problems.) These games require libm-2.2.5 and libc-2.2.5, but if I compile the loader with glibc 2.3.6 the loader itself will choke on these libs and close.


Python support is giving me similar issues, division by zero somewhere in the mix. I'm gonna keep trying to figure something out for it but it's been giving me issues :p


BennuGD support needs to be tweaked a little bit too, I've incorporated the newest running bennugd runtime BUT the newer ones always segfault (almost seems like it's detecting the Pandora as a Caanoo when it does it's OS detection and segfaulting). That means about 3/4 of the bennugd software works, but some of the newer bennugd titles won't work with the older runtime. Might have to try and download the newest bennugd source and modify it to suite the awkward environment)


FXI/UFXI support should be almost perfect, still a few hiccups but in general it's seeming quite solid now. I just need to fix my code to add the -nosplash/--nosplash to the end if it's not already there for games that are still choking on the splash screen.


Personally I've noticed that on Wiz gp2xmenu almost instantly burns itself into the screen. I'm thinking I might just modify the skin to something darker and avoid white in general to avoid the issue, what do you guys think? When I do get around to that I'm intending to also integrate some of the bennugd fixes, hopefully the screen rotation code from picodrive (so that it'll work on F300 also) and add some of the missing libs to increase compatibility! In my personal build atm I'm using the mammut skin to make things a bit darker, but I still find it to have too much white.


gmenu2x is slowly coming along, PokeParadox has given me his source to look at too and that's been helpful :)  I'm intending to keep it separate from GINGE, but have it integrated so that it will load up PND's normally and use GINGE to load GP2X/Wiz software! In addition I hope to get it able to read the packs and treat them like built-in games and display them in gmenu2x and stuff. Touchscreen is working in the menu (W00t!), but there is tonnes to still do on it :p


Also, if anybody has any input on how to successfully uncramfs the Caanoo firmware to get the libs or any other method of retrieving the libs easily I'd greatly appreciate the input. I'm almost at the point where I think I'm just gonna try and ssh into the Caanoo and let it slow transfer the firmware files to my desktop pc for a day or two... Most issues with Caanoo software stem from not having those libs. Ofcourse that will lead to needing to add support for the analog controls, etc. but if I can get them running that'll be my motivation :p


Linux-SWAT: Sad to say I haven't gotten to checking out the SL4P issues, been spreading myself a little thin as-is, but do intend to check it out once I've got some of the other issues dealt with ;)


Still trying to wrap my head around GLBasic's issues, seems to be kinda a two-fold problem: 1 it uses readlink to get the location of the running process to find the datafiles, but readlink is returning the location of the GINGE loader, 2 it does some weird setup to the environment in code and tends to unset the GINGE variables that make this all work :p  (only on some of the GLBasic games). I'll keep slaving away at it as I REALLY like iPrice's games and quite a few other GLBasic made games...


I've also started compiling a list of issues that are way over my head, compiling list of games that aren't working because of them and will hopefully forward them to Notaz to see if he can give me input and help with them. This is his baby I stole so maybe he'll be willing to take it back, laugh at how fat I let it get and coax it into a little healthier living :p


And finally, if anybody has any major insight into how the Wiz/Caanoo libopengleslite module works and what it supports and how I could go about opening a opengles 1.1 context on Pandora in fb mode to hopefully pass it into I'd greatly appreciate it! There is probably about 50ish games for Wiz that this would help get running. I've got the basic concept of how I want to do it in my mind, just don't know how to...



I'm glad that Gmenu2X source is helping in some way! I followed your suggestion and played Glouton... very cool game!


I'm thinking we really need some submenu folders for the packs as it's a wall of Ginge in my start menu!


Also I had a (vague - thinking out loud) idea regarding 2nd CPU demos and games... I believe  most used libraries (GPU940, CMD940) in order to use the 2nd CPU, could these lib not be reworked to run the same commands in a thread to get those games working?
 
Also I had a (vague - thinking out loud) idea regarding 2nd CPU demos and games... I believe  most used libraries (GPU940, CMD940) in order to use the 2nd CPU, could these lib not be reworked to run the same commands in a thread to get those games working?

I think I had a small discussion with notaz about this, something to do with causing a race condition as there is no way to ensure the second thread will complete it's task in time and the way the 2 cpu's pass info it might cause some real issues as it expects results to be ready, but I can always give it a try and see where it gets me :)


As for the submenu's, if you can figure out a way to add submenus to categories from a pnd I'll do it! Even if I have to modify libpnd to do so (already been looking at it and how I can get multiple icons in there anyways :p)


Glouton is so solid!


P.S. finally (after the repo overwriting the openwiz pack a handful of times for no logical reason) got a Quiest pack uploaded, moved Friq into it and turned the zacaj pack to just Bloxz now. Also gonna reupload roadfighter a little later as a standalone as I haven't found anything else that requires openwiz that isn't also on GP2X.
 
The Roadfighter pack. I was sure it already exists natively on the pandora, but it seems it as been disabled. Is it worth porting it?
 
Linux-SWAT: Sad to say I haven't gotten to checking out the SL4P issues, been spreading myself a little thin as-is, but do intend to check it out once I've got some of the other issues dealt with ;)

Np.
 
ptitSeb: It's a fun little game, short though... Might be worth porting as it probably wouldn't take much to do tbh... Anybody who used to play the old monaco 500 style arcade games might enjoy it!

w00t! fairly sure I figured out the glbasic stuff, now just to implement something to make them work proper...


Playing cat trap right meow!


Just an update: Managed to use D_Skywalker's toolchain to make a glibc-2.2.4 compiled loader, odonata demo and ztunnel seem to work perfectly with it. Just gonna test against a few others that had math bugs and see what else it'll work with :) Breaks ALOT of stuff though (anything compiled with glibc 2.3.6 or higher doesn't work), so it'll be added like wiz support using a commandline option once I've got them all sorted out :p

Touchscreen progress goes slow, I'm slowly learning how each of them work and what I might be able to do to pass the input from the pandora into the faux gp2x touchscreen but it's tricky to say the least.

I've uploaded a new GINGE with the glibc 2.2.4 support added and a pack of games/demos that require it... Note that some still have issues (nom has no music due to ogg940 and green is purple? Also, you need to underclock to 200Mhz to make cave copter playable :p)

Jan 3rd: Notaz helped me fix up a few more issues, so I uploaded a new binary. All credit goes to him on this one. I'm still struggling with the GLBasic stuff, managed to add some code for overriding readlink, but did so to the dynamic loader and glbasic games typically use the static loader :S Stoopid hooka I is :p

Edited: to prevent me from spamming too many posts in a row :p
 
Last edited:
Hi. Thanks for all the great work!

Any chance of having SmashGp2x to work on Pandora?

Thanks!
 
I have smashgp2x working now, maybe I modified the scripts or something to get it working... I'll give it a check and get back to you if it does require slight modification.

It does have a few minor graphical glitches and shit, but is completely playable :)

Otherwise give it a couple days and I'll try and make a pack with it and some extra backgrounds, characters :)

EDIT: Yeah, just downloaded smashgp2x from openhandhelds archive and it runs fine without modification :) Mind you a little bit of underclocking seems to help make the character select menu a little more easy to use ;)

Another edit: seems I've noticed a little regression on the last build I uploaded to the repo, makes ultimate fenix games stop working, I'll look into it and hopefully have it sorted and reuploaded by tonight :)

Note: regression fixed by notaz, compatibility up again!

Edit for January 7th: Uploaded a Guyfawkes pack! Also, slowly been making some progress on things... python I have starting (and segfaulting shortly thereafter), but that means I figured out how to avoid the division by zero error I used to get :D. Refactored my codebase and split my changes (pack scripts, games, runtimes, etc.) into unique directories so I can keep with the open source nature of the project and make my changes freely available. I'm just gonna clean up my code changes and remove some of the non-working/useless changes I've made and submit them back to notaz. This is also beneficial in that I can search through the sources files quicker instead of it getting hung up on scanning an extra 20 directories full of binaries.

Notaz's help the other day really helped get a large handful of games running and I've widdled it down to a pile of about 200 games in my test folder that aren't working still. GLBasic games account for 50+ of these, and if I can't figure out how to modify the code so they work as-is I've figured out a way to create packs that will work, just would prefer to have a nice, clean solution. Another 20+ are python games, getting closer with them but still need work. Allegro accounts for another 5-10 games, seems to be an issue with allegro expecting configuration information, they try to set screenmode to 640x480 and fail. So that would put the working dir somewhere OVER 9000!!! err, probably closer to 600.

I tried to get a new wiz release out today, but ran into a snag when the controls didn't work :p The good news is, compatibility is up and working good on the wiz, it even likes X11 games and phoneme games which the pandora chokes on atm. I'll keep looking at it and hopefully a new wiz/caanoo release will be out soon :)
 
Last edited:
i'll dig up my old pnd then or make a fresh build .. soon as I can :)

FWIW, I found some old code.. looks like I never finished the port; the progression there was GP32 -> gp2x / palm / tapwave / PSP -> wiz -> caanoo
They all use a lame little library of mine for doing basic UIs in framebuffers .. starting at wiz version I had it using my lib and then rendering via SDL.

So porting the wiz/caanoo version to Pandora is pretty quick; I did a look and it compiles, but seems to be wedging on load. I'll try to get a bit of time to debug it, figure out why its lowing up on load. It should be running lightning fast on the Pandora, given it was designed to run on 200MHz ;O
 
Nice! I remember being blown away by Outcast on the GP32 - suddenly the little handheld became a desktop computer with a file explorer and everything. For a short while I was set on learning all things Atari ST so I could make the most of it. Looked up text and graphics editors, and even thought about getting a C compiler going on it... :D
 
So with ALOT of help from Notaz GINGE now has touchscreen support and majorly increased compatibility! I'll try and get a new release out here in a couple days, just wanting to hold off until a few more things are fixed up and I have internet @ home again :p
 
So with ALOT of help from Notaz GINGE now has touchscreen support and majorly increased compatibility! I'll try and get a new release out here in a couple days, just wanting to hold off until a few more things are fixed up and I have internet @ home again :p
Noice!

I only had the non-touch GP2X so what can I expect that makes good use of the touch-screen? :D
 
Space varments, animatch, aim (once its playing again, probably just need to get my openwiz version compiling again...), boomshine, wiztern, a handful of other puzzle games and some glbasic games like general promise, Danger Mouse, and a few tower defense clones... That's the gist of it off the top of my head... Oh and hopefully eek eek hook, just needs a newer bennugd :D
 
Ok, so I'm currently uploading a new binary of GINGE!

Realistically all thanks go to Notaz for the recent changes as he's basically been helping me to fix stuff up as I find it and I've spent more time integrating/testing his changes than looking at the code at all....

New/Improved:
  • touchscreen support (not perfect, but a good start!)
  • More compatibility fixes
  • SDLBasic runtime included now (although most of the SDLBasic stuff is 640x480 :S)
  • Newer BennuGD runtime, more games working, but touchscreen support needs fixes...

Still working on:
  • damn sound volume increasing ridiculously, some wiz/gp2x-f200 programs set the volume of OSS higher and higher everytime you play them :S Turning my pandora's volume wheel all the way down still winds up being too loud...
  • touchscreen needs a little work to support newer gp2x/Wiz programs
  • Python, it just plain hates me... might just wind up modifying Pandora python to fake GP2X controls or modifying/porting the python itself to pandora...
  • lots of things, but I can't say progress will be as quick as it's back to me working on stuff, Notaz blasted through these issues I told him about :p
Uploading it right now, and I'll start working on Packs and Gmenu2x again here for a bit, gmenu2x just needs a lil lovin' and it should be ready for a release too :D

Edit: Ooops, gimme a minute... got the wrong bgd-runtime in there :p
ReEdit: Ok, bennugd fixed, but I think I introduced a small bug in the code with my in-progress changes, will have a fixed release out soon...
 
Last edited:
Hi all :)

@Hooka , @notaz and all the people who contributed games along the years: THANK YOU !!!

Space Varments with touchscreen support... <3

EDIT: Animatch with touchscreen support... <3 It's like meeting old friends ! (without having to worry about short battery life this time)

EDIT 2: Alex's games stopped working with the latest release :( Here are the logs from Falldown:

=======================================================================================
PND : /media/Pandora/pandora/menu/package.ginge.alexm.pnd
PND_FSTYPE : Squashfs
APPDATADIR : /media/Pandora/pandora/appdata/ginge_packs
APPDD_FSTYPE : ext3
PND_CPUSPEED : <unset>
EXENAME : ./pack_alexm_Falldown.sh
ARGUMENTS : <unset>
=======================================================================================
[ START ]--- Mount the PND ----------
Mounting : mount -t squashfs -o ro "/dev/loop1" "/mnt/utmp/ginge_packs"
Mounting the Union FS : mount -t aufs -o exec,dirs="/media/Pandora/pandora/appdata/ginge_packs=rw+nolwh":"/mnt/pnd/ginge_packs=rr" none "/mnt/utmp/ginge_packs"
[SUCCESS]--- Mount the PND ----------
[ START ]--- Starting the application ( ./pack_alexm_Falldown.sh ) ----------
Mounting : mount -t squashfs -o ro "/dev/loop2" "/mnt/utmp/ginge.notaz"
Mounting the Union FS : mount -t aufs -o exec,dirs="/media/Pandora/pandora/appdata/ginge.notaz=rw+nolwh":"/mnt/pnd/ginge.notaz=rr" none "/mnt/utmp/ginge.notaz"
sh: --wiz: unknown operand
---
#!/bin/sh

# Looking for something?

op_runfbapp /mnt/utmp/ginge.notaz/ginge_dyn.sh "/mnt/utmp/ginge.notaz/" ./Falldown
sync

---
sh: 1: unknown operand
sh: 1: unknown operand
LD_LIBRARY_PATH is /mnt/utmp/ginge.notaz/lib:/mnt/utmp/ginge.notaz/python/extras:/mnt/utmp/ginge.notaz/bgd-runtime
ginge: ginge_init dlsym: fopen
ginge: ginge_init dlsym: sigaction
ginge: ginge_init dlsym: tcgetattr
ginge: ginge_init dlsym: tcsetattr
ginge: ginge_init dlsym: system
ginge: linkpages @ 00004000
ginge: linkpages @ 40066000
in_evdev: found "keypad" with 84 events (type 00100013)
in_evdev: found "nub0" with 3 events (type 00000007)
in_evdev: found "nub1" with 3 events (type 00000007)
in_evdev: found "gpio-keys" with 16 events (type 00000023)
fbdev: /dev/fb1: 320x240@16
fbdev initialized.
mount: only root can do that
input: new device #0 "evdev:keypad"
input: new device #1 "evdev:nub0"
input: new device #2 "evdev:nub1"
input: new device #3 "evdev:gpio-keys"
# drv probed binds name
0 0 y y evdev:keypad
1 0 y n evdev:nub0
2 0 y n evdev:nub1
3 0 y y evdev:gpio-keys
Falldown: cannot open output file /mnt/tmp/Falldown_tmp
not a wiz!
unmout ginge.pnd
[ START ]--- Waiting the Union to be available ----------
[SUCCESS]--- Waiting the Union to be available ----------
rmdir: failed to remove `/mnt/utmp/ginge.notaz': 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]--- Starting the application ( ./pack_alexm_Falldown.sh ) ----------
[ START ]--- Restoring the frame buffer status ----------
[SUCCESS]--- Restoring the frame buffer status ----------
[ START ]--- uMount the PND ----------
[ START ]--- Waiting the Union to be available ----------
[SUCCESS]--- Waiting the Union to be available ----------
rmdir: failed to remove `/mnt/utmp/ginge_packs': 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 : 2

EDIT 3: do you think you could hack C4A support in ?

Cheers, Magic Sam
 
Last edited:
hmm, weird... I'm assuming it's because your card is EXT3 as it doesn't perform a chmod on the executable extracted from cramfs... I can look into it...

As for EXP/C4A, I can definitely give it a look, not promising nothing though :p

Edit: also Magic Sam, if you could do me a favor and go to the appdata/ginge_packs/alexm/falldown/tmp folder and check the permissions set on the binary there it'd be good to know...
 
Last edited:
Back
Top