![]() |
Data |
| Prev: A4B0 | Up: Map | Next: A69C |
|
239 addresses, two bytes each, indexed by sprite number less one, running from SPRITE_TABLE up to the graphics. The graphics themselves start immediately after it.
It is three tables end to end, which is why the count is 239. The first 161 entries, up to FURNITURE_SPRITES, are the creatures and objects -- two bytes wide, one byte of row count. The next 39, from FURNITURE_SPRITES, are the pieces the rooms are furnished with, which carry a width as well. The last 39, from FURNITURE_COLOURS, are not pictures at all: they are those same pieces' attribute tables, one colour per character cell in the same width-and-height format.
Entry N of the third table belongs to entry N of the second, which is how one picture serves four doors: $A9 to $AC all point at the graphic at GFX_A9 and differ only in their colours -- $43 $42 for red, $44 green, $45 cyan, $46 yellow. The three bases the code uses, SPRITE_TABLE, FURNITURE_SPRITES and FURNITURE_COLOURS, are not a bias trick after all; they are simply where each table starts.
The count is measured rather than assumed: every code was drawn on a machine of its own with its reads logged, and 239 is the highest whose entry points at something the drawing code can read. Entries beyond that hold values like $1804 and $33F8, which are not addresses in this game at all.
FETCH_SPRITE and FETCH_SPRITE_ATTRS were read here as biased views of a single table, on the grounds that FURNITURE_SPRITES is its 161st entry and FURNITURE_COLOURS its 200th. That is arithmetically true and the wrong way round: they are separate tables, and the arithmetic works because they follow each other.
|
||||
| SPRITE_TABLE | A4BE | DEFW GFX_01,$AE31,$AE56,$AE31 | ||
| A4C6 | DEFW GFX_05,$AEA0,$AEC5,$AEA0 | |||
| A4CE | DEFW GFX_09,$ADC2,$ADE7,$ADC2 | |||
| A4D6 | DEFW GFX_0D,$AD53,$AD78,$AD53 | |||
| A4DE | DEFW GFX_11,$B8A5,$B8CE,$B8A5 | |||
| A4E6 | DEFW GFX_15,$B920,$B949,$B920 | |||
| A4EE | DEFW GFX_19,$B82A,$B853,$B82A | |||
| A4F6 | DEFW GFX_1D,$B7AF,$B7D8,$B7AF | |||
| A4FE | DEFW GFX_21,$B639,$B65E,$B639 | |||
| A506 | DEFW GFX_25,$B6A8,$B6CD,$B6A8 | |||
| A50E | DEFW GFX_29,$B5CA,$B5EF,$B5CA | |||
| A516 | DEFW GFX_2D,$B55B,$B580,$B55B | |||
| A51E | DEFW GFX_31,$BBDC,$BC05,$BB60 | |||
| A526 | DEFW GFX_35,GFX_35,$BBBD,$BA16 | |||
| A52E | DEFW GFX_39,$B9E2,$B98B,$B9A6 | |||
| A536 | DEFW GFX_3D,$B972,$BA37,$BA58 | |||
| A53E | DEFW GFX_41,$BA9A,$BABB,$BADC | |||
| A546 | DEFW GFX_45,$BB1E,$BB3F,$BC2E | |||
| A54E | DEFW GFX_49,$BC70,$BC9F,$BD30 | |||
| A556 | DEFW GFX_4D,$D2C0,$D2D7,$C124 | |||
| A55E | DEFW GFX_51,$C1CB,$C1F4,$C219 | |||
| A566 | DEFW GFX_55,$B019,$AF6C,$C23A | |||
| A56E | DEFW GFX_59,$C26E,$C28D,$C310 | |||
| A576 | DEFW GFX_5D,$C34A,$C36B,$C38C | |||
| A57E | DEFW GFX_61,$C3B6,$C3DF,$AEEA | |||
| A586 | DEFW NO_GRAPHIC,NO_GRAPHIC,NO_GRAPHIC,$C408 | |||
| A58E | DEFW GFX_69,$C44A,$C46F,$C5F8 | |||
| A596 | DEFW GFX_6D,$C62A,$C649,$CB46 | |||
| A59E | DEFW GFX_71,$CBA8,GFX_71,$CBD9 | |||
| A5A6 | DEFW GFX_75,$CC3B,GFX_75,$CC6C | |||
| A5AE | DEFW GFX_79,$CCCE,GFX_79,$CCFF | |||
| A5B6 | DEFW GFX_7D,$CD61,GFX_7D,$AF0D | |||
| A5BE | DEFW GFX_81,$AF43,$C16E,$AF95 | |||
| A5C6 | DEFW GFX_85,$AFD7,$C18F,$C14D | |||
| A5CE | DEFW GFX_89,$CDBD,$D29F,$D1D5 | |||
| A5D6 | DEFW GFX_8D,$D20B,$CD92,$CE01 | |||
| A5DE | DEFW GFX_91,$CE5B,$CE88,$CEB5 | |||
| A5E6 | DEFW GFX_95,$CF03,$CF2A,$CF51 | |||
| A5EE | DEFW GFX_99,$CF93,$CFAE,$D3D3 | |||
| A5F6 | DEFW GFX_9D,$D435,GFX_9D,$AEEA | |||
| A5FE | DEFW GFX_A1 | |||
| FURNITURE_SPRITES | A600 | DEFW GFX_A2,$A76E,$B3EA,$AEEA | ||
| A608 | DEFW NO_GRAPHIC,NO_GRAPHIC,NO_GRAPHIC,$A69C | |||
| A610 | DEFW GFX_A9,GFX_A9,GFX_A9,$C2AE | |||
| A618 | DEFW GFX_AD,GFX_AD,GFX_AD,$B6F2 | |||
| A620 | DEFW GFX_B2,$A7EC,$C542 | |||
| ROAST_SPRITE | A626 | DEFW GFX_B5 | The roast chicken's entry, which DRAW_FOOD moves on past the rows eaten | |
| A628 | DEFW GFX_B6,$C6AC,$C6CE,$C7F2 | |||
| A630 | DEFW GFX_BA,$CFD5,$C874,$C9CA | |||
| A638 | DEFW GFX_BE,$CA0E,$AEEA,$CA82 | |||
| A640 | DEFW GFX_A3,$CAE4,$BCCE,$D069 | |||
| A648 | DEFW GFX_C6,$D2EE,$D466 | |||
| FURNITURE_COLOURS | A64E | DEFW ATTRS_C9,$A7D0,$B4AC,$AEEA | ||
| A656 | DEFW NO_GRAPHIC,NO_GRAPHIC,NO_GRAPHIC,$A6FE | |||
| A65E | DEFW ATTRS_D1,$A71A,$A728,$A736 | |||
| A666 | DEFW ATTRS_D5,$A752,$A760,$B774 | |||
| A66E | DEFW ATTRS_D9,$A846,$AEEA,$AEEA | |||
| A676 | DEFW ATTRS_DD,$C96A,$C970,$C998 | |||
| A67E | DEFW ATTRS_E1,$D057,$C9AA,$CA50 | |||
| A686 | DEFW ATTRS_E5,$CA5C,$AEEA,$CA74 | |||
| A68E | DEFW ATTRS_CA,$CA66,$A7DE,$D1AB | |||
| A696 | DEFW ATTRS_ED,$D3B8,$D4EF | |||
| Prev: A4B0 | Up: Map | Next: A69C |