Jump to content
Guy1

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

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?

Share this post


Link to post
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 1

Share this post


Link to post
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.

 

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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???

Share this post


Link to post
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.

 

 

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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

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.

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