PDA

View Full Version : Best Snes Emu?



Liambass
January 20th, 2008, 00:32
so what does everyone think?
im on 3.80 m33 - 4 +1.5....

Tesseract
January 20th, 2008, 00:37
So far, the recently released uo_SNES seems to be the superior choice. I tested both it and SNES9x_TYL and the uo version did a fair amount better with Super Mario RPG.

Although sadly, the n64 version of Star Fox STILL plays better on Daedalus than the SNES version does on either uo or TYL.

mike_jmg
January 21st, 2008, 17:24
I'm using Snes9xtyl 0.42me and works kind of ok, but you need to tweak some options in order to get some games runing properly, like frameskip and procesor's clock speed, there are a bunch of other options that can help, plus the speedhacks

DanTheManMS
January 21st, 2008, 20:35
So far, the recently released uo_SNES seems to be the superior choice. I tested both it and SNES9x_TYL and the uo version did a fair amount better with Super Mario RPG.

Although sadly, the n64 version of Star Fox STILL plays better on Daedalus than the SNES version does on either uo or TYL.

Can you check the snesadvance.dat file from uo_SNES and see if it has an SMRPG entry that's relatively short (only 3 or 4 patches, each separated by a comma)? If so, that's probably a major factor in having it run faster. I only just recently speedhacked SMRPG, so the patch would not be present in the default SNES9X_TYL download.

In addition to that SMRPG speedhack, I also speedhacked Star Fox, but unfortunately it appears to have done nothing, according to the reports I've gotten from PSP owners.

Tesseract
January 22nd, 2008, 03:51
1B8A0625|Super Mario RPG - Legend of the|4|0|0|0|0|0|A41=42.302FF=42,202E9=42DB,9F5=42

Hope that helps. ^^d

DanTheManMS
January 22nd, 2008, 07:04
Yup, that's the one I made. That would explain why it's running so much faster for you in uo_SNES. Try copying that entry into the snesadvance.dat file you're using for SNES9X_TYL (replace any older entry if it's in there) and you'll see similar speed gains.

Also, make sure that period after A41=42 is a comma.

Tesseract
January 22nd, 2008, 21:01
I'm sure it was... I was at work transcribing from PSPFiler. ;)

O-bake
January 22nd, 2008, 22:03
i haven't tried uo_SNES already, but can anyone give a comment on the speed? (compared to TYL with identical snesadvance.dat?)

SoulReaver911
January 23rd, 2008, 15:02
I don't understand why SNES emulators suck. It's good that speed hacks are feasibly useful, but it doesn't hold a candle to the work done on gpSP or Daedalus.

However where can I get these speed hacks? Are they just lines of text that you put in snesadvance.dat?

Preferably I play SNES9xTYL but not the ME version which has a considerably noticeable downgrade in sound, and even though this should help the video emulation I haven't noticed it. I like the current standard version. I run a fat 3.80 m33-5, which is what I think you have. (By +1.5, you mean the Kernel add-on necessary for fat's right?) The only major problem with this emulator otherwise is the fact that sometimes the .ini files (I'm assuming it's the main one) gets corrupted somehow and the emulator wont play games - which is a quick fix seeing how you can just copy the main files in again and it seems to fix it.

DanTheManMS
January 25th, 2008, 05:49
However where can I get these speed hacks? Are they just lines of text that you put in snesadvance.dat?
In essence, yes. There are several fields, separated by vertical pipe symbols. The first is the game's CRC, the second is the game's name so us humans can find it quickly, the next few are ignored completely by the SNES emulators for the PSP, and the last contains the actual speedhacks.

Speedhacks are in the format XXXX=42XX or XXXX=DBXX. Anything that ends in =EAEA isn't a speedhack but is actually there to prevent the game from calling out to the SPC core. This was needed in SNES Advance, the SNES emulator for the GBA, because the SPC core was not emulated at all so sometimes games would freeze when the nonexistent SPC core didn't respond. You could remove these ones with no ill effects if you wanted to.

The latest snesadvance.dat file (called the SuperDAT) can be found by going to the PocketHeaven forums and going to the stickied thread in the SNES Advance forum. However, on the last page of that topic you'll find a post by me that contains several PSP-only fixes for games like SMRPG and Kirby's Dream Land 3 that don't stand a chance of running on the GBA at all, but mog123 hasn't added them to the database yet.

If you're curious, the fields that the PSP emulators skip were there for configuring different graphics settings in SNES Advance. Trying to get the graphics layers working right was a nightmare, but the SuperDAT at least made it possible in the first place.

SoulReaver911
January 26th, 2008, 12:28
Wow what an awesome thread you guys got going there. Thanks for the pointers.

So the snes emulator for the Psp was just ported from an GBA emulator...is that the reason why SNESTYL is so crappy compared to other homebrew emulators for the psp? Or is it just using the same snesadvance.dat file which in turn has no effect towards the emulator's crappiness. (Excuse the terrible adjectives...)

darkness angel 777
January 26th, 2008, 16:28
I use SNES TYL ME it should work pretty good.

DanTheManMS
January 26th, 2008, 22:20
Wow what an awesome thread you guys got going there. Thanks for the pointers.

So the snes emulator for the Psp was just ported from an GBA emulator...is that the reason why SNESTYL is so crappy compared to other homebrew emulators for the psp? Or is it just using the same snesadvance.dat file which in turn has no effect towards the emulator's crappiness. (Excuse the terrible adjectives...)

No, the SNES emus for the PSP are ports of the SNES9X emulator that runs on multiple platforms like Linux and Windows and such. Because SNES9X is not tied down to the x86 architecture like ZSNES is, it's a popular choice for people who want to port an SNES emulator to a specific platform.

SNES Advance was built for the GBA from the ground up, using the GBA's 2D hardware to replicate SNES graphics hardware, which is the only reason you get semi-decent performance from the 16 MHz system.

SNES9X for the PSP simply uses the snesadvance.dat file because it was already made for the GBA and provided a clearly useful service. Finding speedhacks isn't exactly a trivial task, so as long as people had made all the effort of speedhacking as many games as they had, why not make use of that effort for other emulators as well?

As far as I know, only the two SNES emulators for the GBA and the ones for the PSP use this speedhack database. This is because emulators must be specially coded to recognize and interpret the "42" and "DB" opcodes, which are normally never used by the SNES's CPU.

Sometimes the speedhacks may cause issues with a particular game, in which case it's best to disable them for that game or remove each hack one by one to see which one is causing problems. However, for the most part they probably aren't the reason overall emulation is "crappy" in your words.

The premise behind speedhacks is very simple. The SNES runs at a fixed 60 fps, so when all the work is done in a frame, it enters an idle loop going back and forth between two instructions until it's time for the next frame to come along. By finding that loop and replacing it with an instruction to skip it, we can increase speed by a substantial amount.

The reason games with special coprocessor chips (like SMRPG and Kirby's Dream Land 3, etc) don't have entries in the older snesadvance.dat file, or have ones that break the game, is because the two most common methods of finding loops to hack requires a debug version of SNES Advance or Snezziboy (the other SNES emu for the GBA). If a game doesn't run at all in either of those two emulators, you can't run the debug versions to find loops to hack. The only reason I was able to find hackable loops recently with these games is because I used the SNES9X Windows debugger to step through each game's instructions. It's more work and it's harder to test the results, but in the end it's probably worth it.

SoulReaver911
January 27th, 2008, 11:59
Forgive my ignorance. :P So this loop, why was it there in the first place? Was is necessary for the SNES to have the two instructions while loading the next frame - that seems like something that could be taken out of the emulator for speed in the first place (albeit no longer a "perfect" emulation). Or was it implemented in emulators for the SNES to make emulation more accurate.

However I'm guessing that just goes blandly against emulating a SNES and could have potentially unwanted side-effects that will cause your psp to explode in your face.

By the by, I appreciate your SMRPG hack and it makes the game more playable (it was absolutely impossible to play before.)



Sometimes the speedhacks may cause issues with a particular game, in which case it's best to disable them for that game or remove each hack one by one to see which one is causing problems. However, for the most part they probably aren't the reason overall emulation is "crappy" in your words.

Actually, that's not what I meant. I was questioning SNESTYL's use of the snesadvance.dat file, not if the hacks were making the emulation worse. (That's ludicrous. Most game's hacks are very useful speed inducers.) I hate the fact that there isn't a SNES emulator built from scratch for the PSP (that I know of or can find) and that they are ports. I was getting the idea that it was porting parts of the GBA emulators too, (Not that I know if that's possible or what not) since it uses the same .dat file. If that were true, then that would probably add to the emulator's "crappiness" because the GBA emulator is not compatible for the PSP, as the original computer SNESTYL isn't either. And so by that I meant the SNESTYL for the psp is in itself "crappy." Not the hacks.

DanTheManMS
January 27th, 2008, 18:27
When I say "two instructions" I don't mean two specific instructions that are only used for filler material. It's not like the emulator can say "Oh, here's the filler instruction, let's skip it" or anything. Each game uses different loops using one of about ten different instructions, instructions that are used all throughout the game for gameplay-related purposes. Some games use different loops for different parts of the game; example: Super Mario All-Stars has different loops to hack for each of the 4 games included within it. Some games are evil and have different loops for EVERY LEVEL (I'm looking at you, Mickey Mania). Most games have a different loop for the intro screens and fade-in/fade-out sequences than in-game gameplay. Sometimes it's more than two instructions looping back and forth, which can be particularly difficult to get working correctly.

While it's possible to detect these loops automatically and attempt to skip them (SNEmulDS, an SNES emulator for the DS does it), and while sure this method could be introduced to SNES9X, it isn't foolproof, and it can sometimes screw up the game logic. For this reason, manually hacking each game is the safest method of making sure the hacks don't break anything.

Unfortunately, a program called SATools exists which is designed to search through a rom file and attempt to find all the speedhacks it can. This was made to make it easier for people to find speedhacks for SNES Advance. The patches it finds aren't usually all that accurate though, and often they break the game entirely. Due to this, there are many games in the database with entries that have not actually been tested. For example, Super Mario RPG was run through SATools and the patch was added to the database even though there's no way it would ever run on SNES Advance or Snezziboy, so nobody was able to check the validity of the patches. When SNES9X_TYL adopted the snesadvance.dat file, users found that the SMRPG entry broke the game and prevented it from booting.

I see what you mean now about porting vs. making one from scratch. No, I highly doubt that any parts of SNES Advance are actually used in SNES9X_TYL, as it was coded mostly in ARM assembly for speed purposes, which would not run natively on the PSP's processor. As far as I know, Chilly Willy is working on his own made-from-scratch SNES emulator for the PSP, though there's no release yet.

BTW, if you want me to take a look at any game in particular to see if it needs new or updated speedhacks, let me know.

SoulReaver911
January 27th, 2008, 20:00
Wow, I can't wait for the emulator that Chilly's making. If it's anything like other built from scratch emu's it will be awesome (thinking gpSP.)

Not exactly sure how well it currently runs and if it even needs speed hacks but is there much you could do for Earthbound? And thanks in advance for offering to take at look at this, it's doubly appreciated.

jxx2005
February 20th, 2008, 02:26
where are these snesadvance.dat files of which you speak?
i would like to speedhack my snes9xTYL-0.3 so i can run SMRPG better

edit
nm
i just needed the newer version
i found it

now what do i put in the dat file to speekhack smrpg?


edit 2
NEVER MIND
the newest version of snes9xtyl has the speedhack in it already

DanTheManMS
February 20th, 2008, 03:40
As long as this thread is bumped, I might as well post a quick status update. I looked at Earthbound and it's as hacked as can be. The only thing you may wish to do is remove some odd hacks that I imagine are used to bypass the copyright protection when using SNES Advance or something. You can also remove anything ending in =EAEA. In other words, turn this:

DC9BB451|Earthbound (U)|5|0|0|0|0|FFFFFFF6|AB93=EAEA,281D=EAEA,83A2=80 0E1A8FF07F32CFF07F3080,A12D=80,1FFE7=EAA90000,3FDD 6=EAA9000080,8762=42FB
Into this:

DC9BB451|Earthbound (U)|5|0|0|0|0|FFFFFFF6|8762=42FB

Much more compact. Granted, I didn't play the game very much, so there might be other hacks further in the game that were never found. Let me know if there are any particularly slow areas of the game, and if possible a save file would be very helpful.

SoulReaver911
February 20th, 2008, 04:31
Thanks Dan, I'll make sure to change it. See, I was helping a friend of mine who is really into Earthbound get it to run full speed. We eventually tried the ME edition, and he says it runs pretty much full speed. He only encounters slight slow downs now (compared to the Standard edition's multiple slow downs at one time that last a while.) We'll see if getting rid of the useless code will get that slight speed boost that will make it near perfect. :D

DanTheManMS
February 20th, 2008, 04:45
I doubt getting rid of the useless codes will do much aside from possibly make audio sound slightly better, though even that's a stretch. It's worth a shot of course, but I wouldn't get too optimistic.

SoulReaver911
February 20th, 2008, 18:34
Of course, but any little bit might help. Then again, it is the audio that he wants fixed most so it might make it a little more bearable.

Medion
February 20th, 2008, 18:44
This is somewhat on topic, and somewhat off topic, but here goes.

I've found SNES emulation on the PSP to be somewhat slow on the only game that I play, FF6. And then, it dawned on me, i own FF Anthology for the PS1. Ripped to to a .cue, fired up Popstation, and now the game runs full speed. Takes up more space though, since it's the PS1 remake.

Anyway, the point of this is that, if you have an alternative to a game that's running slowly for you, try it. A lot of SNES classics were either remade on the PS1, or were also available on the Genesis. Genesis emulation right now is faster.

I know that this doesn't help with every game you might experience issues with, but if it takes even 1 or 2 games off your trouble list, then it's worth pursuing.

DanTheManMS
February 21st, 2008, 01:29
I'm really not too familiar with the way FF games are numbered (is 6 the same as 3 depending on region?), so can you tell me the exact name of the game you're running? A CRC32 (an 8-character sequence shown in most SNES emulators) would also be helpful. I'll look into the game and see if there's anything I can do.

Hm, actually, in my Snezziboy-specific hack file I've got this one game that isn't in the "official" database, a hack someone else made. If you're using the game titled "Final Fantasy 3 (V1.1) (U)" with a CRC of C0FA0464, then I've got a patch here that could probably help out immensely.

Actually, I remember looking at this specific game before. I might have been the one to create that hack after all, yet I don't think I ever submitted it to the official dat. If this is the game you're talking about, try the following patch:

C0FA0464|Final Fantasy 3 (V1.1) (U)|0|0|0|0|0|0|28236=42DC,B7A3=EAEA,568=42FC,B80A =EAEA

Ultimate warrior
February 21st, 2008, 02:05
Final Fantasy 6 is indeed Final Fantasy 3 in America. Squaresoft just skipped over 2 NES ff games.

DanTheManMS
February 21st, 2008, 02:23
In that case, there's a good chance that the patch I just posted will help improve speed. Medion, when you get the chance, try it out and see if it helps.

SoulReaver911
February 21st, 2008, 21:32
Personally guys, I don't like FF3 on Snes, too slow, and I don't like FF6 on PS1, too big.

I do in fact love FF6 Advance for the gba. It's small, and runs full speed on gpSP. Give that one a try Ultimate Warrior.

Ultimate warrior
February 22nd, 2008, 01:44
One prob dude. I use a tranlsation patch that only works for the SNES version... Please don't tell me all the FF games run like crap on SNES...

SoulReaver911
February 22nd, 2008, 01:46
That's more or less up to debate. Personally, yes.

What language are you patching to?

Ultimate warrior
February 22nd, 2008, 02:38
GRRRRRR!!! I wanted to play FF4-6 wit no probs at all! It's from Japanese to English but I don't see why that would matter becuase the patch won't work for any non .smc file......

Also, I was wondering, why the hell do games like FF6 run slow on these emu's?? I mean, is the SNES impossible to emulate games like that wit full speed on PSP? Also, I hope demo world the legend continues and brutal mario ( both SMW hacks) work well...

EDIT: what is this uo_SNES emulator? Is that any good?

SoulReaver911
February 22nd, 2008, 02:55
GRRRRRR!!! I wanted to play FF4-6 wit no probs at all! It's from Japanese to English but I don't see why that would matter becuase the patch won't work for any non .smc file......

Also, I was wondering, why the hell do games like FF6 run slow on these emu's?? I mean, is the SNES impossible to emulate games like that wit full speed on PSP? Also, I hope demo world the legend continues and brutal mario ( both SMW hacks) work well...

EDIT: what is this uo_SNES emulator? Is that any good?

? You do realize that the English version of 2 equals the Japanese version of 4 and same with 3 and 6?

5 was never released in the US, but there are roms that are already patched that are translated very well.

Besides, all three of these can be played on the psp with gpSP, an gba emulator that has the same exact games on it.

Snes games aren't hard to emulate normally, no more so than most games, it's just that they are ports to the psp, and thus can not hold a candle to emulators specifically made for the psp (like gpSP.)

uo_Snes is preferable to some players, but in my opinion it's not much better than the ME version of SNES9XTYL. Both of which have really annoying sound problems. The video emulation of both of these is better than SNES9XTYL Standard, but the sound doesn't compare.

Ultimate warrior
February 22nd, 2008, 04:35
2/3 were translated like **** and 2 had a bunch of other probs as well. Wait, they are ported emu's? Like they were on another platform like PC but then made for the PSP? Wouldn't that make it easier cause they already have the emu and all they would have to do would be change some stuff around? Why hasen't someone built an SNES emu SPECIFICALLY for PSP its been out long enough.

EDIT: well, I need to have good sound as well so I guess no for that emu. Damn, I wish the GBA dev would develop an SNES emulator cause it seems like the general opinion is his emu rocks.

DanTheManMS
February 22nd, 2008, 04:59
If you do a simple Google search for "SNES9X" you'll find that it is indeed an emulator for the PC, Linux, etc. I don't see why you think this should make it better though. It makes it much easier to port over in the first place, yes, but much harder to optimize for the PSP hardware. This is why you still get slowdowns when emulating the 3 MHz system on a 333 MHz processor.

Nobody's made an SNES emulator from scratch probably because they didn't feel like it, simple as that. If a programmer doesn't want to do what he's working on, he's not going to have any interest in programming it, and it's not going to get done. SNES9X already existed, already had good support for many games, and it was easier to port it to the PSP than to attempt to reinvent the wheel by creating a new one.

Ultimate warrior
February 22nd, 2008, 05:03
hehe I guess I just know nothing about optimizing emu's for PSP. If I ever learn how to program software, I should make an SNES emulator specifically for PSP. THAT would be an interesting one. Would probably be wicked horrible :)

Bobablob
February 22nd, 2008, 12:35
Actually, I remember looking at this specific game before. I might have been the one to create that hack after all, yet I don't think I ever submitted it to the official dat. If this is the game you're talking about, try the following patch

Wow! DanTheManMS, this patch speeds things up incredibly! Very nice :) Thanks so much. Do you have any more patches that you have not submitted to the official dat?

bah
February 22nd, 2008, 12:56
...I don't see why you think this should make it better though. It makes it much easier to port over in the first place, yes, but much harder to optimize for the PSP hardware. This is why you still get slowdowns when emulating the 3 MHz system on a 333 MHz processor.

Eloquently phrased.

DanTheManMS
February 22nd, 2008, 21:42
To be honest I thought that patch was already in the official dat, so it was an oversight on my part. The only other patches I have are mostly tests for trying to run a few obscure Japanese games in SNES Advance or Snezziboy. Probably nothing you'd really be interested in. If you get the latest official dat and add the ones from this post (http://www.pocketheaven.com/boards/viewtopic.php?p=47628#47628) you'll have nearly all of them, minus a couple like King of Dragons and possibly Kirby's Avalanche (not sure).

hounddog
March 3rd, 2008, 00:09
hey dan do you think you can make a patch for beavis and butthead and we're back a dinosaur story because there are some errors in them

DanTheManMS
March 4th, 2008, 05:00
I can't fix glitches, only improve speed. I'll look at them, but it appears that Beavis and Butthead already has a speedhack patch.

hounddog
March 5th, 2008, 00:07
ok thanks but just to let you know i knew that beavis and butthead already had a patch but when i play it on snestyl they die in one hit

DanTheManMS
March 5th, 2008, 02:39
Does the problem go away when you remove the speedhacks? If so, then yeah it's a speedhack causing problems. If not, it's an emulator glitch.

Ultimate warrior
March 5th, 2008, 03:20
Do you need to have the same name for your ROM as the speedhack is?

EDIT: After looking in the speedhack database, it seems that FF 6/4 is already in there.... but my copy doesn't seem to pick up that there are speedhacks for the game...

DanTheManMS
March 5th, 2008, 03:41
The name doesn't matter. It's just there so we humans can figure out which speedhack goes with which game. It's the CRC that matters.

Of course, sometimes the name will say v1.1 or another version number to help you find the one with that specific CRC.

Also, the fields in the middle, between the name and the speedhacks, are ignored entirely by SNEX9X for the PSP. They were used in SNES Advance for manually specifying layer priorities (huge PITA for the record).

DanTheManMS
March 8th, 2008, 21:51
Speedhacks are going to have to be put on hold for a while. My hard drive crashed a few days ago, and I'm still trying to restore everything to its former glory.

nibbles27
May 23rd, 2008, 22:08
hey dan was wondering if you could possibly post an update for that ff3 hack its the best one ive seen but the only problem is the battles lag if you could hack them to that would be awsome!!

DanTheManMS
May 24th, 2008, 04:32
Do you have a save file that's close to any particular battle? I haven't played the game before, so as simple instructions as possible would be great (IE "exit the town and go left to fight so-and-so" etc).

nibbles27
May 24th, 2008, 05:18
ya will do give me a few mins
oh ya will speedhacks change the data in battles different enemies or randomk encounters?
(slow downs when entering battle and battle itself)

nibbles27
May 24th, 2008, 05:44
http://www.zophar.net/srm/ff3-3.zip
second save slot go down and right should enter a battle thx

you know what ill jut use gpsp thats fine for me but im sure tere ius a lot of ppl that need that hack anyways entering battle dont work with gsameboy snesadvance so it prob is imnpossible

DanTheManMS
May 25th, 2008, 22:08
Hm, the save file doesn't seem to be picked up by Snezziboy, which is a shame. However, I discovered that there's a battle with some guards right at the beginning of the game, so I used that instead. Once I entered the battle the loop to hack was very obvious, so hopefully this will work. Merely add 11A28=42DC to the end of the game's entry, creating this:

C0FA0464|Final Fantasy 3 (V1.1) (U)|28236=42DC,B7A3=EAEA,568=42FC,B80A=EAEA,11A28= 42DC

nibbles27
May 31st, 2008, 03:41
hey dan looks good can you hack the game to inclde a hack that speed up when you encounter the enemies (buzz) and when the battle loads ity would be perfect

DanTheManMS
June 2nd, 2008, 06:58
Battle loading is already as fast as it can be, at least with the guard battle I used. What do you mean by encountering the buzz enemies?

nibbles27
June 5th, 2008, 20:24
when you encounter enimies it blurs the graphics and the framerate drops because of this also i drops when yoour players are entering the battle (sprites taking there position in battle) both could be sped up i think thanks

DanTheManMS
June 6th, 2008, 00:01
Unfortunately, the speed at which characters enter the screen for battles is already as speedhacked as possible. I took a look into the time period between when you stop moving for a random battle and when the battle map appears in view, and I couldn't find anything useful. I did get one loop hacked, but I really don't know if it's going to help out at all. In the meantime, I did speedhack the fade-in and fade-out sequence when entering or exiting the menu, so that should be faster (if it wasn't already at full speed).

Here are two patches you can try. The first is the same as the other one with just the menu speedhack added. The second includes the one hack that may or may not speed up the "buzz" thing you're talking about. Let me know if it helps at all (though I don't think it will).


C0FA0464|Final Fantasy 3 (V1.1) (U)|0|0|0|0|0|0|28236=42DC,B7A3=EAEA,B80A=EAEA,568 =42FC,11A28=42DC,31372=42DC

C0FA0464|Final Fantasy 3 (V1.1) (U)|0|0|0|0|0|0|28236=42DC,B7A3=EAEA,B80A=EAEA,568 =42FC,11A28=42DC,31372=42DC,13DA1=42D3

Calleh
June 13th, 2008, 16:12
So uh.
I should use Uo_SNES right?
Or is there a better SNES Emu?

emusa
May 27th, 2009, 16:56
This is great stuff! I'm gonna check it out right away.

Thanks you guyz :)

Nokiaman
May 27th, 2009, 17:46
Good job on necrobumping! Also Snes9x port is the best