Jet Set Willy: Data at E400

| Data

E400: Room 0x24: A bit of tree (teleport: 369)

Used by the routine at 8912.
The first 128 bytes are copied to 8000 and define the room layout. Each bit-pair (bits 7 and 6, 5 and 4, 3 and 2, or 1 and 0 of each byte) determines the type of tile (background, floor, wall or nasty) that will be drawn at the corresponding location.
E400 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03 | Room layout
E408 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03
E410 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03
E418 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03
E420 | DEFB $00,$00,$10,$A0,$00,$40,$00,$03
E428 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03
E430 | DEFB $00,$14,$00,$A0,$00,$01,$40,$03
E438 | DEFB $00,$00,$10,$A0,$00,$00,$00,$03
E440 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03
E448 | DEFB $00,$00,$14,$A0,$00,$00,$40,$03
E450 | DEFB $55,$50,$00,$A5,$40,$00,$00,$03
E458 | DEFB $00,$00,$00,$A0,$00,$00,$01,$03
E460 | DEFB $00,$00,$00,$A0,$00,$00,$40,$03
E468 | DEFB $00,$00,$00,$A0,$05,$00,$00,$03
E470 | DEFB $00,$00,$00,$A0,$00,$00,$00,$03
E478 | DEFB $00,$00,$01,$A4,$00,$00,$00,$03
The next 32 bytes are copied to 8080 and specify the room name.
E480 | DEFM " A bit of tree " | Room name
The next 54 bytes are copied to 80A0 and contain the attributes and graphic data for the tiles used to build the room. Note that because of a bug in the game engine, the nasty tile is not drawn correctly (see the room image above).
E4A0 | DEFB $00,$00,$00,$00,$00,$00,$00,$00,$00 | Background
E4A9 | DEFB $04,$AD,$52,$29,$00,$01,$02,$00,$00 | Floor
E4B2 | DEFB $1E,$D6,$6B,$66,$DB,$69,$6B,$D9,$6D | Wall
E4BB | DEFB $02,$15,$00,$AA,$55,$AA,$00,$15,$0A | Nasty
E4C4 | DEFB $44,$03,$08,$24,$10,$40,$20,$80,$80 | Ramp
E4CD | DEFB $FF,$00,$00,$00,$00,$00,$00,$00,$00 | Conveyor (unused)
The next four bytes are copied to 80D6 and specify the direction, location and length of the conveyor.
E4D6 | DEFB $00 | Direction (left)
E4D7 | DEFW $0000 | Location in the attribute buffer at 5E00 (unused)
E4D9 | DEFB $00 | Length: 0 (there is no conveyor in this room)
The next four bytes are copied to 80DA and specify the direction, location and length of the ramp.
E4DA | DEFB $01 | Direction (up to the right)
E4DB | DEFW $5F34 | Location in the attribute buffer at 5E00: (9,20)
E4DD | DEFB $02 | Length
The next byte is copied to 80DE and specifies the border colour.
E4DE | DEFB $05 | Border colour
The next two bytes are copied to 80DF, but are not used.
E4DF | DEFB $00,$00 | Unused
The next eight bytes are copied to 80E1 and define the item graphic.
E4E1 | DEFB $00,$00,$00,$00,$00,$00,$00,$00 | Item graphic (unused)
The next four bytes are copied to 80E9 and specify the rooms to the left, to the right, above and below.
E4E9 | DEFB $25 | Room to the left (Orangery)
E4EA | DEFB $23 | Room to the right (Master Bedroom)
E4EB | DEFB $2A | Room above (Under the Roof)
E4EC | DEFB $1E | Room below (The Banyan Tree)
The next three bytes are copied to 80ED, but are not used.
E4ED | DEFB $00,$00,$00 | Unused
The next eight pairs of bytes are copied to 80F0 and specify the entities (ropes, arrows, guardians) in this room.
E4F0 | DEFB $68,$02 | Guardian no. 0x68 (horizontal), base sprite 0, initial x=2 (A340)
E4F2 | DEFB $65,$07 | Guardian no. 0x65 (vertical), base sprite 0, x=7 (A328)
E4F4 | DEFB $45,$92 | Arrow flying right to left at pixel y-coordinate 73 (A228)
E4F6 | DEFB $FF,$00 | Terminator (A3F8)
E4F8 | DEFB $00,$00 | Nothing (A000)
E4FA | DEFB $00,$00 | Nothing (A000)
E4FC | DEFB $00,$00 | Nothing (A000)
E4FE | DEFB $00,$00 | Nothing (A000)