Logo file: Difference between revisions
No edit summary |
No edit summary |
||
Line 19: | Line 19: | ||
(known values: $0000, $0001, $0003) | (known values: $0000, $0001, $0003) | ||
The 8 low bits are stored to | The 8 low bits are stored to $11C817 by the bios. | ||
*Bit 0 - If set do not draw the internal 'NOW LOADING please wait' graphic (see picture top right). | *Bit 0 - If set do not draw the internal 'NOW LOADING please wait' graphic (see picture top right). | ||
Line 84: | Line 84: | ||
==Using LOGO files for in-game loading== | ==Using LOGO files for in-game loading== | ||
By default the bios will always use the initial LOGO file during in game loading sequences. It is possible to change this by loading a new data over the logo information at | By default the bios will always use the initial LOGO file during in game loading sequences. It is possible to change this by loading a new data over the logo information at $120000. How this gets loaded is not yet confirmed but its suspected that games request the data to be loaded as it would any other data given there is not need for 'LOGO' to be in the file name in this situation. It may also be possible the bios looks out for data being loaded into this region before drawing. | ||
The ability to change the default progress bar (handled by the bios) is also available. The bios places the start address of its code to handle progress bar drawing at | The ability to change the default progress bar (handled by the bios) is also available. The bios places the start address of its code to handle progress bar drawing at $11C80C. This code is then always called via 'MOVEA.L 0x11C80C,A0', 'JSR(A0)'. To use a custom progress bar simply place the start address of your custom progress bar code at $11C80C. Current progress bar state is held at address $10F691. Your code should handle all elements of drawing the progress bar. | ||
It appears games plant their custom progress bar code into the default LOGO file as well as any further files that get loaded to this range. Below is the routine used by Samurai Shodown IV. | It appears games plant their custom progress bar code into the default LOGO file as well as any further files that get loaded to this range. Below is the routine used by Samurai Shodown IV as seen in file 'JL_ST1.PRG' once in RAM. The main game program code places 0x120086 to $11C80C | ||
<syntaxhighlight> | |||
120086 4EF9 0012 4AD0 JMP 0x124AD0 | |||
</syntaxhighlight> | |||
<syntaxhighlight> | |||
124AD0 4DF9 003C 0000 LEA 0x3C0000,A6 | |||
124AD6 41F9 0012 4B00 LEA 0x124B00,A0 | |||
124ADC 1239 0010 F691 MOVE.B 0x10F691,D1 | |||
124AE2 0241 00F0 ANDI.W #0xF0,D1 | |||
124AE6 D0C1 ADDA.W D1,A0 | |||
124AE8 203C 719B A200 MOVE.L #0x719BA200,D0 | |||
124AEE 7E0F MOVEQ #0xF,D7 | |||
124AF0 1018 MOVE.B (A0)+,D0 | |||
124AF2 2C80 MOVE.L D0,(A6) | |||
124AF4 0680 0020 0000 ADDI.L #0x200000,D0 | |||
124AFA 51CF FFF4 DBF D7,*-0xA [0xC00422] | |||
124AFE 4E75 RTS | |||
</syntaxhighlight> | |||
[[Category:CD systems]] | [[Category:CD systems]] |
Revision as of 18:27, 9 January 2014
Optional structured files consisting of an index, fix and palette data for CD loading animations.
The BIOS loads these files after checking the IPL file if they are present at the CD's root, at address 0x120000 according to the console's nationality: LOGO_E.PRG, LOGO_U.PRG, or LOGO_J.PRG.
File format
Address | Size | Description |
0 | Word | Data type
(known values: $0000, $0001, $0003) The 8 low bits are stored to $11C817 by the bios.
No other bits seem to be checked by the bios. The above is true on the first IPL load only. Some games have different in-game loading graphics that do not follow the above. More information is needed on how these work (SAMSHO4 for example). |
0+2 | Longword | Data type
|
2+4 | Longword | Absolute data start address (Starting from $120000) |
... | ||
2+* | Longword | $FFFFFFFF terminator |
Fix tiles data
- Offset (longword) $4000 = tile $200
- Size (longword) $4000 = $200 tiles
- Tile data...
Like the regular fix graphics format, but byteswapped.
Palette data
- Palette number (word), the loading bar seems to use palette 0, so don't use it. Remember that fix tiles can only use the 16 first palettes.
- 16 words of color data.
Map data
- Fix address where to start mapping ($7102 is good)
- Width in tiles (word) $18
- Height in tiles (word) $0B
- Tile numbers/palettes...
Mapped left to right, top to down.
Animation map data
- Fix address where to start mapping ($7102 is good)
- Width in tiles (word)
- Height in tiles (word)
- Number of frames in animation
- Animation speed (in frames)
- Tile numbers/palettes...
Using LOGO files for in-game loading
By default the bios will always use the initial LOGO file during in game loading sequences. It is possible to change this by loading a new data over the logo information at $120000. How this gets loaded is not yet confirmed but its suspected that games request the data to be loaded as it would any other data given there is not need for 'LOGO' to be in the file name in this situation. It may also be possible the bios looks out for data being loaded into this region before drawing.
The ability to change the default progress bar (handled by the bios) is also available. The bios places the start address of its code to handle progress bar drawing at $11C80C. This code is then always called via 'MOVEA.L 0x11C80C,A0', 'JSR(A0)'. To use a custom progress bar simply place the start address of your custom progress bar code at $11C80C. Current progress bar state is held at address $10F691. Your code should handle all elements of drawing the progress bar.
It appears games plant their custom progress bar code into the default LOGO file as well as any further files that get loaded to this range. Below is the routine used by Samurai Shodown IV as seen in file 'JL_ST1.PRG' once in RAM. The main game program code places 0x120086 to $11C80C
120086 4EF9 0012 4AD0 JMP 0x124AD0
124AD0 4DF9 003C 0000 LEA 0x3C0000,A6
124AD6 41F9 0012 4B00 LEA 0x124B00,A0
124ADC 1239 0010 F691 MOVE.B 0x10F691,D1
124AE2 0241 00F0 ANDI.W #0xF0,D1
124AE6 D0C1 ADDA.W D1,A0
124AE8 203C 719B A200 MOVE.L #0x719BA200,D0
124AEE 7E0F MOVEQ #0xF,D7
124AF0 1018 MOVE.B (A0)+,D0
124AF2 2C80 MOVE.L D0,(A6)
124AF4 0680 0020 0000 ADDI.L #0x200000,D0
124AFA 51CF FFF4 DBF D7,*-0xA [0xC00422]
124AFE 4E75 RTS