This commit is contained in:
Antoine Vignau 2024-03-09 21:40:46 +01:00
parent ffbcf626f9
commit e63f31f49d
36 changed files with 21954 additions and 63846 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

1
loderunner/sounds/SOUNDS Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,16 +0,0 @@
*
* Lode Runner
* (c) 1983, Broderbund Software
* (s) 2014, Brutal Deluxe Software
*
*-----------------------------------
* 150 LEVELS + SCORE
*-----------------------------------
ptrLEVELS ent
ds 38400
ptrSCORES ent
ds 256

View File

@ -1,16 +0,0 @@
*
* Lode Runner
* (c) 1983, Broderbund Software
* (s) 2014, Brutal Deluxe Software
*
*-----------------------------------
* KEEP IT AT $64K
*-----------------------------------
ds 8192 ; $0000
HGR2 ent
ds 32768 ; $2000
ds 24576 ; $a000

View File

@ -1,27 +0,0 @@
*
* Lode Runner
* (c) 1983, Broderbund Software
* (s) 2014, Brutal Deluxe Software
*
*-----------------------------------
* SOUND BANK 1
*-----------------------------------
sndBANK1 ent
putbin snd/youwin.snd ; 0000 - 10
ds $100 ; 4300
putbin snd/escalier.snd ; 4400 - 4
ds $100 ; 4700
putbin snd/marche.snd ; 4800 - 5
ds $100 ; 4f00
putbin snd/creuse.snd ; 5000 - 3
ds $600 ; 6200
putbin snd/barre.snd ; 6800 - 2
ds $300 ; 6d00
putbin snd/trou.snd ; 7000 - 9
ds $700 ; 7900
putbin snd/nomorechest.snd ; 8000 - 6
ds $800 ; a800
putbin snd/tresor.snd ; b000 - 8
putbin snd/tombe.snd ; c000 - 7

View File

@ -1,12 +0,0 @@
*
* Lode Runner
* (c) 1983, Broderbund Software
* (s) 2014, Brutal Deluxe Software
*
*-----------------------------------
* SOUND BANK 2
*-----------------------------------
sndINTRO ent
putbin snd/intro.snd

View File

@ -225,8 +225,8 @@ L6178 JSR playMELODY
* JSR waitKEYUP
L618E
LDX #32 ; valeurs d'attente / 255 avant
LDY #32
LDX #16 ; valeurs d'attente / 255 avant
LDY #16
* LDA #$03 ; 3
* STA theY
@ -487,12 +487,15 @@ diskLEVEL tax
rep #$30 ; load a level
PushLong #levelDISK
pea ^ptrLEVELS
* pea ^ptrLEVELS
lda bankLEVELS+2
pha
lda intLEVEL
and #$ff
xba
clc
adc #ptrLEVELS
* adc #ptrLEVELS
adc bankLEVELS
pha
PushLong #256
_BlockMove
@ -503,12 +506,15 @@ diskLEVEL tax
rts
dlLOAD rep #$30 ; load a level
pea ^ptrLEVELS
* pea ^ptrLEVELS
lda bankLEVELS+2
pha
lda intLEVEL
and #$ff
xba
clc
adc #ptrLEVELS
* adc #ptrLEVELS
adc bankLEVELS
pha
PushLong #levelDISK
PushLong #256
@ -570,7 +576,7 @@ readSCORE cmp #1 ; load scores file from disk
ldx #0 ; copy score file
]lp lda scorebuf,x
stal ptrSCORES,x
scorePATCH1 stal $bdbd,x
inx
bne ]lp
@ -578,10 +584,10 @@ readSCORE cmp #1 ; load scores file from disk
bra L6381
rsLOAD ldx #0 ; copy score file
]lp ldal ptrSCORES,x ; from levels in RAM
scorePATCH2 ldal $bdbd,x ; from levels in RAM
sta scorebuf,x
inx
bne ]lp
bne scorePATCH2
bra L6381
* STA LB7F4 ; command
@ -756,7 +762,11 @@ L6469
* BCC L6478
rep #$30
PushLong #HGR2
* PushLong #HGR2
lda bankHGR2+2
pha
lda #oldHGR2
pha
PushLong ptrSCREEN
PushLong #hgrTOMOVE
_BlockMove
@ -3833,9 +3843,13 @@ drawINFOBAR
ldy ptrSCREEN
bra dib2
L79DD lda #^HGR2
ldx #>HGR2
ldy #<HGR2
L79DD
* lda #^HGR2
* ldx #>HGR2
* ldy #<HGR2
lda bankHGR2+2
ldx #>oldHGR2
ldy #<oldHGR2
dib2 sta ptrDATA+2
stx ptrDATA+1
@ -3911,7 +3925,9 @@ setHGRPOINTER
lda ptrSCREEN+2 ; HGR1 = ptrSCREEN+2
sta ptrHGR1+2
rts
shp2 lda #^HGR2 ; HGR2 = ^HGR2
shp2
* lda #^HGR2 ; HGR2 = ^HGR2
lda bankHGR2+2
sta ptrHGR1+2
RTS
@ -3931,7 +3947,8 @@ setHGRPOINTERS
lda ptrSCREEN+2 ; bank
sta ptrHGR1+2
lda #^HGR2
* lda #^HGR2
lda bankHGR2+2
sta ptrHGR2+2
RTS
@ -3950,9 +3967,10 @@ clearHGR1
*-------------------------------
clearHGR2
lda #^HGR2
ldx #>HGR2
ldy #<HGR2
* lda #^HGR2
lda bankHGR2+2
ldx #>oldHGR2
ldy #<oldHGR2
*--- clear now
@ -4325,20 +4343,26 @@ editMOVE JSR printSTRING
rep #$30
pea ^ptrLEVELS ; set source level
* pea ^ptrLEVELS ; set source level
lda bankLEVELS+2
pha
lda L824F
and #$ff
xba
clc
adc #ptrLEVELS
* adc #ptrLEVELS
adc bankLEVELS
pha
pea ^ptrLEVELS ; set destination level
* pea ^ptrLEVELS ; set destination level
lda bankLEVELS+2
pha
lda L8250
and #$ff
xba
clc
adc #ptrLEVELS
* adc #ptrLEVELS
adc bankLEVELS
pha
PushLong #256 ; set length

View File

@ -287,7 +287,10 @@ isndYOUWIN = 10 ; ok
KBD = $e0c000
KBDSTROBE = $e0c010
RDVBLBAR = $e0c019
NEWVIDEO = $e0c029
VERTCNT = $e0c02e
HORIZCNT = $e0c02f
SPKR = $e0c030
SOUNDCTL = $e0c03c
SOUNDDATA = $e0c03d

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
LodeRunner=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
LodeRunner=Type(B3),AuxType(0000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

21326
loderunner/source/_Output.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
loderunner/source/iigsspeed Normal file

Binary file not shown.

View File

@ -0,0 +1,208 @@
*---------------------------------------
* SPEED OF THE IIgs
*---------------------------------------
mx %00
org $800
lst off
*-----------
clc
xce
rep #$30
jsr getSPEED
sec
xce
sep #$30
lda #$8d
jsr $fded
lda fgSPEED
jsr $fdda
lda #$8d
jsr $fded
lda realSPEED
jsr $fdda
lda realSPEED+1
jsr $fdda
lda realSPEED+2
jsr $fdda
lda realSPEED+3
jsr $fdda
lda realSPEED+4
jsr $fdda
rts
*-----------
mx %00
getSPEED sei ; Vitesse GS
ldal $e0c035
pha
and #$ff00
stal $e0c035
ldx #0
getSPEED1 lda getSPEED,X
inx
inx
cpx #$0110
bcc getSPEED1
ldy #12
ldal $e0c02b
and #$0010
beq getSPEED2
dey
dey
getSPEED2 ldx #0
]lp ldal $e0c018
bmi ]lp
]lp ldal $e0c018
bpl ]lp
getSPEED3 nop
nop
getSPEED4 inx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ldal $e0c018
bmi getSPEED3
getSPEED5 inx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ldal $e0c018
bpl getSPEED5
dey
bne getSPEED4
txa
lsr
ldx #0
txy
]lp cmp parmsSPEED,y
bcc getSPEED6
sbc parmsSPEED,y
inc realSPEED,x
bra ]lp
getSPEED6 iny
iny
inx
cpy #10
bne ]lp
lda realSPEED
and #$00ff
bne getSPEED7 ; >=10 mhz
lda realSPEED+1
xba
cmp #$0208 ; >=2.8
bcs getSPEED7
inc fgSPEED
getSPEED7 pla
stal $e0c035
cli
rts
*--- Vitesse GS
fgSPEED ds 2
parmsSPEED dw 10000
dw 1000
dw 100
dw 10
dw 1
realSPEED ds 5

View File

@ -34,13 +34,6 @@
*----------------------------------- Constantes
ext ptrLEVELS
ext ptrSCORES
ext HGR2
ext sndBANK1
ext sndINTRO
*-------------- Softswitches
GSOS = $e100a8
@ -117,7 +110,6 @@ okSHADOW pha
sta fgSND
noSOUND _HideMenuBar
_InitCursor
_HideCursor
PushWord #0
@ -126,6 +118,129 @@ noSOUND _HideMenuBar
_FlushEvents
pla
PushLong #0
PushWord #5 ; SetDeskPat
PushWord #$4000
PushWord #$0000
_Desktop
pla
pla
*----------------------------------- Show Tozai logo
jsr fadeOUT
jsr unpackTOZAI
*-----------------------------------
PushLong #0
PushLong #$8fffff
PushWord myID
PushWord #%11000000_00000000
PushLong #0
_NewHandle
_DisposeHandle
_CompactMem
*--- 64K pour le fond
jsr make64KB
bcc okMEM1
koMEM pha
PushLong #memSTR1
PushLong #errSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT1
okMEM1 sty bankHGR2
stx bankHGR2+2
*--- 64K pour les niveaux
jsr make64KB
bcs koMEM
sty bankLEVELS
stx bankLEVELS+2
*--- 2x64K pour les sons
jsr make64KB
bcs koMEM
sty bankINTRO
stx bankINTRO+2
jsr make64KB
bcs koMEM
sty bankSOUND
stx bankSOUND+2
*----------------------------------- The patch area
lda bankLEVELS
sta lvlPATCH1+1
sta lvlPATCH2+1
lda bankLEVELS+1
sta lvlPATCH1+2
sta lvlPATCH2+2
sta scorePATCH1+2
sta scorePATCH2+2
lda bankLEVELS
clc
adc #38400
sta scorePATCH1+1
sta scorePATCH2+1
*---
lda bankINTRO
sta playINTRO2+1
lda bankINTRO+1
sta playINTRO2+2
lda bankSOUND
sta moveSOUND2+1
lda bankSOUND+1
sta moveSOUND2+2
*---
lda bankHGR2
sta Debut
lda bankHGR2+2
sta Debut+2
ldy #0 ; on efface HGR2
tya
]lp sta [Debut],y
iny
iny
bne ]lp
*----------------------------------- Load file now
lda #pINTRO
ldx bankINTRO+2
ldy bankINTRO
jsr loadFILE
bcc okLOAD1
lda #1
sta fgSND
okLOAD1 lda #pSOUNDS
ldx bankSOUND+2
ldy bankSOUND
jsr loadFILE
bcc okLOAD2
lda #1
sta fgSND
okLOAD2
*----------------------------------- Exit point
ldx #256-2 ; efface la page directe
@ -136,12 +251,29 @@ noSOUND _HideMenuBar
jsr find4PLAY ; do we have a 4play?
jsr initSOUND ; init sound tool set & friends
*--- Set LEVELS info
lda #pLEVELS ; all files are linked to levels now
sta proOPEN+4
ldy bankLEVELS
sty proREAD+4 ; where to put at the end
sty proWRITE+4
ldx bankLEVELS+2
stx proREAD+6
stx proWRITE+6
lda #38400+256 ; length
sta proREAD+8
stz proREAD+10
sta proWRITE+8
stz proWRITE+10
jsr fadeOUT
jsr setNATIVE ; exit 8-bit
rep #$30
jsr loadLEVELS ; load it & exit 8-bit
*---
jsr loadLEVELS ; exit 8-bit
*--- Enter the game world
mx %11
@ -188,7 +320,7 @@ doLOAD1 jsr copyPATH
loadLEVELS clc
xce
rep #$30
jsl GSOS
dw $2010
adrl proOPEN
@ -219,16 +351,16 @@ loadLEVELS9 rep #$30
ldx #0 ; clear all levels
txa
]lp stal ptrLEVELS,x
lvlPATCH1 stal $bdbd,x ; **patched**
inx
inx
cpx #38400 ; 150 x 256
bcc ]lp
bcc lvlPATCH1
ldx #256-2
]lp lda scoreEMPTY,x
sta scorebuf,x
stal ptrSCORES,x
lvlPATCH2 stal $bdbd,x ; **patched**
dex
dex
bpl ]lp
@ -377,7 +509,7 @@ setMODE stx patchSPR1+1 ; the sprites table
fondFRAME dw $4444 ; HGR: $4444, SHR: $BBBB
*----------------------------------------
* SET STANDARD 320 PALETTE
* SET LODE RUNNER / STANDARD 320 PALETTE
*----------------------------------------
mx %00
@ -385,19 +517,15 @@ fondFRAME dw $4444 ; HGR: $4444, SHR: $BBBB
setSTDPALETTE
PushWord #0
PushLong #palette320
_SetColorTable
rts
*----------------------------------------
* SET LODE RUNNER 320 PALETTE
*----------------------------------------
mx %00
bra setPALETTE
setLRPALETTE
PushWord #0
PushLong #paletteLR
_SetColorTable
setPALETTE _SetColorTable
PushWord #0
_SetAllSCBs
rts
*----------------------------------------
@ -490,6 +618,28 @@ read4PLAY ldal $e0C080 ; direct "fast" read
mx %00
*----------------------------------------
* UNPACK TOZAI
*----------------------------------------
unpackTOZAI lda ptrSCREEN
sta startHandle
lda ptrSCREEN+2
sta startHandle+2
lda #32768
sta sizePtr
PushWord #0
PushLong #tozai
lda #tozai_fin-tozai
pha
PushLong #startHandle
PushLong #sizePtr
_UnPackBytes
pla
rts
*----------------------------------------
* UNPACK LOGO
*----------------------------------------
@ -522,13 +672,100 @@ unpackLOGO rep #$30
startHandle adrl ptr012000
sizePtr dw 32000
mx %00
*----------------------------------------
* FADEOUT
*----------------------------------------
fadeOUT lda #$9e00
sta Debut
lda #$00e1
sta Debut+2
ldx #15
]lp ldy #512-2
fadeOUT2 lda [Debut],y
and #$000f
beq fadeOUT3
lda [Debut],y
sec
sbc #$0001
sta [Debut],y
fadeOUT3 lda [Debut],y
and #$00f0
beq fadeOUT4
lda [Debut],y
sec
sbc #$0010
sta [Debut],y
fadeOUT4 lda [Debut],y
and #$0f00
beq fadeOUT5
lda [Debut],y
sec
sbc #$0100
sta [Debut],y
fadeOUT5 dey
dey
bpl fadeOUT2
jsr nextVBL
dex
bpl ]lp
PushWord #0
_ClearScreen
rts
*--------------------------------------
nextVBL ldal VERTCNT
and #$7f
cmp #75
blt nextVBL
cmp #100
bge nextVBL
waitVBL ldal RDVBLBAR-1
bpl waitVBL
rts
*----------------------------------------
* MEMOIRE
*----------------------------------------
make64KB pha
pha
PushLong #$010000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
tax ; low in X
ldy #2
lda [3],y
txy ; low in Y
tax ; high in X
pld
pla ; we do not keep track of the handle
pla
rts
*----------------------------------------
* SOUND EFFECTS
*----------------------------------------
mx %00
initSOUND sei
initSOUND lda fgSND
beq initSOUND1
rts
initSOUND1 sei
PushLong #0
PushWord #11
_GetVector
@ -542,7 +779,11 @@ initSOUND sei
*--------- Remove the vector
stopSOUND sei
stopSOUND lda fgSND
beq stopSOUND1
rts
stopSOUND1 sei
PushWord #11
PushLong sndVECTOR
_SetVector
@ -599,10 +840,10 @@ playINTRO1 rep #$10
stal SOUNDADRH
ldx #0
]lp ldal sndINTRO,x
playINTRO2 ldal $bdbd,x
stal SOUNDDATA
inx
bpl ]lp
bpl playINTRO2
*--- Config oscillos now
@ -611,6 +852,7 @@ playINTRO1 rep #$10
stal SOUNDCTL
ldy #0 ; frequency low
tya
stal SOUNDADRL
lda #$d6
stal SOUNDDATA
@ -703,10 +945,10 @@ moveSOUND1 rep #$10
stal SOUNDADRH
ldx #0
]lp ldal sndBANK1,x
moveSOUND2 ldal $bdbd,x ; **patched**
stal SOUNDDATA
inx
bne ]lp
bne moveSOUND2
*--- Config oscillos now
@ -773,10 +1015,10 @@ moveSOUND1 rep #$10
inx
cpx #10+1
bcs moveSOUND2
bcs moveSOUND3
brl ]lp
moveSOUND2 cli
moveSOUND3 cli
sep #$10
rts
@ -829,14 +1071,14 @@ playSOUND9 ldy saveY
* isndINTRO = 1 ; ok
* isndBARRE = 2 ; ok
* isndCREUSE = 3 ; ok
* isndCREUSE = 3 ; ok
* isndESCALIER = 4 ; ok
* isndMARCHE = 5 ; ok
* isndMARCHE = 5 ; ok
* isndNOMORECHEST = 6 ; ok
* isndTOMBE = 7 ; ok - à refaire
* isndTRESOR = 8 ; ok
* isndTRESOR = 8 ; ok
* isndTROU = 9 ; ok
* isndYOUWIN = 10 ; ok
* isndYOUWIN = 10 ; ok
* 0 1 2 3 4 5 6 7 8 9 10
sndADDRESS hex 00,00,68,50,44,48,80,c0,b0,70,00
@ -871,7 +1113,45 @@ oldA dw 2
saveA ds 2
saveX ds 2
saveY ds 2
*----------------------------------------
* GS/OS
*----------------------------------------
loadFILE sta proOPEN+4 ; filename
sty proREAD+4 ; where to put at the end
stx proREAD+6
loadFILE1 jsl GSOS
dw $2010
adrl proOPEN
bcs loadERR
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
jsl GSOS
dw $2012
adrl proREAD
jsl GSOS
dw $2014
adrl proCLOSE
clc
rts
loadERR jsl GSOS
dw $2014
adrl proCLOSE
sec
rts
*----------------------------------------
* DATA
*----------------------------------------
@ -881,6 +1161,8 @@ fgSND ds 2
*----------------------- Tool locator
tolSTR1 str 'Error while loading tools'
memSTR1 str 'Cannot allocate memory'
filSTR1 str 'Cannot load file'
errSTR1 str 'Quit'
errSTR2 str ''
errSTR3 str 'Continue'
@ -892,6 +1174,11 @@ SStopREC ds 4
ptrSCREEN adrl ptr012000
bankHGR2 ds 4
bankLEVELS ds 4
bankINTRO ds 4
bankSOUND ds 4
*----------------------- QuickDraw II
palette320 dw $0000,$0777,$0841,$072C,$000F,$0080,$0F70,$0D00
@ -924,20 +1211,30 @@ proCREATE dw 7 ; pcount
proDESTROY dw 1 ; pcount
adrl pLEVELS ; pathname
proOPEN dw 2
proOPEN dw 12
ds 2
adrl pLEVELS
ds 2
ds 2
ds 2
ds 2
ds 4
ds 2
ds 8
ds 8
ds 4
proEOF ds 4
proREAD dw 4 ; 0 - nb parms
ds 2 ; 2 - file id
adrl ptrLEVELS ; 4 - pointer
adrl 38400+256 ; 8 - length
ds 4 ; 4 - pointer
ds 4 ; 8 - length
ds 4 ; C - length read
proWRITE dw 5 ; 0 - pcount
ds 2 ; 2 - ref_num
adrl ptrLEVELS ; 4 - data_buffer
adrl 38400+256 ; 8 - request_count
ds 4 ; 4 - data_buffer
ds 4 ; 8 - request_count
ds 4 ; C - transfer_count
dw 1 ; cache_priority
@ -955,6 +1252,8 @@ proVERS dw 1 ; pcount
*---------- Files
pINTRO strl '1/data/intro'
pSOUNDS strl '1/data/sounds'
pLEVELS strl '0/levels/loderunner'
*----------------------- Standard File Toolset
@ -984,10 +1283,15 @@ loadPATH1
put LR.Code.s
put LR.Data.s
put LR.Tables.s
logo
putbin pic/title
logo_fin
put LR.Sprites.s ; 8-bits sprites
put LR.Sprites2.s ; 16-col sprites
*----------
logo putbin pic/title
logo_fin
tozai putbin pic/tozai
tozai_fin
*---

View File

@ -1,30 +1,30 @@
* Expansion linker file
DSK LodeRunner
TYP $B3
AUX $DB00
DSK LodeRunner
TYP $B3
AUX DB02
* Assemble files
ASM loderunner.s
KND $0000
SNA DougESmith
ASM loderunner.s
KND $0000
SNA DougESmith
ASM LR.BANK3.S
KND $0000
SNA Broderbund
* ASM LR.BANK3.S
* KND $0000
* SNA Broderbund
ASM LR.BANK4.S
KND $0000
SNA Brutal
* ASM LR.BANK4.S
* KND $0000
* SNA Brutal
ASM LR.BKSND1.S
KND $0000
SNA Deluxe
* ASM LR.BKSND1.S
* KND $0000
* SNA Deluxe
ASM LR.BKSND2.S
KND $0000
SNA Software
* ASM LR.BKSND2.S
* KND $0000
* SNA Software
* END

BIN
loderunner/source/pic/tozai Normal file

Binary file not shown.