Jump to content
IGNORED

A question about Atari 800 File Formats (ROM, XEX, ATR, etc.)


Guy1

Recommended Posts

I was under the impression that Atari 800 games came in three forms:

 

Cart Files - ROM/COM/XEX/CART

Disk Files - ATR/ATX

Tape Files - CAS

 

But then I stumbled upon some COM games that (according to AtariMania) were never released on cartridge:

Air Support, Desmond's Dungeons, Encounter, Ghost Chaser, Zeppelin

 

Moreover, the "Homesoft Collection" has a whole TRUCKLOAD of XEX games that were never released on cartridge.

All of these load immediately - even with Altirra set to give accurate load times.

 

So what gives? Did someone convert these disk files into XEX format?

There is a small folder of "disk only" roms - Why couldn't these be converted?

Link to comment
Share on other sites

Okay first let's clear up a misconception: .COM and .XEX files are executable binary files, not cartridge ROMs. Atari cartridge ROM files are usually called .CAR (if they have a file header attached that defines the cartridge type and bankswitching used by the original cartridge) or .ROM or sometimes .BIN if they are straight ROM dumps without the .CAR header. The rest of your file types are correct.

 

There's really nothing all that special about .XEX files - they just need to be Atari programs that, when loaded, "know" where to go in memory to self-execute and run. These files can be loaded from almost anything - an SIO2PC device, SDrive or SDrive-MAX, etc. Nearly all titles that were originally published on cartridges back in the day have been dumped, hacked and converted into XEX files for ease of use with emulators and alternate loading methods. Before recent years when we've had a number of different cartridge emulation devices to choose from, back in the day cost and technology made such devices much less common. So converting carts to .XEX files made a ton of sense. In addition, a lot of great hobbyist homebrew games, demos or conversions from other platforms were never available on cartridge and were distributed online as .XEX files to begin with.

 

Disk-only titles may be too large for a single-file to load at one time, or else need to modify their own code while running and access data on disk during play, or perhaps there are still some few that can be converted to .XEX and no one has ever quite gotten around to it yet. But usually there are technical reasons why not. 

  • Like 4
Link to comment
Share on other sites

For disks, you are missing a couple, e.g. Altirra's save disk dialog:

 

image.png.2f5d3dbbc2bf21e90606d1ecbea596dc.png

 

Cartridge files are typically ROM, BIN, or CAR - the first 2 being the 'dump', e.g. exactly 8K, 16K, 128K in size, and the CAR includes a 16 byte header before the dump which (primarily) describes to an emulator or multi-cart's fimrware which mapper it should use.

 

Atari Disk Operating Systems are capable of loading binary files which conform to an Atari Binary file format.

So in the earlier days file extensions were typically BIN, COM or EXE.

As emulators became available and the possibility of downloading files from the internet became commonplace, on DOS/Windows systems the COM and EXE extensions confuse those files and, as an example, could be picked up on things like email /virus scanners that won't let you attach an executable file.

So the alternative is to give them the extension XEX instead and is generally accepted as the way to supply files these days.

 

  • Like 1
Link to comment
Share on other sites

Thanks guys. Very informative.

 

Just had a few thoughts about XEX/COM conversions - purely from a preservationist viewpoint:

  • What about splash screens with information on them? Wouldn't the game load too fast for players to see them?
  • Do you think fixing game load times might give the wrong impression for future players? Like maybe you stumble upon a game and think "Wow! What a great game! I can't believe it was rated so low / overlooked for all these years" - when really the game was only available on cassette and had long load times between every single screen.
Link to comment
Share on other sites

1 hour ago, Guy1 said:

What about splash screens with information on them? Wouldn't the game load too fast for players to see them?

Loading form a XEX isn't particularly faster than loading from a disk, unless you're using an emulator. Given that an Atari disk system has a throughput of about 1Kbytes/sec when unmodified, it was usually no problem for a title screen to stay up long enough to load the rest of the program.

 

Sometimes when converting from a disk to XEX people would make effort to retain a title screen (which is usually just a small program that loads the graphic page, then continues on to load the executable), sometimes not.

 

You are loading your XEX's instantly in Altirra because Phareon is a considerate dude and wrote load logic *in the emulator* using native Windows code. If you were to put that same XEX on an ATR image, turn on accurate disk timing, and then use an Atari DOS to load it (so the emulated 6502 was doing the work), it would beep beep beep away and take quite some time to load comparatively. Although interestingly enough Atari drives were considered quite fast for the time, for 8-bits.

Link to comment
Share on other sites

I've got one small thing to mention about the ".XEX" filename. (Corrections & clarifications appreciated!)

 

I remember running (as in, Atari DOS or MyDOS: "[L]oad Binary"-ing) .COM, .OBJ, and .EXE files on the Atari.  IIRC, a subtle difference between them might be whether or not the code loaded is run (executed) immediately. (e.g., you could binary-load an OBJ file which places itself into page 6 ($0600), then "B. Run Cartridge" back to BASIC, and do an "X=USR(1536)" to run it whenever you needed to.)

 

Anyway, as everyone knows, ".EXE" is also the filename extension for executable programs on MSDOS / Windows, and that platform became a haven for viruses and other malware, so EXE files are shunned -- no one trusts random EXEs they get in email or see floating around the 'net.  (And ".COM" is also another binary format for DOS/Windows.)

 

Therefore, someone out here in Atari land (does anyone know who?) decided to start naming Atari executables with an ".XEX" extension, to avoid conflict/confusion/filtering.

 

"Back in my day" (1990s on BBSes, Fidonet, Internet email, Usenet newsgroups, FTP, and extremely early days of the web), the ".XEX" filename extension was never used by anyone, that I [*] know of.  It seemed to appear after the web got popular, and everyone & their cat got internet access.

 

[*] For a time, I maintained the Atari 8-bit corner of the UMich. archive.

Edited by billkendrick
Forum interpreting stuff stupidly as formatting
  • Like 1
Link to comment
Share on other sites

41 minutes ago, billkendrick said:

I remember running (as in, Atari DOS or MyDOS: "[L]oad Binary"-ing) .COM, .OBJ, and .EXE files on the Atari.  IIRC, a subtle difference between them might be whether or not the code loaded is run (executed) immediately. (e.g., you could binary-load an OBJ file which places itself into page 6 ($0600), then "B. Run Cartridge" back to BASIC, and do an "X=USR(1536)" to run it whenever you needed to.)

 

True, however the extension is still a convention as the loader will treat them the same, the thing with an OBJ (not intended to run) is that so long as the addresses RUNAD ($2E0) or INITAD ($2E2) aren't set then you are return to DOS.

 

I'd need to check, but I think it could also be possible to just set the INITAD and not the RUNAD to execute some initialization code and then return to DOS.

For example to reset RAMLO and setup something equivalent to a MSDOS TSR (Terminate and stay resident) routine.

But looking at some old sources (here) you you normally use RUNAD because as long as the code run returns with an RTS then you will return to basic, so most games just never get to a point of doing that :D 

 

In terms of the XEX extension, my guess would be that this arose from central Europe being the default output extension for one the assemblers (maybe MADS) so maybe someone active in the Atarionline.pl might know?

Edited by Wrathchild
XEX note
  • Like 1
Link to comment
Share on other sites

My programs are also from The Homesoft Collection, will they work with The Brewing Academy Ultimate Atari Cartridge with an SD card I have ready for it??? And if so, is there any formatting I need to do to make my Dell/Kingston 1GB SD card work with it and my soon-to-be acquired near-mint XEGS system I will be getting soon???

Link to comment
Share on other sites

16 hours ago, billkendrick said:

Therefore, someone out here in Atari land (does anyone know who?) decided to start naming Atari executables with an ".XEX" extension, to avoid conflict/confusion/filtering.

 

"Back in my day" (1990s on BBSes, Fidonet, Internet email, Usenet newsgroups, FTP, and extremely early days of the web), the ".XEX" filename extension was never used by anyone, that I [*] know of.  It seemed to appear after the web got popular, and everyone & their cat got internet access.

 

I agree with this. I've been an Atari 8-bit user since 1982 and I don't recall ever seeing the xex extensions until a few years ago, definitely since the start of the 2000s. If I had to narrow it down just a little bit more, I'd say they've really came into prominent use in the past five to ten years.

 

 

Link to comment
Share on other sites

  • 2 weeks later...
On 10/10/2020 at 1:37 PM, billkendrick said:

"Back in my day" (1990s on BBSes, Fidonet, Internet email, Usenet newsgroups, FTP, and extremely early days of the web), the ".XEX" filename extension was never used by anyone, that I [*] know of.  It seemed to appear after the web got popular, and everyone & their cat got internet access.

 

On 10/11/2020 at 6:02 AM, bfollowell said:

I agree with this. I've been an Atari 8-bit user since 1982 and I don't recall ever seeing the xex extensions until a few years ago, definitely since the start of the 2000s. If I had to narrow it down just a little bit more, I'd say they've really came into prominent use in the past five to ten years.

I believe that the XEX extension came about because of emulator software on the PC. EXE files for the emulated system were renamed XEX so that they wouldn't be mistaken for X86 executable files.

Link to comment
Share on other sites

On 10/10/2020 at 4:37 PM, billkendrick said:

I remember running (as in, Atari DOS or MyDOS: "[L]oad Binary"-ing) .COM, .OBJ, and .EXE files on the Atari.  IIRC, a subtle difference between them might be whether or not the code loaded is run (executed) immediately. (e.g., you could binary-load an OBJ file which places itself into page 6 ($0600), then "B. Run Cartridge" back to BASIC, and do an "X=USR(1536)" to run it whenever you needed to.)

 

Anyway, as everyone knows, ".EXE" is also the filename extension for executable programs on MSDOS / Windows, and that platform became a haven for viruses and other malware, so EXE files are shunned -- no one trusts random EXEs they get in email or see floating around the 'net.  (And ".COM" is also another binary format for DOS/Windows.)

IIRC,  executable file extensions have no particular meaning on Atari.   .EXE and .COM became popular to use because that's what was the norm on other systems like DOS.  

 

On 10/11/2020 at 9:02 AM, bfollowell said:

I agree with this. I've been an Atari 8-bit user since 1982 and I don't recall ever seeing the xex extensions until a few years ago, definitely since the start of the 2000s. If I had to narrow it down just a little bit more, I'd say they've really came into prominent use in the past five to ten years.

Yes, never saw .XEX back in the day,  in fact at first I though XEX was a new disk image format, I didn't realize they were binaries.

 

On 10/10/2020 at 5:17 PM, Wrathchild said:

In terms of the XEX extension, my guess would be that this arose from central Europe being the default output extension for one the assemblers (maybe MADS) so maybe someone active in the Atarionline.pl might know?

I thought it was just an inverse of EXE to XEX because downloading EXE files might trigger anti-virus programs or be treated as executables by Windows.

 

On 10/8/2020 at 8:42 PM, Guy1 said:

I was under the impression that Atari 800 games came in three forms:

 

Cart Files - ROM/COM/XEX/CART

Disk Files - ATR/ATX

Tape Files - CAS

Those three would be images of physical media.   But there's also "loose binary files".  a real Atari would require you to place them on a tape, disk or disk equivalent before using them.  but but many emulators will allow you to load them as is..   These have .com, .obj, .exe, .xex extensions usually

Link to comment
Share on other sites

1 hour ago, zzip said:

I thought it was just an inverse of EXE to XEX because downloading EXE files might trigger anti-virus programs or be treated as executables by Windows.

5 hours ago, BillC said:

EXE files for the emulated system were renamed XEX so that they wouldn't be mistaken for X86 executable files

 

Remember that his helps too with file-association, i.e. what app is used to open this type of file.

So by keeping it separate then double-clicking to launch will open your emulator and run the file.

Link to comment
Share on other sites

Disk Images: Common(ATR/ATX), Less Common(ATR.GZ/DCM/XFD/XFD.GZ/SCP/PRO)

Tape Images: Common(CAS), Less Common(HEX/WAV/OGG/FLAC)

Cart Images: Common(BIN/CAR), Less Common(ROM) (Also ROM is used for dumps of Firmware as well as Cart Images)

 

Binary executables: Common(XEX), Less Common (EXE/COM/OBJ (And any other extension you like))

 

There's also the wrinkle that COM files on SpartaDOS X are loaded differently than EXE files.

 

 

  • Like 1
Link to comment
Share on other sites

  • 6 months later...

Every now and then I start one of my ataris.. And always have the same problem. I can't remember anything 

I use the Ultimate Cart and an Atari 800. 

But I can't start the xex Files. Cart Files works fine. 

Was there a key combination to start those xex files? 

Thanks for your help

Link to comment
Share on other sites

23 minutes ago, drhoemmal said:

Every now and then I start one of my ataris.. And always have the same problem. I can't remember anything 

I use the Ultimate Cart and an Atari 800. 

But I can't start the xex Files. Cart Files works fine. 

Was there a key combination to start those xex files? 

Thanks for your help

 

No, I don't recall there being anything different about it at all. I have a carts folder and an xex folder on the SD card that I use with my Ultimate Cart. The xex files show up with a letter beside them just like the cart files do. I press the appropriate key for the program I want to load and it loads. Easy peasy lemony squeezey.

 

How old is your Ultimate Cart and have you ever upgraded the firmware? I know that xex capability wasn't there originally. It was added in a later revision of the firmware. If you have an older Ultimate Cart, you may not have that feature. That being said, I think I've had mine for about two years and it came with the most recent version of the firmware. I got mine from Marlin at The Brewing Academy. Where did you get yours?

 

 

Edited by bfollowell
Link to comment
Share on other sites

3 hours ago, Mazzspeed said:

I was always of the opinion that the .XEX was Atari's variant of a .EXE.

 

 

It pretty much is. I can't recall seeing it before sometime in maybe the early to mid-2000s, and it could've been later than that. It was just something common to name binary executable files that wouldn't get them mixed up with DOS/Windows executables. I mean, certainly Atari has EXE files, but they could also be called OBJ, COM, or pretty much anything else you wanted, but once people started using emulators or their PCs, or SIO2PC devices and the like and storing the files on their PCs, this just became a better way to differentiate.

 

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

  • 2 months later...

actually this was a problem for a time with windows... Atari EXE files with certain names couldn't be downloaded saved or copied around .... changing it to xex solved the issue... it stuck and became a way to differentiate over time... which is fine by me... but still kind of a stupid thing to have to do....

Link to comment
Share on other sites

  • 2 years later...

In theory, if the program doesn't touch the disk after loading, it should be possible to have an emulator do a checkpoint immediately after the last SIO completes (or after each one, overwriting each time), then convert the emulator save file into a XEX file.  I don't think tools exist for this, but it would be a clever hack to make them.

Link to comment
Share on other sites

2 hours ago, swlovinist said:

A question for experts, if a game is in a .atr file format, is there a way to convert it to run on an ultimate cart? 

Also, you may want to check if the game is already available in some other format (if you haven't already). Many games are available in multiple formats. Best places to check for executable versions is Homesoft, Fandal, and AtariOnline.pl.

 

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...