Why Is Snes So Hard To Emulate?


shinneri

Certified Guru
Joined
Sep 10, 2004
Messages
2,393
Age
35
Location
Middle of Nowhere, USA
Website
www.gpnewbie.com
I know pretty much nothing about the innerworkings of the old gaming consoles (SNES, Genesis...), but it appears to me that the SNES is vastly more difficult to emulate than the Genesis. Is this true? And if it is true, why is it?

Sorry, I was just wondering.
 
Not sure, but I think there's transparancy issues with the SNES.






BTW ... I LOOOOVE your avatar! I was going to change mine to his daddy, the drunken clumsy fool, but I was out-voted :D

Edit: GPJosh beat me to it!
 
The SNES had all of those effects like mode 7 , alpha channel (transparency), and a wicked sound chip and DSP. Some say the sound chip was more powerful than the main CPU itself. SNES was real close on the GP32. If weren't for the fact that Yoyo spent so much time doing the Zodiac version and stopped GP32 developement we would probably have SNES at full speed w/sound by now, :( but probably w/o transparency.
 
I don't doubt what you say is true (it obviously is with all the trouble emulating poses), but it just seems crazy that it could be on the level of the GP32.

I found the specs:
Name: Super Famicom [Super Family Computer]
CPU: G65C816 2.6800000 MHz
SPC700 2.0480000 Mhz (sound)
Sound: 256 FM + 16 Digital Stereo channel
Screen: 256 x 224 @ 60.00 Hz
256 x 240 @ 60.00 Hz
Colors: 32768; 256 max
Published: 1989 by Nintendo
Others: 128KB RAM
Sprites: 128, 32 per scanline
Sprite Size: 8 x 8 to 64 x 64 pixels
Proprietary graphic modes which allowed rotation and other special effects.


And thanks for the compliment TelcoLou. It's definitely one of the best, most original games I've played in a long time.
 
Actually the CPU, what what I recall, ic clocked at 3.58Mhz or there abouts. Not that it's a significant jump from the specs you quoted.

The SNES is all about those nifty custom graphics and sound chips. 128 sprites, multiple background layers (as many as 3 or 4 in some modes IIRC), transparencies all over the place, scaling/rotation layer (mode 7) etc. That's where the emulation gets bogged down. The GP32 has no real graphics chip to speak of, you can't just pass sprite and background tile handling off to the hardware (as can be done of the GBA for example) so you have to do all that in software, with the CPU taking all the hit from all those calculations.

The Genesis in comparison had less complex graphics capabilities. 80 sprites, no transparencies, no scaling/rotation layer (AKA Mode 7), and just 2 background layers.

And the SNES also has more sophisticated sound to boot.

Aside from the slow CPU, the SNES was much more powerful than Genesis. But good game design (i.e. Sonic, Shinobi, Gunstar Heroes etc.), as we all know, can make up for all that. :)
 
I don't doubt what you say is true (it obviously is with all the trouble emulating poses), but it just seems crazy that it could be on the level of the GP32.

I found the specs:
Name: Super Famicom [Super Family Computer]
CPU: G65C816 2.6800000 MHz
SPC700 2.0480000 Mhz (sound)
Sound: 256 FM + 16 Digital Stereo channel
Screen: 256 x 224 @ 60.00 Hz
256 x 240 @ 60.00 Hz
Colors: 32768; 256 max
Published: 1989 by Nintendo
Others: 128KB RAM
Sprites: 128, 32 per scanline
Sprite Size: 8 x 8 to 64 x 64 pixels
Proprietary graphic modes which allowed rotation and other special effects.


And thanks for the compliment TelcoLou. It's definitely one of the best, most original games I've played in a long time.

He didn't say that the system it self was on level with the Gp32, he said the emulation was almost on level with the system.
 
Last edited by a moderator:
Also some of the games like mario kart and i think megaman had custom chips built into the cartridge, 2x 20mhz processors in some of them.
 
yoshi's island had a custom chip (the sequel to the super FX, I believe...) or was it a super FX?

anyway... this game will NEVER be playable at a decent level of quality on GP32 (ie frameskip=<3, mono 11khz sound)

and if it ever is, i'll eat a sombrero. without ketchup.
 
Hellooooo,

Are we also forgetting that the SNES games sometimes had extra hardware in the cartridges, i.e Starfox had extra chips to enhance the 3D capabilities of the SNES. and I'm sure one or two had extra RAM.

Clare.
 
With the SNES, it's certainly the graphics processing which causes thing to grind to a halt.

To make the snes emu faster than it is would require a complete rewrite of the graphics core, which seems to be taken mostly direct from Snes9X. I don't think this is going to happen any time soon as it's a huge task compared to an ASM CPU core, for example.

I wouldn't worry about the DSP's placed into cartridges, as they are few and far between compared to the number of available snes games out there.
 
Pardon me if I'm talking out of my arse here, but would it be possible to code a program, that, instead of emulating certain hardware, simply converts the rom/program instructions and... calls to the native system, in this case, from SNES processor/language to GP32's equivalents? And writes an executable, fxe or what was it.

I mean, how does an emulator work? (I'm quessing...) The program from the rom instructs the SNES hardware to draw a square, and the emulator in-between, acting as the SNES hw, instructs the GP32 hardware to draw a square.

As someone migth notice, I know nothing about coding... Just a thought. :p
 
also taking outta my ass but.. i think what you are referring to is the video hardware, which GP32 doesn't have (as opposed to say, the GBA) So the CPU has to handle everything, which otherwise would be much speedier.

It has already been proven that GBA is a substantially weaker system to the point where it's vid hardware doesn't help significantly with snes emulation (where it lacks the raw power of a GP32 otherwise). It's too bad we don't have a hybrid of the two systems eh?

I'll be surprised if we ever see the GP32 get much further with Snes emulation. I have said similar things before about Genesis emulation however, and it's already got much further than I expected..

but don't hold your breath!
 
Snes Emulation is slow because of various reason - but the main ones are:

Custom GFX hardware - very powerful - very tough to emulate fast on a slow cpu (gp32)

Audio Hardware another can of worms in itself.

all these things have to by synchronised along with the cpu - this again takes even more gp32 cpu time.


p.s. that looks like Aberystwyth?
 
also taking outta my ass but.. i think what you are referring to is the video hardware, which GP32 doesn't have (as opposed to say, the GBA) So the CPU has to handle everything, which otherwise would be much speedier.

It has already been proven that GBA is a substantially weaker system to the point where it's vid hardware doesn't help significantly with snes emulation (where it lacks the raw power of a GP32 otherwise). It's too bad we don't have a hybrid of the two systems eh?

I'll be surprised if we ever see the GP32 get much further with Snes emulation. I have said similar things before about Genesis emulation however, and it's already got much further than I expected..

but don't hold your breath!

I would think it would be possible to get almost perfect SNES emulation out of the GP32. BUT, everything would have to be written from scratch in ARM ASM and be very optimised with little to no bloat left over from the PC version which these ports are based on. This is very unlikely to happen though, as it would be a massive task.
 
Last edited by a moderator:
Back
Top