Difference between revisions of "AppSignature"
From MSX Game Library
(→Definition) |
(→Programming) |
||
Line 36: | Line 36: | ||
Define an external variable as <tt>g_AppSignature</tt> if you need to access the data from your program. | Define an external variable as <tt>g_AppSignature</tt> if you need to access the data from your program. | ||
It can be defined in several ways depending on your needs. For example: | It can be defined in several ways depending on your needs. For example: | ||
− | <pre> | + | <pre>extern u16 g_AppSignature[2];</pre> |
− | extern u16 g_AppSignature[2] | ||
− | |||
Keep in mind than MSX store data as Less significant byte first (Little endian). | Keep in mind than MSX store data as Less significant byte first (Little endian). | ||
Revision as of 02:10, 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 (reserve yours!),
- 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 u16 g_AppSignature[2];
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.