If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Wonder Boy III: Monster Lair (Genesis)/Notes: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{notes|game=Wonderboy III: Monster Lair (Genesis)}} == Gfx format == == Sprites == == Tilemaps == == Palettes ==") |
|||
Line 2: | Line 2: | ||
== Gfx format == | == Gfx format == | ||
Gfx data (tiles) are organized by levels (0 to 11). Pointers to each level data are stored from 0x43000 to 0x4302c. Then, for each level, gfx are stored by chunk. | |||
For example, pointer to level 3 chunks is 0x432cc (read at 0x4300c). Then, at 0x432cc, there are pointers to 4 chunks : 0x00000000 (null chunk), 0x432e0, 0x43188, 0x433aa, 0x433aa. | |||
Each chunk is a list of 16 bytes entries, terminated by a 0000 : | |||
* 1 word: number of tiles - 1 | |||
* 1 long: pointer to actual data | |||
* 1 word: 1 if gfx uses color indices 0 to 7 (x = 0 in the following), -1 if gfx uses color indices 8 to 15 (x = 1 in the following). | |||
Actual tile data is stored in 3bpp interleaved format: | |||
* 1 byte: a7 a6 a5 a4 a3 a2 a1 a0 | |||
* 1 byte: b7 b6 b5 b4 b3 b2 b1 b0 | |||
* 1 byte: c7 c6 c5 c4 c3 c2 c1 c0 | |||
gives : | |||
* 1 byte (2 pixels): (x a7 b7 c7) (x a6 b6 c6) | |||
* 1 byte (2 pixels): (x a5 b5 c5) (x a4 b4 c4) | |||
* 1 byte (2 pixels): (x a3 b3 c3) (x a2 b2 c2) | |||
* 1 byte (2 pixels): (x a1 b1 c1) (x a0 b0 c0) | |||
{| class="wikitable" style="margin:auto" | |||
!||Chunk 0||Chunk 1||Chunk 2||Chunk 3||Chunk 4||Chunk 5 | |||
|- | |||
| Level 0 | |||
| 0x4303e | |||
| 0x43060 | |||
| 0x43092 | |||
| | |||
| | |||
| | |||
|- | |||
| Level 1 | |||
| 0x430d6 | |||
| 0x43188 | |||
| 0x43192 | |||
| 0x43192 | |||
| | |||
| | |||
|- | |||
| Level 2 | |||
| 00000000 | |||
| 0x431e0 | |||
| 0x43188 | |||
| 0x4328a | |||
| 0x4328a | |||
| | |||
|- | |||
| Level 3 | |||
| 00000000 | |||
| 0x432e0 | |||
| 0x43188 | |||
| 0x433aa | |||
| 0x433aa | |||
| | |||
|- | |||
| Level 4 | |||
| 00000000 | |||
| 0x433fc | |||
| 0x4347e | |||
| 0x43188 | |||
| 0x43188 | |||
| 0x434a8 | |||
|- | |||
| Level 5 | |||
| 00000000 | |||
| 0x434f6 | |||
| 0x43188 | |||
| 0x43598 | |||
| 0x43598 | |||
| | |||
|- | |||
| Level 6 | |||
| 00000000 | |||
| 0x435e6 | |||
| 0x43188 | |||
| 0x43698 | |||
| 0x43698 | |||
| | |||
|- | |||
| Level 7 | |||
| 00000000 | |||
| 0x436e6 | |||
| 0x43188 | |||
| 0x43790 | |||
| 0x43790 | |||
| | |||
|- | |||
| Level 8 | |||
| 00000000 | |||
| 0x437ee | |||
| 0x43188 | |||
| 0x438c0 | |||
| 0x438c0 | |||
| | |||
|- | |||
| Level 9 | |||
| 00000000 | |||
| 0x43916 | |||
| 0x439a8 | |||
| 0x439b2 | |||
| 0x439b2 | |||
| | |||
|- | |||
| Level 10 | |||
| 00000000 | |||
| 0x439fe | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| Level 11 | |||
| 0x43034 | |||
| | |||
| | |||
| | |||
| | |||
| | |||
|} | |||
|} | |||
== Sprites == | == Sprites == |
Revision as of 22:36, 4 March 2024
The following article is a Notes Page for Wonder Boy III: Monster Lair (Genesis).
Gfx format
Gfx data (tiles) are organized by levels (0 to 11). Pointers to each level data are stored from 0x43000 to 0x4302c. Then, for each level, gfx are stored by chunk.
For example, pointer to level 3 chunks is 0x432cc (read at 0x4300c). Then, at 0x432cc, there are pointers to 4 chunks : 0x00000000 (null chunk), 0x432e0, 0x43188, 0x433aa, 0x433aa.
Each chunk is a list of 16 bytes entries, terminated by a 0000 :
- 1 word: number of tiles - 1
- 1 long: pointer to actual data
- 1 word: 1 if gfx uses color indices 0 to 7 (x = 0 in the following), -1 if gfx uses color indices 8 to 15 (x = 1 in the following).
Actual tile data is stored in 3bpp interleaved format:
- 1 byte: a7 a6 a5 a4 a3 a2 a1 a0
- 1 byte: b7 b6 b5 b4 b3 b2 b1 b0
- 1 byte: c7 c6 c5 c4 c3 c2 c1 c0
gives :
- 1 byte (2 pixels): (x a7 b7 c7) (x a6 b6 c6)
- 1 byte (2 pixels): (x a5 b5 c5) (x a4 b4 c4)
- 1 byte (2 pixels): (x a3 b3 c3) (x a2 b2 c2)
- 1 byte (2 pixels): (x a1 b1 c1) (x a0 b0 c0)
Chunk 0 | Chunk 1 | Chunk 2 | Chunk 3 | Chunk 4 | Chunk 5 | |
---|---|---|---|---|---|---|
Level 0 | 0x4303e | 0x43060 | 0x43092 | |||
Level 1 | 0x430d6 | 0x43188 | 0x43192 | 0x43192 | ||
Level 2 | 00000000 | 0x431e0 | 0x43188 | 0x4328a | 0x4328a | |
Level 3 | 00000000 | 0x432e0 | 0x43188 | 0x433aa | 0x433aa | |
Level 4 | 00000000 | 0x433fc | 0x4347e | 0x43188 | 0x43188 | 0x434a8 |
Level 5 | 00000000 | 0x434f6 | 0x43188 | 0x43598 | 0x43598 | |
Level 6 | 00000000 | 0x435e6 | 0x43188 | 0x43698 | 0x43698 | |
Level 7 | 00000000 | 0x436e6 | 0x43188 | 0x43790 | 0x43790 | |
Level 8 | 00000000 | 0x437ee | 0x43188 | 0x438c0 | 0x438c0 | |
Level 9 | 00000000 | 0x43916 | 0x439a8 | 0x439b2 | 0x439b2 | |
Level 10 | 00000000 | 0x439fe | ||||
Level 11 | 0x43034 |
|}