Picodrive And Snes


christo930

Well-Known Member
Joined
Jan 4, 2004
Messages
1,095
Location
Pennsylvania, USA
Is the Sega Genesis and the SVP as powerful or more powerful than the snes? From what information I could find on it, the SVP is actually a pretty powerful add-on for the Genny, much more powerful than the fx or fx2. Just looking at Virtua Racing, it certainly looks like there are more polygons than Star Fox (or it might be Pilot Wings,my memory is slipping) (which uses the fx for it's polys). Maybe the developer for Picodrive can take a look at the snes emulators and see if he could work his magic on one of them. Could the optimizations used in Picodrive be implemented in the snes emu's? For instance, would it make sense to offload the sound to the second processor? Improve the rendering engine? Is there any hope of full speed snes and possibly playable speed snes with fx and fx2 and dsp? To me setting frameskip at 1 is reasonable, especially if you are able to play the games with extra chips. I noticed the jxd 301 can play smw2 yoshi's island at smooth frame rate and the jxd 301 from the information I can find, is simply not as powerful or fast as the gpx2. So is it just a matter of not enough effort being put in the direction of the snes?

Chris
 
Tobriand said:
Your question's already been answered - and it's a no, I'm afraid.



That's not exactly what I was asking (if SVP tricks could be used by snes), so much as if the gp2x can do the svp with the genesis, then maybe it's just a matter of faster code/optimization for the snes emulation to be full speed. I imagine there would be a nice speed boost by simply moving the sound over to the 2nd processor. I was also wondering if he would be interested in trying to get the snes emu up to full speed (if possible)

Notar is making the snes people look bad:) (just kidding)

Chris
 
Last edited by a moderator:
There's all kinds of info on this topic. Do a search, and you'll see it.

My opinion though, is that optimizing SNES on the GP2X is is just too hard for anyone that cares to really try. Notaz has his hands full juggling all the projects he has already. I'd expect more advancements to come with the Pandora. I'd love to be proven wrong though.

Please do that search. There is a wealth of information available on this subject, much more than I could mention.
 
Jaguarandine said:
There's all kinds of info on this topic. Do a search, and you'll see it.

My opinion though, is that optimizing SNES on the GP2X is is just too hard for anyone that cares to really try. Notaz has his hands full juggling all the projects he has already. I'd expect more advancements to come with the Pandora. I'd love to be proven wrong though.

Please do that search. There is a wealth of information available on this subject, much more than I could mention.
Those advancements will not come from better code, just stronger hardware. Don't get me wrong, I appreciate their hard work and I certainly couldn't do it, but I'm surprised that nobody has said, hey I can kick this problems ass! It's kind of the spirit of home brewing, the challenge of doing it.

Chris
 
Last edited by a moderator:
christo930 said:
Those advancements will not come from better code, just stronger hardware. Don't get me wrong, I appreciate their hard work and I certainly couldn't do it, but I'm surprised that nobody has said, hey I can kick this problems ass! It's kind of the spirit of home brewing, the challenge of doing it.

Chris

From all of the threads I have read on the subject it basically comes down to this:

Yes it is theoretically possible to get near fullspeed (FS1 or so) regular SNES on the GP2X. The complicated and odd SNES hardware is a tangled mess. Since many of the cores/routeens/renderers would need to be re-done from scratch and tailored to the GP2X hardware though it is too much work and would need way too much time.
 
Last edited by a moderator:
DaveC said:
The complicated and odd SNES hardware is a tangled mess
It's more about current GP2X emus then the SNES hardware itself. The best solution would be performance oriented SNES emu from scratch. Exophase is the only person from this scene (and possibly PSP too) who has done an emu from scratch, that should show how difficult such thing is.
 
Last edited by a moderator:
notaz said:
DaveC said:
The complicated and odd SNES hardware is a tangled mess
It's more about current GP2X emus then the SNES hardware itself. The best solution would be performance oriented SNES emu from scratch. Exophase is the only person from this scene (and possibly PSP too) who has done an emu from scratch, that should show how difficult such thing is.

And notaz also have the skills to surprise the Community ;)
 
Last edited by a moderator:
notaz said:
DaveC said:
The complicated and odd SNES hardware is a tangled mess
It's more about current GP2X emus then the SNES hardware itself. The best solution would be performance oriented SNES emu from scratch. Exophase is the only person from this scene (and possibly PSP too) who has done an emu from scratch, that should show how difficult such thing is.


What about moving the renderer and or sound to the second processor? How much of a speed boost would that get? It seems to me that if you efficiently move the renderer and the sound to the second processor , you would see a significant speed boost. Does anyone know if the sourcecode for the jxd301 snes emulator is available? That seems to be a very well done emulator with excelent speed. I understand that it even plays yoshi's island pretty smoothly.

Chris

PS... Thanks so much for your work on Picodrive. It's truly a work of art.
 
Last edited by a moderator:
christo930 said:
What about moving the renderer and or sound to the second processor? How much of a speed boost would that get?
To be honest, I'll be surprised if that doesn't cause the entire thing to run slower, not faster. This would be due to the fact that you would be reducing the cache from 16KB to 4KB, and then you'll have both processors struggling to access code on the already starved A/D bus to main memory.
 
Last edited by a moderator:
christo930 said:
What about moving the renderer and or sound to the second processor? How much of a speed boost would that get? It seems to me that if you efficiently move the renderer and the sound to the second processor , you would see a significant speed boost.
Moving the renderer to the second core would be quite difficult to do while still having good accuracy. SNES games often rely on making changes to the screen state per scanline, several times per frame. Your options are either to synchronize the two cores per scanline (which would not be worth it) or log every video related access and let the other core catch up. For a platform like SNES where games are highly limited in how much video state they can actually change per frame (although DMA could skew this a lot) this might not be too bad, but it'd definitely be a lot of work.

It also might not be a very good fit there since the 940T has so much less cache. The way SNES9x is written the rendering thrashes through cache like crazy, and having 4KB means that fewer scanlines that you have access to the same tile data - in fact, it may not even be enough to get through a single tile where you'd have been sure to reuse the same cache line. In dual core you're only as fast as your slowest element and the SNES emulators spend a lot more CPU on video than anything else. Making the baseline slower would not be a good move.

Keeping the video on the main CPU and moving the CPU and audio emulation to the second CPU might be a better fit.

Sound would probably work better, as the PSP version of SNES9x TYL has demonstrated. It would still be a lot of synchronization work, and there's less to gain because the SNES emulators for GP2X already use ARM SPC700 cores.

No matter what, using the two cores on GP2X is a serious pain in the ass because of lack of consistent address space between them and OS support (can't even run syscalls on the second one you know), hence why almost no one wants to do it.

christo930 said:
Does anyone know if the sourcecode for the jxd301 snes emulator is available? That seems to be a very well done emulator with excelent speed. I understand that it even plays yoshi's island pretty smoothly.

Chris
I think you're greatly misinformed about JXD301. The CPU is generally not slower than GP2X's, in fact, it has the potential to be much faster. It also has more cache. Its actual performance probably varies wildly (and the accounts of JXD301 emulator performance are a testament to this, I would say), but in raw CPU power it should be able to do as much as 2-3x what GP2X can do.

Even then, it's hitting limits because their VBA port performs terribly, and I don't think its Super FX emulation is nearly as amazing as you think it is. The accounts I've read say that Star Fox runs poorly, and Yoshi's Island is at best "playable", but not fullspeed (I don't really know how the game interacts with its FX2 chip, it could be that it spends a lot of time being idle)

The SNES emulator is just SNES9x (I suppose modified for the menu stuff, I doubt they put much else effort into it). All of their emulators are open source ports, and are violating license agreements. I would have been pretty irate if they used my GBA emulator, but on the other hand, maybe then they actually would have had playable GBA emulation...

christo930 said:
PS... Thanks so much for your work on Picodrive. It's truly a work of art.
I agree. IMO it's easily the most sophisticated emulator on the platform in both efficiency and features.
 
Last edited by a moderator:
Thanks for your detailed reply. It makes me wonder why Gamepark choose the soc that they did? Maybe simply for the video capabilities and thinking the devs would just use the first core and leave the second one be since it's so lopsided. But the problem I have with that is that given that almost all of the gp32's could reach 166 and they were using 200mhz as the max on the gp2x, they were offering very little (ram, screen, new flash standard) as an upgrade. The second processor if it would have been implemented correctly might have been much better. OTOH, all things considered, I'd rather have one fast processor than 2 1/2 speed ones.
I had heard that the blackfin while having a higher clock speed was much slower than the gp2x, but maybe I misinterpreted it. They could have meant that the system as a whole was slower or I could just be way off base. I hold out hope because I've heard that things couldn't be done and then someone does it. Obviously, there are limits to this, nobody expects a psone emulator to come out and shock everyone because it's so far fetched, but while I would be impressed given the effort already given if someone came out with full speed snes, I wouldn't be at all surprised. I was surprised at the svp emulation, even though only one game had to work. When I read the specs of the svp I just didn't expect it, plus it's only one game (a lot of effort for one game, although a really good one and VR is really probably now the best 3d racing game on the gp2x). Well, maybe someone will do it, somehow.

Chris
 
notaz said:
DaveC said:
The complicated and odd SNES hardware is a tangled mess
It's more about current GP2X emus then the SNES hardware itself. The best solution would be performance oriented SNES emu from scratch. Exophase is the only person from this scene (and possibly PSP too) who has done an emu from scratch, that should show how difficult such thing is.

Yeah Temper is great. And since he did it from scratch we don't have the annoying bugs from the other old PC ported versions that made their way to all systems (Blazing lazers bug, missing Bonk 2 sprites etc.).

Didn't you do Picodrive nearly from scratch though? I know it uses cyclone that you didn't do but even with that you fixed allot of the bugs. Wasn't the SVP chip thing from scratch too?

As far as SNES if there was just a performance oriented renderer (not the whole emu necessarily) wouldn't that code be useful for a whole lot of emus for the GP2X, Pandora (not that it needs something optimised, it could probably be written in LOGO and be fullspeed on Pandora :p ), phones etc? From what I heard the SNES renderers floating around were never made cleanly or for speed, they were just made to work moderately accurate on higher spec systems. Then coders wanted to have SNES on lower end systems like handhelds and phones etc and took the PC code and cleaned it up a bit.
 
Last edited by a moderator:
Back
Top