New MESS ROM format

From Ninerpedia
Revision as of 02:28, 13 June 2015 by Stefan Haubenthal (talk | contribs) (Category)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

We are currently considering new formats for ROMS, which will allow - in the case of our TI - to pack all related ROM dumps in one file. But more important, we can add meta information, like telling the emulator to allocate RAM for module RAM, which banking scheme to use, and more.

The favored approach currently seems to be to declare the circuit board (PCB) of the module instead of the logic.

Current approach

<romset>
   Content: (sources, deploy, soft)
</romset>

Sources:

<sources>
   Content: (rom | chd | ram)*
</sources>

ROM, Comphunk, RAM:

<rom
    id = Name
    file = Name
    address = nonNegativeNumber : ""
    size = nonNegativeNumber : ""
    crc = Hex32 : ""
    sha1 = Hex160 : "" />

<chd
    id = Name
    file = Name
    md5 = Hex128 : "" 
    sha1 = Hex160 : "" />

<ram
    id = Name
    base = Name : DriverName
    address = nonNegativeNumber : ""
    size = nonNegativeNumber
    type = ( unbuffered | nvram ) : unbuffered />

Deploy:

<deploy>
   Content: (pcb | mount)*
</deploy>
<pcb 
    id = Name
    type = Name>
    Content: (Socket | Feature)*
</pcb>

   <socket
       number = nonNegativeNumber
       uses = Name />

   <feature
       name = Name>
       Content: (any)
   </feature>

<mount
    id = Name
    type = Name
    source = Name
    device = Name
    name = Name />

Softblock:

<software
    usedriver = (true | false ) : false >
    Content: (system*, item*)
</software>
<system
    driver = Name
    bios = Name
    default = ( true | false ) : false />

<item
    set = Name : ""
    name = Name : ""
    maker = Name : ""
    year = nonNegativeInteger : "" >
    Content: (pcb?, mount*)
</item>

   <pcb 
       ref = Name />

   <mount
       ref = Name />