MESS cartridge handling
For the MESS emulation of the TI-99 computer family we have two different cartridge handlings.
The RPK files are cartridges which contain the memory dumps as files and another file (layout.xml) which informs the emulation which file belongs to which part of memory. This was designed mainly by me at times where the user had to install the dumps at the proper locations himself.
RPK cartridges have to be installed by giving the path name of the file. That is, you would have to specify /home/michael/mess/carts/editor_assembler.rpk, just like a disk image file.
The ZIP files are a more recent format (and have become the standard MAME/MESS cartridge format) which merely differ from the RPK files by not including the XML file, but only the dump files. The layout is defined inside MAME/MESS. The file name is also defined in that file, so the name of the cartridge zip file must exactly match the name in the internal file.
Both formats have their pros and cons.
RPK
You can have several different instances of a cartridges. For example, you could have two different MiniMemories. Since the memory contents are stored in a file in the nvram folder and not in the RPK, you could modify the layout.xml of one cartridge and change the backup file name. That way, either cartridge has its own saved memory without overwriting one another. Also, you can easily change the cartridge contents, in particular when there are new releases. RXB is such a case. Also, not all RPK features have been included in the zip file handling, in particular we do not have NVRAM definitions, which are required by cartridges like MiniMemory or SuperSpace. Finally, the names for RPKs are completely free to choose, while the zip files must not have names longer than 8 characters plus ".zip". Yes, I complained about that one, with minor success (actually, none).
ZIP
The zip format is directly supported by the MAME core. In order to plug in a cartridge you have to specify the name of the cartridge, not the path name of the file. This may be more comfortable in many occasions (much less typing). For Editor/Assembler, the name is "editass". The good thing is that the MAME core can look up the cartridge in case you do not know the exact name, and it tries some fuzzy search:
./ti99 -cart edit "edit" approximately matches the following supported software items (best match first): * Software list "ti99_cart" (TI-99/4A cartridges) matches: editass Editor/Assembler edasseb Editor Assembler 1987 / Easy Debugger 2.1 speeched Speech Editor edupack Edu-Pack pertest Peripheral Diagnostic Module alienadd Alien Addition earlyrd Early Reading addseq Milliken Math Sequences - Addition perrecdi Personal Record Keeping (German/Italian) readadv Reading Adventures readflt Reading Flight readtrl Reading Trail centipd Centipede escape Escape blackhl Black Hole burgerbd Burger Builder FATALERROR: Device TI-99 cartridge load (edit) failed: File not found
One of the most important features of zip files are that you can verify the ROM contents. That is, the MAME core rejects cartridges that have modified contents, compared to the fingerprints inside the emulation. Of course, this is only an advantage from the conservation viewpoint; in case of "homebrew" software that is currently still being developed, some devs have proposed to be able to add the definitions as a separate XML file. Maybe I can convince them to use the RPK format for that. At least they seem to have understood my point that I do not plan to remove the RPK support now or in foreseeable future, since it does well what it is intended for.
(I confess that I use the zip format increasingly often if the cartridge is actually supported by the zip format ... just for the sake of less typing.)