Homebrew XEGS-DS - Yeah, it's a thing...

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
And it's coming soon! If I can get it working right! (a bit too slow right now, but that's where I shine).

upload_2021-1-30_8-55-48.png


The XEGS is the Atari 8-bit home console version of their 8-bit line of computers. While you could add a keyboard and disk peripherals, it operates cleanly as a stand-alone gaming machine that is compatibile with virtually all of the 8-bit computer games. This emulator for the DS will provide the ability to load .XEX (the most common executable type) binaries to play more than 1000 classic games (that don't require a keyboard!) on the venerable DS.

upload_2021-1-30_8-58-16.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Thanks Indy - as it turns out, the 5200 is basically an Atari 400 with 16K stock RAM and the 32k Cart... so most emulators that can do Atari 400/800/XL/XE also do 5200 ... and the reverse is also true.

Alek took his Atari800 emulator as the basis for his 5200 emulator (both based on Atari800 source code from the 1990s). I was able to take my cleaned up A5200DS and reverse engineer back the code to run the Atari 800XL and XEGS. I've now got it mostly running - at high speed and reasonable compatibility so at this point I'd rather press on with code I understand than start over fixing older code :)

I'd have a release out already if I weren't playing game after game of Alley Cat :)
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Alpha Version 0.8 is available: https://github.com/wavemotion-dave/XEGS-DS

(source code will be uploaded as soon as I have a chance to clean it up - it's a bit of a mess right now)

It works! This Alpha release has support for .XEX and .ATR and generally runs well enough. Strongly prefer .XEX which are the Atari 8-bit executable files. The .ATR files are disk encapsulated files and generally work but have lower compatibility. Usually games and such can be found in either format... so seek the .XEX files.

The controls are really necessary here. After loading, use the Left or Right shoulder buttons along with the D-Pad to scale the screen to your liking. This will reset with every new game picked.

Controls :
* D-pad : the joystick ...
* A : Fire button
* B : Alternate Fire button
* X : Space Bar (R+X for RETURN and L+X for ESCAPE) - useful to start a few games
* R+Dpad : Shift Screen UP or DOWN (necessary to center screen)
* L+Dpad : Scale Screen UP or DOWN (generally try not to shrink the screen too much)
* Y : OPTION console button
* START : START console button
* SELECT : SELECT console button

Tap in the Cart Slot to pick a new game. That's the only aspect of the touch screen that really works (though tapping the upper left corner briefly will turn on the FPS display if such a thing interests you).


This is Blowsub. Fun game and I just like saying the title :)


upload_2021-1-30_19-22-13.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Beta Version 0.9 is available: https://github.com/wavemotion-dave/XEGS-DS

Keyboard support added. Cleaned up on-screen navigation graphics (though I suck at graphics... if someone wants to help - please step up!). Emulator buttons now work. Have fun!

upload_2021-1-31_10-38-40.png


Edit: Checked in some debug code by accident. If you grabbed it when I first posted, just grab again please. Tnx!
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Wow !!! Great job @wavemotion !
I just tested several games including a port of Time Pilot and the rendering is really smooth, it's really cool! :)
Do you plan in the future to implement an option to flip floppy disks with .atr files and compatibility with .rom files extensions?
Funny you should ask :)

So I just got done pulling out cart file support (.rom, .bin, etc). Virtually everything that came on cart is now been converted to simple .XEX files which are much easier to decode and deal with on my end and doesn't require that the user be prompted for the cart type (MEGA, two-chip, etc). (XEX trove hint: search "mushca atari" and look for the A-Z listings ...).

The multi-disk thing is another story... I don't have support for it and for sure you won't be able to load up a 2nd disk (some of my favorite adventure games from Infocom are 2 disk games... and I know there are 3+ disk games out there). I'm leaning towards including this but my original goal was to keep this bullet-simple - fast, smooth and easy to use. But I also don't want to exclude too much stuff for the want of a 2nd disk load so I'll definitely be looking into it.

PS: I'm not ready for the 1.0 yet... but I did just check in some big cleanup, speedups and the RESET button now re-initializes the whole machine emulator in case you have trouble loading a game (I found that loading a large game that takes the OS out of RAM will require a re-init... I'll try to make that automatic in the future but the RESET button is a good way to get back to playing a new game fast should things go "weird").

Edit: found a way to mount new disks mid-game... I can even mount them as writeable to save game states. Need to clean up the disk load interface - it's a little janky right now.
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
I'm not ready for a new build yet, but the nightly check-in here: https://github.com/wavemotion-dave/XEGS-DS

Has a build with multi-disk support. I also added a short but pleasing key-click when you use the keyboard which adds some needed tactile feedback. I may rework the keyboard to be less like an actual layout and utilize more of the screen so you might be able to use your actual finger (plus my old eyes aren't working all that well with the tiny keys) .

When you go to pick a disk image, you can press Y to change whether the disk auto-boots (if not selected, it will just insert the disk - allowing multi-disk games to load). You can also load the disk as writable - be careful here... but this will allow you to save games. I'll probably supply a 130KB (!!) double density blank disk with the released version so you can copy it as often as you desire to save games and such.

upload_2021-2-1_8-40-41.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Still not ready for a new build, but checked in a build with .NDS that has the new keyboard handling.

It's not as aesthetically pleasing as the "real keyboard" graphic, but it's a metric ass-ton more functional. On my XL I can actually be accurate typing on Zork I and with my smaller units, the stylus is very spot-on. I'm more about functionality than form.

upload_2021-2-1_14-7-0.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Version 1.0 is released: https://github.com/wavemotion-dave/XEGS-DS

Still plenty to do on this emulator - but numbers are free and I'm not afraid to increment them :)

In this release you can toggle NTSC/PAL when you choose a game. And the aforementioned method of swapping disks is done by pressing Y to avoid a boot-load when the new disk is "inserted" into the system. I need to clean this up so it's a little more intuitive.

The new keyboard support is in and seems to be working well.

Not every game loads - in fact a few will crash the emulator... but 80% of the binaries should load and run fine now.

@Robz8 - no idea if you want to include the Atari 8-bit computer/gaming system to TWL but you are, of course, welcome. The built-in Altirra BIOS seems to be working well so it's just a matter of pointing to a game file on the command line. I currently only support .XEX (Atari Binary Images) and .ATR (disk images).

One quirk of this emulator is that if you load a .ATR image you generally have to hit RESET after if it's the first time you've loaded a disk (subsequent loads are okay). I'll work out why that is... for 1.1 :)

upload_2021-2-2_7-51-51.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Version 1.1 is released: https://github.com/wavemotion-dave/XEGS-DS

V1.1 : 03-Feb-2021 by wavemotion-dave
* Fixed BRK on keyboard. Fixed SHIFT on keyboard.
* If game crashes, message is shown and emulator no longer auto-quits (so you can pick another game without restarting the Emu)
* Improved loading of games so first load doesn't fail.
* Drive activity light, file read activity for large directories, etc.
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
A quite old, long time stalled Atari800 port seems to be active again.
You may want to have a look at https://home.asie.pl/projects/
Yep. I looked. It's really nice... but it has issues (speech in Bosconian and Berzerk don't work... and speed on some stuff is not great). I tried to compile that project but it's missing some files. I contacted the author and he said he had a drive failure and wasn't sure if he could rebuild.

So I just started from the Alekmaul stuff I had. At least I understand it and can build it :)

I did this because I wanted to play Boulderdash on my DS!
 
Last edited by wavemotion,

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Okay... I found my old XEGS (and my Atari 800XL and TI99/4a) in storage. Time to get these hooked up and make sure the the emulator is looking and sounding right! I think I'm going to bump the sample rate up - the way I coded the sound for the Pokey Chip it's either 15.7 KHz (which is what it is today) or 31.4KHz (which will take up a bit more CPU speed but sound nicer). I think this deserves the nicer sound...

Man this stuff needs a good cleaning...

upload_2021-2-3_16-11-47.png
 

wavemotion

Benign Geek
OP
Member
Joined
Nov 23, 2020
Messages
716
Trophies
1
XP
5,080
Country
United States
Not ready for a new release, but the nightly check-in has built-in BASIC thanks to Avery Lee and the Altirra project (a MUCH nicer full-featured 8-bit emulator for the PC... XEGS doesn't attempt to compete in that space as my project is primarily a way to play 8-bit games on a classic handheld and Altirra is a serious emulator for serious enthusiasts). The built-in BASIC is accessed when you go to load a game. By default, it's not enabled but you can press START to enable the BASIC cart. There are plenty of games written in BASIC that you can now run - opening up an even wider assortment of enjoyment from this handheld.

Heck, you can even program your own games ... though I think the cramped keyboard would get on your nerves :)

I also fixed PAL sounds and frame rate (should be 50FPS, not 60FPS). I'm so American.

upload_2021-2-5_8-2-10.png
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    KenniesNewName @ KenniesNewName: https://youtu.be/bkR4rNlF14s