Homebrew Stella-DS Improved

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,335
Country
United States
Would you be willing to open the issue tracker on GitHub? Currently there is no issue tracker, which is normal when you fork a repository from GitHub. It can be enabled from Settings though. Think that would make it a little easier to raise questions or issues should there be any.
Didn't realize it had to be enabled :)

In any event, I just enabled it. I think.
 

JLO64

Member
Newcomer
Joined
Mar 5, 2022
Messages
13
Trophies
0
Location
Pekoland
Website
github.com
XP
96
Country
United States
Hey, I have some free time coming up and I was hoping if I could help out with Stella DS by updating some of the game instructions. I've noticed that a decent chunk of the games I've tried out don't have instructions for them (Joust, Halo 2600, Q-Bert, Tempest) and it's been kinda bugging me. I've gone over the code (it's pretty clean:yaynds:) and identified the files/arrays that would have to be adjusted. If it's ok with you, I want to branch it and submit a pull request on GitHub with the added instructions for you to merge.

My main concern is that I currently don't know how to compile your work into a nds file. I'm assuming that the changes I want to make aren't going to make that much of an impact, but I'm still going to try and figure out how to compile it before I submit a PR.
 
  • Like
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,335
Country
United States
Happy to have whatever help you wish to contribute! If it makes it easier, I could probably manage a read of a global StellaDS.man file which you could use to get the manuals in shape without a recompile and then I can import into the internal arrays for next build. Could even leave the possibility of an empty StellaDS.man for users to add new manuals (this was the scheme I later used in Nintellivision).

In any event - feel free to branch as you wish.
 
  • Like
Reactions: JLO64

JLO64

Member
Newcomer
Joined
Mar 5, 2022
Messages
13
Trophies
0
Location
Pekoland
Website
github.com
XP
96
Country
United States
Happy to have whatever help you wish to contribute! If it makes it easier, I could probably manage a read of a global StellaDS.man file which you could use to get the manuals in shape without a recompile and then I can import into the internal arrays for next build. Could even leave the possibility of an empty StellaDS.man for users to add new manuals (this was the scheme I later used in Nintellivision).

Sweet! I'll start working in it in about a week or so when I'm free. As for your suggestion for a StellaDS.man, that sounds like a great idea (in your spare time of course). I just took a quick look at your implementation on Nintellivision (just the code not the app) and something I definitely prefer is the much larger possible size of the instructions. A decent chunk of Atari 2600 games are somewhat confusing (at least to me) so I feel larger and user modifiable instructions would be a big improvement to Stella DS on the user experience side of things.
 
  • Like
Reactions: wavemotion

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,335
Country
United States
This may not look like much... but it represents about 10 hours of effort today.

I added the EF bankswitching scheme to allow 64K games to be played (this brings about a half-dozen games into the playable library... with more coming in the years ahead) and finally got the Atari SaveKey handling working! Many of the new homebrews take advantage of the SaveKey to store data - often highs scores but some of the really big games use it as a way to save state or store progress of the game - what you see in the picture is the big 64K game Grizolds (beta version) which requires the SaveKey and the EF bankswitching to run.

I may also add 128K support though there are only 2 games that I know of that are that big.

Expect a new release in the coming days.

1647728609545.png
 

wavemotion

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

V4.6 : 20-Mar-2022 by Dave Bernazzani (wavemotion)
  • Added SaveKey support - standard games will have a virtual SaveKey in the right controller jack and will be auto-backed to a 32K /data/StellaDS.EE file.
  • Added EF, EFSC, DFSC and SB (SuperBank) support for games as large as 256K!
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,335
Country
United States
thanks very much, how much more can you squeeze out of this amazing emulator haha
I'm in the process of taking off the FF and Sound buttons on the main screen and replacing them with a gear icon. This will bring up a full set of configuration settings on a per-game basis. This will future-proof the emulator. Right now the internal database contains about 2000 entries for various ROMs... but 25-50 new homebrew and WiP games become available every year. This way you will be able to pick the controllers (Joystick, Paddle, SaveKey, Keyboard, Driving Controller, etc) and bankswitching for any game - along with screen position / scaling and save it out. I don't want to have to update the emulator every 6 months just to add new games - at this point, I'd like to make it scalable for all future games (minus the DPC+ ARM assisted games...).
 

JLO64

Member
Newcomer
Joined
Mar 5, 2022
Messages
13
Trophies
0
Location
Pekoland
Website
github.com
XP
96
Country
United States
Sweet! I'll start working in it in about a week or so when I'm free. As for your suggestion for a StellaDS.man, that sounds like a great idea (in your spare time of course). I just took a quick look at your implementation on Nintellivision (just the code not the app) and something I definitely prefer is the much larger possible size of the instructions. A decent chunk of Atari 2600 games are somewhat confusing (at least to me) so I feel larger and user modifiable instructions would be a big improvement to Stella DS on the user experience side of things.

Sorry it’s taken me this long to reply. I’ve been a lot busier than I thought I would be this past week. In any case, yesterday I managed to edit your code, compile it, and transfer it to my 3DS. Off topic, but it is shockingly easy to install the required devkitpro tools on Manjaro (I love Pacman). Attached below is a stub entry for Halo 2600 (which was made by Ed Fries, not by (not)Bungie).

The hard part now is finding and writing the instructions. Thankfully gamesdatabase.org has a fairly complete collection of scanned Atari 2600 pdfs, but none of them have embedded text so I have to transcribe them manually.

I’ll probably issue a PR once I hit 100 new entries, but depending on my rate I might try and pack more in.
 

Attachments

  • CF92AE82-D44C-4303-AFBD-B6E883AF2092.jpeg
    CF92AE82-D44C-4303-AFBD-B6E883AF2092.jpeg
    2.1 MB · Views: 44

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,335
Country
United States
Getting close! I decided to pretty much put all of the techy-parameters into the new StellaDS configuration settings. Some of these probably shouldn't be touched without knowledge of how a game kernel works... but I didn't want to hold back as I'd rather explain these in the README and make sure the emulator is future-proofed for all the games that have yet to come out on the system. The homebrew scene for the Atari 2600 is vibrant - and hopefully this emulator will keep up.

I also found a bug that prevented some of the really obscure bankswitching schemes from running correctly: 3E/3F and UA games should all run properly starting with the next release.

The only bit of regret is that there is no DPC+ support... these games use a ARM coprocessor to assist in running the game. The ARM coprocessor is roughly equivalent to the CPU of the original DS and can't easily be emulated with enough speed to make those games run.

1648033388835.png
 

wavemotion

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


V4.7 : 24-Mar-2022 by Dave Bernazzani (wavemotion)
  • Added per-game configuration settings.
  • Fixed 3E/3F and UA bankswitching schemes.
  • Added BF/BFCS bankswitching schemes.

Big update - I've converted over to having configuration settings stored on a per-game basis. Basically this is a mirror of the internal database (2100 entries now!) - you can tweak any setting and this should allow you to get virtually all new homebrews to run in the future - with the exception of the DPC+ ARM-assisted code.

The configuration is accessed via the new GEAR icon once the game is loaded. See the readme for a description of what the various settings do.

1648130912348.png
 

wavemotion

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

V4.8 : 11-Sep-2022 by wavemotion-dave
  • Fixed Super Bank (SB) scheme for 128k/256k games. In theory, Circus Convoy will run.
I finally got around to fixing the Super Bank (SB) scheme. I only have two "color-bar" test ROMs but both now work. There is only one game currently that uses this massive bankswitching scheme... it's the commercial release Circus Convoy. In theory that will now play properly - though I don't own the game to test it. Future SB games should likewise play.

1662903741921.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
916
Trophies
1
XP
7,335
Country
United States
Working on the next update but I did check in 4.8a with some nice improvements to 3E and 3F bank-switching to allow games up to 512k in size! This is pretty much the upper limit - the various flash-carts out there are generally capped at 512k - the Harmony Encore and the Cuttle Cart 2, etc. all top out there. Currently there isn't much to try at the 512k limit - a few demos mostly. There is a "Bad Apple" video that runs on the Atari 2600 using this scheme... it's fun to see full-motion video on the old system. But this new upper limit on StellaDS will keep the emulator future-proofed.

I had to rework memory slightly to make sure this all fits properly with older DS units.

I also added FA2 bank-switching. Only one game but it's a real gem! The 28k Star Castle Arcade (not to be confused with the regular Star Castle 8k game) will now play. Search for the game on Atariage - be sure to get version 165 (latest) and the Stella 28k version. It's worth tracking down...

1662986096647.png
 

wavemotion

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

V4.9 : 18-Sep-2022 by wavemotion-dave
  • Added new bankswitching schemes: TVBOY, UASW and 0840 (Econobanking)
  • Fixed UA bankswitching scheme to allow more games to run
More bankswitching schemes... we're getting into the real obscure stuff now! The original Toyshop Trouble homebrew will run now with 0840 Econobanking. TVBOY was a kind of novelty 127-in-1 TV hookup ... the 512K rom of that will now run. And the UA bankswitching scheme got an overhaul to play more games properly - including most of the stuff using that scheme from Brazil.
 

wavemotion

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

V5.0 : 27-Sep-2022 by Dave Bernazzani (wavemotion)
  • Added new bankswitching scheme: X07 (Stella's Stocking).
  • Improved 4K/2K driver to squeeze out a couple more frames of performance.
  • New special F8 driver to support more 8K games on the DS-Lite.
  • Lots of cleanup across the board in the database to make more games playable.
This is a big one! One more bankswitching scheme added but the biggest improvements come in an overhaul of the non-banking driver (2K/4K) to squeeze out another 3-5% speed which renders more games playable on the DS-PHAT/LITE. Games like Chopper Command which were running at 55FPS are now sustained 58 with gusts to 59. Other games like Pitfall and Megamania which were close are now sustained 60FPS. Even better is a new F8 driver which renders about 25 of the 8K bank-switched games playable on the older hardware. For the first time you can enjoy Beamrider at a sustained 60FPS!

I also went through ROMHUNTER's well-curated NTSC roms - almost 1200 of them to ensure they each play properly. With a couple minor exceptions (i.e. games requiring the MindLink controller) - everything is playing great.

With the DSi running at the faster 2X CPU speed (via Twilight Menu++ or Unlaunch or similar) - virtually the entire non-ARM-assisted library of 2600 games is at your command.

Another big feature is that with the new speed I can finally enable 'Flicker Free' mode on a few key games on the DS-PHAT/LITE. I've done this for Missile Command, Asteroids and Yar's Revenge. Those should look stunning on the new version for older hardware users.

Enjoy - almost 2 years in the making and the highest level of compatibility yet.

1664278838778.png


@RocketRobz - not sure if/when you pick up new versions of the pack-in emulators for TWL++... but this one has undergone some real testing and is quite clean. Feel free to include at your leisure.
 
Last edited by wavemotion,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: Brb