AppSignature

From MSX Game Library

Revision as of 02:07, 25 January 2023 by Aoineko (talk | contribs) (Code name)

This Build tool option allow to add an application signature to binary data (right after the header).

The MSXgl signature format is directly inspired by the meta-data that Konami used to identify their cartridges and add cross-games options.

Definition

Application's signature is 4 bytes long and composed of:

  • AppCompany: 2 bytes for the creator/group/company code name (must be reserved),
  • AppID: 2 bytes for the application number (the numbering of the applications is up to each creator).
//-- Add application signature to binary data (boolean)
AppSignature = true;

//-- Application company (*). Can be 2 character string or 16-bits integer (0~65535)
AppCompany = "GL";

//-- Application ID. Can be 2 character string or 16-bits integer (0~65535)
AppID = 0;

If 2-character string is recommended for creator code and integer for application number, in fact, both of those parameters can be any of:

  • 2-character string ("MX", "a7" for example),
  • 16-bits decimal unsigned number (1234 for example),
  • 16-bits hexadecimal number starting with 0x (0x0750 for example).

You can also add extra data using AppExtra option. 🚧WIP

Programming

If AppSignature is set to TRUE in Build tool configuration, then APPSIGN is defined in your C program.

Application signature is put just after the binary header:

  • At ROM start address +0010h (should be 4010h or 8010h),
  • At Basic binary start address +0007h (should be 8007h),
  • At DOS binary start address +0002h (should be 0102h).

Define an external variable as g_AppSignature if you need to access the data from your program. It can be defined in several ways depending on your needs. For example:

extern u8 g_AppSignature[4];
extern u16 g_AppSignature[2];
extern u32 g_AppSignature;

Keep in mind than MSX store data as Less significant byte first (Little endian).

Code name

Some creator's code are already reserved:

Code Rel Creator's name
0x00?? Reserved
"AB" ✔️ Konami (Boxing and Football)
"CD" ✔️ Konami (many games)
"EF" ✔️ Konami (Pennant Race and Knightmare 3)
"JP" Johan de Punder
"GH" Reserved
"GL" ✔️ MSXgl (samples)
"PP" Pixel Phenix
"RC" Reserved
"TL" Tele-Line
"YZ" ✔️ Konami (Game Master 2)
"WD" Wim Dewijngaert
"XX" Reserved
0xFF?? Reserved

Note:

  • Come on Discord to reserve your own name.
  • Code names are only definitively assigned when an application is published with this code.