add Who Framed Roger Rabbit to the collection

This commit is contained in:
Peter Ferrie 2020-05-29 13:17:25 -07:00
parent 534c00f6b5
commit c4debba582
8 changed files with 105 additions and 3 deletions

View File

@ -229,6 +229,7 @@
0000,ROADBLOCK
0110,ROBOCOP
0000,ROBOTRON.2084
1111,ROGER.RABBIT=Who Framed Roger Rabbit
0001,RUN.FOR.IT
0000,RUSSKI.DUCK
0002,SABOTAGE

File diff suppressed because one or more lines are too long

View File

@ -23,6 +23,7 @@ RADWARRIOR=Type(06),AuxType(4000),Access(C3)
RAMPAGE=Type(06),AuxType(4000),Access(C3)
RENEGADE=Type(06),AuxType(4000),Access(C3)
ROBOCOP=Type(06),AuxType(4000),Access(C3)
ROGER.RABBIT=Type(06),AuxType(4000),Access(C3)
SLICKS=Type(06),AuxType(4000),Access(C3)
SOKO.BAN=Type(06),AuxType(4000),Access(C3)
SPIDERBOT=Type(06),AuxType(4000),Access(C3)

View File

@ -6,7 +6,7 @@
; YE OLDE GRAND UNIFIED MEMORY MAP
;
; LC RAM BANK 1
; D000..E820 - persistent data structures (gGlobalPrefsStore, gGamesListStore)
; D000..E863 - persistent data structures (gGlobalPrefsStore, gGamesListStore)
; ...unused...
; E91E..FFF1 - main program code
; FFF2..FFF9 - API functions and global constants available for main program
@ -16,8 +16,8 @@
;
; LC RAM BANK 2
; D000..D3FF - ProRWTS data
; D400..D66F - ProRWTS code
; D670..DBA2 - HGR font code & ProRWTS glue code
; D400..D66D - ProRWTS code
; D66E..DBA2 - HGR font code & ProRWTS glue code
; DBA3..DBB2 - backup of stack (during gameplay and self-running demos)
; ...unused... yes, just one byte to spare
; DBB4..DBFF - (de)acceleration function
@ -145,3 +145,7 @@ CHEATS_ENABLED = %00001000
; hacks
LoadFileDirect = $DAFB
launchpatch = $D613
iAddToPath = $FECC
itraverse = $D8D9
namlo = $57
namhi = $58

View File

@ -0,0 +1,71 @@
;license:MIT
;(c) 2020 by qkumba
!cpu 6502
!to "build/PRELAUNCH/ROGER.RABBIT",plain
*=$106
!source "src/prelaunch/common.a"
jmp +
@cheat
lda $1A2E
cmp #$17
bne @donecheat
ldy #$AD
lda $1A2D
cmp #$4C
beq @cheatfac
cmp #$3C
beq @cheatben
cmp #$2C
beq @cheatink
cmp #$0C
bne @donecheat
@cheatben
sty $6DC4 ; patch - don't decrease lives
beq @donecheat
@cheatink
sty $67E5 ; patch - don't decrease lives
sty $67F8 ; patch - don't decrease lives
beq @donecheat
@cheatfac
sty $604A ; patch - don't decrease lives
sty $6066 ; patch - don't decrease lives
@donecheat
ldy $1A39
rts
+
+READ_RAM2_WRITE_RAM2
jsr EnableAccelerator
+LDADDR @path
jsr iAddToPath
+LDADDR gPathname
+ST16 namlo
jsr itraverse ; enter subdirectory
+GET_MACHINE_STATUS
and #CHEATS_ENABLED
beq +
lda #$4C
sta $1A16
lda #<@cheat
sta $1A17
lda #>@cheat
sta $1A18
+
+DISABLE_ACCEL
jmp $1000
@path !byte @path_e-@path_b
@path_b !text "/GAME/X" ; the 'X' is a dummy character
@path_e
!if * > $1C0 {
!error "code is too large, ends at ", *
}

View File

@ -391,6 +391,12 @@ resetval=$f0
; out: all flags clobbered
; all registers clobbered
;------------------------------------------------------------------------------
!ifdef PASS2 {
} else { ;PASS2
!if * != itraverse {
!error "itraverse=",*, ", fix constants.a"
}
}
traverse
+LD16 gRootDirectory
sta (reloc + unrhddblocklo - unrelochdd) + 1

View File

@ -24,6 +24,14 @@ kRootDirectory=*+1
ldx #0
stx gPathname
; execution falls through here
!if RELBASE != $2000 {
!ifdef PASS2 {
} else { ;PASS2
!if * != iAddToPath {
!error "iAddToPath=",*, ", fix constants.a"
}
}
}
AddToPath
+ST16 PTR
ldy #0