mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-02 21:31:33 +00:00
202 lines
3.9 KiB
ArmAsm
202 lines
3.9 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
|
|
|
|
*--- 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
|
|
|
|
ds \
|