Jet Set Willy Room Specification ================================ Room layout ----------- 000-127 &00-&7F: Room blocks Each byte specified four room blocks, starting at the top-lefthand corner of the screen. Each byte encodes the blocks as %aabbccdd encoding the blocks aa,bb,cc,dd from left to right. Each block can be 00, 01, 10 or 11 representing Background, Floor, Wall and Nasty. Room name --------- 128-159 &80-&9F: Room name in ASCII The original JSW engine indexes into the character table in ROM. Consequently characters<&20 will display the contents of &3C00-&3CFF, solid blocks in the default Spectrum ROM. Characters>&7F will read character matrices from the screen at &4000-&47FF. Some JSW engines allow extra characters. Character definitions --------------------- 160-168 &A0-&A8: Background attribute, bitmap - block 00 169-177 &A9-&B1: Floor attribute, bitmap - block 01 178-186 &B2-&BA: Wall attribute, bitmap - block 10 187-195 &BB-&C3: Nasty attribute, bitmap - block 11 196-204 &C4-&CC: Slope attribute, bitmap 205-213 &CD-&D5: Conveyor attribute, bitmap Slope & conveyor definitions ---------------------------- 214 &D6 : Conveyor direction: 0=left, 1=right, 2=off, 3=sticky 215-216 &D7-&D8: Slope start position = &5E00+row*32+col 217 &D9 : Slope length 218 &DA : Slope direction: 0=left, 1=right 219-220 &DB-&DC: Conveyor start position = &5E00+row*32+col 221 &DD : Conveyor length Other info ---------- 222 &DE : b0-b2: Border b3-b7: spare Geoff Mode: b6-b7: Number and type of sprites to use for Willy 00=lower four sprites 01=upper four sprites 10=all eight sprites, facing forward 11=all eight sprites, facing backwards jsw128: b7=1 : SuperJump ON for this room 223 &DF : spare Geoff Mode: b7 : lives sprite subpage jsw128: guardian class table 224 &E0 : spare Geoff Mode: lives sprite page Object ------ 225-232 &E1-&E8: Object bitmap Room exits ---------- 233 &E9 : Room left jgh: Room top-left 234 &EA : Room right jgh: Room top-right 235 &EB : Room up 236 &EC : Room down 237 &ED : spare Geoff Mode: Willy sprite page jsw128: if b7=1, Willy Sprite page jgh: Room bottom-left 238-239 &EE-&EF: spare Geoff Mode: patch vector, called every tick if <>&0000 jgh: &EE:Room bottom-right Guardians --------- 240-255 &F0-&FF: Guardian table, two bytes per guardian, terminated with &FF in the first byte. Version History --------------- 1.00 18-Mar-1985 Original version. 1.10 25-Nov-2002 Added Geoff Mode and jsw128.