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   | + | |
| + | 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>  | ||
| − | |||
| − | |||
| − | |||
| − | |||
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.  | ||
| − | |||
| − | |||
== Code name ==  | == Code name ==  | ||
Revision as of 00: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.