Jump to content
Sign in to follow this  
RevEng

A7800 - "new" 7800 emulator, tons of controls, very accurate

Recommended Posts

trebor and I have put together a fork of the MAME a7800 driver called A7800, and enhanced it in a few ways that will probably be of interest to 7800 developers.

  • Support for emulation of Proline Joysticks, VCS Joysticks, Lightguns, Paddles, Driving Controllers, Keypads, Trak-Balls, Amiga Mice, and ST Mice.
  • Maria DMA timing has been improved further, with the addition of accurate DMA hole penalties.
  • Improved saturated/normalized 'factory set' default palette colors.
  • A bug in the existing RIOT emulation has been fixed.
MAME compatibility and syntax has been maintained, to allow for the reuse of MAME configuration files and front-ends.

 

The controller emulation is for the most part very accurate. Other 7800 emulators implement lightguns with an "average correction factor" to fix the actual CPU cycle vs. the scanline beam position, but A7800 already has a faithful CPU vs. scanline beam position. Other emulators chalked up the poor accuracy to Atari's coarse lightgun implementation, but A7800 shows that Atari's lightgun positioning implementation is actually much tighter than previously thought.

 

There's one controller emulation issue that programmers should be aware of. The keypad controls are idealized, and respond instantly after you select a keypad row. The Stella programming guide says that you actually need to wait 400us after a row selection before you'll get real data. (that's about 716 6502 cycles at 1.79Mhz) In the future this might be emulated, but for now, you've been advised.

 

Lastly, trebor has very kindly posted a guide on setting up and using A7800.

 

Enjoy!

  • Like 10

Share this post


Link to post
Share on other sites

(Copied from Trebor's thread)

 

I'm looking forward to completing the keypad support in my dungeon crawler with the help of this. Writing a 2600 program then trying to blindly transplant the code snippets isn't a good way to do things.

 

I hope this also encourages developers to combine the strengths of the 7800 with the controllers not available to the competition.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks!

 

Nope, none of the emulators presently do that. We're looking at enabling selectable chroma phase shift in the future.

 

Is warm-up chroma phase shift a feature you're looking for? It seems pretty low on the priority list, to be honest. I could only see it being desired by devs who might want to witness the worst-case phase-shift in their homebrews, and selectable phase shift should serve here. I'd be keen to hear if there's another use case.

Share this post


Link to post
Share on other sites

Is there a way to get this emulator to take a frame-blended screenshot? I've been using it for my Sky Scraper game that I have been developing but it only takes single frame screen shots and doesn't capture the blended colors.

Share this post


Link to post
Share on other sites

Main thing I don't like about this, and that's only because of it being a fork of MAME / MESS is the startup screen when you run it without a cart. Is there a way to set it to default to a specific cart every time you boot the emulator up?

Share this post


Link to post
Share on other sites

Is there a way to get this emulator to take a frame-blended screenshot? I've been using it for my Sky Scraper game that I have been developing but it only takes single frame screen shots and doesn't capture the blended colors.

 

The way I captured a frame-blended screenshot was by enabling bgfx effects, made a video capture, and then a snapshot from the video playing back.

 

While effects (bgfx or hlsl) are enabled, to capture what is seen on screen, ALT-F12 will do the trick. However, it breaks the capture into four parts and they would need to be stitched together with a program like Photoshop.

 

Important too, regarding the aforementioned effects being enabled, prior to doing so, the folders containing necessary files need to be obtained and included from baseline MAME (bgfx and hlsl respectively).

 

Main thing I don't like about this, and that's only because of it being a fork of MAME / MESS is the startup screen when you run it without a cart. Is there a way to set it to default to a specific cart every time you boot the emulator up?

Working with the archive that was posted containing batch files, any one of them can be edited inside Notepad, or whatever preferred simple text editor, and have the ROM included. For instance, NTSC_ATARI_7800.bat, when edited, this is seen:

 

a7800 a7800

 

Update the above to:

 

a7800 a7800 -cart "C:\PATH\TO\ROMS\NameOfROM.a78"

 

If wanting the XM features enabled (I.E. High Score Cart saving support), the file NTSC_ATARI_7800_XM.bat, can be updated from...

 

a7800.exe a7800 -cart1 xm

 

...to...

 

a7800.exe a7800 -cart1 xm -cart2 "C:\PATH\TO\ROMS\NameOfROM.a78"

  • Like 1

Share this post


Link to post
Share on other sites
a7800 a7800 -cart1 hiscore -cart2 "%~f1" 

That's my preferred method. It starts it with whichever ROM is dragged over the batch file.

  • Like 2

Share this post


Link to post
Share on other sites

Is there a way to get this emulator to take a frame-blended screenshot? I've been using it for my Sky Scraper game that I have been developing but it only takes single frame screen shots and doesn't capture the blended colors.

 

I'd be interested in knowing how to do that for Stella too. With Blargg TV effects and phosphor mode enabled, it's impossible to capture what you see, since 30Hz flicker is being used. So you either get an image with half the data missing, or one where blending is done one too many times.

 

I guess this is really a problem of how to capture in a single frame what you see in multiple frames. Hmm, when I state it like that, I see that it might be impossible :)

Share this post


Link to post
Share on other sites

Now that I've been pressured into getting a new comp thanks to the other one tanking on me, been trying to get A7800 to work.

 

Technically, it works. But I can't get it to work conveniently.

 

I try to run it from the commandline in dos (on win10) with the command below, and I get the two lines of errors.

a7800 a7800 -cart graze.bas.a78
7800.u7 NOT FOUND (tried in a7800 a7800)
Fatal error: Required files are missing, the machine cannot be run.

I can open a7800 directly by clicking on it in windows, although the only way I've found to run the specific rom I want for testing, I have to start running it without a cart, then tab, then file directory and tediously find the file.

 

I'd really prefer to be able to just run it from the command line...

Share this post


Link to post
Share on other sites

I try to run it from the commandline in dos (on win10) with the command below, and I get the two lines of errors.

a7800 a7800 -cart graze.bas.a78
7800.u7 NOT FOUND (tried in a7800 a7800)
Fatal error: Required files are missing, the machine cannot be run.

The message is typical of BIOS ROM files missing. Those can be obtained, in addition to some other helpful config files, from this post. It is a part of the Additional Files download.

 

Odd though that it runs fine when launched via internal UI. Regardless, try starting a clean install with those additional files and then try running from command line. It should run without a hitch.

 

Remember too, the complete path of the ROM file needs to be specified when launching from Command Line.

I.E:

C:\a7800>a7800 a7800 -cart "C:\Path\To\ROM\File\graze.a78"

 

I can open a7800 directly by clicking on it in windows, although the only way I've found to run the specific rom I want for testing, I have to start running it without a cart, then tab, then file directory and tediously find the file.

To eliminate the above step(s), see this post.

 

It provides a few batch files to click on to simplify 'system started' launch:

 

-NTSC Atari 7800

-NTSC Atari 7800 XM

-PAL Atari 7800

-PAL Atari 7800 XM

Share this post


Link to post
Share on other sites

That's the unusual thing though. I've already got the additional files copied over into a7800's folder.

 

Regarding the complete path, should that be necessary if I'm launching a7800 from the same directory the rom is in? I added a7800's folder to Win10's path.

 

Also regarding that software list, how can I edit that to add/remove games from it?

Share this post


Link to post
Share on other sites

Regarding the complete path, should that be necessary if I'm launching a7800 from the same directory the rom is in? I added a7800's folder to Win10's path.

 

Not necessary - for both the answer to the question and the step of adding a7800 folder to Win 10's path. Copying digdug.a78 into the same folder as the a7800 executable (Which already contains the respective subfolder and zipped BIOS ROM files, roms\a7800.zip) and executing the command line, without ROM path, worked fine:

 

post-18-0-75005200-1510180905.png

 

Also regarding that software list, how can I edit that to add/remove games from it?

The a7800.xml file under the "hash" subfolder would need to have the appropriate entries created inside of it.

 

too difficult to install

Sorry you feel that way. Between the initial post about A7800 from the main forum and then the added shortcuts, not sure how much easier it can be made.

 

It's two steps to initially setup the emulator with additional files. Hand holding directions regarding how to select a specific controller and game are also included in the aforementioned initial post as well.

  • Like 1

Share this post


Link to post
Share on other sites

More work than I want for starting a file. Particularly when I'll be compiling, running, editting, compiling, running, in quick sequence as I debug.

 

In the name of laziness, a friend told me based on the way mame.ini files work I can just copy the rom folder containing a7800.zip, etc to my project directory. Then run a7800 a7800 -cart <filename> and it would run.

 

And... it did! It's something about mame.ini files being current-directory, so if you launch from a different directory it uses the mame defaults.

 

In the spirit of being lazy, I'm going to further add the a7800 command to a "start.bat" file and toss that in the project directory too. :D

 

Either way, I think I'm finally back up and running for 7800basic coding.

Share this post


Link to post
Share on other sites

Screw emulators. :P I just built a few MCP interface boards, now that it is very easy for me to produce MCP dev-boards, with the new Versa 2.0 PCB.

 

Anyone got a good idea for a give-away contest, for one? :)

 

P.S. I could probably make a 272K POKEY devcart, with the same hardware, but it would require a BIOS modification, to flash it. ;)

Share this post


Link to post
Share on other sites

How many people spammed your message box asking to buy it outright after you posted? ;)

 

You could organize a small coding competition if you're crazy. ;) Set a date for say January 1st for submissions, set the maximum rom size to 48k. Select a group of finalists by the end of January for the community to vote on. ;)

Share this post


Link to post
Share on other sites

How many people spammed your message box asking to buy it outright after you posted? ;)

 

You could organize a small coding competition if you're crazy. ;) Set a date for say January 1st for submissions, set the maximum rom size to 48k. Select a group of finalists by the end of January for the community to vote on. ;)

 

None, you are the first person to even make a comment. :lol:

Share this post


Link to post
Share on other sites

How many people spammed your message box asking to buy it outright after you posted? ;)

 

You could organize a small coding competition if you're crazy. ;) Set a date for say January 1st for submissions, set the maximum rom size to 48k. Select a group of finalists by the end of January for the community to vote on. ;)

That would be really cool.

Share this post


Link to post
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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...