Squidge posted on Aug 28 2005 at 06:20 AM said:
A couple of people (including myself) were talking to Craig last night whilst he was on IRC, and it certainly seems that (from what he's said) Snes, GBA and Amiga will be possible, as long as it's done properly. Ie, a straight port isn't going to work, but a version made for the gpx2 should work quite nicely. Note that this is not a quote from Craig, it's just what I believe is possible from what he said.
A couple of other things no doubt will make devvers happy too
See, thats the rub
I keep bringing it up, but why not beat a dead horse?
Two cores is cool (so devs may be interested), and with Linux behind it likely more devs will pile on board (ie: the Slashdot community et al
) However, two cores means much more work in order to get some effectiveness out of them..
ie: 2 * 200Mhz would likely at best work out to 350MHz -- overhead for talking between CPUs, and while one CPU waits for the other etc. Further, in practice, it cna often work out much less as one CPU is master while the other is delegated to just specific thing slike blits or whatever..
If code is very carefully create to work on both CPUs for this device, it coul rock.. get the full 400MHz out of it. But we all know thats not going to happen quickly or maybe at all, so most apps will be limited to 200MHz, or maybe toss a few things over to the otehr.. so maybe feel like 250.
(Lets hope they overclock
So I'd say it would be better to have 400MHz for them both, or a single 400.. over a dual core or the like. It just makes it harder to dev for, and theres not enough devs to go around.
Examples:
Does Fenix handle multi-threading across CPUs? Hope so.. we've got a ot of Fenix coders here now, and if Fenix is single-thread, then it won't get any advantage.
ScummVM -- thats a huge project; does it handle multiple threads already now? If not, it would likely be a _tonne_ of work to make it do so. So if not, it'll likely remain at 200MHz effective speed.
Emus -- most of the GP32 emus are ports.. not written by the porters. They're all monolithic.. decode, emulate, render, repeat. So most just do a quick port and thats that.. it'd take 'some work' to use the dual cores. Fortunately, do to the separaiton of components, they may well dual core pretty easily, and if someone actually is doing significant work on it they could_really_ use the dual core.
ie: CaSTaway .. mostly CPU emulation heavy, but the video rendering coudl easily be dispatched to second CPU; this would be an example of the 80/20 -- one CPU doing 80% of the work, and the other doing 20% (sound and video emulation); however, this would be all CaSTaway needs to go full speed no lag no problem.
Amiga could be harder, bu with all those custom chips, it coudl be possible with good timing to spread them around.. however, the timing might be difficult to do and also get speed up..
Snes9x .. the rendering of the display is a heavy part of the speed here, so it could really help to have a seocnd CPU; at render time, take a snapshot of state and then render it while the emulaton continues? May work out well.. or maybe suck. Coudl really use a real graphics GPU here.
So.. many apps will get no benefit from a unused second CPU; some apps may get tuned and take some small advantage. But a few apps, written carefully for GP32, could go nuts and do great things. Just takes more work.
So thats why I say.. one chip makes it 'easier', so thats the way to go; on a professional machine adopted by thousands, dual core would actually get used right
Still, we're getting dual core.. so devs better get reading those specs
jeff