Jump to content
IGNORED

A8DS - An Atari 8-bit Emulator for the DS/DSi/XL/LL


Recommended Posts

18 minutes ago, Irgendwer said:

Yep... neither works right.  I'll add them to the list and look into them as soon as time permits.

 

How many Atari 8-bit games/programs are there?! I'm starting to get the feeling that even with 90+% compatibility, I'm going to end up with 1000 things on the 'needs work' list :)

Link to comment
Share on other sites

32 minutes ago, llabnip said:

in the meantime I’ve had a look in the Altria hardware manual and a second “stereo” pokey via A4 addresses seems reasonable to try and add. I wonder if that’s the source of some missing sounds in a few newer games and demos? 

Well, in theory, games/demos/whatever using the stereo should be first detecting the second Pokey. But, you know.

  • Like 1
Link to comment
Share on other sites

23 minutes ago, llabnip said:

How many Atari 8-bit games/programs are there?! I'm starting to get the feeling that even with 90+% compatibility, I'm going to end up with 1000 things on the 'needs work' list :)

If you like to be a bit frustrated about the compatibility of your emulator: There is still the Acid800 test... :D

(I haven't tried your emulator yet - maybe the score is surprising.)

Link to comment
Share on other sites

1 minute ago, Irgendwer said:

If you like to be a bit frustrated about the compatibility of your emulator: There is still the Acid800 test... :D

(I haven't tried your emulator yet - maybe the score is surprising.)

It's not surprising - 23 pass, 33 fail. I've got a long way to go!  Fortunately CPU and GTIA stuff was pretty solid... ANTIC was hit or miss... cycle timing and things I don't support like Serial access were fails. 

 

I did find one problem with the ANTIC vs CPU access - that fixes the AD:6502 Arsantica2 demo (at least as much as I went through).

  • Like 2
Link to comment
Share on other sites

@llabnip

Another game with some graphical issues (although gameplay mechanics and music fine;-)):

 

Bubbleshooter:

title screen looks great and music sounds amazing:

image.thumb.png.660fe26a9308b2f082244b910ae090fa.png

 

...but initial text screens are off:

image.thumb.png.9b91f0bd2fd8639db0435dc01f4f3aff.png

..

and the right hand overall map is corrupted when playing, although it's doesn't affect gameplay mechanics which are fine:

image.thumb.png.f8601eae876b849abdc0b9f87dad49ca.png

BubbleShooter v1.03.atr

BTW needs PAL to run.

 

EDIT: Hopefully at some stage with enough info, a few causes/fixes will be found which will see a lot of these glitches go away for many of the games.

 

Great job - Atari 8-bit Bubbleshooter on a portable emulator... on a Nintendo DSi - cool!!:lust:

Edited by Beeblebrox
Link to comment
Share on other sites

Alley Dog 1MB demo - very nice (music ok 99% of the time - still sounds like one channel is off at times, epecially the last track, when you compare the audio on the real thing).

 

Edit: only one slight graphical issue at the end of the demo with the screens being cut off, especially at the bottom:

 

image.thumb.png.f1bdf81a805d8f4af0e2daad3d7ce044.png

 

 

IMG_20230511_095149.jpg

IMG_20230511_095309.jpg

IMG_20230511_095439.jpg

IMG_20230511_095520.jpg

IMG_20230511_095633.jpg

Edited by Beeblebrox
  • Like 1
Link to comment
Share on other sites

Thanks B! I've added these to the known issues list on my github page. 

 

I'm concerned these might all be related to mid-line updates of the ANTIC. A8DS is based on a 2010 version of Atari800 (roughly 2.0.x) with some bug fixes and enhancements but does not include their "new" (some years old now), Cycle Exact timing:

 

image.png.af785704f583228f7ff21a92b9fbea3b.png

If that ends up being the main culprit, it's going to be a heavy lift and from a glance, looks like it will require more CPU resources than I might have available on the venerable DS.

 

But I'm going to chip away and do my best. The goal was to be able to play Caverns of Mars on the toilet - but I would still strive for as much accuracy as is practical given the effort and hardware limitations here!

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

21 minutes ago, llabnip said:

Thanks B! I've added these to the known issues list on my github page. 

 

I'm concerned these might all be related to mid-line updates of the ANTIC. A8DS is based on a 2010 version of Atari800 (roughly 2.0.x) with some bug fixes and enhancements but does not include their "new" (some years old now), Cycle Exact timing:

 

image.png.af785704f583228f7ff21a92b9fbea3b.png

If that ends up being the main culprit, it's going to be a heavy lift and from a glance, looks like it will require more CPU resources than I might have available on the venerable DS.

 

But I'm going to chip away and do my best. The goal was to be able to play Caverns of Mars on the toilet - but I would still strive for as much accuracy as is practical given the effort and hardware limitations here!

Understood. What it can already do on the platform so far is amazing already. :) I played the classsic 1983 Alley cat gam on it - looks great.

 

BTW looks like the 2021 A8 FPS game Final Assault works fine. :thumbsup: What's great here is that the game requires keyboard usage to switch between the weapons. So the Ds/Dsi's dual screen is perfect as you can have the keyboard at the bottom on permanently. Only issue is purely ergonomic as sausage fingers and a small onscreen keyboard don't always allow quick weapon switching heh heh! ;)
 

check it out:

 image.thumb.png.de91e1967e94a09e764d62100612e037.png     image.thumb.png.cc3861a74b35a8a02b32e445d4df51fd.png  image.thumb.png.f01205cca16c959b57d153aac24682d4.png  

 

  • Like 2
Link to comment
Share on other sites

5 minutes ago, Beeblebrox said:

BTW looks like the 2021 A8 FPS game Final Assault works fine. :thumbsup: What's great here is that the game requires keyboard usage to switch between the weapons. So the Ds/Dsi's dual screen is perfect as you can have the keyboard at the bottom on permanently. Only issue is purely ergonomic as sausage fingers and a small onscreen keyboard don't always allow quick weapon switching heh heh! ;)

Cool! Would it help if I allowed any of the DS buttons (ABXY, Start, Select and Left/Right shoulder buttons) to be mapped to any keyboard keys?  If it's a limited number of keyboard keys that are needed for play, that would probably work.

 

And that's something I can do without being confused about the complexities of Atari 8-bit hardware :) 

 

I'm taking a break from looking at ANTIC code and going to add some better screen scrolling handling by allowing buttons to be configured to shift the screen up/down/left/right and then auto-scroll back into place. This way you can play games that would otherwise need to be heavily scaled/squished if you only need to 'glance up/down' at a score or status from time to time. Games like Caverns of Mars will play nicely this way - you don't need to see the bottom row of text very often.

  • Like 1
Link to comment
Share on other sites

10 minutes ago, llabnip said:

Cool! Would it help if I allowed any of the DS buttons (ABXY, Start, Select and Left/Right shoulder buttons) to be mapped to any keyboard keys?  If it's a limited number of keyboard keys that are needed for play, that would probably work.

 

And that's something I can do without being confused about the complexities of Atari 8-bit hardware :) 

 

I'm taking a break from looking at ANTIC code and going to add some better screen scrolling handling by allowing buttons to be configured to shift the screen up/down/left/right and then auto-scroll back into place. This way you can play games that would otherwise need to be heavily scaled/squished if you only need to 'glance up/down' at a score or status from time to time. Games like Caverns of Mars will play nicely this way - you don't need to see the bottom row of text very often.

Keyboard mapping - cool.

 

EDIT: totally overlooked the fact the DS/DSi etc has left and right shoulder buttons. Those would work really well for final assault's strafing should they me mappable. :)

 

Curently select and start allow for left and right strafing in Final assault. A and B are both fire, x is map. Keys 1 - 5 are the weapons.

 

I think there are other keys for final assault which allow you to seach barrels and activating switches.

See here:Final%20Assault%20keyboard%20controls.pn

The creator's of Final Assault, having the challenge of making an FPS on the A8, did an amazing job with the keyboard.

 

scroll handling sounds a good thing to focus on.

 

Edited by Beeblebrox
  • Like 1
Link to comment
Share on other sites

Okay... I'm starting the keyboard mapping.  I'll allow any DS key to be mapped to any one of:

  • Joystick 1/2 direction or buttons (useful for games that use UP as jump which can be awkward when using a d-pad for movement)
  • Atari Keyboard Key (A-Z, 0-9, CTRL, SHIFT, etc)
  • Console Buttons (Start, Select, Option, Reset, Help)
  • Screen Scale/Shift/Scroll

image.thumb.png.134c13929bb310808d0dac3093b26707.png

 

I'll have to figure out how to handle the Left/Right shoulder buttons which are currently used to scale/shift the screen along with the D-Pad (i.e. holding Right Shoulder and using the D-Pad will result in repositioning the screen and the Left Shoulder will result in scaling/zooming the screen).

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

Great you are working on the maping. As I say in Final Assault being able to map strafing to the l and r shoulder buttons would greatly enhance the controls for the game on the DS/DSi.

 

BTW I've noticed even though I think I've saved the setting in A8DB for PAL and 1088 as default, everytime I go in it defauts to NTSC 128k. I have to change it everytime I boot it ll up and it sticks until I power down, then loses it. Any ideas?  When I press Start to save there is no indication or on screen confirmation settings have been saved.

Edited by Beeblebrox
  • Like 1
Link to comment
Share on other sites

4 minutes ago, Beeblebrox said:

Great you are working on the maping. As I say in Final Assault being able to map strafing to the l and r shoulder buttons would greatly enhance the controls for the game on the DS/DSi.

 

BTW I've noticed even though I think I've saved the setting in A8DB for PAL and 1088 as default, everytie I go in it defauts to NTSC 128k. I have to chage it and it sticks until I power down, then loses it. Any ideas?  When I press Start to save there is no indication or on screen confirmation settings have been saved.

 

Yeah, I don't yet have 'global settings' - only game-specific settings. And yes, it defaults to NTSC because I'm a goofy American :)

 

I'll work on improving that so you can save a global set of defaults that apply to new games as you load them.

 

When you press START on the options screen after a game is loaded, you should see a brief 'CFG' in the upper left to indicate it saved the settings for that one game... but it's not the best choice of color schemes so it blends in with the background. If you do that before a game is loaded, it won't save anything but maybe I can re-purpose that as the 'global settings' applied going forward as a default.

 

So many things to improve - I'm feeling a little overwhelmed!!  But I'll get to it all. 

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

Take your time. You are only getting lots of feedback and inevitable bug reports because people are so keen to test it out. Very grateful to you for creating this and it's a great addition to the Atari 8-bit scene. Your dedication is most appreciated and I'm sure I speak for others there. :)

 

Also thanks for explaining the config settings. Global settings for core things like memory and PAL/NTSC would be cool, although very little effort on the users part to switch them so not a biggy. I can imagine mapped keys for specific games would be good. There aren't that many games that have such complex key mappings that the likes of Final assaut has of course. 

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

20 minutes ago, Beeblebrox said:

Take your time. You are only getting lots of feedback and inevitable bug reports because people re so keen to test it out. Very grateful to you creating this and it's a great addition to the Atari 8-bit scene. Your dedication is most appreciated and I'm sure I speak for others there. :)

 

Also thanks for explaining the config settings. Global settings for core things like memory and PAL/NTSC would be cool, although very little effort on the users part to switch them so not a biggy. I can imagine mapped keys for specific games would be good. There aren't that many games that have such complex key mappings that the likes of Final assaut has of course. 

Thanks B - I do appreciate all the feedback! At least someone is using it :)

 

I just had a go at global settings and it seems like it will be pretty easy. Basically anything you set and START=SAVE before you load a game becomes your global defaults for loading any future game. You can still override any settings on a per-game basis.

 

Unfortunately I wasn't very forward thinking when it came to config expansion and I'm going to need to change the database structure a bit. That means with the next check-in, everyone's configs will be reset to defaults. I'm going to add plenty of 'spare' configs for the future so I don't have to reset the configs again.  It's hard to make an omelet without breaking a few eggs.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

3 hours ago, llabnip said:

Cool! Would it help if I allowed any of the DS buttons (ABXY, Start, Select and Left/Right shoulder buttons) to be mapped to any keyboard keys?  If it's a limited number of keyboard keys that are needed for play, that would probably work.

 

 

This would work great for Atari's Defender, which uses space bar for the Smart Bomb.  Might even be useful for Star Raiders to have some of the more common keys assigned to spare hardware buttons.

  • Like 2
Link to comment
Share on other sites

1 hour ago, FifthPlayer said:

 

This would work great for Atari's Defender, which uses space bar for the Smart Bomb.  Might even be useful for Star Raiders to have some of the more common keys assigned to spare hardware buttons.

Yeah, that's the game I'm trying it with now :) 

I previously did allow the X button to be mapped to SPACE but this new mechanism will allow any DS key to be mapped to any Atari joy/key/button.  It needs some cleanup but it's partially working.

 

Global settings is in place - also needs some cleanup but appears to be working fine.

 

I'm also adding the ability to press and hold the two shoulder buttons for ~1 second to take a 1:1 pixel BMP snapshot of the emulation screen (and save it with time/date to the SD card - you can snap as often as you like). This will help me debug down to the pixel-level if needed.

 

image.png.5bd6d80556bdaffc7b96c96132397e92.png

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

2 hours ago, llabnip said:

I'm also adding the ability to press and hold the two shoulder buttons for ~1 second to take a 1:1 pixel BMP snapshot of the emulation screen (and save it with time/date to the SD card - you can snap as often as you like). This will help me debug down to the pixel-level if needed.

CFW has screenshot ability built-in now, BTW, but I've had it crash on me once or twice.

You hold L + down + select.

Edited by Asaki
  • Like 1
Link to comment
Share on other sites

Taking into account in particular the difficulties of screen rendering for text (as you illustrated with Infocom titles), which DS would be the best to run this on?

 

I'm assuming that the higher-resolution later variants would render the Atari screen (for text in particular) better than the DS/DSi?

Link to comment
Share on other sites

1 hour ago, drpeter said:

I'm assuming that the higher-resolution later variants would render the Atari screen (for text in particular) better than the DS/DSi?

A8DS is written using the NDS library and targets the DS/DSi. The higher resolution 3DS won’t render any more pixels. In fact it will scale the already scaled image (though it does it quite well). 
 

There are probably other a8 emulators for the 2DS/3DS that would use the higher resolution. 

  • Thanks 1
Link to comment
Share on other sites

I don't mind sharing my in-progress attempts. Just as long as you realize the configuration structure might change before I lock it down for a 3.2 release.

 

In any event, I put up a special a8ds_31d.nds file on my github page if you want to play around with it.  I expect there will be bugs as I'm basically re-working the entire internals of the configuration handler to make it cleaner and more easily extensible.

 

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

 

Right now it has global settings - if you go into the GEAR icon and set any parameters before you launch a game (and press START=Save), it will save those as your defaults going forward for when you load any game that doesn't already have overridden configuration. You can, of course, still change any settings on a per-game basis. 

 

It also has a 2nd page of options (press X to toggle page 1 and page 2... hence X=MORE below). This is where the new key mapping and joystick handling stuff will be. Right now you can map any DS button to one of about 60 functions... joystick, console switches, keyboard keys, etc.  I haven't done the screen scale/shift stuff yet but that's coming next.

 

You can also press Left Shoulder + Right Shoulder and hold for ~1 second to take a snapshot of the emulation screen.

 

These are the 'default' key maps:

 

image.png.70ebdced07b640c548f64da8827cea67.png

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

At lunch I added the screen offset/scale directly into the options along with the ability to "slide" the screen which works great for games that you don't want to squish down with scaling. 

 

Witness Caverns of Mars - with the X button (here) mapped to VERTICAL+, it will shift the screen vertically by 10 pixels (I also have VERTICAL++ for 20 pixels and the corresponding VERTICAL- and VERTICAL--). 

 

In this way you can set an unscaled vertical screen that cuts off the bottom text (usually NOVICE, COMMANDER, etc. but sometimes other info) and if you press X it will slide down to show you that and when you release X it will quickly smooth-scroll back to your default position. It's fairly buttery-smooth if I do say so myself.
 

You can also press the SELECT key to set all settings for the current game back to your Global Defaults. 

 

I put up a special 3.1e build on my Github page.

 

image.thumb.png.b7b679fc16f09e15c7ea297c1983b0ea.png

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

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

 

V3.2 : 13-May-2023 by wavemotion-dave

  • Enhanced configuration - unfortunately your old config save will be wiped to make way for the new method. I will try not to change this again anytime soon.
  • Global options - use the GEAR icon before a game is loaded and you can save out defaults for newly loaded games.
  • Key maps - set any of the DS keys to map into various joystick, console buttons, keyboard keys, etc.
  • Screenshot capability - press and hold L+R for ~1 second to take a .bmp snapshot (saved to a time-date.bmp file)
  • New Smooth Scroll handling so you can set your scale/offset and then map any button to shift vertical/horizontal pixels (set keys to VERTICAL++, HORIZONTAL--, etc). The game will automatically smooth-scroll back into place when you let go of the pixel-shift button.
  • Improved cart banking so that it's as fast as normal memory swaps. This should eliminate slowdown in Cart-based games.
  • A few bug fixes as time permitted.

 

I need to spend a day updating the readme.md file on the github page. Time to actually explain what all the configuration stuff does!

  • Like 2
  • Thanks 4
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...
  • Recently Browsing   0 members

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