Jump to content

Recommended Posts

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.

 

atarirommaker-large.gif

  • Like 5

Share this post


Link to post
Share on other sites

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
post-17404-0-80986800-1424608748_thumb.png

Share this post


Link to post
Share on other sites

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 by MrFish

Share this post


Link to post
Share on other sites

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 by JAC!
  • Like 1

Share this post


Link to post
Share on other sites

(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

atarirommaker-large-01.gif

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.

  • Like 9

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by Grevle
  • Like 1

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Where to report bug on Atari Rom Checker?

Here or via PM :-)

Share this post


Link to post
Share on other sites

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.

post-17404-0-47139300-1478216547_thumb.png

 

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

post-17404-0-33788300-1478216473_thumb.png

  • Like 2

Share this post


Link to post
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.

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