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. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    If I ignore NOPs and focus on the other two opcodes it'll be good. That is, if I implement speed hacks, and if I implement them that way. I'm a fan of just-in-time rewriting. :)
     


  2. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    So... NDSSFC graphics mode 3 (Cropped, showing middle) + SNES BG Mode 5. I think I got it.
    mana-menu-20130101.png

    The little sprite that allows you to see the active letter in the name selection is a bit messed up, though.
    mana-menu-sprite.png
    Hint: The active letter is B!

    This is committed to GitHub right now, waiting for the next release. I don't know yet whether I can deal with the sprite without breaking every single other sprite game in existence.

    What does GBAtemp think?

    Also, it's late, and I've been working on this way longer than I should have. Happy New Year. :lol:
     
  3. DiscostewSM

    DiscostewSM GBAtemp Psycho!

    Member
    4,992
    2,629
    Feb 10, 2009
    United States
    Sacramento, California
    Aren't sprites always in the 256x224 format? I thought it was just the BG layers that were capable of high-resolution.
     
  4. nl255

    nl255 GBAtemp Addict

    Member
    2,459
    322
    Apr 9, 2004
    Couldn't you make the hack for that sprite specific to whatever games need it?
     
  5. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    Yes, but the "rendered width" becomes 512 if ever a single pixel is Mode 5, which messes up the calculations everywhere, including sprites. Though maybe I adjusted the half-widthedness a little bit too much -- and I shouldn't have done so for sprites --, if I didn't adjust for it, then the sprite for the active letter appeared to be at Z when it was really at M. Moving it to the right when it appeared to be at Z wrapped it back to A, but on the next scanline (!)

    I'm not particularly fond of hacks. I'll look at the sprite behaviour first and see what's up.
     
  6. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    And thus Secret of Mana gets readable. In 1.13, I also included a little surprise: You can set the display mode to "[4] Entire screen, anti-aliased". Now you can see the whole screen if you need to do so for a game, and it won't look like crap! :D
     
    2ndApex and Sicklyboy like this.
  7. Sicklyboy

    Sicklyboy Resident Mechanical Keyboard Addict

    Global Moderator
    5,679
    4,577
    Jul 15, 2009
    United States
    [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]
    Dude, I can't wait to get my Supercard set back up to try your continuation out. You're adding some nice stuff into this.
     
  8. 2ndApex

    2ndApex GBAtemp Advanced Fan

    Member
    676
    287
    Jul 12, 2012
    United States
    I WANT IT NAO
     
  9. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    Download's in the first post :D Go go go!
     
  10. DiscostewSM

    DiscostewSM GBAtemp Psycho!

    Member
    4,992
    2,629
    Feb 10, 2009
    United States
    Sacramento, California
    Did you fix the sprites in high-rez mode? I'll need to check this out. In any case, good job.
     
  11. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    Unfortunately, I haven't. I couldn't follow the halving and doubling of pixels at all...

    If you (or anyone else) care(s) to check it out, the background-mode-5 part of the fix is at GitHub commit 3cd20e203f3b0af8c32921f86547a126d74b34eb. The affected file is source/gfx.cpp, function S9xDrawOBJS.
     
  12. Ammako

    Ammako GBAtemp Guru

    Member
    6,400
    3,529
    Dec 22, 2009
    Canada
    Can we have a picture of what the [4] Entire screen, anti-aliased display mode looks like?
     
  13. Nebuleon
    OP

    Nebuleon MAH BOI/GURL

    Member
    900
    465
    Dec 22, 2012
    Canada
    Certainly. Here are screenshots of the glorious Forest of Illusion 3 level in Super Mario World, first using [3] Middle, square pixels and second using [4] Entire screen, anti-aliased. I need to see the entire level here, otherwise I fall to my untimely death. Be the judge :)

    smw-5-3-mode3-middle.png smw-5-3-mode4-aa.png
     
    Ammako and Sicklyboy like this.
  14. spinal_cord

    spinal_cord Knows his stuff

    Member
    2,949
    559
    Jul 21, 2007
    somewhere
    As the full NDS side of the SDK is available, it might be possible to do hardware scaling using the alphalurp method used by nesds and my build of frodods, freeing up a little processing time for emulation. If the full screen can be sent to the DS, rather than just 256x192, then scale the screen down on vbl, alternating the offset every second frame, you get a nice antialiased effect without the overhead. Although I haven't actually looked at how the dstwo sends data to the nds, I'm only assuming it's possible.
     
  15. DiscostewSM

    DiscostewSM GBAtemp Psycho!

    Member
    4,992
    2,629
    Feb 10, 2009
    United States
    Sacramento, California
    I haven't been keeping up with the SDK, but if the NDS side is now accessible, would it be possible to move the audio code to it?
     
  16. 2ndApex

    2ndApex GBAtemp Advanced Fan

    Member
    676
    287
    Jul 12, 2012
    United States
    Just tried this out on my DSTWO, the anti-aliasing makes full display mode SO much better.


    Could you fix save states so that you can override old ones instead of using a new slot every time a save is made? It'd be nice to get manual save state/save file loading too.
     
  17. spinal_cord

    spinal_cord Knows his stuff

    Member
    2,949
    559
    Jul 21, 2007
    somewhere
    Just got round to trying it. Could you add an option for frameskip? I hate auto frameskip more that anything in existence. I would rather have slowdowns than frameskips.
     
  18. ShadauxCat

    ShadauxCat Member

    Newcomer
    45
    8
    Mar 6, 2011
    United States
    Austin, Texas
    I'm all in favor of changing the name if Nebuleon wants to. This isn't my project anymore and since I haven't had access to my DSTWO in over a year, I don't foresee myself being able to pick it back up any time soon. My only thing is I'd like to see the repository itself remain where it is for the sake of centralizing it.

    What's happened so far is that different people keep picking up the project, and then rereleasing it. My primary goal for CATSFC (even more than the changes I made) was to make it a community project, not a me project or a BassAceGold project or a Supercard Team project. So the emphasis for me was on creating a public repository that anyone was free to contribute to. I'm happy to hand leadership of the project over to Nebuleon since I don't have the means to contribute anymore, and with that, I'm happy to give Nebuleon the freedom to decide to change the project's name if he so desires. Just so long as the repository remains situated such that everyone can still contribute to it freely, and such that people looking for it can still find it easily. (The latter is a point in favor of keeping the name the same, but it might be prudent to make a one-time change of name to something more generic that doesn't credit anyone in the name itself, and possibly add an about or credits section inside the app.)
     
    Boriar, Sicklyboy and VatoLoco like this.
  19. Sicklyboy

    Sicklyboy Resident Mechanical Keyboard Addict

    Global Moderator
    5,679
    4,577
    Jul 15, 2009
    United States
    [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]
    Meaning the ds itself can also process now instead of just being used as a screen and controller and having all processing done on the dstwo?
     
  20. the_randomizer

    the_randomizer The Temp's official fox whisperer

    Member
    19,809
    9,051
    Apr 29, 2011
    United States
    Unknown
    ^This. The emulator really needs an overhaul or at least some improvement in the audio department...if possible. Is it based off of 1.51 or 1.43?