mminer-orca/src/rolevels.asm

586 lines
26 KiB
NASM

;-----------------------------------------------------------------------------
; rolevels.inc
; Part of manic miner, the zx spectrum game, made for Apple II
;
; Stefan Wessels, 2020
; This is free and unencumbered software released into the public domain.
;-----------------------------------------------------------------------------
ROLEVELS data
using LOWMEM
level_01 anop
dc h'1A4014601E602F40F204FF002F40F204'
dc h'F700135013502D41417148712F40F204'
dc h'3F10C204F1003140195024413F035330'
dc h'2F40D2012F40F204B105730453712440'
dc h'FB102F40F204FF110104'
dc h'00'
level_02 anop
dc h'1F403E04FE001264FF002F4053071610'
dc h'2F40F204F41181042204F50041142174'
dc h'22041517F300124012402F4091042174'
dc h'22048701910421742204F30042701247'
dc h'124022404F30310421742204D4017104'
dc h'217422047407F4002F40F204FF110104'
dc h'00'
level_03 anop
dc h'19401760182013602F402106C204FF00'
dc h'2F40F204FF002441FB772F40F2046F10'
dc h'54012142FE0021424603F4002142F800'
dc h'62141C605C1024406F105204F500A214'
dc h'FF002F41F114'
dc h'00'
level_04 anop
dc h'16401660F444FF002F40F204F3006610'
dc h'2F40B401214151019101D204B2017301'
dc h'72043F70C2046201F20032102F402301'
dc h'A2043F30B1012B403710361025402F10'
dc h'14603214F2002B102F40F204FF110104'
dc h'00'
level_05 anop
dc h'1F404106A204FF002F40F204FF002F40'
dc h'81056204D41046713204FD002214F500'
dc h'19502F402A0332043A01F2002F40F204'
dc h'2B714701510127401F40720425101540'
dc h'12401D40244012501540124072455204'
dc h'7F1417410104'
dc h'00'
level_06 anop
dc h'1F40F204FF002F40F204FF002F405106'
dc h'920473014201450152042201B104B301'
dc h'2F401E402F40750132042F10D2046901'
dc h'19415204F1041D6022401C501B403214'
dc h'2403F2017204FF002F41F114'
dc h'00'
level_07 anop
dc h'1D40F444FF002F40F204E2011C471204'
dc h'F1001D47264052303114A17622743D10'
dc h'12471A072F401104917032741F101547'
dc h'17672D403114D274B510114718071267'
dc h'2F401104C1702D404547176728403210'
dc h'1F401204D104F1002D41F344'
dc h'00'
level_08 anop
dc h'11401760166012401A402F4011042104'
dc h'A204E2011B402214F1001D402F401104'
dc h'D204351062101241B204F10013404510'
dc h'12141301C1049101320473016104D204'
dc h'F100154182041A103210194042148201'
dc h'6104D2043201B10445014204A3031240'
dc h'1241B204D104210451057204FF110104'
dc h'00'
level_09 anop
dc h'12401F40C204FF002F40F204FF002F40'
dc h'F204421032108210321022102F40F204'
dc h'FD002214220123012803B204F6003210'
dc h'22102241FD002F40F204220123012801'
dc h'230122012204FD002214FF002F41F114'
dc h'00'
level_10 anop
dc h'1A401160311411061106A214F1044106'
dc h'920469101A4042142106C104E204F104'
dc h'4A1027401717164082144B101E402F40'
dc h'174134702541A104E20417607114C201'
dc h'24412970174161062F40164013674204'
dc h'7A02D2043F1093012F40F104FF220202'
dc h'00'
level_11 anop
dc h'7C401B602F403105B204FF002441FB00'
dc h'2F40F2044601420172215204F8001460'
dc h'2214F800166022412203F20014602214'
dc h'A90141056204B1066106810122045307'
dc h'121016601B502B401F5032142F105301'
dc h'5204FF002F41F114'
dc h'00'
level_12 anop
dc h'114017601660134019402F40F204E207'
dc h'E204FF002F40F2043510517421046271'
dc h'5204D1042104C1012540261012401D40'
dc h'22401A10124017406214940112401D40'
dc h'25401A101341A204F100174024102641'
dc h'A104510541052204A30112401B432204'
dc h'D1042104D204D414D114'
dc h'00'
level_13 anop
dc h'FF4432401F20C2042102FC0022401320'
dc h'F311240122401F20C2042102FC002240'
dc h'1320221042105210421012142102FC00'
dc h'22401F20C20421023501230135012401'
dc h'22401F20C2042102FC00224013203210'
dc h'32104210421022142102FC0022401F20'
dc h'C2042F13B2310104'
dc h'00'
level_14 anop
dc h'1F40F204FF002F40F204FF002F40F204'
dc h'E1011E20224011126101162011126101'
dc h'122026401112E10116202F40F2044101'
dc h'162011126101162011122F40F2041112'
dc h'61011420643011124204FF0026401112'
dc h'F7002F40FF04F344'
dc h'00'
level_15 anop
dc h'1540FC44FD002224FD0022247F031531'
dc h'22247106F400126225412105F4001262'
dc h'2F4082012106222461074201E1062224'
dc h'2201D20181062224F900211012622241'
dc h'9201E1052224F200291022244301F201'
dc h'42022B402F102224FD002224FF110104'
dc h'00'
level_16 anop
dc h'1F40F204FF002F40F204FF002F40F204'
dc h'141014101240174036102A4012402F40'
dc h'23401610124038406214A1042404D204'
dc h'2F7394302F40F20492042C1014102941'
dc h'F6002F40410151014204F70035502F41'
dc h'F114'
dc h'00'
level_17 anop
dc h'1F40D404FF002F40F204FF0025401250'
dc h'13501250155011501650224172707270'
dc h'31702270221421766270727062702274'
dc h'92703170327051762207224725072207'
dc h'52306270227411072507270726072207'
dc h'22472507270712071467220722472407'
dc h'1260E370227422705270F2702274FF00'
dc h'2F40B4012F41F114'
dc h'00'
level_18 anop
dc h'1F40C1042204FF002F40F204FF002F40'
dc h'F204220123012801230124012F40F204'
dc h'2F10D204B80123012201220422012301'
dc h'F6002F40D2012F40F204220123012801'
dc h'2301220122042F10D204FF001F41F211'
dc h'00'
level_19 anop
dc h'3F40D204FF002F40F204FF002F40F204'
dc h'2201460197012F40F204F30039102241'
dc h'A30187012F40F204F3002A102441F400'
dc h'721464033501C204FF004F40D404F511'
dc h'17410104'
dc h'00'
level_20 anop
dc h'FF00FF00FF00FF00FB00EF4031042104'
dc h'9104F30012401940F54421049204FD00'
dc h'2214FF002F4373301470284012501450'
dc h'1350165012102241FD0024402F109204'
dc h'FF002F41F114'
dc h'00'
;-----------------------------------------------------------------------------
levelsL anop
dc i1<'level_01',i1<'level_02',i1<'level_03',i1<'level_04',i1<'level_05',i1<'level_06'
dc i1<'level_07',i1<'level_08',i1<'level_09',i1<'level_10',i1<'level_11',i1<'level_12'
dc i1<'level_13',i1<'level_14',i1<'level_15',i1<'level_16',i1<'level_17',i1<'level_18'
dc i1<'level_19',i1<'level_20'
levelsH anop
dc i1>'level_01',i1>'level_02',i1>'level_03',i1>'level_04',i1>'level_05',i1>'level_06'
dc i1>'level_07',i1>'level_08',i1>'level_09',i1>'level_10',i1>'level_11',i1>'level_12'
dc i1>'level_13',i1>'level_14',i1>'level_15',i1>'level_16',i1>'level_17',i1>'level_18'
dc i1>'level_19',i1>'level_20'
;-----------------------------------------------------------------------------
; This table maps tiles (1-8) to tile representations, per level.
; space is 00, floor1 is 1 and collapse is 7 & key is 8. Only 0 through 7
; encoded in the level data. Key, door and switch added programatically to
; the level. The switch looks the same in both kong levels (only place it
; is present) so it doesn't need/get an entry. The door "tile" isn't seen,
; so isn't rendered. It's below the door sprite for collision purposes only.
;
; floor1, floor2, conveyor, wall, bush, rock, collapse, key - door & switch not here
levelTiles anop
dc h'31001C1F0D282709' ; Level 1
dc h'31001C1F0D282710' ; Level 2
dc h'2E031E150D052D09' ; Level 3
dc h'31001C1F0D342709' ; Level 4
dc h'3100071F0D132708' ; Level 5
dc h'2F001C1F0D0B3109' ; Level 6
dc h'3100161F0D172609' ; Level 7
dc h'31351D1F0D132714' ; Level 8
dc h'310007180D132709' ; Level 9
dc h'12301C1B0D0F2001' ; Level 10
dc h'3133211A0403270A' ; Level 11
dc h'31351D1F0D132714' ; Level 12
dc h'292307180D133106' ; Level 13
dc h'2C2B072200003119' ; Level 14
dc h'322A211A04032711' ; Level 15
dc h'31311D1B0E132702' ; Level 16
dc h'31001C250D0C2609' ; Level 17
dc h'31001C240D132709' ; Level 18
dc h'31001C1F0D132709' ; Level 19
dc h'31001C1F04132709' ; Level 20
; This table says which color index to use, to color a
; tile (1-8), per level. The colors are:
; 00 White - 01 Green - 02 Orange - 03 Purple - 04 Blue
; The keys are done as a color animation so at inctance
; time they are left white.
;
; floor1, floor2, conveyor, wall, bush, rock, collapse, key - door & switch not here
levelMasks anop
dc h'0102030201020400' ; Level 1
dc h'0302030201020400' ; Level 2
dc h'0400030401030100' ; Level 3
dc h'0200030401000400' ; Level 4
dc h'0402020100020100' ; Level 5
dc h'0100040201000400' ; Level 6
dc h'0302010401000200' ; Level 7
dc h'0200010001020400' ; Level 8
dc h'0302010201020400' ; Level 9
dc h'0100010201010200' ; Level 10
dc h'0400030202000100' ; Level 11
dc h'0300000201020400' ; Level 12
dc h'0403010201020400' ; Level 13
dc h'0403000401020400' ; Level 14
dc h'0402000002000400' ; Level 15
dc h'0203000301020400' ; Level 16
dc h'0102010201000400' ; Level 17
dc h'0202030301020400' ; Level 18
dc h'0102000201020400' ; Level 19
dc h'0202040100020400' ; Level 20
; The number of bytes to skip when calling a tileDrawP*R* routine for a collapsing platform
collapseHeight anop
dc i1'12*0, 12*1, 12*2, 12*3, 12*4, 12*5, 12*6, 12*7'
conveyorDirections anop
dc h'0201020102020201010202010102'
dc h'020201020201'
skylabXPos anop
dc h'01150B091D131105'
dc h'1B190D03'
willyx anop
dc h'0202021D010F0202'
dc h'010103021D1D0202'
dc h'011D0E1B0F'
willyy anop
dc h'6868686818186868'
dc h'6820086868686868'
dc h'1868506858'
willyStartDir anop
dc h'0000000100010000000000000000'
dc h'00000101000100'
doorL anop
dc i1<'levelLayout+$1BE' ; level 0
dc i1<'levelLayout+$1DE' ; level 1
dc i1<'levelLayout+$17E' ; level 2
dc i1<'levelLayout+$03E' ; level 3
dc i1<'levelLayout+$1CF' ; level 4
dc i1<'levelLayout+$01E' ; level 5
dc i1<'levelLayout+$1CF' ; level 6
dc i1<'levelLayout+$1CF' ; level 7
dc i1<'levelLayout+$001' ; level 8
dc i1<'levelLayout+$1CC' ; level 9
dc i1<'levelLayout+$021' ; level 10
dc i1<'levelLayout+$1CF' ; level 11
dc i1<'levelLayout+$1C1' ; level 12
dc i1<'levelLayout+$010' ; level 13
dc i1<'levelLayout+$061' ; level 14
dc i1<'levelLayout+$0CC' ; level 15
dc i1<'levelLayout+$03E' ; level 16
dc i1<'levelLayout+$03E' ; level 17
dc i1<'levelLayout+$041' ; level 18
dc i1<'levelLayout+$0B3' ; level 19
doorH anop
dc i1>'levelLayout+$1BE' ; level 0
dc i1>'levelLayout+$1DE' ; level 1
dc i1>'levelLayout+$17E' ; level 2
dc i1>'levelLayout+$03E' ; level 3
dc i1>'levelLayout+$1CF' ; level 4
dc i1>'levelLayout+$01E' ; level 5
dc i1>'levelLayout+$1CF' ; level 6
dc i1>'levelLayout+$1CF' ; level 7
dc i1>'levelLayout+$001' ; level 8
dc i1>'levelLayout+$1CC' ; level 9
dc i1>'levelLayout+$021' ; level 10
dc i1>'levelLayout+$1CF' ; level 11
dc i1>'levelLayout+$1C1' ; level 12
dc i1>'levelLayout+$010' ; level 13
dc i1>'levelLayout+$061' ; level 14
dc i1>'levelLayout+$0CC' ; level 15
dc i1>'levelLayout+$03E' ; level 16
dc i1>'levelLayout+$03E' ; level 17
dc i1>'levelLayout+$041' ; level 18
dc i1>'levelLayout+$0B3' ; level 19
door_color1 anop
dc h'0103010203040102'
dc h'0304000101010101'
dc h'0101010101'
door_color2 anop
dc h'0204040302010102'
dc h'0304010202020202'
dc h'0202020202'
keyx anop
dc h'091D10181E'
dc h'07181A0313'
dc h'060F171E15'
dc h'010C19101E'
dc h'1E0A1D0709'
dc h'0F111E010D'
dc h'1E141B131E'
dc h'0D0E021DFF'
dc h'10FFFFFFFF'
dc h'150E0C121E'
dc h'181E01131E'
dc h'0F10021D1A'
dc h'1A0A131A0B'
dc h'17031B10FF'
dc h'190C1AFFFF'
dc h'1E0D0111FF'
dc h'180F01131A'
dc h'10FFFFFFFF'
dc h'1E011EFFFF'
dc h'171E0A0E13'
keyyL anop
dc h'00002080C0'
dc h'2020E02080'
dc h'000000C0C0'
dc h'002020C0C0'
dc h'20C0E08080'
dc h'C0C0E04060'
dc h'60C0E04060'
dc h'40C000A0E0'
dc h'20E0E0E0E0'
dc h'4020C00020'
dc h'002080C0A0'
dc h'60E0C0A0A0'
dc h'60C0202080'
dc h'4000E0E0E0'
dc h'40C0C0E0E0'
dc h'40E00040E0'
dc h'A0E0204060'
dc h'20E0E0E0E0'
dc h'20A080E0E0'
dc h'A0C0606060'
keyyH anop
dc h'0000000000'
dc h'0000000101'
dc h'0000000000'
dc h'0000000000'
dc h'0000000101'
dc h'0000000101'
dc h'0000000101'
dc h'00000101FF'
dc h'00FFFFFFFF'
dc h'0000000100'
dc h'0000000001'
dc h'0000000100'
dc h'0000010101'
dc h'00010000FF'
dc h'000001FFFF'
dc h'00000001FF'
dc h'0000010101'
dc h'00FFFFFFFF'
dc h'000001FFFF'
dc h'0000010101'
sprites_x anop
dc h'081D121D1D131012'
dc h'1D01071D0C040F0F'
dc h'060E08181D0F0A11'
dc h'0F090B120F0F0C10'
dc h'050A141901090C08'
dc h'120C0F0E0F0C0315'
dc h'1A01090B190F0F07'
dc h'1014120501000000'
dc h'0F11090F15010901'
dc h'121A0C050C030A13'
dc h'1B1D0C101010050A'
dc h'14191D181C1D1005'
dc h'0B1001071813130F'
dc h'0F'
sprites_y anop
dc h'3868186868681818'
dc h'5868680818380168'
dc h'4040686800084068'
dc h'6868583800681850'
dc h'0808080800385068'
dc h'2868183868082030'
dc h'3008685830006808'
dc h'2038500868000000'
dc h'0068284050186850'
dc h'3828286868404030'
dc h'0008185030680808'
dc h'0808001830486840'
dc h'3850086830282800'
dc h'68'
sprites_min anop
dc h'081D010C1D010112'
dc h'1D01061D0104010F'
dc h'060E08181D0F0211'
dc h'0F010B12000F0C0C'
dc h'0505050501090804'
dc h'110C0F0E05022030'
dc h'0401010B19000F07'
dc h'070A070801000000'
dc h'0F11242420010101'
dc h'12190C050C400301'
dc h'041D0C0C0C0C0505'
dc h'05051D1716170D02'
dc h'3004010728131300'
dc h'0F'
sprites_max anop
dc h'101E131E1E14111E'
dc h'1E0B101E0D0D5810'
dc h'0E16151E1E1E0B1E'
dc h'100A101600101313'
dc h'65656565020F0F1B'
dc h'160D191314396565'
dc h'65020A101D00101E'
dc h'1E1B1E6502493921'
dc h'1014676769021308'
dc h'181E0D091A676141'
dc h'611E131212136969'
dc h'69691E1E1E1E1E67'
dc h'6751021768141459'
dc h'10'
sprites_speed anop
dc h'0204020204020202'
dc h'0402020402020104'
dc h'0202020204020202'
dc h'0402010204040201'
dc h'0102010204020102'
dc h'0204020102020101'
dc h'0204020102040402'
dc h'0102010204030201'
dc h'0402020102040202'
dc h'0201040102020201'
dc h'0404010102020302'
dc h'0401040202010203'
dc h'0201040201040402'
dc h'04'
sprites_dir anop
dc h'0000010100010100'
dc h'0000000001000000'
dc h'0001010100000100'
dc h'0001000000000000'
dc h'0000000000000000'
dc h'0000000001000000'
dc h'0100010000000000'
dc h'0001000000000000'
dc h'0000000001000000'
dc h'0000000000000100'
dc h'0000000000010000'
dc h'0000000000010000'
dc h'0100000000000000'
dc h'00'
sprites_bitmaps anop
dc h'0093090994121212'
dc h'951A1A9623232297'
dc h'2B2B2B2B98333333'
dc h'993F3F3F3B9A4747'
dc h'434343439B4B4B4B'
dc h'4B9C575757535353'
dc h'539D3F3F3F3B9E5F'
dc h'5F5F5F5B9F636363'
dc h'A06F6B6B6BA17373'
dc h'7373A27F7F7B7B7B'
dc h'7BA3474747478383'
dc h'8383A48B8B8B8B87'
dc h'8787A58F5BA6A711'
dc h'08'
sprites_colors anop
dc h'0200020400010302'
dc h'0002010002000000'
dc h'0203040200040302'
dc h'0001030401000104'
dc h'0301040200020003'
dc h'0400020100030102'
dc h'0400010204010003'
dc h'0102040000000204'
dc h'0004020001000102'
dc h'0304000004040200'
dc h'0300010403020301'
dc h'0400000004030000'
dc h'0204000200000400'
dc h'00'
sprites_class anop
dc h'0082000082000000'
dc h'8200008200001382'
dc h'0000000082000000'
dc h'820206022B820202'
dc h'0303030382000000'
dc h'0082020202030303'
dc h'03820206022B8202'
dc h'0202020382494949'
dc h'8202030303820000'
dc h'0000820202030303'
dc h'0382020202020303'
dc h'0303820202020203'
dc h'0303820203820019'
dc h'82'
level_sprites_offset anop
dc h'000205090C101519'
dc h'1E252A32373D4146'
dc h'4B525B6367'
level_sprites_count anop
dc h'0203040304050405'
dc h'0705080506040505'
dc h'0709080402'
end