GP32 Emu devs - what's really possible?


Prophet

God I'm old.
Joined
Jun 9, 2003
Messages
1,712
Website
Visit site
We all know the GP32 can handle fantastic 8bit emulators, including NES, SMS etc. And Skeezix proved it can even do very capable 16bit emulators.

So - what's the realistic limit in your informed opinions? While I'm happy to hear anyone's opinions on the subject, I'd especially like to hear from people like Rlyeh, Skeezix, Black, Yoyo, Flack, DarkFader - and all the other talented GP32 coders that visit this board from time to time.

I bet these discussions go on at #gp32dev all the time - give us board surfers a taste of your wisdom! ;)

Do you think full speed Genesis emulation is possible with sound?

How about SNES?

Amiga?

And arcade games - we haven't seen much development on that front for the GP32. Imagine if something like Sparcade or HiVE, with fast ASM cores and tight optimized code were developed! What could the GP32 pull off?

I really wonder where the GP32 will be in 6 months in terms of emulators.

Speculate away...
 
WEll if you wanna see the conversations on #gp32dev, here's a small taster of it right here

<Drewus> lyc, why not make a virtual pizza eating ON the GP32?? hehehe
 
How many bits does that pizza have? And would sausage emulation be possible? Mushrooms? Peppers?
 
Yep... although pineapple emulation might be stretching it a bit too far :)

Someone even reckons they can emulate Jesus for GP32 - handheld salvation (at least, for those who believe in him). Could be interesting lol.


As a non-emu author, I'm suspecting yes to most of your questions except Amiga, but that's very much from a non-devr point of view. No idea about Arcade stuff though; never got into it.
 
cool to see you on this board, prophet. glad your using your relatively hi-profile site to give the GP32 some more exposure to the otherwise ignert masses.. (well not really ignorant, more like "quick to dismiss")

as for your q's... I am no expert by ANY sense, but for some reason I suspect that full speed genesis and snes are definitely possible on GP32. Maybe not soon (meaning, within the next 6 months, or the next year even) and possibly never as the scene's not THAT active.. but there's some dedicated and talented people working on things, as we have seen -- with luck, patience, and support, then only time will tell.

(anyway you wanted expert opinion, and since I'm NOT that, I will kindly step aside and let your Burgertime-themed discussion commence... again, thanks for doing what you have to bolster the scene a little!)
 
doubt whether an Amiga emulator (at decent speed) is a viable. Of course i'd love to see one but i just dont think it'll be possible. WINUAE chugs on my pc as it is :(
 
I'd love to get Skeezix ,Rlyeh's or any of the other Emu coder's opinions on this. I know an Amiga emu is possible, but how fast? I think snes (almost full speed with sound) is doable if a lot of ASM is used. I have a tendancy to look at emu's on the Acorn risc PC's and ARM powered PDA's to see what the GP could possibly do, as there are simalarities between these platforms (ie very little custom hardware, and a reliance on the ARM CPU) I reckon a lot of earlier mame stuff could be done too.
 
This little wonder can do so much already... and there are so many guys out there that are technically brilliant, so just imagine a hardware mod for the GP32 - install your own graphics co-processor :lol:

Anyway, to be realistic, I think SNES emulation is very much a real goal, as well as Genesis, but it is unlikely that we'll see anything substantially more powerful being emulated with realistic speed and playability.

But with all the thousands of NES and PCE games already I am extremely satisfied with my GP32. B)

Nazarene

---
A .jpg is worth a thousand .txt's
 
Good to see you on the board Prophet and thanks for using retrogames to wip up some intrest.
As for 16bit emulaiton on the GP32, when it first came out I guessed that it would not be possible, But since then we've seen NES emulation (IMBNES) on the Playstation. I guess SNES and Genisis are be possible with sound and good speed but it wont be a port. It will either be a an EMU written from scratch (like IMBNES) or a highly modified port such as Intelecto's SNES9xGP.
 
Get that megadrive and snes emulation i want it today to be fully playable with sound.....

day dreamer................ :p

how i long for the day. LONG FOR THE DAY.
 
We all know the GP32 can handle fantastic 8bit emulators, including NES, SMS etc. And Skeezix proved it can even do very capable 16bit emulators.

So - what's the realistic limit in your informed opinions? While I'm happy to hear anyone's opinions on the subject, I'd especially like to hear from people like Rlyeh, Skeezix, Black, Yoyo, Flack, DarkFader - and all the other talented GP32 coders that visit this board from time to time.

I bet these discussions go on at #gp32dev all the time - give us board surfers a taste of your wisdom! ;)

Do you think full speed Genesis emulation is possible with sound?

How about SNES?

Amiga?

And arcade games - we haven't seen much development on that front for the GP32. Imagine if something like Sparcade or HiVE, with fast ASM cores and tight optimized code were developed! What could the GP32 pull off?

I really wonder where the GP32 will be in 6 months in terms of emulators.

Speculate away...
Thats an easy question to answer --

It 100% depends on how much work someone wishes to put into it. The old 80/20 rule.

(This is a long not thought out splurge of brain dump; likely many typos, and likely many bad off-the-envelope cacs, but you shoudl get my drift)

Remember, most of "us" (in the gop32 context) are doing it on the side, for larks. I work 12 hour days, but I also do stunts on the side like my GP32 work, since its too fun to not do. That puts an upper cap on the amount of work one is willing to take on (physical max limits, plus the limit on how much of your free time you want to throw away, multiplied by how productive you are when you go at it.. knowledge levelof emulation, etc etc).

Also, most emu porters (remember, most people are *porting*, not writing new emulators) have it pretty easy.. a port is not difficult, just a bit of tedium once you know how to port for gp32 at all. And since its easy, most porrters do it for glory.. they want to do 3 days work, get a beta out, and then people say "your'e the best cool guy out there!". So they're never going to get that far, since they want the short devo cycle to get the glory. So we'll skip those "script kiddy"-types :)

So whats left is the people who do it for fun or love, and have limited amount of time. (either work or school or the like takes of most of your time). Thats me, rlyeh, wub, groepax, spiv, and eveyrone else.. no one works full tiem at gp32 except a lucky few.. we just ahck around in our spare time. (Apologies for speaking in the royal-We :)

Now note that most work is port work as I said, not new emu work; or new emu work 75% derived from other emus. Few emus for GP32 are "new" at all.

So a port is porting C code form one platform to GP32; GP32 makes it a pain since no standard C lib routines, for instance, for file IO.. so for a port you either rip out the file ops, or implement wrappers that look like standard file ops, or you toss out the file op dependant code and just keep the emu core. Porting this is easy (couple hours to a couple of days) and gets you gp32 work. Example.. quake or descent for gp32 -- they're direct prots without any gp32-ification, and hence very slow. But for an emu, you can get very decent work.. XCade arcade emu for GP32 (mine) is a 100% C port from Palm OS to GP32 (and originally from Unix and DOS, too). Very portable, but written very tightly too.. and runs perfectly well on Palm and GP32 alike. No GP32-ification needed. That was a 3 day job for the msot part, plus some time to finesse it up. That emu works by rendering to a buffer, andf then the emu shell blits it to the display; so the same code does all the work for PAlm, GP32, etc.. and you lay a thin veneer over ti to handle th eGP32 junk. Easy.

So most 8bit emus are like this.. you port it *fast* (a few days) to get it alpha/beta; then if its a NES or the like, it runs slow since theres some graphic hardware, and you tune and tune (the 80% of the 80/20 rule) and you get it faster.. thats why fNES and the like took a long time to come to fruition.. tuning is needed. But a lto fo emus need none.. just port and its "good enough".

(Hence why most emus have no docs, no decent UIs etc.. I spent a tonne of time writing a nice html manual and making a useful GUI, so that people could just use the emu without having to westle with it, installation, or the like. I did it for passion to make a nice work, so went that extra on the manual, etc. Your glory hounds wll not bother)

So.. the lifecycle is a few days for alpha, then 0 to a few weeks to get some tuning in for a usable release for more sophisticated machines.

So far its all in portable languages like C.

Now we come to sophisticated machines like SNES, Genesis, etc.. lots of hardware action to make them work, and since the GP32 doesn't have any of that, it has to be doen in software. Emulating not only processors, but the graphcis hardware,. Uh oh! (like XCade Space Invaders.. SI just renders to a 256x256x1bpp buffer; I just blit that to the gp32 8bit screen with a rtranslation.. so easy it hurts.)

Somethign like this the GP32 *cannot do as a straight port.*. A straight C job is portable, but you're not talking mega opimized (though it could be very well optimized, witness XCade which can run full speed on a 486 -- but in SNES, a straiht C port to a 132mhz platform with no hardware help is just not going to cut it. :) A SNES can have little hardware help ot a lot of hardware help, depending on the game in question. If the game is maxxing out on hardware stuff (blending, rotation, etc) you're talking some serious cycles to render that. Consider.. 200x200 screen is 40,000 pixels; What if its rotated from something, and that something is actually tiles and not a bitmap? Rotationg ain't cheap, so you'd better roatte only changed parts if you can, but what abotu blend layers, etc? Thats a lot of work just to render a screen :/

Doing it mostly in C (processors and rendering ) gets you Snes9x (which may have have a little assembly in it). Portable, accurate and sluggish.

How well could it be optimized?

This is where I say it 100% depends on investment of time; you could at the biggest extreme rewrite the entire thing in assembly, at which point I'm sure you could get full speed SNES, if you made it good assembly. (Good design and well executed).

But its not likely anyone will *want* to invest a year of their life into writing a pure assembly (non portable) codebase; it'd only be good on ARM machines, and likely heavily tier to the GP32 rendering scheme.. so you'd kill yourself writing this, and then you'd have only the GP32 to show for it (ouch at that cost); if you're swift, you'd make the processor cores in assembly for ARM Thumb, and then you'd be able to use it on Palm OS and other AERM machines; but the renderer may be GP32 dependant to get the max speed. Killer. ("year" depending on time investment and complexity of system; not really as year.. a hardcore coudl pull it off in a month, but it'd be a nasty month with a lot of pizza ;)

Mind you, you could generate ARM processor emulators "pretty fast" (a few weeks of hard work); or write a perl script or the like to spit out the cpu emu for you. Or translate intel assembly ones to ARM (not too hard). Whatever.

But the obvious is.. you can port eays things fast and easy; medium things like NES take some work. The ST has little graphical hardware, so is actually easier than a SNES I would argue, thoguh its a big complex machine.. most of the complex stuff I swiped from an already tuned emu, or used from my TOSEmu which was written and proofed years ago.. I've already written a couple ST emulators.. so I come well prepared to gp32.

So SNES and Genesis and Amiga are tougher cookies to crack (obviously); I'm betting you can get them to run pretty well with a few frameskip, with a few weeks work. But to get them to run *well* takes a serious time investment. Not terribly difficult, but *time*.

And *time* is the toughest resource to come by...

If you spend an hour a day, it'll take a long long time ;)

But if you splurge, or if your'e a student and can skip those calculus classes, you coudl suerly pop something out.

I'm certain Amiga coudl be done fairly well (a little slower than Castaway/GP) with not too much work for some games, and chug for other more involved emulation games. To do Amiga reeally well woudl take some meat though (check your PC stats to find out how much PC you need to run UAE for the heavier games; hence you'd need some assembly to tighten down UAE).

Likewise for SNES and Genesis.. we can alreayd see that a simple port gets you not bad but with a few frameskip; you want to get that last 20% and frameskip 0 or 1? You need to spend 80% of your time getting it... and not the most fun :)

There is of course a cap as to how far you can go; ie: The GP32 has onyl 8MB of RAM, and a 132MHz is not much of a processor for emulation. But you can do some wild things given enough time :)

So.. how many peopel woudl step up to invest a killer pile of time? Mad skillz are nice (in this day and age when post coders dont' know how machines reall work anymore :/), butits time as your enemy here and some skillz.

jeff
 
Last edited by a moderator:
Great post there Skeezix, apart from you're obvious typos, the best post I've seen here in a LONG time...!
Top notch work!
 
Yeah, thanks Skeezix. Exactly the sort of developer's perspective I was hoping for! And thanks for your awesome CaSTaway port, if you read my review then you know how much I admire what you've done. :)
 
Yeah, thanks Skeezix. Exactly the sort of developer's perspective I was hoping for! And thanks for your awesome CaSTaway port, if you read my review then you know how much I admire what you've done. :)

It was a great review :) Lots of hard work poured into it we can tell :)

I did greedily page down through it looking for a Castaway picture, and it made me giggle link a lunatic for amoment when I saw it. Instant gratification is always good ;)

jeff
 
Last edited by a moderator:
Skeezix, i have contacted every author of all the Amstrad CPC Emulators out there for Windows and have had the offer of source files and help from the original authors with both Arnold and Caprice - both of which were written in C.

Kevin Thacker has his source files downloadable from his website - Arnold having been ported to Unix already, and Ulrich Doewich assures me that he would send his src files for Caprice32 to anyone who expressed a genuine interest.

Im just wondering, out of you, rlyeh, wub, groepax, spiv, (and anyone else) would anyone be interested in doing a simple Alpha? Even for simple glory hounding? The Amstrad isnt a very hard machine to emulate after all, lying between the ZX Spectrum and the C64 in terms of hardware specs...
 
Skeezix, i have contacted every author of all the Amstrad CPC Emulators out there for Windows and have had the offer of source files and help from the original authors with both Arnold and Caprice - both of which were written in C.

Kevin Thacker has his source files downloadable from his website - Arnold having been ported to Unix already, and Ulrich Doewich assures me that he would send his src files for Caprice32 to anyone who expressed a genuine interest.

Im just wondering, out of you, rlyeh, wub, groepax, spiv, (and anyone else) would anyone be interested in doing a simple Alpha? Even for simple glory hounding? The Amstrad isnt a very hard machine to emulate after all, lying between the ZX Spectrum and the C64 in terms of hardware specs...
I know my hands are full right now, sorry :( I'm not sure I even saw a CPC.. just didn't come out arond here, and I try and avoid projects for machines I've never used ;) If I get some more time I may work on DOSBox (intel emulation) or some others, or work on some unique stuff. But right now just too much real life work going on so can't do any side stuff for a bit :(

jeff
 
Last edited by a moderator:
OK, the 6months are over. So what did really happen?
Does anybody know if there have been any improvements to an Amiga Emu? I would love to hear that someone started coding! :rolleyes:
 
Back
Top