Jump to content
IGNORED

Any info on StellaDS?


AgentOrange96
 Share

Recommended Posts

I'm toying with adding QuadTari (well... DuoTari to use @johnnywc's unofficial coined term) to StellaDS if only to support RobotWar twin sticks and SaveKey.  Right now I support twin sticks which works really well on the DS (d-pad for left joystick, XYAB for right joystick) but the Save Key would be non-functional. 

 

Are there any other single player experiences that would benefit from this DuoTari in the left port and SaveKey in the right?

  • Like 1
Link to comment
Share on other sites

9 minutes ago, llabnip said:

I'm toying with adding QuadTari (well... DuoTari to use @johnnywc's unofficial coined term) to StellaDS if only to support RobotWar twin sticks and SaveKey.  Right now I support twin sticks which works really well on the DS (d-pad for left joystick, XYAB for right joystick) but the Save Key would be non-functional. 

That would be cool! 🕹️ 🕹️

9 minutes ago, llabnip said:

Are there any other single player experiences that would benefit from this DuoTari in the left port and SaveKey in the right?

All other uses for the QT in Champ Games is for multi-players with SaveKey, although I am considering adding in driving controller support to Turbo Arcade and it would support having a joystick in the other QT port for shifting and menu navigation.

  • Like 1
Link to comment
Share on other sites

I have released version 6.3 of StellaDS with some newfound speed.

 

https://github.com/wavemotion-dave/StellaDS 

 

I optimized the main 6502 loop which brought with it a solid 1-3 frames of performance depending on the game.

 

At this point, all DPC+ games run full speed on the 134MHz DSi or above. This includes Space Rocks TE and Scramble - both of which will not drop below 60 even when things get really hectic on-screen.

 

Normal Space Rocks has gusts into the lower 80 fps and is now fast enough that I can enable Half-Flicker-Free mode which blends alternate frames to make the game really pop with zero flicker. 

 

The older DS-Lite/Phat running at 67MHz gains this performance as well and some games that were marginal are now full-speed. Medieval Mayhem, Stampeed, Adventures of Tron and a bunch more were previously running in mid-to-upper 50s on the oldest DS handhelds and now will pretty much sustain a full 60 fps.  A huge portion of the non-ARM library will run fine on the older DS units.

 

CDF/CDFJ/CDFJ+ games all got a nice boost and the only real holdouts that won't sustain 60 fps are Draconian (though there are now some gusts to 60+ when there isn't too much going on) and Turbo Arcade (generally lower 50s). 

 

  • Like 5
Link to comment
Share on other sites

Nicely done!  Haven't messed with the frame blending modes, but just tried FF Half Mode for Space Rocks and that's quite nice!

 

I think Alpha 3 in Draconian hits the hardware the hardest, during development I would fly straight up thru the middle of the stations to check for screen rolls on the Harmony.

 

 

  • Like 1
Link to comment
Share on other sites

Yeah, the frame blending modes really help on the original DS and DSi. The XL and 2DS/3DS screen tends to hang on to the pixels a little bit longer and so there is less flicker on those games that are prone to having some flicker. 

 

The FF Half Mode is somewhat new - the original blending was to blend each two frames together (so 1+2, 2+3, 3+4, etc) but the Half Mode blends each even frame with each odd frame (1+2, 3+4, 5+6, etc). The original blending mode soaked up almost 20% of the CPU time but the Half Mode soaks up only 10%. In practice the output produced looks virtually identical and so I can't find much reason to use the old FF blending mode. Starting with the next release, I'm going to fold both blending modes together and just do the even/odd frame blend and call that 'Flicker Free Mode'. 

 

Obviously FF mode is only useful if the game can run unthrottled 10% faster than full frame rate. Space Rocks just got there. 

 

And not all games look best blended... if a game is drawing every frame and moving things rapidly then the blend can cause fine details to start to blur out.  WoW Arcade can now handle a frame blending (it's running just about 10% faster than full speed unthrottled) but the detail on the aliens running through the maze starts to blur up a bit.

 

Other games absolutely need a blending mode enabled. Yars Revenge will flicker the shield like crazy otherwise. The internal database of about 2000 games will generally decide which games need/want the blending and apply it by default - but as always, the user can override this on a per-game-basis in config.

 

Edit: tried some of the other levels in Draconian... holy hell some of those really push things!  I think my poor DSi is going to catch fire :)

 

Edited by llabnip
  • Like 2
Link to comment
Share on other sites

I've been cleaning up memory management as I'm nearing some boundaries in the older DS hardware. 

 

For those that don't know... in general:

 

Original DS/DS-Lite/DS-Phat there is a 67MHz ARM9 processor and 4MB of RAM.

The DSi/XL/LL bumps that to a 134MHz ARM9 processor and 16MB of RAM.

The 2DS/3DS mimics the ARM9 of the DSi but also has an ARM11 dual-core at 268MHz and 128MB of RAM.

The 'New' 2DSXL/3DSXL and similar mimics the ARM9 of the DSi but bumps the ARM11 up to quad-core 804MHz and 256MB of RAM.

 

I'm targeting the original DS and DSi/XL/LL ARM9 processor.  As such I need to try and constrain to 4MB of RAM for it to continue to run on the oldest hardware. I'm committed to that for various reasons that aren't worth expoloring here.

 

All that to say that I'm starting to run up against memory limitations. I've got about 400K free RAM and virtually zero "fast ram" remaining (I use this for the ARM Thumbulator as well as an 8K cache for smaller carts that can be emulated almost entirely using fast memory). 

 

Right now, my imposed limitations on bank switching is as follows:  Pretty much anything up to 512K of ROM and 32K of RAM.  The only exception is CDFJ+ games which I can only support 256K of ROM and 32K of RAM (as I need to steal some of the larger cart memory for the decode array).

 

I assume that's probably good enough for most anything that exists today and is likely to not be a huge problem in the future?  I know there is the 3EX scheme which allows for 512K of ROM and 256K of RAM but I haven't seen any actual use of that. Given that some of the flash cart technologies (e.g. Harmony Encore) are in that same 512K/32K realm, I'm guessing I'll be okay with StellaDS.

 

Thoughts from anyone - does anyone know of any monster 512K+ or 32K+ efforts on the horizon?

 

  • Like 1
Link to comment
Share on other sites

Finally.  It's been an uphill battle. 

 

Turbo, however, is only at 48 (with gusts to 55). 

Draconian both got a nice little boost in speed with some music fetcher optmization.

BOOM is running about 58.

 

All other ARM-Assisted games (released ROMs I happen to have) to will run at full speed.  

Qyx (demo) and WoW Arcade join the list of games that can now enable the Flicker Free mode of frame blending (requires the game run unthrottled at 65 fps to handle the extra 10% CPU needed for blending).  Galagon is close to that threshold as well.


As you can see, I've had to go to a running frame average with tenths of a frame to see if micro-optimizations are having any effect.


image.png.1d01651f997cee4dabb98bdbcd8767df.png

  • Like 4
Link to comment
Share on other sites

Version 6.5 of StellaDS has been released. I'm burnt out trying to optimize so this is likely the last release for a while. I got Turbo Arcade to 49 with gusts to 58 depending on the scenery/section of the game. But I think Turbo is at the end of the optimization road and I've run out of gas.

 

That effort did provide another solid frame of performance but it's come at the cost of many dozens of hours of experimentation and hand-tweaking. For now: the emulation on the little DS handheld is as fast as science allows.

 

image.png.8db04cac901ec1ab16a657023f41e1df.png

 

Time to give some effort/love to my other emulators on the DS!

 

 

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

  • 2 weeks later...
6 hours ago, llabnip said:

And I thought Turbo Arcade was going to be death of me :) 

image.png.8193228c8e22fe4979114b4cfcd3efa2.png

 

Poor little DSi... almost melted. 

Yeah, I didn't think EA was going to perform well as it does a ton of writes and decompression during the title screen.  It will perform better once I expand to 64K and don't need to compress the title screen graphics. :) 

 

How is the TPS during the actual game?

  • Like 1
Link to comment
Share on other sites

1 minute ago, johnnywc said:

How is the TPS during the actual game?

About the same. Turbo Arcade is quite playable by comparison. I’ll hold out hope that the 64k version performs better. At this point the DS is out of juice unless I want to explore a sort of direct Thumb mode while patching memory access (since the DS memory map doesn’t align perfectly with the Harmony and related ARM boards). 

Link to comment
Share on other sites

2 hours ago, llabnip said:

About the same. Turbo Arcade is quite playable by comparison. I’ll hold out hope that the 64k version performs better. At this point the DS is out of juice unless I want to explore a sort of direct Thumb mode while patching memory access (since the DS memory map doesn’t align perfectly with the Harmony and related ARM boards). 

I'm sure we'll be able to increase the performance once I focus on optimizing on my side. :) I was running out of time for the ZPH reveal and ran out of ROM too so I quickly put together a compression scheme for the title page and some of the in-game elevator graphics so I could free up more ROM so I'm sure it's quite inefficient speed-wise.  Once I expand to 64K I'll send you the version so we can work on getting the FPS up to a suitable rate. :thumbsup: 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...