+JAC! Posted February 16, 2015 Share Posted February 16, 2015 While playing around with the ACTION! source code, I got annoyed to always pick the cartridge type manually when running the ".ROM" file. So I sat down and did what probaly many other's have also done somehow in their environment. http://www.wudsn.com/index.php/productions-atari800/tools/atarirommaker The purpose of the "Atari ROM Maker" is to convert plain ROM files (".bin", ".rom") into cartridge files (".car") within command line scripts. The resulting files will have the correct header and check sum. As a result they will be recognized correctly by emulators and you will not be prompted to choose the cartridge type every time. As opposed to the interactive conversion options offered in most emulators, the command line tool can be incorporated into your build process. This allows for a single build process that creates multiple target formats. For example you can create ".car" files for Atarimax Maxflash, SIC!, MegaCart, etc. with the same script. It is open source, written in pure Java and runs fine on Windows, Linux and Mac OS X. The download is available here. The sources are available here here. 5 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 16, 2015 Share Posted February 16, 2015 VERY handy. Thanks! Quote Link to comment Share on other sites More sharing options...
Shawn Jefferson Posted February 18, 2015 Share Posted February 18, 2015 Yes handy! I was always running Altirra via a batch file that sends the cartridge type on the command line. Now I can put this into the make process instead. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 22, 2015 Author Share Posted February 22, 2015 Small update: - cartridge type is now checked for being a valid/defined cartridge type - text output gives description of cartridge type, for example "15 - OSS two chip 16 KB (M091)" - size of input is checked against target size of cartridge type - errors are output to System.err instead of System.out to have proper highlighting - process exits with value 1 in case of errors, so you can handle inconsistencies in the build process Example: java -jar AtariROMMaker.har -load:out\ACTION-ROM-OSS-Original.rom -convertToCAR:15 -save:out\ACTION-ROM-OSS-Original.car -load:out\ACTION-ROM-OSS-16k.rom -convertToCAR:15 -save:out\ACTION-ROM-OSS-16k.car if ERRORLEVEL 1 goto :eof Quote Link to comment Share on other sites More sharing options...
+MrFish Posted February 22, 2015 Share Posted February 22, 2015 (edited) Nice utility Jac. Thanks for sharing. Not that it's a big deal or anything, but shouldn't you call it something like "Atari CAR Maker" or "ROM2CAR", since the end product is a CAR file rather than a ROM file? I know a CAR file is still essentially a ROM with some added info, but the name seems a little counter-intuitive to the process. Edited February 22, 2015 by MrFish Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 22, 2015 Author Share Posted February 22, 2015 (edited) In fact it's designed perform other operations with ROMs too in future, including conversion from XEX and CAR to ROM and checking/stamping check sums. That's why the command line syntax is in that form that I also used for The!Cart Studio (-command1:parameter -command2:parameter). Edited February 22, 2015 by JAC! 1 Quote Link to comment Share on other sites More sharing options...
+MrFish Posted February 22, 2015 Share Posted February 22, 2015 Ah, ok, that makes more sense then. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted August 28, 2016 Author Share Posted August 28, 2016 (it started with the small idea to display a popup with the help in case the .jar is clicked in the Explorer... it ended up being...) Update 2016-08-28 Atari ROM Maker has been updated with the following new features, inspired by the Easy ROM to CAR utility by electrotrains: Added Interactive GUI in Addition to the Command Line: Can convert ROM image files and complete folders into cartridge image files simply via Drag & Drop Platforms: Available as Windows application (*.exe), Mac OS X application (*.app) and Linux script (*.sh) Localisation: German translation included Simply drop one or more ROM image files or even folders on the window to start the conversion. Based on the file size, the possible cartridge types are computed. If there are multiple possibilities, you are prompted to select the correct cartridge type. The resulting cartridge image file is saved into the same folder as the original file but with the ".car" file extensions. If the source file is already a valid cartridge image file, no new file is created. If conversion is started for a folder, you are prompted if you want to process all sub-folders and files therein recursively. 9 Quote Link to comment Share on other sites More sharing options...
1NG Posted September 3, 2016 Share Posted September 3, 2016 Cool! I had the same problem with Altirra and the prompt. But I need to build a cart every time after compiling. And because the many data has to be placed at the right positions I needed to write my own program for that (A ROM Linker). If you have a command line version of the ROM Maker, then I could use that in the build chain and reduce my own tools. I could pass the type as a parameter (like in Altirra). Quote Link to comment Share on other sites More sharing options...
Rybags Posted September 3, 2016 Share Posted September 3, 2016 Most assemblers will allow generating raw object modules (rather than binary files with FF FF header, Init/Run sections etc). In theory you could provide the required Rom header bytes yourself which could eliminate the intermediate step. Then just ensure you make the program with the required full 8K/whatever size, though you need to do that the other way anyhow. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted September 3, 2016 Author Share Posted September 3, 2016 Cool! I had the same problem with Altirra and the prompt. But I need to build a cart every time after compiling. And because the many data has to be placed at the right positions I needed to write my own program for that (A ROM Linker). If you have a command line version of the ROM Maker, then I could use that in the build chain and reduce my own tools. I could pass the type as a parameter (like in Altirra). That is exactly what Atari ROM Maker was created for. Originally it was command line only. See the linked web site help. Now with the update the GUI was added as an option. Example from bulding my ACTION! project: REM First compile the original to ensure nothing is broken. call :run_mads ACTION-ROM-OSS-16k .rom fc /b %TARGET%\ACTION-ROM-OSS-16k.rom ref\rom\ACTION-36-ROM-OSS.rom fc /b %TARGET%\ACTION-ROM-OSS-16k.rom ref\rom\ACTION-36-ROM-OSS.rom | find "no differences">NUL if ERRORLEVEL 1 goto :eof :identical REM Now compile additional versions call :run_mads ACTION-ROM-Plain-16k .rom call :run_mads ACTION-XEX .xex REM Create CAR builds %ROM_MAKER% -load:ref\rom\ACTION-36-ROM-OSS.rom -convertToCAR:15 -save:%TARGET%\ACTION-36-ROM-OSS.car -load:%TARGET%\ACTION-ROM-OSS-16k.rom -convertToCAR:15 -save:%TARGET%\ACTION-ROM-OSS-16k.car -load:%TARGET%\ACTION-ROM-Plain-16k.rom -convertToCAR:2 -save:%TARGET%\ACTION-ROM-Plain-16k.car if ERRORLEVEL 1 goto :eof Most assemblers will allow generating raw object modules (rather than binary files with FF FF header, Init/Run sections etc). In theory you could provide the required Rom header bytes yourself which could eliminate the intermediate step. Then just ensure you make the program with the required full 8K/whatever size, though you need to do that the other way anyhow. Unfortunately you can't do that. That's why I have created the tool. The CRC checksum in the CAR file is build over the full plain ROM, i.e. it must be computed after the original compile and build process is completed. And Altirra (correctly) rejects CAR files with incorrect checksum. Quote Link to comment Share on other sites More sharing options...
Grevle Posted September 13, 2016 Share Posted September 13, 2016 (edited) Does this program work with Atari 5200 roms also ?. I want to convert some Atari 5200 roms to Car format. Is there som other tool for this also ? I just found out it can be used with 5200 roms. So nevermind the question.. Great Tool .. Thanks Edited September 13, 2016 by Grevle 1 Quote Link to comment Share on other sites More sharing options...
Keatah Posted November 2, 2016 Share Posted November 2, 2016 Where to report bug on Atari Rom Checker? Quote Link to comment Share on other sites More sharing options...
jum Posted November 3, 2016 Share Posted November 3, 2016 Does this program work with Atari 5200 roms also ?. I want to convert some Atari 5200 roms to Car format. Is there som other tool for this also ? I just found out it can be used with 5200 roms. So nevermind the question.. Great Tool .. Thanks Why exactly do you want the roms in CAR format? It's a very bad idea to "spoil" Atari 5200 roms by adding headers and other crap. - Many 5200 emulators expect unmodified rom/bin files of exactly 16k or 32k.. - If you want to write the rom to a flashcart or an EPROM, it expects 16k or 32k exactly. - If can't think of why you need a header on an A5200 rom. If you want extra "metadata" attached to a rom, use a database that links to the rom via its crc. I'm sure other people will have their own opinions, but they are wrong. Quote Link to comment Share on other sites More sharing options...
fujidude Posted November 3, 2016 Share Posted November 3, 2016 Why exactly do you want the roms in CAR format? It's a very bad idea to "spoil" Atari 5200 roms by adding headers and other crap. - Many 5200 emulators expect unmodified rom/bin files of exactly 16k or 32k.. - If you want to write the rom to a flashcart or an EPROM, it expects 16k or 32k exactly. - If can't think of why you need a header on an A5200 rom. If you want extra "metadata" attached to a rom, use a database that links to the rom via its crc. I'm sure other people will have their own opinions, but they are wrong. Surely you can see the advantage of the header which provides (useful/needed) information over a raw binary image? I think I understand your concern of proliferation of header added images; that it could be a road block for some who use emulators which need a raw image. In my opinion that's a valid concern, but where we likely differ is in how strong of a concern it is. I think the world is big enough for both a rom/bin/img version, and also a .car version. I think it's especially a low concern if those who make .car versions of the files also include the raw version along with it. So for me, the advantages outweigh the concerns. It's subjective; I'm neither right nor wrong, and neither are you. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted November 3, 2016 Author Share Posted November 3, 2016 Where to report bug on Atari Rom Checker? Here or via PM :-) Quote Link to comment Share on other sites More sharing options...
+JAC! Posted November 3, 2016 Author Share Posted November 3, 2016 Why exactly do you want the roms in CAR format? It's a very bad idea to "spoil" Atari 5200 roms by adding headers and other crap. - Many 5200 emulators expect unmodified rom/bin files of exactly 16k or 32k.. - If you want to write the rom to a flashcart or an EPROM, it expects 16k or 32k exactly. - If can't think of why you need a header on an A5200 rom. If you want extra "metadata" attached to a rom, use a database that links to the rom via its crc. I'm sure other people will have their own opinions, but they are wrong. Well, opinions are opinions and cannot be wrong by definition, they can only be different. And obviously you are missing the point of the tool. I consider the best 5200 emulator on the market is Altirra and it supports 7 different types of 16k ROMs, having a proper header is essential for developers. Otherwise I'd have to manually select the correct type every type manually, breaking the complete development cycle. And no, there are no entries and CRC database for all the new programs that I'm writing - they are new... And even if you hate .CAR so much as it appears to me, the tool is exactly what you want: It can also turn .CAR back into .ROM ... 3 Quote Link to comment Share on other sites More sharing options...
13Leader Posted February 28, 2020 Share Posted February 28, 2020 I love this! This would make a great plug-in for eclipse! A great addition to WUDWN IDE Quote Link to comment Share on other sites More sharing options...
+JAC! Posted May 1, 2022 Author Share Posted May 1, 2022 The Atari 800 emulator and Altirra 4.10 have added support for 5 new cartridge types: 71 for Atari 5200: Super Cart 64 KB 5200 cartridge (32K banks) 72 for Atari 5200: Super Cart 128 KB 5200 cartridge (32K banks) 73 for Atari 5200: Super Cart 256 KB 5200 cartridge (32K banks) 74 for Atari 520: Super Cart 512 KB 5200 cartridge (32K banks) 75 for Atari 800/XL/XE: Atarimax 1 MB Flash cartridge (new) Therefore I've also added support for these cartridge types to Atari ROM Maker and Atari ROM Checker. 1 4 Quote Link to comment Share on other sites More sharing options...
VinsCool Posted May 2, 2022 Share Posted May 2, 2022 I apologise for the dumb question, could this be used to assemble multiple .xex to several cartridge banks if desired? I just happened to be researching a bit for this stuff so seeing this thread being recently updated just got me enthusiastic, haha The reason I am asking is because I wanted to experiment with some stuff I am working on, but space quickly became an issue, so being able to build slices of binary data that could be switched when needed is becoming attractive, especially if this tool can build a cartridge image without too much troubles. Thank you, and sorry if I just misunderstood what was posted in this thread, I haven't yet looked at it due to being on my phone at the moment. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted May 5, 2022 Author Share Posted May 5, 2022 On 5/2/2022 at 5:12 PM, VinsCool said: I apologise for the dumb question, could this be used to assemble multiple .xex to several cartridge banks if desired? I just happened to be researching a bit for this stuff so seeing this thread being recently updated just got me enthusiastic, haha The reason I am asking is because I wanted to experiment with some stuff I am working on, but space quickly became an issue, so being able to build slices of binary data that could be switched when needed is becoming attractive, especially if this tool can build a cartridge image without too much troubles. This tools will create the required signature and header to turn a valid ROM file (e.g. 1 MB Atarimax) into a corresponding CAR file. This way the emulator knows the banking scheme and that the file is integer. Means: If you have solved your problem of creating the ROM, the tool will help ou run it. What do you mean by "multiple.xex to several banks"? And which type of cartdige are you aiming at? Creating a sequential XEX loader which loads from the ROM is fairly easy to do. Start with the first byte on the first bank and "stream" the next byte into the loader until your're done. Provided the XEXs themselves don't use the $A000-$BFFF area (at least not during loading). 1 Quote Link to comment Share on other sites More sharing options...
VinsCool Posted May 6, 2022 Share Posted May 6, 2022 Thank you very much for the response! I think I understand how this works now. I should be able to figure it out on my own later, with these informations in mind As for the cartridge type, I have no idea which one I should aim for the moment, but I will look at documentation before I attempt anything. That being said, I mainly asked out of curiosity, I am not yet ready to try any of this at the moment, so I appreciate you took the time to reply to me! 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.