mirror of
https://github.com/a2-4am/4cade.git
synced 2024-12-25 13:33:13 +00:00
load decrunch on-the-fly
This commit is contained in:
parent
b27770246e
commit
bd85b43606
2
Makefile
2
Makefile
@ -31,7 +31,7 @@ dsk: md asm compress
|
||||
$(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; do $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "$$f" >>build/log; done
|
||||
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; 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
|
||||
|
BIN
res/DECRUNCH
Normal file
BIN
res/DECRUNCH
Normal file
Binary file not shown.
@ -9,3 +9,4 @@ TITLE=Type(06),AuxType(2000),Access(C3)
|
||||
HELP=Type(06),AuxType(2000),Access(C3)
|
||||
CREDITS=Type(04),AuxType(8000),Access(C3)
|
||||
HELPTEXT=Type(04),AuxType(8000),Access(C3)
|
||||
DECRUNCH=Type(06),AuxType(0200),Access(C3)
|
||||
|
@ -110,8 +110,6 @@ ResetVector ; 6 bytes, copied to $100
|
||||
!source "src/glue.prorwts2.a"
|
||||
!source "src/ui.common.a"
|
||||
|
||||
!source "src/exodecrunch.a"
|
||||
|
||||
; add new files above here so ui.wait stays last
|
||||
|
||||
!source "src/ui.attract.dhgr.a" ; \-- execution falls through
|
||||
|
@ -9,7 +9,7 @@
|
||||
; D000..E8A7 - persistent data structures (per-game cheat categories,
|
||||
; gGlobalPrefsStore, gGamesListStore)
|
||||
; ...unused...
|
||||
; EA96..FFF9 - main program code
|
||||
; EB91..FFF9 - main program code
|
||||
; FFFA..FFFF - NMI, reset, IRQ vectors
|
||||
;
|
||||
; LC RAM BANK 2
|
||||
|
@ -1,6 +1,9 @@
|
||||
; This source code is altered and is not the original version found on
|
||||
; the Exomizer homepage.
|
||||
; It contains modifications made by qkumba to work with ACME assembler.
|
||||
!cpu 6502
|
||||
!to "DECRUNCH",plain
|
||||
*=$200
|
||||
|
||||
;
|
||||
; Copyright (c) 2002 - 2018 Magnus Lind.
|
||||
@ -118,25 +121,8 @@ skip:
|
||||
!MACRO mac_get_bits {
|
||||
jsr get_bits
|
||||
}
|
||||
get_bits:
|
||||
adc #$80 ; needs c=0, affects v
|
||||
asl
|
||||
bpl gb_skip
|
||||
gb_next:
|
||||
asl zp_bitbuf
|
||||
bne gb_ok
|
||||
+mac_refill_bits
|
||||
gb_ok:
|
||||
rol
|
||||
bmi gb_next
|
||||
gb_skip:
|
||||
bvs gb_get_hi
|
||||
rts
|
||||
gb_get_hi:
|
||||
sec
|
||||
sta zp_bits_hi
|
||||
jmp get_crunched_byte
|
||||
}
|
||||
|
||||
; -------------------------------------------------------------------
|
||||
; no code below this comment has to be modified in order to generate
|
||||
; a working decruncher of this source file.
|
||||
@ -390,6 +376,26 @@ tabl_bit:
|
||||
; end of decruncher
|
||||
; -------------------------------------------------------------------
|
||||
|
||||
!IFNDEF INLINE_GET_BITS {
|
||||
get_bits:
|
||||
adc #$80 ; needs c=0, affects v
|
||||
asl
|
||||
bpl gb_skip
|
||||
gb_next:
|
||||
asl zp_bitbuf
|
||||
bne gb_ok
|
||||
+mac_refill_bits
|
||||
gb_ok:
|
||||
rol
|
||||
bmi gb_next
|
||||
gb_skip:
|
||||
bvs gb_get_hi
|
||||
rts
|
||||
gb_get_hi:
|
||||
sec
|
||||
sta zp_bits_hi
|
||||
; fall through
|
||||
}
|
||||
get_crunched_byte:
|
||||
lda _byte_lo
|
||||
bne _byte_skip_hi
|
||||
@ -406,7 +412,27 @@ _byte_hi = * + 2
|
||||
; this 156 (204) byte table area may be relocated. It may also be
|
||||
; clobbered by other data between decrunches.
|
||||
; -------------------------------------------------------------------
|
||||
decrunch_table=$200;;:
|
||||
decrunch_table:
|
||||
!warn "entry=",*
|
||||
pla
|
||||
tay
|
||||
pla
|
||||
tax
|
||||
clc
|
||||
pla
|
||||
adc #$F8
|
||||
sta _byte_lo
|
||||
pla
|
||||
sta zp_bitbuf
|
||||
pla
|
||||
adc zp_bitbuf
|
||||
sta _byte_hi
|
||||
txa
|
||||
pha
|
||||
tya
|
||||
pha
|
||||
jmp decrunch
|
||||
|
||||
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
@ -149,3 +149,7 @@ kGRFizzleFile
|
||||
kSFXFizzleFile
|
||||
!byte 10
|
||||
!raw "SHR.FIZZLE"
|
||||
|
||||
kDecrunchFile
|
||||
!byte 8
|
||||
!raw "DECRUNCH"
|
||||
|
@ -315,11 +315,9 @@ RedrawForDHGR
|
||||
; $00A7..$00A8 clobbered by decompressor
|
||||
; $00AE..$00AF clobbered by decompressor
|
||||
; $00FC..$00FF clobbered by decompressor
|
||||
; $0200..$02CB clobbered by decompressor
|
||||
; $0200..$03CB clobbered by decompressor
|
||||
;------------------------------------------------------------------------------
|
||||
DecompressDHGR
|
||||
sta $C003
|
||||
sta $C005
|
||||
jsr DecompressHGR
|
||||
sta $C004
|
||||
lda #$60
|
||||
|
@ -170,7 +170,7 @@ HGRActionCallback
|
||||
; $00A7..$00A8 clobbered by decompressor
|
||||
; $00AE..$00AF clobbered by decompressor
|
||||
; $00FC..$00FF clobbered by decompressor
|
||||
; $0200..$02CB clobbered by decompressor
|
||||
; $0200..$03CB clobbered by decompressor
|
||||
;------------------------------------------------------------------------------
|
||||
DecompressHGR
|
||||
lda #$3F
|
||||
@ -179,12 +179,25 @@ DecompressCommon
|
||||
pha
|
||||
jsr SwitchToBank2
|
||||
jsr EnableAccelerator
|
||||
clc
|
||||
lda sizehi2
|
||||
pha
|
||||
lda sizelo2
|
||||
adc #$F8
|
||||
sta _byte_lo
|
||||
pla
|
||||
adc sizehi2
|
||||
sta _byte_hi
|
||||
jsr decrunch
|
||||
pha
|
||||
lda #>(@loaddecrunch - 1)
|
||||
pha
|
||||
lda #<(@loaddecrunch - 1)
|
||||
pha
|
||||
lda auxreq
|
||||
bne +
|
||||
jmp LoadFile ; load decompression code to $200
|
||||
+ jmp LoadAuxFile ; load decompression code to $200/aux
|
||||
@loaddecrunch
|
||||
!word kRootDirectory
|
||||
!word kDecrunchFile
|
||||
!word $200
|
||||
ldx auxreq
|
||||
sta $C002,x
|
||||
sta $C004,x
|
||||
jsr $314 ; decrunch entry
|
||||
jsr SwitchToBank2
|
||||
jmp DisableAcceleratorAndSwitchToBank1
|
||||
|
@ -151,7 +151,7 @@ BlankSHR
|
||||
; $00A7..$00A8 clobbered by decompressor
|
||||
; $00AE..$00AF clobbered by decompressor
|
||||
; $00FC..$00FF clobbered by decompressor
|
||||
; $0200..$02CB clobbered by decompressor
|
||||
; $0200..$03CB clobbered by decompressor
|
||||
;------------------------------------------------------------------------------
|
||||
DecompressSHR
|
||||
lda #$1F
|
||||
|
@ -56,6 +56,7 @@ for %%q in (res\*.CONF) do if "%%q" neq "res\PREFS.CONF" %CADIUS% ADDFILE "build
|
||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\PREFS.CONF" >>build\log
|
||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\CREDITS" >>build\log
|
||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\HELPTEXT" >>build\log
|
||||
%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "res\DECRUNCH" >>build\log
|
||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/TITLE.HGR" "res\TITLE.HGR" >>build\log
|
||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/TITLE.DHGR" "res\TITLE.DHGR" >>build\log
|
||||
%CADIUS% ADDFOLDER "build\%DISK%" "/%VOLUME%/ACTION.HGR" "res\ACTION.HGR" >>build\log
|
||||
|
Loading…
Reference in New Issue
Block a user