User Tools

Site Tools


plugin

RomCenter plugin

Plugins are used by romcenter to calulate the file crc and size. Its main work is to recognize the rom format, skip header datas and process roms datas so that two roms of a same game in different format return only one size and crc.

Here is an example of three roms with different crc and different size:

With the standart plugin, the crc is calculated on the whole files, including the header.

Now, if we switch to a dedicated plugin (here, nes.dll), the nes format is understood (ffe, nes, unf) and the file appears to be the same game.

Using plugins, you only need to store one crc and one size in the datafile to recognize all formats.

Installation

Plugin is linked to a datafile. Most of the time, plugins must be use with 'pure' hash datafiles (datafiles produced from pure rom, with no header, not interleaved or swapped).

Plugin to use can be defined in the datafile header:

<datafile>
<header>
  <name>Nintendo Entertainment System</name>
  <description>Nes dat</description>
  <category></category>
  <version>20220810</version>
  <date>2011-08-10</date>
  <author>Eric Bole-Feysot</author>
  <homepage>Romcenter</homepage>
  <url>http://www.romcenter.com/</url>
  <comment>Test datafile</comment>
  <romcenter 
    rommode="unmerged" 
    biosmode="split" 
    samplemode="merged" 
    lockbiosmode="no"  
    lockrommode="yes" 
    locksamplemode="no" 
    plugin="nes.dll"/>
</header>

Here, when this datafile is loaded in romcenter, the nes.dll plugin will be used to calculate rom crc.

If no plugin is specified in a datafile, romcenter will attempt to detect some games and will propose to use a specific plugin. Accepting will produce better rom identification.

Plugin files (nes.dll here) should be located in romcenter/plugin folder.

Plugins development and updates

I have developed several plugins and release the source code on github: https://github.com/ebolefeysot/RomcenterPlugins

plugin.txt · Last modified: 2024/02/17 11:58 by romcenter

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki