Page 2 of 6 FirstFirst 123456 LastLast
Results 11 to 20 of 55

Thread: Best Snes Emu?

                  
   
  1. #11
    DCEmu Newbie SoulReaver911's Avatar
    Join Date
    Jan 2008
    Location
    Texas
    Age
    35
    Posts
    96
    Rep Power
    0

    Default

    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...)
    Last edited by SoulReaver911; January 26th, 2008 at 12:44.

  2. #12

    Default

    I use SNES TYL ME it should work pretty good.

  3. #13
    DCEmu Old Pro DanTheManMS's Avatar
    Join Date
    Oct 2006
    Posts
    1,946
    Rep Power
    77

    Default

    Quote Originally Posted by SoulReaver911 View Post
    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.

  4. #14
    DCEmu Newbie SoulReaver911's Avatar
    Join Date
    Jan 2008
    Location
    Texas
    Age
    35
    Posts
    96
    Rep Power
    0

    Default

    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.)

    Quote Originally Posted by DanTheManMS View Post
    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.
    Last edited by SoulReaver911; January 27th, 2008 at 12:21.

  5. #15
    DCEmu Old Pro DanTheManMS's Avatar
    Join Date
    Oct 2006
    Posts
    1,946
    Rep Power
    77

    Default

    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.

  6. #16
    DCEmu Newbie SoulReaver911's Avatar
    Join Date
    Jan 2008
    Location
    Texas
    Age
    35
    Posts
    96
    Rep Power
    0

    Default

    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.

  7. #17
    PSP User jxx2005's Avatar
    Join Date
    Aug 2007
    Location
    Halifax, Nova Scotia, Canada
    Age
    39
    Posts
    679
    Rep Power
    0

    Default

    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
    Last edited by jxx2005; February 20th, 2008 at 03:33.

  8. #18
    DCEmu Old Pro DanTheManMS's Avatar
    Join Date
    Oct 2006
    Posts
    1,946
    Rep Power
    77

    Default

    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:
    Code:
    DC9BB451|Earthbound (U)|5|0|0|0|0|FFFFFFF6|AB93=EAEA,281D=EAEA,83A2=800E1A8FF07F32CFF07F3080,A12D=80,1FFE7=EAA90000,3FDD6=EAA9000080,8762=42FB
    Into this:
    Code:
    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.

  9. #19
    DCEmu Newbie SoulReaver911's Avatar
    Join Date
    Jan 2008
    Location
    Texas
    Age
    35
    Posts
    96
    Rep Power
    0

    Default

    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.

  10. #20
    DCEmu Old Pro DanTheManMS's Avatar
    Join Date
    Oct 2006
    Posts
    1,946
    Rep Power
    77

    Default

    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.

Page 2 of 6 FirstFirst 123456 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •