mirror of
https://github.com/a2-4am/4cade.git
synced 2025-02-26 07:29:08 +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
|
||||
rsync -aP res/PREFS.CONF 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.DHGR "06" "4000" >>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
|
||||
bin/buildfileinfo.sh build/PRELAUNCH "06" "0106" >>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
|
||||
|
||||
asm: asmlauncher asmfx asmprelaunch asmproboot
|
||||
@ -86,7 +84,7 @@ mount: dsk
|
||||
osascript bin/V2Make.scpt "`pwd`" bin/4cade.vii build/"$(DISK)"
|
||||
|
||||
md:
|
||||
mkdir -p build/X build/FX build/PRELAUNCH build/GAMEHELP
|
||||
mkdir -p build/X build/FX build/PRELAUNCH
|
||||
touch build/log
|
||||
|
||||
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
|
||||
; 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
|
||||
; code, prelaunchers, transition effects, &c.
|
||||
; (Wait/UnwaitForVBL, MockingboardStuff, MachineStatus)
|
||||
@ -151,7 +151,7 @@ iProDOS_enter = $D678
|
||||
LoadFileDirect = $DB01
|
||||
iAuxReq = $DB27
|
||||
launchpatch = $D616
|
||||
iAddToPath = $FEC3
|
||||
iAddToPath = $FEC6
|
||||
itraverse = $D8E0
|
||||
ldrhi = $56
|
||||
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
|
||||
!raw "PRELAUNCH/"
|
||||
|
||||
kGameHelpDirectory
|
||||
!byte 9
|
||||
!raw "GAMEHELP/"
|
||||
|
||||
kStandardPrelaunch
|
||||
!byte 8
|
||||
!raw "STANDARD"
|
||||
@ -142,6 +138,10 @@ kHelpTextFile
|
||||
!byte 8
|
||||
!raw "HELPTEXT"
|
||||
|
||||
kGameHelpFile
|
||||
!byte 6
|
||||
!raw "HELPER"
|
||||
|
||||
kTitleFile
|
||||
!byte 5
|
||||
!raw "TITLE"
|
||||
|
@ -52,11 +52,12 @@ Credits
|
||||
Help
|
||||
jsr GetGameToLaunch
|
||||
bcs @global
|
||||
+ST16 @fname
|
||||
+ST16 SRC
|
||||
jsr LoadFile
|
||||
!word kGameHelpDirectory
|
||||
@fname !word $FDFD ; SMC
|
||||
!word $8000
|
||||
!word kRootDirectory
|
||||
!word kGameHelpFile
|
||||
!word $6000
|
||||
jsr $6000
|
||||
clc
|
||||
bcc -- ; always branches
|
||||
@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\dumpcr.js "build\HELPTEXT"
|
||||
%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\JOYSTICK" >>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
|
||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/X" "build\X" >>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
|
||||
goto :EOF
|
||||
)
|
||||
@ -105,7 +102,6 @@ goto :EOF
|
||||
2>nul md build\X
|
||||
2>nul md build\FX
|
||||
2>nul md build\PRELAUNCH
|
||||
2>nul md build\GAMEHELP
|
||||
goto :EOF
|
||||
|
||||
:asmlauncher
|
||||
|
Loading…
x
Reference in New Issue
Block a user