Jump to content
IGNORED

VAPI ATX Format available ?


Kroah

Recommended Posts

I hope to release the full formal specs of the ATX format shortly. In the meantime, preliminary specifications are available, upon request, for developers that really need them.

 

but i couldn't find any information about the ATX format. And i'm soooo curious  ;)

 

If you are curious about general aspects (not a formal specification), then I would gladly answer any question in the subject.

 

I'll test this special version of MULE soon  :)

 

Well, there is nothing special about the VAPI version of MULE. It's just an image of the original disk. :)

 

AFAIK there is only one original version. So all cracks should be based on this same version, unless they were done from a beta or pre-release. I wouldn't expect any changes that could be relevant for your reverse engineering. The copy protection on MULE, as in almost all the other ECA titles, is an external wrapper. There is no copy protection embedded in the main code, as in Alternate Reality.

Link to comment
Share on other sites

  • 2 years later...

It'd be nice to see this spec get off the ground and released publically. Seems things have been slow lately. But if we as a community are going to rely on this format it really needs to be made public.

 

Seems like very so often someone asks about ATX and nothing new is heard.

Edited by Shannon
Link to comment
Share on other sites

  • 2 weeks later...

I must apologize because it is all my fault. Unfortunately I was too busy with real life for the past months, and all my Atari related projects were mostly freezed.

 

The initial reason for not releasing the specifications was because we gave priority to preservation. Preservation is more urgent, those old magnetic disks are so fragile and the sooner we image and preserve each disk the better. We considered that everything else, including opening the specs, could wait.

 

Before releasing the specs I wanted to introduce some cleanup, changes, enhancements, etc. As you could imagine, we learned a lot during the preservation process. There were many things that we didn’t consider when we designed the first specifications.

 

I do realize however that this is not fair at this point. Some people, like Macatari and his Mac port were waiting too much. So I am posting here some preliminary specifications right now.

 

Please note that I wasn't ready yet. This is not a formal definitive specification. I typed the attached file just a few minutes ago, there might even be mistakes. It is not comprehensive and 100% complete because that would take me some time (inspecting notes, sources, etc.). However it should be enough to make a basic usage of the VAPI images, and I wanted to do that right now. Feel free to ask and comments. I will update this post with correction, answers, additions, etc.

 

I'm also releasing the sources of the patched emulator. But I wanted to update it to the latest emulator version of Atari800WinPlus. Is it 4.0 the latest version?

AtxSpecsPrelim_01.zip

Link to comment
Share on other sites

4.0 is supposed to be the latest version but from what I understand most people prefer 3.1 anyways. Thank you for releasing this information. The people over on atari800 devlist looked like they were getting a little restless concerning this. We know your intentions were nothing less than the best for the community.

 

I don't think anyone will have any issues with updating the emulator as new needs and specifications come along. I'm certainly looking forward to updating atarixlbox to use .atx images! :)

Edited by Shannon
Link to comment
Share on other sites

4.0 is supposed to be the latest version but from what I understand most people prefer 3.1 anyways.

 

I see. Will check if would be possible to patch both, otherwise I'll cleanup and release the 3.1 patch. The only thing I missed in 3.1, is that there is a bug that prevents loading images in read-only (write-protected) mode. I understand this was fixed in 4.0

 

I also had an almost complete working Atari++ patch that I never released :(

 

I'm certainly looking forward to updating atarixlbox to use .atx images! :)

 

Ok, feel free to ask any question. I know that there is much more work to be done in the specs documentation.

 

Btw, are you part of the atari800 team? There are a few issues in the Atari800 core that breaks some VAPI images. I commented some of them to Fox some time ago. I don't know if they were fixed since. Fox, are you reading this?

Link to comment
Share on other sites

4.0 is supposed to be the latest version but from what I understand most people prefer 3.1 anyways.

 

I see. Will check if would be possible to patch both, otherwise I'll cleanup and release the 3.1 patch. The only thing I missed in 3.1, is that there is a bug that prevents loading images in read-only (write-protected) mode. I understand this was fixed in 4.0

 

I also had an almost complete working Atari++ patch that I never released :(

 

No problem. I actually use 4.0 myself. My guess woud be the .c files you modified have not changed that much anyways so it oughta be easy to compiles. I think the Atari++ guy was interested in the specs as well.

 

I'm certainly looking forward to updating atarixlbox to use .atx images! :)

 

Ok, feel free to ask any question. I know that there is much more work to be done in the specs documentation.

 

ok thanks. My apologies if the questions sound stupid. Disk copyright protection is not something I'm real familar with. The biggest hurdle with atarixlbox (xbox version of a800) is I wont be able to use the .dll file. Just glancing at the specs I'm guessing what you've covered so far deals with things like sectors,tracks, or cylinders that may have unusual sizes. As well as sectors that return unusual codes right? I thought timing was a big part of it as well.

 

 

Btw, are you part of the atari800 team? There are a few issues in the Atari800 core that breaks some VAPI images. I commented some of them to Fox some time ago. I don't know if they were fixed since. Fox, are you reading this?

 

Just part of the mailing list. I have not directly contributed anything to the project, although some of the stuff I did in atarixlbox probably could be used. I certainly do not consider myself very qualified, just lucky. :lol:

Link to comment
Share on other sites

ok thanks. My apologies if the questions sound stupid. Disk copyright protection is not something I'm real familar with. The biggest hurdle with atarixlbox (xbox version of a800) is I wont be able to use the .dll file. Just glancing at the specs I'm guessing what you've covered so far deals with things like sectors,tracks, or cylinders that may have unusual sizes. As well as sectors that return unusual codes right? I thought timing was a big part of it as well.

 

The timing is there. It is the "Sector position" field in the sector list. But I see I forgot to include the units. The unit is in 8 microseconds (one FM bit time) at nominal RPM.

 

I would recommend you to forget about accurate timing during your first tries, it is quite tricky. Just return the data and correct status and you can probably run many images (many protections don't depend on timing at all).

 

If you want, you can also use a small trick that will let you going on most protections based on double/duplicate sectors. The correct handling of these sectors is, of course, using accurate timing. But you can just remember which sector (from the double/duplicate ones) you returned your last time, and return the other (or next) one on the next read iteration.

 

Just another question. Is there any image you would recommend as a good test image for verifying the implication? Preferably one not real complicated. I'm sure some games have more protection than others.

 

Usually (but not always), the newer the release date, the more complicated the protection. Oldest releases are normally just bad sectors. Most Sierra releases have simple bad sectors and nothing more.

Link to comment
Share on other sites

Developer Kit for using VAPI.DLL.

 

 

VapiDevWin-x.zip includes:

 

VAPI.H: Defines the DLL API.

VAPI.LIB: Link to this library when using load-time linking. Not needed at all when using run-time linking.

VapiDev.html: Developer documentation. Currently rather incomplete. But the heavily commented sample provided should answer most if not all the questions.

 

 

VapiSkeleton.zip

 

This is a heavily commented, non-working, sample skeleton for a SIO2PC application using the library. It includes two modules, the actual skeleton and a vapiWrapper where all the interaction with the DLL is encapsulated.

 

It is not working mainly because there is no management at all of a serial port, and there is no user interface.

vapiSkeleton.zip

vapiDevWin_02.zip

Link to comment
Share on other sites

Well I can say I certainly appreciate it. I don't really think I'd be able to compile for the xbox without either writing something based on the specs or relying on source code for the .dll. At least from what I understand based on what other people have said. Plus I'm sure people from other non-windows systems will be happy to (mac, etc).

Link to comment
Share on other sites

Vapi patch for Atari800WinPlus 4.0 final.

 

The patch is not delivered in strict patch format. Instead all the modified files (they are just a few) are included complete. The core of the patch is, of course, in sio.c.

 

The patch is, in places, a bit of a dirty hack. The main reason (besides me being lazy) is that I tried to concentrate all the modifications in a single place.

 

All modifications related to Vapi are bracketed with conditional pre-processor macros. So they are very easy to spot and identify.

 

There is a minor modification not related to Vapi, but it's because I am using a different compiler version. It was done under conditional code comparing the compiler version, so the modification should be harmless for other versions.

 

Sorry for not providing a patch for Atari800WinPlus 3.1. I thought it was the version I was using before. But instead what I was using was actually an earlier beta of version 4.0. It shouldn't be too difficult to adapt the patch if somebody really wants.

 

Note that this wasn't tested as much as the old binary version (based on 4.0 beta).

a8wp4f_VapiPatch_01.zip

Edited by ijor
Link to comment
Share on other sites

If I get a chance I can give a go at compiling it under 4.0 (the official release). I already have all the code set-up and compilable on my main coding machine anyways. In fact I was gonna offer to do so to help expediate things since I know you are busy.

 

I can even send it to the atarimania guys as well if you wish.

 

Oh and again thanks.. :)

 

I'm sure the community (aka a800 team and authors of other emu's) will keep things up to date as new changes need to be made.

 

Update: Just glancing over the awinplus40 it looks like compiling should be pretty straightforward. Although I was thinking I've never had to add a .dll and .lib to a project. But I think I know what I need to do.

Edited by Shannon
Link to comment
Share on other sites

ok I was able to compile awinplus40 and everything appears to be in functioning order.

 

I tested a few images. Archon I, II, Apple Panic, and Spy vs Spy and everything loaded ok.

 

It was pretty easy but the latest a800 sio.c file (203?) has a few changes which will require a bit of work to get it to compile in a800 and a800win.

Edited by Shannon
Link to comment
Share on other sites

Vapi Patch for Atari++

 

Again, it is not in strict patch format, but includes all the modified files.

 

This is just for informational purposes. It links with a Linux Vapi library that is currently unreleased. I don't remember at exactly which working (or non-working) state it was. I believe it was fully working, but I'm not sure and I can't test it at this time.

AtariPp_Vapi_2.zip

Link to comment
Share on other sites

Regarding the Atari800 SIO patch:

 

Please be aware that the method used in the patch for emulating the disk timing is not the most accurate one. The problem is that the emulator implements Pokey Interrupts with a scanline granularity, it is not cycle accurate. This in turns limits the accuracy of the disk timing emulation. It is enough for most titles, but a few do break for this reason.

 

I am mentioning this in case somebody wants to make a cycle accurate Pokey Interrupt system. If you do, let me know and I'll try to describe how to better use the Vapi interface in that case.

 

The key point is that the critical timing is the one of the complete SIO transaction, from end to start. The timing of each individual step is not as critical. But it is not possible to accurately emulate this without a more precise emulation of the Pokey Interrupts. They don't have to be rock-solid cycle-accurate (at least not for the purposes of disk drive emulation), but they should better be close to cycle accurate.

 

Btw, the scanline granularity issue affects Atari++ as well.

Link to comment
Share on other sites

Vapi Patch for Atari++

 

Again, it is not in strict patch format, but includes all the modified files.

 

This is just for informational purposes. It links with a Linux Vapi library that is currently unreleased. I don't remember at exactly which working (or non-working) state it was. I believe it was fully working, but I'm not sure and I can't test it at this time.

 

Thanks... I've been using atari++ much more nowadays. Compatibility seems a little better. I've never gotten Astrochase to work on Atari800WinPlus or atari800. It always crashed on the intro animation. atari++ handles it fine. Now if only the .PRO format specs would be released or emulators patched to work with .PRO images (as sometimes, such as the past year, APE for me isn't an option). Then I can try and play around with the EA Cut&Paste .pro image posted on the forums here. I'm curious to see if I can file'ize it. I'm willing to bet it can be done, their other home office app "The Financial Cookbook" file'ized nice and loads just fine from a Real.DOS prompt.

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