User:Zzo38/Metadata INI: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 157: Line 157:


== Hardware ==
== Hardware ==
Specify what NES/Famicom hardware and hardware clone it is tested with. Emulators can also be specified, if you want to.
Specify what NES/Famicom hardware and hardware clone it is tested with.  
 
The values are:
The values are:
* <tt>Work</tt>: It works.
* <tt>Work</tt>: It works.
Line 167: Line 166:
The keys are (not limited to):
The keys are (not limited to):
* <tt>Nintendo</tt>: The official hardware from Nintendo. (It ought to work!)
* <tt>Nintendo</tt>: The official hardware from Nintendo. (It ought to work!)
== EmuTest ==
Same as the <tt>Hardware</tt> block, but for emulators. You can also specify version numbers in this block, separated by vertical bars.


== Tag ==
== Tag ==

Revision as of 20:07, 24 March 2013

You can have a INI file, with the .nes.ini (or .unif.ini or .fds.ini or .qdi.ini) extension, to describe preferred controllers and other information about a game other than what is in the ROM image file. Anything in the file not understood by whatever program is reading this file, should be ignored. Everything is optional (both for writing and for reading; different blocks may be meaningful for different programs that would use this information).

If numbers are expected in a value, they are normally decimal, and can be hexadecimal by 0x prefix.

(Note: For QDI format disk images, the INI file must correspond to the file for the bootable side.)

Blocks

Main

Title

The title of this game. This does not have to be the same as the title in a UNIF or mapper 768 ROM image file.

Author

The name of the author of this game.

URL

URL to access information of this game. Any URI scheme is allowed, but file:/// and LAN addresses is not recommended for files distributed on the internet.

Version

Game version number.

TV

Specify the TV mode supported, separated by vertical bars if there is more than one.

  • NTSC: NTSC Famicom or NTSC NES.
  • RGB: RGB Famicom.
  • PAL: PAL NES.
  • Dendy: Dendy PAL Famiclone.

License

Specify if the game is officially licensed.

  • Official means it is licensed by Nintendo.
  • Unofficial means that it is not licensed by Nintendo; for example, anything published by Tengen, Codemasters, or Color Dreams, or homebrew software.

CRC

Specify the CRC32 checksum. If it doesn't match, it is error.

Bootgod

The ID number for the game in bootgod database. Emulators should not use klugy hacks to work with specific games if the INI file exists and does not have the Bootgod entry specified.

Text

Absolute address into ROM image file of a null-terminatd text. It is not required for UNIF, although it is still allowed.

Controller

Players

Tells how many players. Can be 1, 2, 3, 4, or can be multiples separated by vertical bars.

Player1

Specify the device connected to the first NES controller port. You can have multiple values separated by vertical bars; it can also be blank entries meaning nothing is connected.

  • Standard: The standard controller of NES/Famicom.
  • DoubleFisted: The standard NES controller, rotated 90 degrees with the Control Pad at the top and A at the bottom like a Wii Remote.
  • Mouse: SNES mouse.
  • LightGun: Light gun.
  • Arkanoid: Arkanoid.
  • SuperNintendo: Super Nintendo standard controller.
  • SuperPakPak: Super PakPak analog controller.
  • VsSystem: VS System. Player 1 VS system controller must be specified in the player 2 slot and vice versa.
  • VsLightGun: VS System light gun. Player 1 VS system controller must be specified in the player 2 slot and vice versa.
  • PowerPad: Power Pad.
  • PowerPadA: Power Pad A side.
  • PowerPadB: Power Pad B side.
  • PowerPadDDR: Power Pad B side, rotated by 90 degrees so that the encoder is at the left.
  • StandardDDR: Dance mat which is using the protocol of the standard controller.

Player2

Specify the device connected to the second NES controller port. They are the same as Player1 devices, except for the following:

  • Standard: Does not include SELECT and START buttons.
  • StandardSelectStart: Does include SELECT and START buttons.
  • StandardMicrophone: Uses the microphone.

Player3

Used with four players adapters.

Player4

Used with four players adapters.

Expansion

Specify the device connected to the Famicom expansion port. (In case of some devices that work on Player2 or the expansion port, it can be specified either way.)

  • Keyboard: Famicom keyboard.
  • OekaKids: Oeka Kids tablet.
  • LightGun: Light gun.
  • KeyboardTape: Famicom keyboard and tape recorder.
  • FourPlayers: Four players game. The Player3 and Player4 fields specify the controller for player 3 and 4.
  • FamilyTrainer: Family Trainer.
  • FamilyTrainerA: Family Trainer A side.
  • FamilyTrainerB: Family Trainer B side.
  • FamilyTrainerDDR: Family Trainer DDR orientation.
  • ExciteBoxing: Exciting boxing.
  • Mahjong: Mahjong.
  • Stereovision: Famicom 3D glasses.

FourScore

Specifies if NES Four Score is used. Values can be No and Yes. You can have multiple values separated by vertical bars.

If it is set, the Player1, Player2, Player3, and Player4 indicate device connected to the adapter (such as Standard, DoubleFisted, or StandardDDR). Most devices won't work on the adapter; in such case it can only be used if it is not four players, even if the game can work work four players, too.

License

Name

Name of a software license.

FreeSoftware

The value can be No and Yes. Specify if it meets the Free Software definition (from FSF).

The definition is of the four freedoms, which is:

  • 0. The freedom to run this program for any purposes (including commercial use) (some actions (such as murder and theft) might be prohibited by law, but such purposes is not prohibited by the license).
  • 1. Freedom to study how the program works by examining the source-codes, and to modify it to perform different functions if you wish.
  • 2. Freedom to redistribute copies (including commercial use).
  • 3. Freedom to distribute modified copies (although there might be some restriction such as to require source-codes distributed too, require not using the same trademark, etc).

OpenSource

The value can be No and Yes. Specify if it meets the Open Source definition (from OSI).

Usually this value will be the same as the FreeSoftware value, but there are some exceptions.

PublicDomain

The value can be No and Yes. Specify if it is effectively public domain (e.g.: public domain, WTFPL, Unlicense, CC0).

Mapper

Information of mapper.

Name

Name of the mapper. You can have multiple values separated by vertical bars.

Number

The iNES mapper number, multiplied by sixteen, plus the submapper number. You can have multiple values separated by vertical bars. If used with NES 2.0 format ROM image files, at least one of the numbers listed here MUST be the same as in the ROM image file, if this line is used at all. In old iNES files, it is probably going to be the same, although in some cases it might not be (these cases are fixed by the NES 2.0 format).

Mirror

Set the mirroring. You can have multiple values separated by vertical bars.

  • H: Horizontal.
  • V: Vertical.
  • 1: One screen.
  • 4: Four screen.

RAM

Specify the amount of PRG RAM used in the cartridge, in bytes.

BusConflict

Specify if bus conflict is used. You can have multiple values separated by vertical bars.

  • No: Require not bus conflict.
  • Yes: Require bus conflict.

Audio

Use of expansion audio. Can be No and Yes.

Verilog

Version number of Verilog and/or extension of Verilog in use. You can have multiple values separated by vertical bars. This is only for use with mapper 768 submapper 1.

Switch

This block specifies the name and default settings of VS Unisystem switches. The names are given by Name0 to Name7, and the default value is given by Default0 to Default7 which have the values 0 and 1.

Emulator

Specify klugy features of specific emulators. The key is the name of the emulator; the value is not described here.

Dump

Hardware

Specify what NES/Famicom hardware and hardware clone it is tested with. The values are:

  • Work: It works.
  • NotWork: It doesn't works.
  • Partial: It works partially; probably it is good enough.
  • Untested: It is not tested.

The keys are (not limited to):

  • Nintendo: The official hardware from Nintendo. (It ought to work!)

EmuTest

Same as the Hardware block, but for emulators. You can also specify version numbers in this block, separated by vertical bars.

Tag

Miscellaneous metadata for use with search engines.

File

This block indicates what files are included, and what purpose of the files. The keys are the filename, and the values specify what they mean. You can have multiple values separated by vertical bars.

  • ROM: ROM image file; usually implied (so is not needed).
  • Documentation: Documentation in HTML, XHTML, DocBook, DVI, DjVu, PDF, PostScript, or PCL format.
  • DocumentationASCII: Documentation in plain ASCII text.
  • MetaFont: METAFONT file for fonts used in DVI.
  • SourceCode: Source codes.
  • Disk: A disk image.
  • Icon: Icons for use with iPhone, Android, etc.
  • License: License file (normally in plain ASCII text).
  • ADPCM: ADPCM waveform data for expansion audio.
  • Label60: Label for 60-pins cartridge.
  • Label72: Label for 72-pins cartridge.
  • Boxart: Box art.
  • BIOS: FDS BIOS ROM. (Normally there is no need to use this type even for FDS games, since the BIOS is not normally included with the disk image.)

Memory

Specify the memory mapping of the ROM and RAM for this game, for purpose of debugging, cheat codes, ROM hacks, etc. (TODO: need to specify details)

Example

(Note: This is a old example! The stuff above is correct; not necessarily as shown in this example!)

[Main]
Title="Famicom Hangman"
TV=NTSC|RGB ; NTSC and RGB both work (emphasis bits are not used)
License=Unofficial ; Not officially license by Nintendo

[Controller]
Players=1 ; Single player game
Player1= ; Player 1 controller is explicitly not used.
Expansion=Keyboard ; Using Famicom keyboard
Player2=|StandardMicrophone ; Player 2 controller is optional, and can use the microphone if available

[License]
Name="Public domain"
Watermark=No ; Copies are not watermarked
Copy=Allow
Modify=Allow
Commercial=Allow

[Mapper]
Mirror=H|V|1|4 ; Program doesn't care about nametablem mirroring
RAM=0 ; PRG RAM is not used (this line is redundant if the ROM image is NES 2.0)
BusConflict=No|Yes ; Program doesn't care if bus conflicts are used or not