Jump to content
IGNORED

damaged atr?


eegad

Recommended Posts

I've just discovered an odd problem. Long ago, when the first emulators were coming about (mid-90s), I had the Rainbow 95 emulator. I actually remember spending one saturday afternoon uploading some diskcomm'd atari disk images (at 1200 baud!), and then downloading them on my pc to use with Rainbow. I also seem to recall having a utility that could convert .dcm files to .atr files, and doing that at some point. Well, I just went to use one of those old .atr files and found that they don't work with Altirra or Atari800WinPlus. They report the file as being "damaged" or an "unsupported format". But what's really odd is that if I fire up that old Rainbow emulator (which still seems to work okay in Win7), it WILL load those atr files just fine. Which makes me think that somewhere along the way the specs on the atr file format have changed???? What I can say for sure is that the .atr's that I've downloaded in more recent times are 92172 bytes (single density disks of course). But the old atr's that I converted myself way back when are all 92160 bytes. So obviously something is amiss. Anybody have a way for me to "fix" those old files so that Altirra will recognize and load them??? Obviously all the necessary data is there since Rainbow runs them fine....but something must be screwy with the header data or something.

Link to comment
Share on other sites

  • 2 months later...

I've just discovered an odd problem. Long ago, when the first emulators were coming about (mid-90s), I had the Rainbow 95 emulator. I actually remember spending one saturday afternoon uploading some diskcomm'd atari disk images (at 1200 baud!), and then downloading them on my pc to use with Rainbow. I also seem to recall having a utility that could convert .dcm files to .atr files, and doing that at some point. Well, I just went to use one of those old .atr files and found that they don't work with Altirra or Atari800WinPlus. They report the file as being "damaged" or an "unsupported format". But what's really odd is that if I fire up that old Rainbow emulator (which still seems to work okay in Win7), it WILL load those atr files just fine. Which makes me think that somewhere along the way the specs on the atr file format have changed???? What I can say for sure is that the .atr's that I've downloaded in more recent times are 92172 bytes (single density disks of course). But the old atr's that I converted myself way back when are all 92160 bytes. So obviously something is amiss. Anybody have a way for me to "fix" those old files so that Altirra will recognize and load them??? Obviously all the necessary data is there since Rainbow runs them fine....but something must be screwy with the header data or something.

 

If memory serves me correctly the Disk Communicator program had a habit of adding extraneous bytes at the end of the compressed disk files (.DCM). So when these files are converted to .ATR format, the .ATR header indicated that the file size is 92160 bytes (for single density disks) whereas the actual file size was larger. It is perhaps why some emulators don't load those .atr files.

 

For example I just discovered that AspeQt does an integrity check when loading a drive with an .atr. One file i tried recently (FTE's disk version of MAC/65) did not succesfuly load because of header size/actual size mismatch. I commented out the check routine and recompiled AspeQt and the file loaded with no problems and my 130XE was able to boot from it and able to run MAC/65 with no probs. I examined the .atr with an hex editor and seen that last 112 bytes were filled with 1A's and that exactly accounted for the size difference.

 

So my take on this is if an .atr file is actually larger than what the header indicates, the file can probably safely be mounted on a drive. However If the actual file size is smaller than the size indicated by the header value, then we may run into problems.

 

I am planning to implement that change in AspeQt, that way some of the unloadable .atr files would load and run.... what do you folks think about this?

Link to comment
Share on other sites

Fix the problem, not work around it... add the ability in AspeQt to work around the issue of a faulty header, not remove the header check...

 

as this will create the problem of two 'identical' atr's with the only difference being the bad data...

 

sloopy.

Link to comment
Share on other sites

Fix the problem, not work around it... add the ability in AspeQt to work around the issue of a faulty header, not remove the header check...

 

as this will create the problem of two 'identical' atr's with the only difference being the bad data...

 

sloopy.

 

Sorry, I wasn't too clear on how I implemented the fix. I did not remove the check, I added logic to complement it, so that files larger than the header value still load, but not the other way around (I mean files smaller than the header value will fail to load -- as is currently the case --)

 

Ray

Edited by atari8warez
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...