Jump to content
IGNORED

Cart dumping question


lbaeza

Recommended Posts

Hi

 

I made a pass-thru cartridge based on Jindrich Kubec's design (see http://ataripal.googlepages.com/cartdump ). I tested my pass-thru cart using the Jindroush's "cartridge dumper utility". Turning on/off the RD4/RD5 switches enable/disable the ROMs areas, and these can be dumped into the CARTDUMP.ATR disk image.

However, I am not able to see the contents of the disk image. I try using the MakeATR utility, but it doesn't work. How can I extract my cartridge dump from this CARTDUMP.ATR disk image? Is this disk image protected?

 

Since I cannot extract my dump from the disk image, I made this little BASIC program as an alternate solution:

 

10 GRAPHICS 0:PRINT "BASIC CARTRIDGE DUMPER"
20 PRINT "SET RD4 SWITCH ON AND HIT RETURN TO CONTINUE":INPUT A$
30 PRINT "DUMPING $8000 to $9FFF ...":OPEN #1,8,0,"D1:ROM1.BIN"
40 FOR I=32768 TO 40959:PUT #1,PEEK(I):NEXT I
50 CLOSE #1:PRINT "$8000 to $9FFF...DUMPED! SEE D1:ROM1.BIN"
60 PRINT "DUMPING $8000 to $9FFF ...":OPEN #1,8,0,"D1:ROM2.BIN"
70 FOR I=40960 TO 49151:PUT #1,PEEK(I):NEXT I
80 CLOSE #1:PRINT "$8000 to $9FFF...DUMPED! SEE D1:ROM1.BIN"
90 PRINT "THE END"
999 END

 

I run this program, but I cannot get pass to line 20. After I set the RD4 swith to ON, the system freezes. This doesn't happen on Jindrich Kubec's utility. What am I missing here? Somewhere I read about disabling VBLANK, but that didn't work for me either...

 

Any help on this subject will be appreciated.

 

Regards

Edited by lbaeza
Link to comment
Share on other sites

Um...you can't run a Basic program when it's switched out. The Basic interpreter occupies cartridge memory.

 

Why reinvent the wheel? There's plenty of cart-dumping programs out there already (some which take the raw dump and turn it into a disk executable for you, too).

Link to comment
Share on other sites

+1 you'll never be able to run an inbuilt Basic program while a cart is inserted.

 

I also have a cart dumper I wrote - it uses a short Asm routine that does the actual dump.

 

You can also get away without needing to modify your machine or using a passthru device - you can insert a cart while the machine is running, although you need an Asm routine which disables the VBlank Stage 2 while that's happening.

 

Occasionally you'll hang the machine by doing so, solution is to just remove the cart, press Reset and try again.

Link to comment
Share on other sites

Um...you can't run a Basic program when it's switched out. The Basic interpreter occupies cartridge memory.

 

Why reinvent the wheel? There's plenty of cart-dumping programs out there already (some which take the raw dump and turn it into a disk executable for you, too).

 

What's link for software to convert ROM dump to boot disk?

Link to comment
Share on other sites

I generally just cracked the ROMs and had them as Binary Files.

 

Just put a generic header on front with some initilization code... since the E: gets opened when you press Reset, it overwrites $BC00-BFFF.

 

So, you just want to copy that down to $6C00 or wherever at Init time.

 

Set the DOSINI vector to your routine that copies that back, then does the relevant checks/jumps to run the cart.

Link to comment
Share on other sites

I generally just cracked the ROMs and had them as Binary Files.

 

Just put a generic header on front with some initilization code... since the E: gets opened when you press Reset, it overwrites $BC00-BFFF.

 

So, you just want to copy that down to $6C00 or wherever at Init time.

 

Set the DOSINI vector to your routine that copies that back, then does the relevant checks/jumps to run the cart.

 

Okay, I have this joust cartridge and a dump joust.rom with the following footer:

 

60h,00h,80h,00h,04h,F9h,BFh

 

If I upload this to 8000h...BFFFh RAM area (using boot disk header) and run at 8000h it crashes (before I hit any reset). So how would you get this to run as a boot disk?

Link to comment
Share on other sites

Simplest form boot header, I guess you could put at 9 bytes before $8000 for a 16K cart.

 

Boot always does a JSR to <Boot Addr + 6> so you could just put a JMP there that goes to the cart's INIT address.

You could use the INIT address of the disk boot as the RUN address of the cart.

 

Simplest form doesn't always work though... especially with Language carts or anything that needs E: - you'd have to set MEMTOP/RAMSIZ to lower values and reopen the screen.

 

The other consideration of course is that if you've just copied a real cartridge, that it's got the self-destruct code that most cart games had. If you need a cracked Joust copy, I've got one here.

Link to comment
Share on other sites

I didn't check to see if those vectors match...but perhaps the dump is crashing due to copy-protection? Most everything made after (and including) Pac-Man had routines in place to try to corrupt ROM addresses - if the program is running from ram (i.e. an unauthorized copy), the program crashes. The last cartridge that Atari produced without copy-protection was Rev.C Basic, I think. The way you'd get around such copy protection would be to find and remove the instructions that attempt it...or use a "dummy cartridge", "Pill", or similar method to fool the computer into treating RAM as ROM after the program has been loaded into memory.

 

BTW no need to save cartridge games as bootable disks (you'd be wasting quite a bit of floppy space). Just save them as binary executable files right from DOS. If you really want one to boot up off a disk, rename it to autorun.sys ;)

Link to comment
Share on other sites

In my experience, practically all game carts had code that overwrote the ROM address space.

 

It varies from simple loops that might zero out a couple of hundred bytes, to techniques that used indirection, often sharing code with the game itself so that if you removed the wrong part it wouldn't work properly.

Link to comment
Share on other sites

I didn't check to see if those vectors match...but perhaps the dump is crashing due to copy-protection? Most everything made after (and including) Pac-Man had routines in place to try to corrupt ROM addresses - if the program is running from ram (i.e. an unauthorized copy), the program crashes. The last cartridge that Atari produced without copy-protection was Rev.C Basic, I think. The way you'd get around such copy protection would be to find and remove the instructions that attempt it...or use a "dummy cartridge", "Pill", or similar method to fool the computer into treating RAM as ROM after the program has been loaded into memory.

 

BTW no need to save cartridge games as bootable disks (you'd be wasting quite a bit of floppy space). Just save them as binary executable files right from DOS. If you really want one to boot up off a disk, rename it to autorun.sys ;)

 

Looks like it may be overwriting itself then or not initializing properly. When it boots up, I get the Joust title screen and can select the players/skill level but once I press START, I get all this garbage showing up at the bottom and birds freeze.

 

Bootable disks don't have to be size of the disks. At least not for my case. I can upload a disk image 384 bytes (3 sectors) and it works fine.

Link to comment
Share on other sites

filecopy.zip

 

That's a BASIC + Asm file copying utility I wrote decades ago.

 

It's got a Copy Cartridge function - it will do generic non-banked 8 and 16K carts.

When you select the Copy Cart option, the screen should go green. Insert the cart, press a key, the screen should go red after about a second.

Then take the cart out and press another key.

 

You don't get 100% success, sometimes you'll hang the machine. In that case take the cart out, press Reset and run the program again.

You can save the cartridge image once copied, it will be a rudimentary Binary Load filetype that should load/run from DOS OK (without BASIC).

 

Remember that it only copies the ROM - you'd need to get in there and do the cracking part yourself, although there's probably cracked copies of all the cartridge games out there anyway.

  • Like 1
Link to comment
Share on other sites

I used to use Scanalyzer. It's a disk editor, disassembler, and cart dumper all-in-one.

 

But yeah...kinda pointless now. What doesn't exist as an uncracked binary almost always does as an uncracked disk file version (tho it's true that not all carts have been dumped).

Link to comment
Share on other sites

  • 2 weeks later...

Hy Rybags

 

Thanks for posting your program. I run it on my 800XL but I am not able to make it work properly, once I insert the cartridge the system freezes (blank screen). Was your program designed to run on an atari 800 computer only? Do you know of a BASIC dumping program that runs on XL machines?

 

Thanks !

Link to comment
Share on other sites

I wrote it on an 800XL.

Just can't remember the sequence... I'm pretty sure it's Insert Cart when it prompts you, press a key then wait for the screen to change colour (about 2 seconds).

Remove cart, press a different key.

 

Important thing is you need to press a different key once the cart's taken out because VBlanks are disabled and the key handler isn't working fully.

 

Other thing is that inserting a cart sometimes hangs the machine. In that case, pull it out, press Reset and run it again.

Link to comment
Share on other sites

Hi Rybags

 

Thanks for your quick reply. That's what I needed to know, I'll keep trying and once I get results I'll post the details here.

 

Thanks !

 

PS: The reason why I insist on dumping carts (although over 90% of the carts are already dumped) is because here in my country from time to time some local carts come to the surface, sometimes with local software that's nowhere available at the moment. Hence the need to dump those carts. And of course, to answer me the question "how did they dump a cart" :D

Link to comment
Share on other sites

Hi Rybags

 

Thanks for your quick reply. That's what I needed to know, I'll keep trying and once I get results I'll post the details here.

 

Thanks !

 

PS: The reason why I insist on dumping carts (although over 90% of the carts are already dumped) is because here in my country from time to time some local carts come to the surface, sometimes with local software that's nowhere available at the moment. Hence the need to dump those carts. And of course, to answer me the question "how did they dump a cart" :D

 

 

The data stored on the disk with the ""cartridge dumper utility" is raw data and not binary file.. i use a HEX editor to extract it to a .BIN file..

if you post the .ATR image you created i can tech you how to extract the file from it

Link to comment
Share on other sites

Hi Nir

 

Here are the ATR of the carts I have on hand at the moment. I have a mistery 8K cart that refuses to launch on my XL. Then there's a another 8K mistery cart, this one boots fine, I've been told this is some kind of utility cart. Finally I have another mistery cart (no label), but that happens to be a Millipede cart. I'm interested on dumping this one so I can check if there are any differences compared to the available dumps of that game.

 

Could you please tell me how do I get those dumps from the ATRs?

 

Thanks in advance.

CDU_Millipede.zip

CDU_Mystery8k_02.zip

CDU_Mystery8K_01.zip

Link to comment
Share on other sites

both mystery cart dumps are not full.. some data is missing in them.. are they 'bank-switchable' cartrdige.. is so you need to damp all banks and append them to one file..

 

Millipede dump was succsful.. and here is the extracted .ROM image..

if you use an HEX editor tool like the one from BPSOFT (http://www.bpsoft.com/) you can find the 16k rom image on the .ATR file from address 710(h) to 4F1F(h) cut and paste the date to a file..

 

CDU_Millipede.zip

Link to comment
Share on other sites

both mystery cart dumps are not full.. some data is missing in them.. are they 'bank-switchable' cartrdige.. is so you need to damp all banks and append them to one file..

 

Millipede dump was succsful.. and here is the extracted .ROM image..

if you use an HEX editor tool like the one from BPSOFT (http://www.bpsoft.com/) you can find the 16k rom image on the .ATR file from address 710(h) to 4F1F(h) cut and paste the date to a file..

 

CDU_Millipede.zip

 

I found in mystery 1 a rom, that when run in the emulator opening screen say's '1983 IMAGIC' 10 Levels in game.post-10165-1247130941_thumb.png

 

This is a 8k rom 'osb' 800 only cartridge, or with a translator.

CDU_Mystery8K_01.zip

 

The other mystery 2 was a Spanish language Math game coded in Basic. I don't know how you got it out of a cartridge, but may need another cartridge plugin right or left slot. Possibly a 800 or 'osb' only

 

Millipede looked like the standard millipede cartridge.. already posted above.

Edited by rdea6
Link to comment
Share on other sites

Millipede dump was succsful.. and here is the extracted .ROM image..

if you use an HEX editor tool like the one from BPSOFT (http://www.bpsoft.com/) you can find the 16k rom image on the .ATR file from address 710(h) to 4F1F(h) cut and paste the date to a file..

 

Hi

 

Thank you guys for your comments.

 

Nir, the Millipede rom you extracted from the ATR works fine on the emulator. I have one question though, about begin and end locations of the rom on the ATR. You said the rom starts at location 710(h) (that is 1808 decimal) and that rom ends at 4F1F(h) (that is 20255). If I substract 1808 to 20255, the result is 18447. If millipede is a 16K rom, I'd expect 16384 instead if 18447... maybe there was a typo on your post?

 

Rdea6, could you please describe how you took the rom from the mystery cart 2's ATR and post that rom?

 

Thanks in advance.

Link to comment
Share on other sites

Millipede dump was succsful.. and here is the extracted .ROM image..

if you use an HEX editor tool like the one from BPSOFT (http://www.bpsoft.com/) you can find the 16k rom image on the .ATR file from address 710(h) to 4F1F(h) cut and paste the date to a file..

 

Hi

 

Thank you guys for your comments.

 

Nir, the Millipede rom you extracted from the ATR works fine on the emulator. I have one question though, about begin and end locations of the rom on the ATR. You said the rom starts at location 710(h) (that is 1808 decimal) and that rom ends at 4F1F(h) (that is 20255). If I substract 1808 to 20255, the result is 18447. If millipede is a 16K rom, I'd expect 16384 instead if 18447... maybe there was a typo on your post?

 

Rdea6, could you please describe how you took the rom from the mystery cart 2's ATR and post that rom?

 

Thanks in advance.

 

 

With a hex editor like Nir. I just viewed the contents and recognized the starting at hex 0x.0810 the format was like a tokenized basic program. So I cut from there to the end of data and saved 'copy & pasted' to a new document, and saved the result as CDUM2.BAS and open with a program by Joyfulcoder called "memo pad" and then with the emulator 'ATARI BASIC'

post-10165-1247165412_thumb.png

 

post-10165-1247165449_thumb.png

 

and the basic program

 

CDU_Mystery8k_002.zip

 

Some of this is just recognizing the proper formats and file lengths.

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