New Snes Development?


quadomatic said:
Is there any project where further SNES emulation development is going on? It doesn't seem like emulators are at a point that really uses GP2X fully. Does PocketSnes use both CPUs?
While at least one of the snes emulators are very good, both need work and neither exploits the second cpu. Dual cpu's are the future, as cpu makers are finding it harder and harder to efficiently raise clock speed. Both Intel and AMD's latest offerings are dual core cpu's, so we should find developers getting better and better at using multiple cores for performance. With that said, it is definitely a mistake to add up the megahertz ratings of the cores and say we have a 400mhz machine. There is overhead involved and not everything lends itself well to multiple core hardware, but I believe that the SNES emu's could benefit from the second core by offloading the sound to the second core, and thats the bare minimum. We should be seeing improvements in that area soon.


Chris
 
Last edited by a moderator:
christo930 said:
quadomatic said:
Is there any project where further SNES emulation development is going on? It doesn't seem like emulators are at a point that really uses GP2X fully. Does PocketSnes use both CPUs?
While at least one of the snes emulators are very good, both need work and neither exploits the second cpu. Dual cpu's are the future, as cpu makers are finding it harder and harder to efficiently raise clock speed. Both Intel and AMD's latest offerings are dual core cpu's, so we should find developers getting better and better at using multiple cores for performance. With that said, it is definitely a mistake to add up the megahertz ratings of the cores and say we have a 400mhz machine. There is overhead involved and not everything lends itself well to multiple core hardware, but I believe that the SNES emu's could benefit from the second core by offloading the sound to the second core, and thats the bare minimum. We should be seeing improvements in that area soon.


Chris


And this information is based upon what?
AFAIK Snes emu development is at a complete standstill.
Insofar as multi-core usage is concerned there is a new library available here that should at least ease the work that needs to be done to enable using the 2nd core for anything but trivial computing tasks. I suspect however that there are some very difficult problems instore for utilizing the 2nd core.
 
Last edited by a moderator:
Series-8 said:
Insofar as multi-core usage is concerned there is a new library available here that should at least ease the work that needs to be done to enable using the 2nd core for anything but trivial computing tasks. I suspect however that there are some very difficult problems instore for utilizing the 2nd core.
I don't think the library would really help with most emulators. The 940 has never been that hard to use, but finding a suitable task is a different matter.
 
Last edited by a moderator:
Ive ported gpSP2x to the iPod, and I made it render on the iPods second core, which made it much faster....
 
Series-8 said:
christo930 said:
quadomatic said:
Is there any project where further SNES emulation development is going on? It doesn't seem like emulators are at a point that really uses GP2X fully. Does PocketSnes use both CPUs?
While at least one of the snes emulators are very good, both need work and neither exploits the second cpu. Dual cpu's are the future, as cpu makers are finding it harder and harder to efficiently raise clock speed. Both Intel and AMD's latest offerings are dual core cpu's, so we should find developers getting better and better at using multiple cores for performance. With that said, it is definitely a mistake to add up the megahertz ratings of the cores and say we have a 400mhz machine. There is overhead involved and not everything lends itself well to multiple core hardware, but I believe that the SNES emu's could benefit from the second core by offloading the sound to the second core, and thats the bare minimum. We should be seeing improvements in that area soon.


Chris


And this information is based upon what?
AFAIK Snes emu development is at a complete standstill.
Insofar as multi-core usage is concerned there is a new library available here that should at least ease the work that needs to be done to enable using the 2nd core for anything but trivial computing tasks. I suspect however that there are some very difficult problems instore for utilizing the 2nd core.


Speculation that the main pc emulators are going to have to move in a multi-processor direction and then those techniques would be applied to our little machine. Sure, we have some good programmers but the pc world has much more and the pc world is being forced into multi-core cpu's by Intel and AMD. Presumably, new ways of emulating using multiple cores and the tech will trickle down. Of course, it's unlikely that snes emulation on pc's will ever be made multi-processor since any pc made in the last 7 years or so will run snes at full speed. But mame and other emulators will have to program for multi core systems and the lessons learned will trickle down. It might end up taking too long and the gp2x will be obsolete by the time that happens, but maybe not. Sometimes the pc industry moves quickly and sometimes it moves slowly.
 
Last edited by a moderator:
Yes, but the NeoGeo, Genesis, and maybe the PSx have multiple processors
 
zacaj said:
Yes, but the NeoGeo, Genesis, and maybe the PSx have multiple processors
Wait, what? I didn't think Genesis had multiple processors, although I suppoe that would make sense.

But what I understood was that Picodrive used the second processor for sound, and that wouldn't be too hard to do with another system, would it?
 
Last edited by a moderator:
The Genesis has two processors, a 68000, and a z80, which I belive is used for sound, and i think is emulated, along with other sound chips, on the second CPU... I may be wrong though
 
zacaj said:
The Genesis has two processors, a 68000, and a z80, which I belive is used for sound, and i think is emulated, along with other sound chips, on the second CPU... I may be wrong though
Yea, thats right. I checked on Wikipedia. It uses the second z80 processor for sound.

But I agree with Yrx, but probably out of ignorance. Why is it that this same idea of using one processor to do one thing while the other does another thing can't be applied to an emulator just because the system doesn't have an extra processor.

Couldn't the second processor be used to emulate the SA-1 chip maybe?
 
Last edited by a moderator:
zacaj said:
The Genesis has two processors, a 68000, and a z80, which I belive is used for sound, and i think is emulated, along with other sound chips, on the second CPU... I may be wrong though
Only the FM chip is emulated by second CPU in PicoDrive (which is quite demanding when sampled @ 44kHz).
 
Last edited by a moderator:
The SNES has two main CPUs: The 65c816 for main processing and the SPC700 for sound, so is quite similar to the Genesis. However, getting both processors running in-sync with each other would be the most difficult part.
 
I dont know how it works for sound effects because I havnt looked into it that much, but generally, the -music- track is loaded into the SPC700s memory at the beginning of each level/etc. It then just loops until the next background music track is uploaded.

What this has to do with emulation programming, i`m not sure :). Just maybe that the SPC700 doest really have to be synced perfectly.


Its just something cool I noticed while playing around with one of my Naki GameSaver: http://www.gamersgraveyard.com/repository/.../gamesaver.html
(Think hardware save-states). This device is only able to to save the state of the code/system memory, but the SPC is left alone doing whatever it was doing before, playing the last track, until the code updates it with a new song. But again, only music. Sound effects work normally.
 
zacaj said:
Ive ported gpSP2x to the iPod, and I made it render on the iPods second core, which made it much faster....
No you didn't, you put the blitting on the second core (most handhelds have dedicated blitters so you don't need to do things like this). If you were actually able to move the GBA screen rendering to another core (while still seeing any real performance improvement and retaining graphical accuracy) that'd be a major accomplishment as scanline rendering is strictly interleaved with CPU processing.

To do this properly you'd to use "deferred rendering" such that changes to the graphical state are tracked/logged mid-frame (and accurately cycle timestamped) then make the rendering sort through the changes (the important thing is that the rendering now actually spans an entire frame).

However there are still a lot of complications in using multiple cores for real computation on these handhelds. On GP2X since the second core lacks an MMU you have to use different pointers for everything. On PSP you can't access VRAM and you can't use system calls. It's not like on a desktop where you can just use different threads and let the OS take care of scheduling it. :/

And multi-threading is being used on high end emulators for PC but only so much can be done. It's not as if you'll be able to split a single core CPU into mutliple threads (unless it's being emulated at a high level and it's on an OS that has threading, but even then..)
 
Last edited by a moderator:
It always seemed sensible to me to run the main emulated processor (68k or whatever) on the second ARM core, then all the graphics and extra chips on the main core so it can easilly access all the gp2x peripherals..

But there again - I've not written an emulator so what do i know ;)
 
Well, the iPod doesnt have an MMU, virual or hardware anyways, so thats not really a problem. It did give it a speed increase, so I thnk thats useful
 
I really don't know much of anything about computer programming I guess. All I'm learning right now is Java :lol: (what a n00b)

Just thought I'd at least start a discussion on SNES emulation. It's still a shame that SNES emulation doesn't work fullspeed. I think that the GP2X would be capable of full speed SNES emulation.

Maybe someone will continue work on SNES emulation. I sure hope someone does soon.
 
quadomatic said:
I really don't know much of anything about computer programming I guess. All I'm learning right now is Java :lol: (what a n00b)

Just thought I'd at least start a discussion on SNES emulation. It's still a shame that SNES emulation doesn't work fullspeed. I think that the GP2X would be capable of full speed SNES emulation.

Maybe someone will continue work on SNES emulation. I sure hope someone does soon.
Well yes the GP2X hardware could do fullspeed SNES. It would take highly optimised code that was tailored for the hardware. The problem is most of these emus are all ports of fairly inefficient PC SNES emus with some optimisations. The SNES graphics chips etc are not documented enough to be able to make a efficient renderer on small devices I guess.
 
Last edited by a moderator:
But if that's the case then, why would anyone try to make a PSX emulator?

Considering the progress the PSX emulator has made, I think that GP2X developers could make a fullspeed SNES emulator for GP2X.
 
Back
Top