NDSSFC/CATSFC revival

Discussion in 'Supercard' started by Nebuleon, Dec 22, 2012.

?

What sort of additional hotkeys do you want?

  1. Quickly save/load a saved state

    50.0%
  2. Move emulation to/from the bottom screen

    28.1%
  3. Toggle aspect ratio: [3] Middle of screen to [4] Entire screen anti-aliased

    41.7%
  4. Toggle CPU frequency: 5 to 2

    26.0%
  5. Toggle 8-bit era sound, with triangle waves and noise

    26.0%
Multiple votes are allowed.
  1. ferret7463

    ferret7463 GBAtemp Advanced Fan

    Member
    593
    95
    Sep 21, 2010
    United States
    Just tried out this emu, I like cleaned up GUI, But unfortunately Mega Man X2 and X3 are still really laggy. ( I don't expect Miracles) The Rundra translation by AG plays great like it before. This EMu however has made it step closer in it being able to be read on the DS. (1/2 of the letters are cut off down the middle) I thank you for your hard work in this project. Well that is my 2 cents.:yaysp:
     


  2. Squirps

    Squirps Official Squirps of GBATemp.netâ„¢

    Member
    209
    41
    Sep 13, 2009
    United States
    The corner in that dark alley.
    So glad I decided to order a DSTwo. :D
     
  3. DiscostewSM

    DiscostewSM GBAtemp Guru

    Member
    5,023
    2,659
    Feb 10, 2009
    United States
    Sacramento, California
    Like others have said, the reason why Secret of Mana has that problem is because it isn't using the high-resolution mode that the SNES supports, but rather than block it entirely, the emulator interprets the data as if was using the default mode. If you look at the picture mechagouki posted, you'll notice that every other letter in the text is being skipped. Use the picture below as a reference (though this picture is also using 256x224, so this is what it would look like if the emulator handled the mode correctly)

    [​IMG]

    It isn't just the text, but the entire way it handles background layer tiles (look at the D-Pad display, and compare).

    For ferret7463's observance, don't expect games like Megaman X2/X3 to run smoothly, because those games, as well as others, incorporate special chips to handle tasks not possible on the SNES base hardware.
     
  4. windwakr

    windwakr GBAtemp Fan

    Member
    483
    112
    Sep 13, 2009
    United States
    Would it be possible for you to try to implement speedhacks?

    There's some talk about it here(about half-way down the page, extending into the next few pages):
    http://gbatemp.net/threads/catsfc-released.281917/page-3

    Looks like ShadauxCat was going to implement them, but I guess he wasn't able to make it work.
     
  5. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    There's this line in source/nds/entry.cpp:

    Code:
    Settings.SupportHiRes = FALSE;
    I think that all the hi-res-related problems fall to this line. However, it's not simply a matter of setting Settings.SupportHiRes to TRUE; the images are rendered at 512xsomething, then they have to be resized for the DS in pure software by the DSTWO's MIPS processor. That, while it may make the game's text more readable (though I question whether 3-pixel-wide letters are readable on a DS), would kill the framerate and may also kill the responsiveness of controls.
     
  6. DiscostewSM

    DiscostewSM GBAtemp Guru

    Member
    5,023
    2,659
    Feb 10, 2009
    United States
    Sacramento, California
    I haven't looked at the rendering code myself, but I wonder how much of a performance drop it would be if it were, when in high-rez mode, to simply render every other pixel, whereas in an order of 0, 1, 2, 3, 4 , 5 , 6, etc it would render 0, 2, 4, 6, etc in the spots of 0, 1, 2, 3, etc., both horizontally and vertically. It would be an essential downscale while it renders, rather than render in high-rez and then downscale. To be honest, the 3-pixel width text is really not that bad (as shown above), as only a few letters look indistinguishable, but the entire word helps to determine what those letters would likely be.
     
  7. the_randomizer

    the_randomizer The Temp's official fox whisperer

    Member
    22,048
    10,356
    Apr 29, 2011
    United States
    Dr. Wahwee's castle
    Gotta love pseudo hi-res Mode 7, that thing is a real b**ch to emulate. Mega Man X2 and X3 use the Cx4 chip, which helps perform certain special computations and for wireframe polygons. Secret of Mana didn't use a special chip, just hi-res Mode 7 of 512 x 244 or something to that effect. The DS won't be able to display that resolution.

    This is how it's supposed to look like when Hi-res Mode 7 is emulated
    [​IMG]
     
  8. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    That may be good enough. I'll look at that sometime soon.

    Is there a database of those speed hacks somewhere, for enough games that it's worth it to implement? Also, I thought there was already a good speedhack in Snes9x, in the form of CPU_SHUTDOWN and SPC700_SHUTDOWN. :huh:
     
  9. the_randomizer

    the_randomizer The Temp's official fox whisperer

    Member
    22,048
    10,356
    Apr 29, 2011
    United States
    Dr. Wahwee's castle
    Hi-res is typically 512 x 448 for Snes, at least with Secret of Mana. I would think that's too big for the DS screen to handle, unless there was some workaround.
     
  10. windwakr

    windwakr GBAtemp Fan

    Member
    483
    112
    Sep 13, 2009
    United States
    There's the SuperDAT on the SNESAdvance site:
    http://www.snesadvance.org/

    It's from 2006. Looks like there's a more recently updated one on the PocketHeaven forums, but they seem to be down or something right now.
     
  11. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    While you guys are here, if you speak English and a language that is currently not represented in the CATSFC GUI, I would much appreciate your help translating the English text to your language. You can find instructions to make and submit translations on the GitHub page: http://github.com/ShadauxCat/CATSFC

    Languages currently represented in CATSFC are Chinese with simplified characters, French and English. It should be easy to add Finnish, German, Italian, Spanish, Portuguese, Estonian, Latvian, Lithuanian and a few more languages because the font already has glyphs for all the characters. A bit harder would be Welsh, Danish, Swedish and Norwegian. Japanese, Greek, Russian etc. would require major editing, because the font has nothing for their scripts. Not sure about Chinese with traditional characters.
     
  12. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    That DAT seems to have a lot of SPC700-related NOPs (to skip audio that isn't/wasn't emulated in SNESAdvance). I don't really want to tell users to install a DAT that will screw things up because the game can't synchronise anymore with the SPC700 or kinda-sorta disable sound in random places. So I will respectfully decline implementing this, but if a speedhack patch arrives in a pull request on GitHub, I'll look at it.
     
  13. Dann Woolf

    Dann Woolf Deadpan Snarker

    Member
    362
    87
    Oct 12, 2010
    Netherlands
    Deventer
    I think there's a few problems with this version. Mega Man X's sound is too fast, Super Mario All Stars + Super Mario World doesn't let you move Mario, and Street Fighter 2 (The New Challengers I think) freezes when I pause it.
     
  14. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    Some odd picture-processing-related freezes are fixed in 1.12. It may fix all of the games you mentioned. At least, I know it fixes Legend of Zelda's freezing at the rain sequence right at the beginning of the game.
     
  15. Dann Woolf

    Dann Woolf Deadpan Snarker

    Member
    362
    87
    Oct 12, 2010
    Netherlands
    Deventer
    That's the version I'm using.
     
  16. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    I uploaded it after your first message. You must be using 1.11. Try 1.12. :)
     
  17. Dann Woolf

    Dann Woolf Deadpan Snarker

    Member
    362
    87
    Oct 12, 2010
    Netherlands
    Deventer
    Done, still getting the same problems.

    Mega Man X freezes after a few seconds on the title screen.
     
  18. windwakr

    windwakr GBAtemp Fan

    Member
    483
    112
    Sep 13, 2009
    United States
    You can just ignore the NOPs, as DanTheManMS points out here:
    http://gbatemp.net/threads/catsfc-released.281917/page-3#post-3501571

     
    Nebuleon likes this.
  19. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    I cannot confirm this is happening. I stayed at the title screen for minutes, then pressed Start, waited a few seconds too many and got back into the title screen, then I pressed Start and got into a game.
     
  20. Rydian

    Rydian Resident Furvertâ„¢

    Member
    27,883
    8,110
    Feb 4, 2010
    United States
    Cave Entrance, Watching Cyan Write Letters
    I don't have a save on there so I started a new game. The intro level (the space station) has some gradient overlay (looks like palette writes, which I know are expensive to emulate), but it's still playable... until the Ridley fight at the end of the intro level. It drops to like, 10FPS or less (a guess, it's almost unplayably low), during the escape sequence right after that too. This is without screen scaling, using the "centered cropped" option, sound on, CPU speed 5. My previous uses of the emulator stopped before the fight and were just to show the there's some input lag, so I don't know if the older versions do it too.

    Also the input missing I mentioned, I first noticed on the options screen. If I tap a direction or button quickly, there's a chance it won't be recognized.

    And what about your effort? NEBSFC works fine for me. BAG took NDSSFC and modified the title to show it was his work, then Shadaux did the same with CATSFC, and now you've picked up the torch, and I think it'd only fair you have your name in there somewhere too since you're putting forth the effort, time, and using your skills for something the community benefits from.

    There's a few speedhack databases rolling around the 'net, some emulators come with updated versions, and I know the PSP emulators could use them so I might check later to see the datestamp on the speedhack file I'm using on my PSP. I know it's not the old one being talked about, since sound still runs fine...

    Why not have a toggle in the misc. settings on whether the speedhack database is used?