mirror of
https://github.com/a2-4am/4cade.git
synced 2025-08-10 08:25:13 +00:00
add Out Of This World, fix crash in GR action slideshows, fix missing games in DHGR action slideshows, more game ordering fixes
This commit is contained in:
BIN
res/action.gr/OOTW
Normal file
BIN
res/action.gr/OOTW
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
#
|
||||
#
|
@@ -1 +1 @@
|
||||
#
|
||||
#
|
1
res/attract/OOTW
Normal file
1
res/attract/OOTW
Normal file
@@ -0,0 +1 @@
|
||||
#
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
#
|
||||
#
|
1
res/title.hgr/OOTW
Normal file
1
res/title.hgr/OOTW
Normal file
File diff suppressed because one or more lines are too long
@@ -20,21 +20,25 @@
|
||||
|
||||
GetGameDisplayName
|
||||
; in: A/Y points to game filename
|
||||
; X = #$60 if we should only look in gGamesListStore for a match
|
||||
; X = #$EA if we should also look in gSlideshowStore
|
||||
; out: C clear if game exists in gGamesListStore, and
|
||||
; A/Y points to game display name (but see hack notes below)
|
||||
; C set if game does not exist (this can happen because slideshows
|
||||
; list games that require a joystick, but the games list parser
|
||||
; filters out joystick-only games if the machine doesn't have a
|
||||
; joystick)
|
||||
stx @maybeExit
|
||||
+STAY @key
|
||||
+STAY @slideshowKey
|
||||
jsr okvs_get
|
||||
!word gGamesListStore
|
||||
@key !word $FDFD ; SMC
|
||||
bcc @exit
|
||||
; Hack to allow self-running demos that don't correspond to a game
|
||||
; filename. If the name ends in a '.', accept it unconditionally.
|
||||
; The filename is its own display name. Launching this fake game
|
||||
; will of course fail, so don't do that.
|
||||
; Hack to allow self-running demos that don't correspond to a game
|
||||
; filename. If the name ends in a '.', accept it unconditionally.
|
||||
; The filename is its own display name. Launching this fake game
|
||||
; will of course fail, so don't do that.
|
||||
+LDAY @key
|
||||
+STAY PARAM
|
||||
ldy #0
|
||||
@@ -44,6 +48,23 @@ GetGameDisplayName
|
||||
cmp #"."
|
||||
beq @forceGoodResult
|
||||
sec
|
||||
@maybeExit
|
||||
!byte $00 ; SMC
|
||||
; if the key is still not found, AND the caller said to try this, then try
|
||||
; getting the value of the current record from gSlideshowStore
|
||||
; (some games have multiple action screenshots, in which case the filename of
|
||||
; the action screenshot is not the game name, but the value is)
|
||||
jsr okvs_get
|
||||
!word gSlideshowStore
|
||||
@slideshowKey
|
||||
!word $FDFD ; SMC
|
||||
+STAY @key3
|
||||
jsr okvs_get
|
||||
!word gGamesListStore
|
||||
@key3 !word $FDFD ; SMC
|
||||
; note that the game might still not be found (C will be set by okvs_get),
|
||||
; which can happen if the game can't be played due to memory or joystick
|
||||
; requirements
|
||||
rts
|
||||
@forceGoodResult
|
||||
+LDAY @key
|
||||
|
@@ -134,9 +134,16 @@ kDFXConfFile
|
||||
+
|
||||
stx gCurrentlyVisibleSlideshowIndex
|
||||
|
||||
; try to get the human-readable name of this game from gGamesListStore
|
||||
+LDAY SAVE
|
||||
ldx #$60
|
||||
jsr GetGameDisplayName
|
||||
bcs @exit ; not found, so just skip this title
|
||||
; if game is not found (C will be set here), it means it can't be played on
|
||||
; this machine due to memory or joystick requirements, so we don't display
|
||||
; it in slideshows
|
||||
bcs @exit
|
||||
; (we don't actually use the display name in the title slideshow, we just
|
||||
; reuse the function for convenience)
|
||||
|
||||
; load DHGR screenshot at $4000/main and $4000/aux
|
||||
+LDADDR kDHGRTitleDirectory
|
||||
@@ -164,13 +171,22 @@ kDFXConfFile
|
||||
|
||||
lda KBD
|
||||
bpl +
|
||||
@actionExit
|
||||
rts
|
||||
+
|
||||
stx gCurrentlyVisibleSlideshowIndex
|
||||
|
||||
; try to get the human-readable name of this game from gGamesListStore
|
||||
; or gSlideshowStore
|
||||
+LDAY SAVE
|
||||
ldx #$EA
|
||||
jsr GetGameDisplayName
|
||||
bcs @exit ; not found, so just skip this title
|
||||
; if game is not found (C will be set here), it means it can't be played on
|
||||
; this machine due to memory or joystick requirements, so we don't display
|
||||
; it in slideshows
|
||||
bcs @actionExit
|
||||
; (we don't actually use the display name in the DHGR action slideshow, we
|
||||
; just reuse the function for convenience)
|
||||
|
||||
; load DHGR screenshot at $4000/main and $4000/aux
|
||||
+LDADDR kDHGRActionDirectory
|
||||
|
@@ -90,14 +90,22 @@ kGRFizzleFile
|
||||
+
|
||||
stx gCurrentlyVisibleSlideshowIndex
|
||||
|
||||
; try to get the human-readable name of this game from gGamesListStore
|
||||
; or gSlideshowStore
|
||||
+LDAY SAVE
|
||||
ldx #$EA
|
||||
jsr GetGameDisplayName
|
||||
bcs @actionExit ; not found, so just skip this title
|
||||
; if game is not found (C will be set here), it means it can't be played on
|
||||
; this machine due to memory or joystick requirements, so we don't display
|
||||
; it in slideshows
|
||||
bcs @actionExit
|
||||
; (we don't actually use the display name in the GR action slideshow, we
|
||||
; just reuse the function for convenience)
|
||||
|
||||
; load GR screenshot at $6000
|
||||
+LOAD_FILE kGRActionDirectory, SAVE
|
||||
|
||||
+LDADDR $6000
|
||||
+LDADDR $6400
|
||||
jmp ExecuteTransitionAndWait
|
||||
|
||||
}
|
||||
|
@@ -52,12 +52,16 @@ HGRSingle
|
||||
+
|
||||
stx gCurrentlyVisibleSlideshowIndex
|
||||
|
||||
; check if game exists in the catalog (it might not if it requires a
|
||||
; joystick and the machine doesn't have one, or if it requires 128K
|
||||
; but the machine only has 64K)
|
||||
; try to get the human-readable name of this game from gGamesListStore
|
||||
+LDAY SAVE
|
||||
ldx #$60
|
||||
jsr GetGameDisplayName
|
||||
bcs @exit ; not found, so just skip this title
|
||||
; if game is not found (C will be set here), it means it can't be played on
|
||||
; this machine due to memory or joystick requirements, so we don't display
|
||||
; it in slideshows
|
||||
bcs @exit
|
||||
; (we don't actually use the display name in the title slideshow, we just
|
||||
; reuse the function for convenience)
|
||||
|
||||
; load HGR screenshot at $4000
|
||||
+LOAD_FILE kHGRTitleDirectory, SAVE
|
||||
@@ -79,7 +83,6 @@ HGRSingle
|
||||
;------------------------------------------------------------------------------
|
||||
.HGRActionCallback
|
||||
+STAY SAVE
|
||||
+STAY @slideshowKey
|
||||
|
||||
lda KBD
|
||||
bpl +
|
||||
@@ -92,28 +95,17 @@ HGRSingle
|
||||
+LOAD_FILE kHGRActionDirectory, SAVE
|
||||
|
||||
; try to get the human-readable name of this game from gGamesListStore
|
||||
; and display it in the bottom-left corner
|
||||
; or gSlideshowStore
|
||||
+LDAY SAVE
|
||||
ldx #$EA
|
||||
jsr GetGameDisplayName
|
||||
bcc @foundname
|
||||
; if the key is not found, try getting the value of the current record from
|
||||
; gSlideshowStore and using that instead
|
||||
; (some games have multiple action screenshots, in which case the filename of
|
||||
; the action screenshot is not the game name, but the value is)
|
||||
jsr okvs_get
|
||||
!word gSlideshowStore
|
||||
@slideshowKey
|
||||
!word $FDFD ; SMC
|
||||
+STAY @key3
|
||||
jsr okvs_get
|
||||
!word gGamesListStore
|
||||
@key3 !word $FDFD ; SMC
|
||||
bcs @actionExit ; game still not found, bail
|
||||
; (could happen if game can't be played
|
||||
; due to memory or joystick requirements)
|
||||
@foundname
|
||||
; if game name is not found (C will be set here), it means the game
|
||||
; can't be played due to memory or joystick requirements, so we hide
|
||||
; it from slideshows
|
||||
bcs @actionExit
|
||||
|
||||
; found the game, display its name in the bottom-left corner
|
||||
+STAY SAVE
|
||||
@drawname
|
||||
ldx #0
|
||||
stx HTAB
|
||||
ldx #22
|
||||
|
@@ -180,6 +180,7 @@ RunAttractModule
|
||||
; language card or auxiliary memory.
|
||||
|
||||
+LDAY @key
|
||||
ldx #$60
|
||||
jsr GetGameDisplayName
|
||||
bcc + ; if game doesn't exist, skip the demo
|
||||
rts
|
||||
|
Reference in New Issue
Block a user