lbaeza Posted June 28, 2009 Share Posted June 28, 2009 (edited) 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 June 28, 2009 by lbaeza Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted June 28, 2009 Share Posted June 28, 2009 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). Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 28, 2009 Share Posted June 28, 2009 +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. Quote Link to comment Share on other sites More sharing options...
atariksi Posted June 28, 2009 Share Posted June 28, 2009 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? Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 28, 2009 Share Posted June 28, 2009 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. Quote Link to comment Share on other sites More sharing options...
atariksi Posted June 28, 2009 Share Posted June 28, 2009 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? Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 28, 2009 Share Posted June 28, 2009 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. Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted June 28, 2009 Share Posted June 28, 2009 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 Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 28, 2009 Share Posted June 28, 2009 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. Quote Link to comment Share on other sites More sharing options...
atariksi Posted June 28, 2009 Share Posted June 28, 2009 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. Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 28, 2009 Share Posted June 28, 2009 Here's an image with my old copy of Joust as a Binary load file. It's also got the init routine so it survives a Reset and still runs OK. If you just want the raw image, you can just dump it from RAM within the emulator. Games_Disk_2a.zip Quote Link to comment Share on other sites More sharing options...
lbaeza Posted June 29, 2009 Author Share Posted June 29, 2009 I also have a cart dumper I wrote - it uses a short Asm routine that does the actual dump. Hi Rybags Could you please share with us that dumper? Thanks! Quote Link to comment Share on other sites More sharing options...
Rybags Posted June 29, 2009 Share Posted June 29, 2009 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. 1 Quote Link to comment Share on other sites More sharing options...
Nukey Shay Posted June 29, 2009 Share Posted June 29, 2009 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). Quote Link to comment Share on other sites More sharing options...
lbaeza Posted July 7, 2009 Author Share Posted July 7, 2009 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 ! Quote Link to comment Share on other sites More sharing options...
Rybags Posted July 7, 2009 Share Posted July 7, 2009 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. Quote Link to comment Share on other sites More sharing options...
lbaeza Posted July 7, 2009 Author Share Posted July 7, 2009 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" Quote Link to comment Share on other sites More sharing options...
ndary Posted July 8, 2009 Share Posted July 8, 2009 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" 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 Quote Link to comment Share on other sites More sharing options...
lbaeza Posted July 8, 2009 Author Share Posted July 8, 2009 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 Quote Link to comment Share on other sites More sharing options...
ndary Posted July 9, 2009 Share Posted July 9, 2009 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 Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted July 9, 2009 Share Posted July 9, 2009 (edited) 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. 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 July 9, 2009 by rdea6 Quote Link to comment Share on other sites More sharing options...
mimo Posted July 9, 2009 Share Posted July 9, 2009 Thats Demon attackhttp://www.atarimania.com/detail_soft.php?MENU=8&VERSION_ID=1578 Quote Link to comment Share on other sites More sharing options...
lbaeza Posted July 9, 2009 Author Share Posted July 9, 2009 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. Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted July 9, 2009 Share Posted July 9, 2009 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' and the basic program CDU_Mystery8k_002.zip Some of this is just recognizing the proper formats and file lengths. Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted July 9, 2009 Share Posted July 9, 2009 And a small P.S. with Atari I would use a diskeditor and copy sectors to filename.ext. There are a lot of Disk Editors for Atari, but I don't remember any name right now. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.