Difference between revisions of "AppSignature"

From MSX Game Library

Line 1: Line 1:
 
This [[Build tool]] option allow to add an application signature to binary data (right after the header).
 
This [[Build tool]] option allow to add an application signature to binary data (right after the header).
The signature format is inspired by the meta-data that Konami used to identify its cartridges and add cross-game options.
+
 
 +
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:
 +
* <tt>AppCompany</tt>: 2 bytes for the creator/group/company code name ([[#Code name|must be reserved]]),
 +
* <tt>AppID</tt>: 2 bytes for the application number (the numbering of the applications is up to each creator).
  
 
<pre>//-- Add application signature to binary data (boolean)
 
<pre>//-- Add application signature to binary data (boolean)
Line 11: Line 18:
 
AppID = 0;
 
AppID = 0;
 
</pre>
 
</pre>
 
Application's signature is 4 bytes long and composed of:
 
* 2 bytes for the creator/group/company [[#Code name|code name]] (a 2-character string),
 
* 2 bytes for the application number (any value between 0 and 65535).
 
  
 
If 2-character string is recommended for creator code and integer for application number, in fact, both of those parameters can be any of:
 
If 2-character string is recommended for creator code and integer for application number, in fact, both of those parameters can be any of:
Line 20: Line 23:
 
* 16-bits decimal unsigned number (<tt>1234</tt> for example),
 
* 16-bits decimal unsigned number (<tt>1234</tt> for example),
 
* 16-bits hexadecimal number starting with <tt>0x</tt> (<tt>0x0750</tt> for example).
 
* 16-bits hexadecimal number starting with <tt>0x</tt> (<tt>0x0750</tt> for example).
 +
 +
You can also add extra data using [[AppExtra]] option. {{WIP}}
 +
 +
== Programming ==
 +
If <tt>AppSignature</tt> is set to TRUE in Build tool configuration, then <tt>APPSIGN</tt> is defined in your C program.
  
 
Application signature is put just after the binary header:
 
Application signature is put just after the binary header:
* At ROM start address +0010h,
+
* At ROM start address +0010h (should be 4010h or 8010h),
 
* At Basic binary start address +0007h (should be 8007h),
 
* At Basic binary start address +0007h (should be 8007h),
 
* At DOS binary start address +0002h (should be 0102h).
 
* At DOS binary start address +0002h (should be 0102h).
 
C label's <tt>g_AppSignature</tt> give the signature address.
 
C label's <tt>g_AppSignature</tt> give the signature address.
 
You can also add extra data using [[AppExtra]] option. {{WIP}}
 
  
 
== Code name ==
 
== Code name ==

Revision as of 01:58, 25 January 2023

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).

C label's g_AppSignature give the signature address.

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

Come on Discord to reserve your own name.

Code names are only definitively assigned when an application is published with this code.