FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

openMSX XML · SabreTools/SabreTools Wiki · GitHub

openMSX XML

Matt Nadareski edited this page Jul 23, 2026 · 1 revision

openMSX XML Format

The openMSX XML format is unique to the openMSX emulator and contains many distinctions between items that are not available in other formats. These DATs tend to be used to catalog the available pieces of MSX software and have been tailor-made for this purpose.

Example

Below is an older, trimmed example taken from a real openMSX software database file.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE softwaredb SYSTEM "softwaredb1.dtd">
<softwaredb timestamp="1590601761">
<!-- Credits -->
<![CDATA[
The softwaredb.xml file contains information about rom mapper types

- Copyright 2003 Nicolas Beyaert (Initial Database)
- Copyright 2004-2013 BlueMSX Team
- Copyright 2005-2020 openMSX Team
- Generation MSXIDs by www.generation-msx.nl

- Thanks go out to:
- - Generation MSX/Sylvester for the incredible source of information
- p_gimeno and diedel for their help adding and valdiating ROM additions
- GDX for additional ROM info and validations and corrections


]]>
<software>
    <title>Flipper Slipper</title>
    <system>SVI</system>
    <company>Spectravideo</company>
    <year>1983</year>
    <country>UK</country>
        <dump><rom><hash>7acd00c9053fbf7f7d698485759d170a483b123d</hash><remark>SD-291C</remark></rom></dump>
</software>
<software>
    <title>Frantic Freddie</title>
    <system>SVI</system>
    <company>Spectravideo</company>
    <year>1983</year>
    <country>UK</country>
        <dump><rom><hash>60adadb294d5492dfe6ada4b0710c5c31ef3e69c</hash><remark>SD-232C</remark></rom></dump>
</software>
</softwarelist>
<!-- Roms in this XML file:5821 - Created on Wed May 27 2020 - 9:49:32 AKDT-->

Original Document Type Definition (DTD)

Implied by the header in the example, there is a DTD available directly from the openMSX GitHub. It has been mirrored here for convenience.

<!ELEMENT softwaredb (person*)>
<!ELEMENT software (title, genmsxid?, system, company,year,country,dump)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT genmsxid (#PCDATA)>
<!ELEMENT system (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT country (#PCDATA)>
<!ELEMENT dump (#PCDATA)>

Document Type Definition (DTD)

Notably, the official DTD appears to be missing a subset of elements. The DTD that SabreTools uses for parsing can be found here.

<!ELEMENT softwaredb (software*)>
    <!ATTLIST softwaredb timestamp #IMPLIED>
    <!ELEMENT software (title, genmsxid?, system, company, year, country, dump*)>
        <!ELEMENT title (#PCDATA)>
        <!ELEMENT genmsxid (#PCDATA)>
        <!ELEMENT system (#PCDATA)>
        <!ELEMENT company (#PCDATA)>
        <!ELEMENT year (#PCDATA)>
        <!ELEMENT country (#PCDATA)>
        <!ELEMENT dump (original?, rom?, megarom?, sccpluscart?)>
            <!ELEMENT original (#CDATA)>
                <!ATTLIST original value #IMPLIED>
            <!ELEMENT rom (start?, type?, hash?, remark?)>
                <!ELEMENT start (#CDATA)>
                <!ELEMENT type (#CDATA)>
                <!ELEMENT hash (#CDATA)>
                <!ELEMENT remark (#CDATA)>
            <!ELEMENT megarom (start?, type?, hash?, remark?)>
                <!ELEMENT start (#CDATA)>
                <!ELEMENT type (#CDATA)>
                <!ELEMENT hash (#CDATA)>
                <!ELEMENT remark (#CDATA)>
            <!ELEMENT sccpluscart (start?, type?, hash?, remark?)>
                <!ELEMENT start (#CDATA)>
                <!ELEMENT type (#CDATA)>
                <!ELEMENT hash (#CDATA)>
                <!ELEMENT remark (#CDATA)>

Wiki pages Pages 39

Clone this wiki locally


Back | FazBrowse Home | New Git URL