Homebrew Stella-DS Improved

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
[EDIT: Okay! 3.0a hotfix is out... when I released 3.0 I thought it was "perfect" but I had a bug in the core CPU that only affected a handful of games like Asteroids... if you've ever been a software developer and put something out you know the sinking feeling of having a bug found within the hour... but now we're good to go!]

Version 3.0a
https://github.com/wavemotion-dave/StellaDS

I really wanted to have 100 instruction manuals in for the big 3.0 release - but I only managed 20. Gathering this info and chopping it up into 1-screen chunks of instructions is time-consuming. I'll keep adding them 10 games at a time. To be honest, I've been enjoying actually playing the emulator this past week and getting some new high-scores :)

But this version offers refactored page-access to give an additional 2-3% speed improvement. Virtually everything is running at or near 60FPS - Midnight Magic is at 59 and The Official Frogger is at 58 with gusts up to 60. At this point, every game is running indistinguishable from the full speed on real Atari 2600 VSC hardware on a DSi or 3DS.

I'm proud of where this ended up - I went back to play the original StellaDS 1.0 to see how far we've come and it's been fairly amazing. Still - none of this is possible without the original port by Alek Maul and I'm ever thankful for his pioneering efforts!

upload_2021-6-21_8-55-41.png
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
Version 3.2: https://github.com/wavemotion-dave/StellaDS

I had a major re-write of the internal high score handling. I didn't realize how good this would be - it's rekindled my love for some games that I enjoyed as a kid trying to reach for new high scores (only we had to write them down on scraps of paper).

This new handling supports a more robust core so I can expand the use of high-scores in the future without messing with the database structure. I've already added a Notes field (so you can record what game variation and difficulty settings you play with for the high scores) as well as an option field where I can use it to sort ascending vs descending, etc. (for games that want LOW scores... like miniature golf). The new system will also preserve the last entered initials so if you're the only one using your DSi, your initials will come up always by default saving you that entry time.

I should have added this level of robustness in the first version - but this new database layout will be mostly future-proof. Since high scores are new feature with 3.x - I don't feel too badly about wiping out current scores in favor of this new handling. In the future we won't have to do that again.

I've also improved the paddle handling - games like Tac-Scan (which use the OTHER set of paddles plugged into the "right jack") now work. Other small improvements as time permitted.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
Version 3.3: https://github.com/wavemotion-dave/StellaDS

High scores now support options for tracking Time (games like Dragster, Barnstorming, Skiing ,etc) as well as sorting Low to High (for games like Mini Golf).
Fixed some minor graphical glitches in bankswitched games.
Added another half-dozen instruction manuals.
 

avery217

Member
Newcomer
Joined
Jun 26, 2021
Messages
21
Trophies
0
Age
69
XP
114
Country
United States
Thank you for all the great work you've done on this EMU. I've noticed that the 2 games I love the most on the Atari 2600 - Frogger (Parker Brothers) and Official Frogger (Starpath) have a weird graphical glitch that only happens when the 'reduce flicker switch' is set to on. The logs and lily pads change to a different color. This makes the games confusing to play. If you turn the 'reduce flicker switch' to off you'll notice it doesn't happen. Anyway....thanks again for this great ever improving emulator.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
Thanks for the kind feedback, Avery!

Yes, "Flicker Free" is a misnomer. What I actually do is blend 2 frames together (this frame and the previous frame). With a limit of only 6 objects (Player 0/1, Missile 0/1, Ball and Background) some programmers would take to drawing certain objects every other frame. This causes flicker... On a real TV this gets somewhat blended by the fact that the phosphor on old TVs took a fraction of a second to dissipate and so that soft glow would help reduce the flicker (though, believe me, we still had to deal with the flicker!).

Flicker Free attempts to blend every other frame - and to do so as fast as possible this is a simple OR operation. The logs floating on the water are drawn every other frame... and the "holes" in the logs are drawn as blue on odd frames... and when those are blended together, the log turns blueish.

Some games are almost unplayable without Flicker Free mode. Yars Revenge is one such game where the large shield surrounding the enemy is done in 2 big blocks which flicker out of existence on modern monitors. The Atari Greatest Hits had this problem.

I choose to enable Flicker Free for a few games that really need it. Frogger is boderline... it's playable without for sure. The Official Frogger doesn't have it enabled by default (although it does flicker) mainly because there just isn't enough CPU power to render that complex game with the FF blending.

Such is life with simple blending. The new versions of Stella on the PC have amazing rendering engines that can emulate the time decay of phosphor akin to the old TV screens. But that requires processing power... and we just don't have enough of it on our beloved little NDS handheld.

So yes, you can turn off Flicker Free mode and get the right colors... and a bit of flicker. Or use Flicker Free and get more solid looking objects that tint wrong.

At least until someone smarter than me can improve upon my flicker free algorithm :)
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
Inspired by @avery217 - I took a look at the blending algorithm to see what improvements could be made. Nothing miraculous, but I am experimenting with two new modes to reduce flicker... one looks at the predominant background color and uses that as a sort of "transparency" color when blending frames. This makes games like Missile Command and Astroblast (which both have shifting background colors as the levels progress) much cleaner when using Flicker Free mode. Unfortunately, Frogger is yet more complex with 3 layers (background, playfield logs and the frogs) and so I've had to use a black-only transparency which makes the roads (first half of the screen) flicker free but doesn't help the water. Still... it's a 50% improvement and the roads are really where the green frog would get lost.

These modes also work great for Space Cavern where the side-alien is drawn in black and the old flicker mode wouldn't deal with it (it was blending black and background and rendering the alien invisible when in FF mode).

The Official Frogger is still too slow to enable Flicker Free mode. It runs about 58+FPS without flicker free enabled... but down at under 50 FPS if enabled. Fortunately, that game doesn't have nearly as much flicker as the original Parker Bros. Frogger which has been improved.

If anyone wants to try the new modes, they are enabled in the check-in version:

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

(just grab the .NDS over in the source code area... that's newer than the official 3.3 build as I'm not ready for a full release yet).
 
Last edited by wavemotion,

avery217

Member
Newcomer
Joined
Jun 26, 2021
Messages
21
Trophies
0
Age
69
XP
114
Country
United States
Thanks Wavemotion for this new release. I tried the Parker Brothers Frogger and there is a definite improvement in the flicker. The colors of the logs and lily pads are true to their original colors now. The road section is virtually flicker free, but the river section still has a large amount of flicker and the colors are good now. Definitely a step in the right direction. Thanks for making the Atari 2600 new again!!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
Version 3.4: https://github.com/wavemotion-dave/StellaDS

* Added new flicker reduction algorithms to help render some games more accurately: like Frogger, Asteroids, Astroblast, Pac-Man, Space Cavern.
* Defender II and Stargate have mapped buttons for Hyperspace, Inviso and Smart Bomb making them fully playable.
* Total instruction manuals: 50!

Enjoy! I continue to appreciate all the thumbs up and well-wishers :)

Bonus! Here's a pic of me on Christmas Day 1980 opening up my new Atari 2600 (bottom left corner) and some games (I think Warlords is in my hand... but I also got Space Invaders and Dodge-Em).

upload_2021-6-28_8-0-11.png
 
Last edited by wavemotion,

avery217

Member
Newcomer
Joined
Jun 26, 2021
Messages
21
Trophies
0
Age
69
XP
114
Country
United States
Thank you for release Version 3.5! I have a question....... Is there a way to run this emulator on a DS or DSLite (not using TWiLightMenu) natively just using a Flash Card (the way it was used when it was first released by Alekmaul many moons ago)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,341
Country
United States
Thank you for release Version 3.5! I have a question....... Is there a way to run this emulator on a DS or DSLite (not using TWiLightMenu) natively just using a Flash Card (the way it was used when it was first released by Alekmaul many moons ago)
Yes, the .NDS file will run file when launched on a flashcard on a DS/DSLite. I run mine on the R4i/SDHC (the cheap $12 chinese knock-off) on my DSLite. I just put it in the root directory and launch it with HBMENU.

Be warned, however... the venerable DSLite (and DSPhat) only run at 67MHz and will generally not render most games at full frame rate. Some of the simple games will run fine - but many will run at closer to 80% full frame rate. The emulator was tuned for the 133MHz DSi mode (or 3DS running in DSi mode).
 

avery217

Member
Newcomer
Joined
Jun 26, 2021
Messages
21
Trophies
0
Age
69
XP
114
Country
United States
Tried it on my old CycloDS flash card and it didn't work at all (black screen). Then I tried it on my R4 SDHC flash card and it worked fine. As you said, a little slow, but most games are very playable. Thanks
 
  • Like
Reactions: banjo2

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    HiradeGirl @ HiradeGirl: Coming.