mirror of
https://github.com/a2-4am/4cade.git
synced 2025-02-26 22:31:11 +00:00
merge gamehelp into one file
must rebuild prelaunch\RR, too
This commit is contained in:
parent
078615eb9d
commit
4e043a314b
10
Makefile
10
Makefile
@ -31,7 +31,9 @@ dsk: asm
|
|||||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "build/LAUNCHER.SYSTEM" >>build/log
|
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "build/LAUNCHER.SYSTEM" >>build/log
|
||||||
rsync -aP res/PREFS.CONF build/PREFS.CONF >> build/log
|
rsync -aP res/PREFS.CONF build/PREFS.CONF >> build/log
|
||||||
bin/padto.sh 512 build/PREFS.CONF >>build/log
|
bin/padto.sh 512 build/PREFS.CONF >>build/log
|
||||||
for f in res/TITLE res/COVER res/HELP res/GAMES.CONF res/ATTRACT.CONF res/FX.CONF res/DFX.CONF build/PREFS.CONF res/CREDITS res/HELPTEXT res/DECRUNCH res/JOYSTICK res/Finder.Data res/Finder.Root; do $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "$$f" >>build/log; done
|
bin/buildhelpful.sh "build/HELPFUL" "build/helper.inc" >>build/log
|
||||||
|
$(ACME) -r build/helper.lst src/helper/helper.a >>build/log
|
||||||
|
for f in res/TITLE res/COVER res/HELP res/GAMES.CONF res/ATTRACT.CONF res/FX.CONF res/DFX.CONF build/PREFS.CONF res/CREDITS res/HELPTEXT build/HELPFER build/HELPFUL res/DECRUNCH res/JOYSTICK res/Finder.Data res/Finder.Root; do $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "$$f" >>build/log; done
|
||||||
bin/buildfileinfo.sh res/TITLE.HGR "06" "4000" >>build/log
|
bin/buildfileinfo.sh res/TITLE.HGR "06" "4000" >>build/log
|
||||||
bin/buildfileinfo.sh res/TITLE.DHGR "06" "4000" >>build/log
|
bin/buildfileinfo.sh res/TITLE.DHGR "06" "4000" >>build/log
|
||||||
bin/buildfileinfo.sh res/ACTION.HGR "06" "3FF8" >>build/log
|
bin/buildfileinfo.sh res/ACTION.HGR "06" "3FF8" >>build/log
|
||||||
@ -50,10 +52,6 @@ dsk: asm
|
|||||||
for f in build/X/*; do $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/X/$$(basename $$f)" "$$f"; done >>build/log
|
for f in build/X/*; do $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/X/$$(basename $$f)" "$$f"; done >>build/log
|
||||||
bin/buildfileinfo.sh build/PRELAUNCH "06" "0106" >>build/log
|
bin/buildfileinfo.sh build/PRELAUNCH "06" "0106" >>build/log
|
||||||
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/PRELAUNCH" "build/PRELAUNCH" >>build/log
|
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/PRELAUNCH" "build/PRELAUNCH" >>build/log
|
||||||
rsync -aP --exclude=STANDARD res/GAMEHELP build/ >>build/log
|
|
||||||
for f in res/TITLE.HGR/* res/TITLE.DHGR/*; do rsync --ignore-existing res/GAMEHELP/STANDARD build/GAMEHELP/$$(basename $$f); done
|
|
||||||
bin/buildfileinfo.sh build/GAMEHELP "04" "8000" >>build/log
|
|
||||||
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/GAMEHELP" "build/GAMEHELP" >>build/log
|
|
||||||
bin/changebootloader.sh build/"$(DISK)" build/proboothd
|
bin/changebootloader.sh build/"$(DISK)" build/proboothd
|
||||||
|
|
||||||
asm: asmlauncher asmfx asmprelaunch asmproboot
|
asm: asmlauncher asmfx asmprelaunch asmproboot
|
||||||
@ -86,7 +84,7 @@ mount: dsk
|
|||||||
osascript bin/V2Make.scpt "`pwd`" bin/4cade.vii build/"$(DISK)"
|
osascript bin/V2Make.scpt "`pwd`" bin/4cade.vii build/"$(DISK)"
|
||||||
|
|
||||||
md:
|
md:
|
||||||
mkdir -p build/X build/FX build/PRELAUNCH build/GAMEHELP
|
mkdir -p build/X build/FX build/PRELAUNCH
|
||||||
touch build/log
|
touch build/log
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
98
bin/buildhelpful.js
Normal file
98
bin/buildhelpful.js
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
a = new ActiveXObject("scripting.filesystemobject")
|
||||||
|
b = a.opentextfile("res\\GAMES.CONF")
|
||||||
|
|
||||||
|
entries = []
|
||||||
|
|
||||||
|
while (!b.atendofstream)
|
||||||
|
{
|
||||||
|
c = b.readline()
|
||||||
|
d = c.indexOf("#")
|
||||||
|
|
||||||
|
if (d >= 0)
|
||||||
|
{
|
||||||
|
c = c.substr(0, d)
|
||||||
|
}
|
||||||
|
|
||||||
|
d = c.indexOf("=")
|
||||||
|
|
||||||
|
if (d >= 0)
|
||||||
|
{
|
||||||
|
c = c.substr(0, d)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c.indexOf("[") >= 0)
|
||||||
|
{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
c = c.substr(5)
|
||||||
|
|
||||||
|
if (c.length > 0)
|
||||||
|
{
|
||||||
|
entries.push(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
entries.sort()
|
||||||
|
y = "res\\GAMEHELP\\"
|
||||||
|
s = y + "STANDARD"
|
||||||
|
f = a.createtextfile(WScript.Arguments(0))
|
||||||
|
f.write(entry = a.opentextfile(s).readall().replace(/\r\n/g, "\n"))
|
||||||
|
help_off = entry.length
|
||||||
|
|
||||||
|
letter = "@" //"A" - 1
|
||||||
|
header_low = "header_low !byte "
|
||||||
|
header_high = "header_high !byte "
|
||||||
|
groups = "\n; format: Pascal string, big-endian 24-bit file offset in helptext file\n"
|
||||||
|
first = true
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
while (i < entries.length)
|
||||||
|
{
|
||||||
|
if (first)
|
||||||
|
{
|
||||||
|
letter = String.fromCharCode(letter.charCodeAt(0) + 1)
|
||||||
|
group = "group" + letter
|
||||||
|
header_low += "<" + group + ", "
|
||||||
|
header_high += ">" + group + ", "
|
||||||
|
|
||||||
|
groups += group + "\n"
|
||||||
|
first = false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entries[i].charAt(0) == letter)
|
||||||
|
{
|
||||||
|
c = 0
|
||||||
|
|
||||||
|
if (a.fileexists(y + entries[i]))
|
||||||
|
{
|
||||||
|
c = help_off
|
||||||
|
f.write(entry = a.opentextfile(y + entries[i]).readall().replace(/\r\n/g, "\n"))
|
||||||
|
help_off += entry.length
|
||||||
|
}
|
||||||
|
|
||||||
|
groups += "!byte " + format8(entries[i].length) + "\n" + "!text \"" + entries[i] + "\"\n" + "!byte " + format24(c) + "\n\n"
|
||||||
|
++i
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
first = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f = a.createtextfile(WScript.Arguments(1))
|
||||||
|
f.writeline(header_low.substr(0, header_low.length - 2))
|
||||||
|
f.writeline(header_high.substr(0, header_high.length - 2))
|
||||||
|
f.write(groups)
|
||||||
|
|
||||||
|
function format8(str)
|
||||||
|
{
|
||||||
|
val8 = parseInt(str)
|
||||||
|
return "$" + ((val8 < 16) ? "0" : "") + val8.toString(16)
|
||||||
|
}
|
||||||
|
|
||||||
|
function format24(str)
|
||||||
|
{
|
||||||
|
val24 = parseInt(str)
|
||||||
|
return format8(Math.floor(val24 / (256*256))) + ", " + format8(Math.floor(val24 / 256) % 256) + ", " + format8(val24 % 256)
|
||||||
|
}
|
@ -7,7 +7,7 @@
|
|||||||
;
|
;
|
||||||
; LC RAM BANK 1
|
; LC RAM BANK 1
|
||||||
; D000..E789 - persistent data structures (gGlobalPrefsStore, gGamesListStore)
|
; D000..E789 - persistent data structures (gGlobalPrefsStore, gGamesListStore)
|
||||||
; E93F..FFF1 - main program code
|
; E941..FFF1 - main program code
|
||||||
; FFF2..FFF9 - API functions and global constants available for main program
|
; FFF2..FFF9 - API functions and global constants available for main program
|
||||||
; code, prelaunchers, transition effects, &c.
|
; code, prelaunchers, transition effects, &c.
|
||||||
; (Wait/UnwaitForVBL, MockingboardStuff, MachineStatus)
|
; (Wait/UnwaitForVBL, MockingboardStuff, MachineStatus)
|
||||||
@ -151,7 +151,7 @@ iProDOS_enter = $D678
|
|||||||
LoadFileDirect = $DB01
|
LoadFileDirect = $DB01
|
||||||
iAuxReq = $DB27
|
iAuxReq = $DB27
|
||||||
launchpatch = $D616
|
launchpatch = $D616
|
||||||
iAddToPath = $FEC3
|
iAddToPath = $FEC6
|
||||||
itraverse = $D8E0
|
itraverse = $D8E0
|
||||||
ldrhi = $56
|
ldrhi = $56
|
||||||
namlo = $57
|
namlo = $57
|
||||||
|
89
src/helper/helper.a
Normal file
89
src/helper/helper.a
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
;license:MIT
|
||||||
|
;(c) 2021 by qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/HELPER",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/constants.a" ; no code in these
|
||||||
|
sizelo = $52
|
||||||
|
sizehi = $53
|
||||||
|
reqcmd = $54
|
||||||
|
ldrlo = $55
|
||||||
|
ldrhi = $56
|
||||||
|
bleftlo = $60
|
||||||
|
blefthi = $61
|
||||||
|
cmdseek = 0
|
||||||
|
cmdread = 1
|
||||||
|
|
||||||
|
ldy #1
|
||||||
|
lda (SRC), y
|
||||||
|
tax
|
||||||
|
lda header_high - $41, x
|
||||||
|
sta DEST + 1
|
||||||
|
lda header_low - $41, x
|
||||||
|
sta DEST
|
||||||
|
dey
|
||||||
|
lda (SRC), y
|
||||||
|
sta SAVE
|
||||||
|
-- ldy SAVE
|
||||||
|
- lda (SRC), y
|
||||||
|
cmp (DEST), y
|
||||||
|
beq +
|
||||||
|
ldy #0
|
||||||
|
lda (DEST), y
|
||||||
|
clc
|
||||||
|
adc #4
|
||||||
|
adc DEST
|
||||||
|
sta DEST
|
||||||
|
bcc --
|
||||||
|
inc DEST + 1
|
||||||
|
bcs -- ; always taken
|
||||||
|
+ dey
|
||||||
|
bpl -
|
||||||
|
ldx #2
|
||||||
|
ldy SAVE
|
||||||
|
- iny
|
||||||
|
lda (DEST), y
|
||||||
|
sta offset, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
jsr $bf00 ; yes, ProDOS abstraction
|
||||||
|
!byte $c8
|
||||||
|
!word c8_parms
|
||||||
|
jsr $bf00
|
||||||
|
!byte $ce
|
||||||
|
!word ce_parms
|
||||||
|
jsr $bf00
|
||||||
|
!byte $ca
|
||||||
|
!word ca_parms
|
||||||
|
jsr $bf00
|
||||||
|
!byte $cc
|
||||||
|
!word cc_parms
|
||||||
|
lda $c08b
|
||||||
|
lda $c08b
|
||||||
|
rts
|
||||||
|
|
||||||
|
c8_parms
|
||||||
|
!byte 3
|
||||||
|
!word filename
|
||||||
|
!word $d000
|
||||||
|
|
||||||
|
ce_parms
|
||||||
|
!byte 2
|
||||||
|
!byte 1
|
||||||
|
offset !byte 0, 0, 0
|
||||||
|
|
||||||
|
ca_parms
|
||||||
|
!byte 4
|
||||||
|
cc_parms
|
||||||
|
!byte 1
|
||||||
|
!word $8000
|
||||||
|
!word $400
|
||||||
|
|
||||||
|
filename
|
||||||
|
!byte (filename_e-filename)-1
|
||||||
|
!text "HELPFUL"
|
||||||
|
filename_e
|
||||||
|
|
||||||
|
!source "build/helper.inc"
|
@ -106,10 +106,6 @@ kPrelaunchDirectory
|
|||||||
!byte 10
|
!byte 10
|
||||||
!raw "PRELAUNCH/"
|
!raw "PRELAUNCH/"
|
||||||
|
|
||||||
kGameHelpDirectory
|
|
||||||
!byte 9
|
|
||||||
!raw "GAMEHELP/"
|
|
||||||
|
|
||||||
kStandardPrelaunch
|
kStandardPrelaunch
|
||||||
!byte 8
|
!byte 8
|
||||||
!raw "STANDARD"
|
!raw "STANDARD"
|
||||||
@ -142,6 +138,10 @@ kHelpTextFile
|
|||||||
!byte 8
|
!byte 8
|
||||||
!raw "HELPTEXT"
|
!raw "HELPTEXT"
|
||||||
|
|
||||||
|
kGameHelpFile
|
||||||
|
!byte 6
|
||||||
|
!raw "HELPER"
|
||||||
|
|
||||||
kTitleFile
|
kTitleFile
|
||||||
!byte 5
|
!byte 5
|
||||||
!raw "TITLE"
|
!raw "TITLE"
|
||||||
|
@ -52,11 +52,12 @@ Credits
|
|||||||
Help
|
Help
|
||||||
jsr GetGameToLaunch
|
jsr GetGameToLaunch
|
||||||
bcs @global
|
bcs @global
|
||||||
+ST16 @fname
|
+ST16 SRC
|
||||||
jsr LoadFile
|
jsr LoadFile
|
||||||
!word kGameHelpDirectory
|
!word kRootDirectory
|
||||||
@fname !word $FDFD ; SMC
|
!word kGameHelpFile
|
||||||
!word $8000
|
!word $6000
|
||||||
|
jsr $6000
|
||||||
clc
|
clc
|
||||||
bcc -- ; always branches
|
bcc -- ; always branches
|
||||||
@global jsr LoadFile ; load help text into $8000
|
@global jsr LoadFile ; load help text into $8000
|
||||||
|
12
winmake.bat
12
winmake.bat
@ -59,6 +59,10 @@ cscript /nologo bin\dumpcr.js "build\CREDITS"
|
|||||||
cscript /nologo bin\rsync.js "res\HELPTEXT" "build\" >>build\log
|
cscript /nologo bin\rsync.js "res\HELPTEXT" "build\" >>build\log
|
||||||
cscript /nologo bin\dumpcr.js "build\HELPTEXT"
|
cscript /nologo bin\dumpcr.js "build\HELPTEXT"
|
||||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\HELPTEXT" >>build\log
|
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\HELPTEXT" >>build\log
|
||||||
|
cscript /nologo bin\buildhelpful.js "build\HELPFUL" "build\helper.inc" >>build\log
|
||||||
|
%ACME% -r build\helper.lst src\helper\helper.a >>build\log
|
||||||
|
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\HELPER" >>build\log
|
||||||
|
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\HELPFUL" >>build\log
|
||||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\DECRUNCH" >>build\log
|
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\DECRUNCH" >>build\log
|
||||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\JOYSTICK" >>build\log
|
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\JOYSTICK" >>build\log
|
||||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\Finder.Data" >>build\log
|
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\Finder.Data" >>build\log
|
||||||
@ -86,13 +90,6 @@ for %%q in (res\dsk\*.po) do %CADIUS% EXTRACTVOLUME "%%q" build\X\ >>build\log
|
|||||||
1>nul 2>nul del /s build\X\.DS_Store build\X\PRODOS build\X\LOADER.SYSTEM
|
1>nul 2>nul del /s build\X\.DS_Store build\X\PRODOS build\X\LOADER.SYSTEM
|
||||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/X" "build\X" >>build\log
|
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/X" "build\X" >>build\log
|
||||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/PRELAUNCH" "build\PRELAUNCH" >>build\log
|
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/PRELAUNCH" "build\PRELAUNCH" >>build\log
|
||||||
cscript /nologo bin\rsync.js "res\GAMEHELP\*" "build\GAMEHELP" >>build\log
|
|
||||||
for %%q in (res\title.hgr\*) do if not exist build\GAMEHELP\%%~nxq 1>nul copy build\GAMEHELP\STANDARD build\GAMEHELP\%%~nxq
|
|
||||||
for %%q in (res\title.dhgr\*) do if not exist build\GAMEHELP\%%~nxq 1>nul copy build\GAMEHELP\STANDARD build\GAMEHELP\%%~nxq
|
|
||||||
1>nul 2>nul del /s build\GAMEHELP\STANDARD
|
|
||||||
cscript /nologo bin\dumpcr.js "build\GAMEHELP\*"
|
|
||||||
cscript /nologo bin\buildfileinfo.js build\GAMEHELP "06" "6000" >>build\log
|
|
||||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/GAMEHELP" "build\GAMEHELP" >>build\log
|
|
||||||
cscript /nologo bin\changebootloader.js "build\%DISK%" build\proboothd
|
cscript /nologo bin\changebootloader.js "build\%DISK%" build\proboothd
|
||||||
goto :EOF
|
goto :EOF
|
||||||
)
|
)
|
||||||
@ -105,7 +102,6 @@ goto :EOF
|
|||||||
2>nul md build\X
|
2>nul md build\X
|
||||||
2>nul md build\FX
|
2>nul md build\FX
|
||||||
2>nul md build\PRELAUNCH
|
2>nul md build\PRELAUNCH
|
||||||
2>nul md build\GAMEHELP
|
|
||||||
goto :EOF
|
goto :EOF
|
||||||
|
|
||||||
:asmlauncher
|
:asmlauncher
|
||||||
|
Loading…
x
Reference in New Issue
Block a user