Prosonic Engine


evilmarshy

Still Fresh
Joined
Aug 23, 2006
Messages
36
ProSonic is an engine designed for "Sonic the Hedgehog" games. The engine can play sonic levels exactly how they would in the original games. People may ask why would I wan't to do that?, I could just use my sega megadrive/genesis or ROM to play sonic. Well ProSonic has support for more things, such as more colours and considering it is going to be opensource mods will arrive straight away. I really would like this to be ported to the GP2X. The maker of the ProSonic engine will release 2 versions. The first version will be the engine itself in its basic form and the second will be a pack applications to allow users to make brand new sonic games.

zoomsm.png
This is one of the features in the engine. You can make it so you can zoom in and out.

procomp1.png
This is the accuracy of the engine.

object.gif

Here is one of the ProSonic apps which allow you to create/edit levels.

For more Information and updates checkout ProSonic FAQ
 
I think this is a great idea for a port. Having a native Jump and run engine would rock! Also I am really excited for that zelda engine release... I wonder what happened to that. Does the developer of prosonic use sdl so we can easily compile it?
 
At the moment, it's 100% ANSI C. The final product will also be this way,
but I will likely offer some optional Intel assembly versions of some of
the code. This way, if it's being compiled for an Intel platform, the
assembly code can be used. If it's being compiled for any non-Intel
platform, you will still be able to compile it using the C code.
ProSonic will be aimed to run at full speed at 320x200 on a Pentium II at
400MHz. Since the machine I'm writing it on uses that processor, it gives
me a chance to test it on an older machine so a large majority of people
can play it without a high-end computer. It will require at least a 256
color display. I'm not sure about sound, but I'm thinking I will support
as low as 11025Hz, or maybe 22050Hz. Make sure you have plenty of RAM and
hard drive space, because I'll be using those heavily.
To be ported tu GP2x it will require to do some ASM optimisation in the C code to have good speed.
 
I guess it's possible to port, it could be used in the same way as the beats of rage engine (make a game on your PC then load it up with the engine on your GP2X). About asking him about that SDL whatever, I don't see any contact details on his blog, does anyone else see anything?
 
He said it was 100% ANSI C. But the main priority is porting the engine itself. All the apps used to make games could just be ported over to other OS's. At the moment a lot of them are DOS apps so I guess linux and other OS users could use DOS-BOX. The thing I'm not sure about is the RAM. He doesn't actually say how much RAM it's gonna take. Also 400Mhz the GP2X can manage that can't it? (GP2X Dual 233Mhz=466Mhz). Another thing, about the 3D Polygonal objects could that be handled if we needed it?
 
evilmarshyx posted on Sep 1 2006 at 12:32 PM said:
Also 400Mhz the GP2X can manage that can't it? (GP2X Dual 233Mhz=466Mhz).

nup. more like dual 233mhz = one ~300mhz oc'd, and one big headache..
 
Last edited by a moderator:
Some people were curious about questions and things on ProSonic? I'm willing to answer them in this topic. I'm the creator of the engine.
 
Looks like you can import level data from sonic 1, 2, 3+k and CD... from either the rom or save states.

I must admit I like the idea of this.. and I think it could work, but things would have to be worked out regarding the GP2X to get it working at a nice speed.
 
At the current moment, Sonic 1 and Sonic 2 levels can be successfully imported. Sonic 3, Sonic & Knuckles, Sonic CD, and Knuckles' Chaotix levels will be importable in the future. The idea is to have as much compatibility as possible with all the original platformers (except Game Gear games).

I don't know enough about the GP2X to say in my own opinion if it really needs major optimizations or not. The most I know is it uses a 320x240 resolution with 18-bit color and runs at 200MHz. Is all of that correct? What I would need to know is how drawing to the screen works (e.g. do you draw the screen via-sprites, or can you actually draw pixel-by-pixel to the entire screen?). How many layers are available to draw on?

This engine runs at any resolution and supports 8-bit and 16-bit color modes (using colors from the standard 18-bit palette very common in DOS programs). The engine runs at full speed (60fps) on my Pentium II 400MHz machine (not sure how fast it would run on slower machines). Of course there's other factors too that would need to be looked into besides just on-screen stuff, I'm primarily concerned about screen-related stuff at the moment.
 
With Ryleh's minamal lib you can get access to the framebuffer in 8, 16 (and 24?) bit modes.
You can draw pixel by pixel... there is no hardware sprite support like the GBA.

You also have the option of SDL, but I'm guessing the minmal lib is they way you'd be better going.

Your knowledge of the GP2X is sort of correct. The standard clockspeed of the GP2X is 200MHz, it has another CPU though which can be used although it is often tricky to do so.
 
Here's a question I have -- how much tweaking and such would have to be done to port a basic game created in the Allegro library. Is that a huge task or are there enough things in Allegro that would allow it to be manipulated to work on the GP2X? ProSonic uses the Allegro library being the reason I'm interested. If I can get enough knowledge on this, I could try to see about making a port to the GP2X. If I fail at it, perhaps someone else would volunteer to try and port it.
 
Super! That should work quite nice. But another problem remains -- is there any way to test GP2X software on my PC? I don't own a GP2X...
 
For multi platform code I just use

#ifdef TARGET_GP2X
// GP2X code here...
#else
// Do regular PC stuff
#endif

to compile the GP2X version you have to specify -DTARGET_GP2X

but this way you can separate platform specific code when you build.

Incidentally, since you don't have a GP2X, I'm sure you can find people willing to test builds for you.
 
Yeah, you would have to get someone to test it for you. I wouldn't mind testing it for you.
 
I suggest, if you get someone to test some builds for you, you get someone who can run using serial output, or USB networking with telnet, so you can get some meaningful debug information from the console. PM me if you want a hand with testing.
 
Back
Top