Release Egoboo


ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,330
Age
52
Location
France, near Lyon
Here is Egoboo, the OpenSource 3D Dungeon Crawler
preview1.png

This version use gl4es, and is playable with correct framerate (> 15fps) on Gigahertz. You get around 10fps on CC (removing shadow and using low res textures). The game doesn't need fast framerate so it is playable even with that low framerate.

The default keymap has been adapted to Pandora, but it can also be customized:

DPad : Move
{X} : Jump
{A}/{B} : Left/Right Hand action
0/Backspace : Left/Right Hand inventory
O/P : Left/Right Hand Drop/Pickup
{L}: Sneak
,/. : Zoom in/out
q/w : rotate view

History log
=========

Build 04
-------------

  • Updated sources
  • Updates libs
  • Used luajit
Build 03
-------------

  • Added a reset of Gamma at exit in the runscript.sh as a failsafe
  • Moved rotation keys from 5/6 to q/w
Build 02
-------------

  • Boosted Gamma to 2.0 at start
  • Added an option to set custom gamma (put value in .gamma in appdata/egoboo)
Build 01
-------------

  • Initial build
  • Some Pandora customization (screen, keymap).
 
Last edited:
Hi all :)

@ptitSeb : thanks for another great port !

I used to play this game a little on GP2X, and I can't wait to give this newer version a try !

Cheers, Magic Sam
 
I tried to get this running a long time ago, my problem was that the player would turn in the wrong direction.
I thought it was something to do with float types in the script engine.
Did you see this and if so what did you do to fix it?

I think i also converted it to opengles if your interested in that at all.
 
I tried to get this running a long time ago, my problem was that the player would turn in the wrong direction.
I thought it was something to do with float types in the script engine.
Did you see this and if so what did you do to fix it?

I think i also converted it to opengles if your interested in that at all.
The issue with the player direction is with Soulfu, not Egoboo ?
 
Hi again :)

@ptitSeb : I gave Egoboo a try. I had to chmod -R a+rwx appdata/egoboo in order to be able to save my settings (ext3 SD card). I turned off as many options as possible in setup.txt, but I only get ~10 FPS on my Rebirth unit, OC'ed @ 825 MHz...

This game is CPU limited, right ?

Cheers, Magic Sam
 
@Magic Sam : I'm surprised for the change of permission, saves should go in a seperate folder (appdata/egoboo/home), that is created at first start. I have tested only on Fat32 card, but maybe I forgot to include some "mask" command in my runscript...

About the bottleneck, it's quite difficult to say, but on the CPU side, there is nothing specific that eats cycles....
 
@ptitSeb : now that's weird. I deleted appdata/egoboo, restarted the game and this time setup.txt was created successfully in home/.egoboo-2.x...o_O

Maybe it was just a transient error after all...

Cheers, Magic Sam
 
Your right! soulfu was the 'sequel' of egoboo thus my mistake. I wonder if your build of gcc v5 compiles it differently.
I'll try to make a build, but using neon I get a lot's of Bus error. I'll use vfpv3 for now to see how it runs...
 
Just to add a neat little fact on this game for anyone not around during the gp2x days and the reason it cant be run on pandora using Ginge.
Egoboo was ported to the gp2x regardless that it required opengl. The gp2x actually was a dual cpu design (though the second core was limited). Egoboo takes advantage of the second core and uses it to implement a limited opengl software renderer.
That port in my opinion was one of the high technical achievements for the gp2x.
 
Wow Egoboo on the Pandora?
I runned it and it look nice but very dark here.
It was difficult for me to play with that Darkness.

Never played this before here and i must say ..its a realy difficult Game.
Even with 2 Stars(Beginner Mode) i died often in the first 5 Minutes.

Do i earn Exp to get stronger?
How can i Pickup the Weapons from the others?
And where i can see how much Life Points my Opponent have?

Unfortunaly a hard working Day again for me here today.
Thx for releasing it :D
 
Hi all :)

It's bug report time, yeah !

- Start the game, change some settings, exit the game: home/.egoboo-2.x/setup.txt is created

- Delete appdata/egoboo

- Start the game again, change some settings, start a new game from the main menu, play a little, press "ESC" and from that in-game menu exit the game: home/.egoboo-2.x/setup.txt is not created

Could you guys try to reproduce that bug on your end ?

Cheers, Magic Sam
 
@Pickle : I found the issue with soulfu.
It's in charact.c, around line 1480
change
Code:
desired_facing = (unsigned short)(((float) atan2f(y, x)) * (65535.0f / (2.0f*PI)));
with
Code:
desired_facing = (unsigned short) (short)(((float) atan2f(y, x)) * (65535.0f / (2.0f*PI)));
and it will work (I had a similar issue with GZdoom. conversion from float to unsigned int/short doesn't produce the expected result, but using a 2 step float => int => unsigned do work as expected...

Now, I'm still working on soulfu to enable hardware math support. The data is packed, always and not only on loading phase, so to enable NEON and all, I have to change many things, and without NEON, it's too slow to be enjoyable (unless you have a fast build on your side).
 
conversion from float to unsigned int/short doesn't produce the expected result, but using a 2 step float => int => unsigned do work as expected...
The reason is that on x86 there is only an instruction to convert float to signed integer (which is then converted to unsigned int).
On arm there is an instruction to convert float to signed integer and an instruction to convert float to unsigned integer.
On arm, the result of converting negative float to unsigned int is 0, which is of course different from converting the value to signed int an then to unsigned int.
I think that converting negative float to unsigned int is undefined behavior in C, so the result can be anything the compiler wants.
 
So, the game is a bit dark, and there is no otion ingame to make it brighter. So I added a Gamma option in glshim, and use it to boost gamma at start (option is LIBGL_GAMMA). Also, if you don't like my value (2.0), you can overide it by putting the value you want inside a file named .gamma inside appdata/egoboo

Build 02
-------------

  • Boosted Gamma to 2.0 at start
  • Added an option to set custom gamma (put value in .gamma in appdata/egoboo)
 
Small update on the repo, where the gamma is forced reset in the runscipt (failsafe, libGL should also reset it), and moved the rotation keys fro 5/6 to q/w.

Build 03
-------------

  • Added a reset of Gamma at exit in the runscript.sh as a failsafe
  • Moved rotation keys from 5/6 to q/w
 
New build on the repo, with updated everything and luajit, so hopefully a bit faster.

Build 04
-------------

  • Updated sources
  • Updates libs
  • Used luajit
 
Back
Top