GP2X Enigma Port In Progress


sparr

Member
Joined
Jun 3, 2006
Messages
292
http://www.nongnu.org/enigma/screenshots.html

I am in the process of porting this game. It is my first port to the GP2X, and my first experience with SDL, but I wanted to make a little mini announcement to avoid duplication of effort.

Progress:

Game won't run in 640x480x32bpp.

Added 320x240x16bpp mode to the source.

Game launches, displays menu, doesn't all fit but the two most important buttons are usable. Mouse cursor taunts me. Ctrl+C from console produces SDL_QUIT event which triggers the exit sound, so I know sound works.

Spent a few hours modifying the source to take JOYBUTTON events instead of MOUSEBUTTON, and adding a per-frame handler to keep the mouse pointer moving while the joystick is used.

Cursor moves, main menu widgets hover-highlight. Options menu displays, but is too large for the screen. Clicking 'Start Game' results in a Floating Point Exception :(. Spent about an hour tracking that down, got as far as the widget drawing methods before sleep overtook me.

More updates tonight!
 
Cool, would be a great game to have a port of :D


Note: The floating point error might also be a integer division by 0 error (not sure why, but I have had that once)
 
Enigma is sweet, but I wonder how usable it will be without a mouse. There are some subtle movements you have to do in some places to make it work. Maybe it'd be fine with a "fast" modifier button or something like that.
 
The game already supports changing the mousespeed with keypresses, but its a permanent modifier each way until you undo it. I would likely use the same functionality to do transient buttondown/buttonup modifiers. Looks like the GP2X is going to have just enough buttons :)
 
Status update:

Something screwy is happening in the widget display placement. For a quick hack I statically placed all the level selection widgets. They overlap and look like shit now, but I got past the crash I was stuck on. I can now get into the game proper and actually play. I implemented joystick->movement with a copy of the same code I used for the menu mouse pointer. A number of problems now present themselves...

A ) proper button mapping. this should be easy, if tedious.
B ) sprite size. the game is rendering 32x32 sprites on a 16x16 grid, making for lots of ugly overlap and bad rendering. i have tried a simple resize on the sprites but that just makes the game crash on load. progress in this dept is my primary priority at this point.
C ) speed. the game runs at about 20FPS when nothing interesting is happening, just the ball rolling around. animated tiles and sounds drop it to 5-10FPS. i anticipate that there will be many places the engine can be sped up that the upstream devs have simply ignored due to most PCs being plenty beefy enough to run the game.
 
OK, small update.

I got the sprites to work at 20x20/16x16, but for some reason the game doesn't clear the screen between frames now. That will be fun to track down. Speed is still a problem.
 
Back
Top