Enigma Port, V2


sparr

Member
Joined
Jun 3, 2006
Messages
292
I got my port of Enigma into decent enough shape for a real release. The instructions are a day or two out of date, but the button mappings are all still there. I had to mangle the GUI to get below 640x480 minimum resolution so I ditched the higher resolutions and larger tiles completely. I moved the levels into zip files, using the zipios functionality of the engine. This means FAR less individual files in the release, at the expense of a few seconds delay when displaying a new level selection menu. The game is mostly playable, with average framerate in the 30-40 range, except for signficant slowdown in levels with indirect 'physics' effects like the meditation ball pits, magnets, etc. I got the minimum FPS up to about 4 (from <1) by replacing every double in the engine with floats. Now that I have this game playable I am going to spend some time polishing my fixed point library and moving it over to C++, then I will probably revisit Enigma and see how it fares with fixed point math.

qq2.jpg


http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,25,1729
 
My brother in law loves this game! Thank you soooo much for the great port!
 
Now replace every float in the engine with some fixed as the gp2x doesn't have a FPU :p This looks nice though.
 
Just tried it. great work!
It takes me some time to get used to play the game with joystick. And I would prefer the L/R buttons to increase/decrease the mouse speed by each press, rather than acting as modifiers. In some levels, it's difficult to concentrate on the movement of the ball while keep pressing the L button down.

Anyway, it's really great to see such great games to be ported to GP2X! Keep it up!
 
I like the controls just fine. I think it would absolutely destroy the feel of the game when the L and R button would decrease or increase a certain speed value. It does take a while to get used to the controls but I was really surprised how well it plays. Thank you very much. I am looking forward to more levels and optimizations.
 
I was looking for a fixed point library a while ago to improve the framerate of my game.

http://wiki.yak.net/675 is what I found.

Just #include the .h file, and you'll get a Fixed datatype. You'll probably need to do some typecasting here and there, but the result I got was a DRASTIC increase in framerate since I was using doubles for some pretty major stuff, so you'd might as well give this a shot if you want, at least until you finish your library.

Thank you for porting this awesome game! :D

Edit: Simplifying my post...
 
Yeah, generic fixed point types are out there. A better one can be found in Allegro, with trig and such, but thats in C, so no operator overloading :(.

Mine is going to be ARM-specific, taking advantage of our SMULL instruction for very fast multiplication, as well as providing fixed point trig, sqrt, etc.
 
Sorry to bump, but I just wanted to mention that Enigma 1.0 has recently been released, adding over 200 levels to the game. I was wondering if you (Sparr) had any interest in updating the game or alternatively releasing the source so an interested developer may update it? (I think it's GPL anyway)
 
Sorry to bump, but I just wanted to mention that Enigma 1.0 has recently been released, adding over 200 levels to the game. I was wondering if you (Sparr) had any interest in updating the game or alternatively releasing the source so an interested developer may update it? (I think it's GPL anyway)

Me to. ^^ Enigma is great but it could need some bugfixes. Quicker Menus, faster Meditation levels, remove the white graphic glitches in the object-shadows...
I have solved near 70% of the Oxyd-Levels. But on GP2X some Levels are not possible to solve. Not to mention all the Enigma-Levels (hard is no word for them! ) :lol:
 
Last edited by a moderator:
For the record, my GP2X was stolen in September of last year, as mentioned elsewhere. I am holding off getting a new one now until I hear some news on the F200's touch screen and d-pad. Once I have it, an updated build of Enigma is on my to-do list.
 
Sparr said:
For the record, my GP2X was stolen in September of last year, as mentioned elsewhere. I am holding off getting a new one now until I hear some news on the F200's touch screen and d-pad. Once I have it, an updated build of Enigma is on my to-do list.
Cool. :) With the new Touchscreen, the game maybe gets a little bit more playable on the GP2X, especially the Meditation Levels and every Level with focus on sensitive movement of the Marbles. But of course I hope the non-touchscreen GP2X will be supportet to in the Future. :)
 
Last edited by a moderator:
I plan to use the touchscreen as a logarithmic joystick for input, and keep the existing d-pad controls as well.
 
Update!

I have ordered my F200, and will hopefully have it in a week or two. An updated Enigma port is high on my to-do list.

Bad news, it's going to take longer than it did last time.

Good news, it's going to take longer because I am going to do a better job:

1) My 320x240 resolution code is going to be implemented the right way this time. That means resolution changing will work in the game (TV-out support some day?), AND it means I can try to get the main devs to accept my patches so low res is available on other platforms.

2) For input I plan to take a much broader and more useful approach. Last time I just hacked the mouse and keyboard reading functions to interpret gp2x buttons as mouse movement and button/key events. This time I am going to discretely and correctly implement support for keyboard and joystick buttons for all inputs, with control configuration options. (imagine a 2-axis accelerometer device with a joystick driver, strapped to the back of the gp2x...)

3) I have some ideas to get better results scaling the artwork down while preserving their icons and such. That means more readable and visible special blocks, and less pixellation.

4) I am going to offer both zipios and non-zipios versions. That means you can get smaller filesize, OR faster map loading.

5) I want to do more work speeding up the floating point stuff. Maybe just optimizing the use of floats, maybe replacing some or all of them with fixed point or even straight integer math. This should make the physics-heavy levels playable.
 
It's gonna be great!!! Enigma is an amazing game. Can't wait to rig up an accelerometer or try touchscreen!
 
Good News. :)
I hope there will be an Enigma Port for Pandora to. I heard rumours about an possible accelerometer into the new Handheld...would be awesome, OXYD&Co. are made for that Input method. ^^

Sparr said:
Update!
3) I have some ideas to get better results scaling the artwork down while preserving their icons and such. That means more readable and visible special blocks, and less pixellation.

Yes, in the current port there are some shadow-problems I think. White dots around the blocks and the Marbles here and there.

Sparr said:
5) I want to do more work speeding up the floating point stuff. Maybe just optimizing the use of floats, maybe replacing some or all of them with fixed point or even straight integer math. This should make the physics-heavy levels playable.
The Meditation Levels are nearly unplayable at the current Time. More Speed would be great. :)
Maybe the Menu-Speed could be improved to, it takes a while when you want to select a level or go back in the menus.
Sometimes the Game crashes besides. ^_^
 
Last edited by a moderator:
Back
Top