Commit graph

8 commits

Author SHA1 Message Date
Miodrag Milanovic
6b580bfefd Added more validation of softlist and cleared errors found (no whatsnew) 2011-11-29 10:46:43 +00:00
Olivier Galibert
5f05a7243e http://images.cheezburger.com/completestore/2010/8/23/07ed5547-0285-4cbc-9d54-35fa2f15227f.jpg
I'm not interested in fucking up 144, so let's go back to a reasonable
state.  But we *will* do something sane for 145.
2011-11-10 16:43:07 +00:00
Olivier Galibert
66a7a12491 placeholders 2011-11-10 16:42:32 +00:00
Olivier Galibert
be2ada81fd http://www.flickr.com/photos/discoweasel/2851814771/ 2011-11-08 17:10:35 +00:00
Miodrag Milanovic
8449a9cbdc - Removing MD5 support in ROMLOAD_* [Oliver Stoneberg]
- Various core and tools memory leaks fixes [Oliver Stoneberg]
2011-07-31 15:46:18 +00:00
Fabio Priuli
382e3998b1 minor DTD change to have fully correct xml lists (the ROM_FILL correspondent concept was not compliant with the DTD). no whatsnew. 2011-03-27 07:08:31 +00:00
Fabio Priuli
f25b3a9b88 softlist.c: split the <info> field (added some time ago to handle compatibility requirements) into <info> and <sharedfeat>.
the former stays tied to the whole software entry, the latter gets inherited by each part. 

out of whatsnew 1: Arbee, this change finalizes the xml format once for all. feel free to create an apple II or ||gs list, if you are interested

out of whatsnew 2: 
A bunch of comments about this change: with the latest code, each software entry can store three different kind of 'extrainfo' strings. They are thought to be used in specific cases, so let me briefly explain the big picture behind them.

1. <feature> fields: these are well established in current lists. they belong to a <part> element (i.e. a specific cart or cd disc or floppy disk) and they can be used to store hardware details that belongs to that specific <part>. typically, we have used these to describe the pcb_type of a cart (e.g. the board type in NES carts or in AES carts, to remove the need of specific mappers), so that at loading time they can be checked and the emulation can be setup accordingly. However, some lists (e.g. snes.xml and, in a few months, nes.xml as well) use these more creatively, to e.g. document the exact chip locations on the pcb

examples
<feature name="pcb_type" value="MMC3C"/>
<feature name="u3" value="SRAM-64M"/>

----------
2. <sharedfeat> fields: these are listed in the main <software> entry, but get stored together with the <feature> of each part of this software. E.g. if your software entry consists of 9 floppies, these shared features will be inherited by *all* the disks. The typical usage for this is to list the compatibility requirements of the software entry, e.g. a PAL system, or the presence of an expansion card, or the presence of additional RAM. These compatibility settings have to be manually parsed in the loading code by the driver author, but it makes more sense to define them only once for each software entry than to copy and paste it for each <part> (and believe me, it makes a difference both in terms of avoiding redundant lines and in terms of time necessary to create the xml list itself, when you deal with hundreds of multidisk entries like in the forthcoming pc8801 floppy list). consider this as a shortcut for 1. when you have multidisk software.

examples
<sharedfeat name="compatibility" value="EUR-JPN"/>  (the value can be freely chosen by the driver author as long as he also add the correct values in the loading routine ;) )
<sharedfeat name="addon" value="DVC"/> (this can be of use in cdi titles which won't work without the DigitalVideoCard expansion)

----------
3. <info> fields: these belongs directly to the main <software> entry, like the <sharedfeat>, but they do get stored in the main software entry, not with the <part>. They should be used to store additional info which might be of use for frontends, but that are not strictly necessary for emulation (if you have to describe some fundamental hardware characteristic that has to be checked during emulation, then you should use <sharedfeat> not <info>). Possible examples include the name of the development team, or the serial number of the cart, etc but it's up to the list creator to decide what to use this for and if to use it at all

examples
<info name="developer" value="Treasure"/>
<info name="serial" value="NUS-NSMJ-JPN"/>

As already said, imho the format can now be considered finalized. I cannot really think of anything else that we might want to include in the format, without getting redundant. 

p.s. In fact, some small change is still required in the core to fully support the new fields (e.g. at the moment <info> are not loaded by the core), but the xml format won't be touched.
2011-03-27 00:11:42 +00:00
Fabio Priuli
2fc75fcd45 Fix for Haze's (or Kale's) lazyness ;P
This should be included in the release as well
2011-01-27 08:16:13 +00:00