antoine-source/loderunner/source/LR.DATA.S
Antoine Vignau bcbca2639c +1
2024-02-24 21:36:24 +01:00

387 lines
11 KiB
ArmAsm

*
* Lode Runner
* (c) 1983, Broderbund Software
* (s) 2014, Brutal Deluxe Software
*
mx %11
lst off
* Sprites : 102
* sprEMPTY = 0
* sprWALL = 1
* sprWALLI = 2 ; mur indestructible
* sprLADDER = 3
* sprBAR = 4
* sprTRAP = 5
* sprLADDERI = 6
* sprCHEST = 7
* sprFOE = 8
* sprHERO = 9
* 3B: 0
* 45: A
* 5E: Z
*---------------------------------------
* HGR 280 x 192
* Board 28 x 16
* Sprite 10 x 11
* --------------------
* 280 x 171
*--- Decoded level (28 x 16)
L0800 DS lvlWIDTH ; le plateau avec les personnages
L081C DS lvlWIDTH
L0838 DS lvlWIDTH
L0854 DS lvlWIDTH
L0870 DS lvlWIDTH
L088C DS lvlWIDTH
L08A8 DS lvlWIDTH
L08C4 DS lvlWIDTH
L08E0 DS lvlWIDTH
L08FC DS lvlWIDTH
L0918 DS lvlWIDTH
L0934 DS lvlWIDTH
L0950 DS lvlWIDTH
L096C DS lvlWIDTH
L0988 DS lvlWIDTH
L09A4 DS lvlWIDTH
ds \
L0A00 DS lvlWIDTH ; le plateau sans les personnages
L0A1C DS lvlWIDTH
L0A38 DS lvlWIDTH
L0A54 DS lvlWIDTH
L0A70 DS lvlWIDTH
L0A8C DS lvlWIDTH
L0AA8 DS lvlWIDTH
L0AC4 DS lvlWIDTH
L0AE0 DS lvlWIDTH
L0AFC DS lvlWIDTH
L0B18 DS lvlWIDTH
L0B34 DS lvlWIDTH
L0B50 DS lvlWIDTH
L0B6C DS lvlWIDTH
L0B88 DS lvlWIDTH
L0BA4 DS lvlWIDTH
ds \
*--- $0C00
sizeLI = 48 ; on pourrait avoir 48 Žchelles invisibles
tblLADDERIX ds sizeLI ; $0C00 mais le jeu n'en autorise
tblLADDERIY ds sizeLI ; que 45
sizeFOE = 8 ; on pourrait avoir 8 ennemis
tblFOEX ds sizeFOE ; $0C60 mais le jeu n'en autorise
tblFOEY ds sizeFOE ; que 5
tblFOEACTION ds sizeFOE
tblFOESTEPX ds sizeFOE ; animation step in x-coord
tblFOESTEPY ds sizeFOE ; animation step in y-coord
tblFOEINDEX ds sizeFOE ; animation index
tblFOELEFTRIGHT ds sizeFOE ; does foe runs to the left or to the right?
tblFOETEMPO ds sizeFOE ; performs actions based on value
sizeHOLE = 32 ; nombre de trous possibles
tblHOLEX ds sizeHOLE ; $0CA0 X des trous
tblHOLEY ds sizeHOLE ; Y des trous
tblHOLET ds sizeHOLE ; tempo des trous
*--- $0D00 - Level buffer from/to disk
levelDISK ds 256
*--- $0E00 - buffer pour le son
sndDURATION ds 128
sndNOTE ds 128
*--- $0F00 - Title page until $1A84
logo HEX 128518851C9423A80011A09518851C94
HEX 23A80011A09518851C9423A80011A8D0
HEX 18851C9423A80006940C8511A8D01885
HEX 1C9423A80006940C8511A8D018851C94
HEX 23A80006940C8511A8D018851C9423A8
HEX 000484A0D582908081A8D5808411A8D0
HEX 18851C9423A8000494A0D582948085A8
HEX D5808511A89418851C9423A80004D5A0
HEX D582D5A095A8D5A09511A8958085A880
HEX A885A880A8D48294A8C082C0AA0004D5
HEX 8294A0D5A0D58085A89511A895A085AA
HEX 81AA85AA81AAD48A94A8D08AD0AA0004
HEX D58A94A8D5A0D58285AA9511A895A085
HEX AA80AA85AA81AAD48A94A8D08AD0AA00
HEX 0494AA94AA9480C58AC58A8511A8D4A8
HEX C18AC482C582C58A94A894A894A894A8
HEX 000494A8D58A948085AAD5828511A8D0
HEX A8C082C582C582C58294A894A894A894
HEX A8000490A0D582948085A8D5808511A8
HEX D0A8C082C582C582C58294A894A894A8
HEX 94A80004D080D580858094A095A08111
HEX A8D0A8C082C582C5AAC18294A894A894
HEX A894A80004D0088580940DA08111A8D0
HEX A8C082C582C5AAC18294A894A894A894
HEX A80004D0088580940DA08111A8D0A8C0
HEX 82C582C5AAC08294A894A894A894A800
HEX 04D0088580940DA08111A8D0A8C082C5
HEX 82C582C08294A894A894A894A80004D0
HEX 08858A940DA08111A8D0A8C080C582C5
HEX 82C48294A894A894A894A80004C08280
HEX A0818AD00DA811A8D0A88080C582C582
HEX C58294A894A894A894A80004C08280A0
HEX 818AD00DA811A895A880AA81AA81AAC1
HEX 82D08AD08A94A8D08A0004C08280A0D1
HEX AAD10DA811A895A880AA81AA81AAC182
HEX D08AD08A94A8D08A0004C08280A0D1AA
HEX D10DA811A885A880A880A880A8C082C0
HEX 82C08294A8C0820005AAD5A2D1AAD1A8
HEX D58A0005AAD582818A90A8D58A0005AA
HEX D582858A94A8D58A00078A958A958A13
HEX A08517A08100078AD4AA858A13A88517
HEX A88100078AD0AA818A13A88517A8D100
HEX 07A8C0AAC08213AA17AAD00007A80AC0
HEX 82138A178AD00007A80AC082138A178A
HEX D00007A80AC082138A178AD00007A80A
HEX C082138A178AD00007A08180D0138A17
HEX 8AD00007A08180D013A880A8C0AAD482
HEX 858A94A081A0C18A0007A08180D013A8
HEX 80AAC1AAD482858A94A885A8C1AA0007
HEX A08180D013A880AAC1AAD482858A94A8
HEX 85A8D1AA0008D5AA9513A8C182858AD0
HEX 80858A948A94AAD0A0810008D5AA9513
HEX A0C182858AD080858A9482948AD0A081
HEX 0008D5AA9513A0C582858AD080858A94
HEX 80948AD0A0810014C582858AD080858A
HEX 94A0958AD0AA0014C582858AD080858A
HEX 94A8958AD0AA0014C582858AD080858A
HEX 94A8958AD08A0014C582858AD080858A
HEX 948A948AD00014C582858AD080858A94
HEX 8A948AD080810013A0C582858AD08285
HEX 8A948A948AD0A0810013AA81AA818AC0
HEX 8AD4AA85A8858AC0AA0013AA81AA818A
HEX C08AD4AA85A8858AC0AA0013AA80A880
HEX 8A808AD0A081A0818A808A0000000000
HEX 0000000000000DD08A000DD0A817C082
HEX 000DD0A817C082000DD0A8D08295A095
HEX A881AAD08AD482000DD08A94A0D1A880
HEX 8AC5A2C18285000DD08094A0D1A8808A
HEX C5A2C18285000DD08094A095A085AAC1
HEX A2C182D4000DD08094A08180948AC0A2
HEX C182C082000DD08094A08180948AC0A2
HEX C182C082000DD080948095A885A8C1A2
HEX 818AD50000000000000000000000C0FF
HEX 9F09C0FF9F11FEFFFF9F00E0FFBF09E0
HEX FFBF11FFFFFFBF0080FFBF0AFFBF11FC
HEX FFFFBF0080FFBF0AFFBF11FCFFFFBF00
HEX 80FFBF0AFFBF11FEFFFFBF00C0FFBF0A
HEX FF9F11FEFFFFBF00C0FFBF0AFF9F11FE
HEX FFFFBF00C0FF9F0AFF9F11FEFFFFBF00
HEX C0FF9F80F0FFFF83F8FFFF9FF8FFFF80
HEX 80FFBFFC9FF8FFFCBFFCFFF8FFF0FFF3
HEX FF80FFFF9FFE9FBE00C0FF9F80FCFFFF
HEX 87FCFFFF9FFCFFFF8180FFBFF89FFCFF
HEX F9FFF8FFFEFFE1FFFBFFC0FFFF9FFFBF
HEX BF00E0FF9F80FCFFFF87FEFFFF8FFEFF
HEX FF8180FFBFF89FF0FFF9FFF8FFFEFFE1
HEX FFFBFFE1FFFFBFFCFFBF00E0FF9F80FE
HEX FFFF87FFFFFF8FFEFFFF8180FFBFF89F
HEX F0FFF9FFF8FFFFFFE1FFFFFFE1FFFFBF
HEX FCFFBF00E0FF8F80FEFFFF87FFFFFF8F
HEX FFFFFF8180FF9FFC9FF0FFF8BFF8FFFF
HEX FFE1FFFFFFF1FFFFBFFEFF9F00E0FF8F
HEX 80FEFFFFC7FFFFFF8FFFFFFF81C0FF9F
HEX FC8FF0FFFCBFF8FFFFFFE1FFFFFFF0FF
HEX FFBFFEFF9F00F0FF8F80FEFFFFC7FFFF
HEX FFC7FFFFFF81C0FF9FFE8FF0FFFCBFF8
HEX FFFFFFE1FFFFFFF0FFFF9FFEFF9F00F0
HEX FF8F80FFFFFFE7FFFFFFC7FFFFFF81C0
HEX FFFFFF8FF0FFFCBFF8FFFFFFE1FFFFFF
HEX F0FFFF9FFEFF8F00F0FF8780FF87FFE7
HEX FFE1FFC7FFC3FF81C0FFFFFF8FF8BFFC
HEX BFF8FFFCFFF0FFF9FFF8FFE19FFEBF00
HEX F0FF8780FFC7FFE3FFE1FFE7FFE1FF81
HEX E0FFFFFF87F8BFFC9FFCFFFCFFF0FFF8
HEX FFF8FFF09FFF9F00F0FF8780FFC7FFE3
HEX FFF1FFE7FFE1FF80E0FFFFFF81F8BFFE
HEX 9FFCBFFCFFF0FFF8BFF8FFF08FFF9F00
HEX F8FF87C0FFC3FFF3FFF1FFE3FFFFFF80
HEX E0FFFFFF80F8BFFE9FFCBFFCFFF0FFF8
HEX BFF8FFFF8FFF8F00F8FF87C0FFC3FFF3
HEX FFF0FFF3FFFFFF80E0FFFFBF80F89FFE
HEX 9FFCBFFCBFF8FFFCBFFCFFFF8FFF8F00
HEX F8FF83C0FFC3FFF3FFF0FFF3FFFFBF80
HEX E0FFFFBF80FC9FFE8FFCBFFCBFF8BFFC
HEX BFFCFFFFCFFF8F00F8FF83C0FFE3FFF9
HEX FFF0FFF3FFFFBF80F0FFFFBF80FC9FFE
HEX 8FFEBFFEBFF8BFFC9FFCFFFFC7FF8F00
HEX F8FF83E0FFE1FFF9FFF8FFF9FF838080
HEX F0FFFFFF80FC9FFF8FFE9FFEBFF8BFFC
HEX 9FFCBF80C0FF8700FCFF83E0FFE1FFF9
HEX BFF8FFF9FF818080F0FFFFFF80FC9FFF
HEX 8FFE9FFE9FF8BFFE9FFEBF80C0FF8700
HEX FCFF81E0FFE1FFF9BFF8FFF9FF818080
HEX F0FFFBFF81FE8FFF8FFE9FFE9FFCBFFE
HEX 9FFE9F80C0FF8700FCFF81E4FFF1FFF8
HEX BFF8FFF9FF809080F8FFF3FF81FECFFF
HEX 87FF9FFF9FFC9FFE9FFE9F80E2FF8700
HEX FCFF81E6FFF1FFF8BFFCFFF9FF819880
HEX F8FFF3FF81FECFFF87FF8FFF9FFC9FFE
HEX 8FFEBF80E3FF8300FEFFFFF7FFFFFFF8
HEX FFFFFFFCFFFF9F80F8FFF3FF93FEFFFF
HEX 87FF8FFF8FFC9FFE8FFEFFFFE3FF8300
HEX FEFFFFF7FFFFFFFCFFFFFFFCFFFF9F80
HEX F8FFF3FF9FFFFFFF87FF8FFF8FFE9FFF
HEX 8FFEFFFFE3FF8300FEFFFFF3FFFFFFFC
HEX FFFFFFFCFFFF8F80F8FFE1FF9FFFFFFF
HEX 83FF8FFF8FFE8FFF8FFFFFFFE3FF8300
HEX FEFFFFF3FFFFBFFCFFFFFFFCFFFF8F80
HEX FCFFE1FF9FFFFFFFC3FFC7FF8FFE8FFF
HEX 87FFFFFFF3FF8100FEFFFFF3FFFFBFFC
HEX FFFFBFFCFFFF8F80FCFFE1FF8FFFFFFF
HEX C3FFC7FF8FFE8FFF87FFFFFFF1FF8100
HEX FEFFFFF3FFFFBFFCFFFFBFFCFFFF8F80
HEX FCFFE1FFCFFFFFFFC3FFC7FF87FECFFF
HEX 87FEFFFFF1FF8100FEFFFFF1FFFFBFFC
HEX FFFEBFF8FFFF8780FCFFC1FFCFFFFFFF
HEX C3FFC7FF87FFC7FF87FEFFFFF1FF8100
HEX FEFFFFE1FFFF9FF8BFFEBFF8FFFF8780
HEX FCFFC1FFC7FFEFFFC3FFC7FF87FFC7FF
HEX 87FEFFFFF1FF8100FEFFFFE1FFFF9FF8
HEX BFFEFFF1FFFF8780FCFFC3FFC7FFE7FF
HEX CFFFDFFF9FFF9FFF9FFCFFFFF0FF8700
HEX FCFFFFC0FFFF8FF09FFCFFE0FFFF8380
HEX F0FF81FF87FFE7FFC7FFCFFF8FFE8FFF
HEX 8FF8FFBFF0FF83000000000000000000
HEX 000012AA8100128A8500128A8500128A
HEX 850012AAC1A28100128AC5A28100128A
HEX C5A28100128AC5A28100128AC5A28100
HEX 12AA81AA810014A0810014A0810014AA
HEX 00000000000000000000000BA0D514D0
HEX AA000BA0C182149419A0C182000BA0C1
HEX 82149418D0A0C182000BA0C182149418
HEX D0A0C182000BA0C182149419A0C18200
HEX 0BA0C182D5A0C182D582D08AD0AAD0A8
HEX C5AA81000BA0C1A2C1A2C1A2C18280A8
HEX 94A2D1A0C18285000BA0C1A2C1A2C1A2
HEX C18280A894A2D1A0C18285000BA0C1A2
HEX C1A2C1A2C18280A894A2D1A0C1828500
HEX 0BA0C1A2C1A2C1A2C18280A894A2D1A0
HEX C18285000BA0C1A2C1A2C1A2C18280A8
HEX 94A2D1A0C18285000BA0D580D580D580
HEX D582D48A94A2D180C582850012C08200
HEX 12C0820012C0820012D5000000000000
HEX 00000000000000000BB09E83F88113C0
HEX 81B0C08180E3C3878F000B98B3868C83
HEX 13C081B0C08180B3E6CC99000B8C838C
HEX 8C15B0F08780B3E68C98000B8C838C8C
HEX E0E3C799CEF1F1C38180B3C6878E000B
HEX 8C838C8CB0E6CC99C399B3C68180E3E7
HEX 8C98000B8C838C8CB0E6CC99C399B3C6
HEX 818083E68C98000B98B3868CB3E6CC99
HEX C399B3C6818083E6CC99000BB09E83F8
HEX E1E3879FC3F1B3868780E3C3878F0010
HEX E0809815830010E0809815830010E080
HEX 8F80F08100
*--- Line numbers
xhgr
]debut = $2000
lup 200
dfb <]debut
]debut = ]debut+160
--^
yhgr
]debut = $2000
lup 200
dfb >]debut
]debut = ]debut+160
--^
*--- Level line numbers
tblBOARDALLL
DFB <L0800,<L081C,<L0838,<L0854,<L0870,<L088C,<L08A8,<L08C4
DFB <L08E0,<L08FC,<L0918,<L0934,<L0950,<L096C,<L0988,<L09A4
tblBOARDALLH
DFB >L0800,>L081C,>L0838,>L0854,>L0870,>L088C,>L08A8,>L08C4
DFB >L08E0,>L08FC,>L0918,>L0934,>L0950,>L096C,>L0988,>L09A4
tblBOARDBACKL
DFB <L0A00,<L0A1C,<L0A38,<L0A54,<L0A70,<L0A8C,<L0AA8,<L0AC4
DFB <L0AE0,<L0AFC,<L0B18,<L0B34,<L0B50,<L0B6C,<L0B88,<L0BA4
tblBOARDBACKH
DFB >L0A00,>L0A1C,>L0A38,>L0A54,>L0A70,>L0A8C,>L0AA8,>L0AC4
DFB >L0AE0,>L0AFC,>L0B18,>L0B34,>L0B50,>L0B6C,>L0B88,>L0BA4
*--- From a X in board to a X in HGR
xtable
]debut = 10
lup lvlWIDTH
dfb ]debut
]debut = ]debut+5
--^
*--- From a Y in board to a Y in HGR
ytable DB $00 ; HGR line index
DB $0B ; 0.11.22.33
DB $16 ; 22
DB $21 ; 33
DB $2C ; 44
DB $37 ; 55
DB $42 ; 66
DB $4D ; 77
DB $58 ; 88
DB $63 ; 99
DB $6E ; 110
DB $79 ; 121
DB $84 ; 132
DB $8F ; 143
DB $9A ; 154
DB $A5 ; 165
DB $B5 ; 181 ; ligne de texte
*--- $1F00 - Score buffer
scorebuf ds 256
*--- RŽfŽrence des scores
scoreEMPTY hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 0000000000000000
hex 00000000CCCFC4C5A0D2D5CECEC5D2
hex 00 ; <= data disk