# pip3 install --user intelhex
HEX2BIN=hex2bin.py
-LOAD_ADDR=0xa000
+END_ADDR=0xa000
LZSS_LOADER=0x800
RECRACK_LOADER=0x9ded
.PHONY: all
all: \
-star_blazer_pack.a2bin \
+star_blazer_pack_fwd.a2bin \
star_blazer.ihx \
star_blazer.a2bin \
star_blazer_dejunked0.a2bin \
star_blazer_dejunked1.a2bin \
star_blazer_recrack_lzss.a2bin
-star_blazer_pack.a2bin: lzss_unpack.bin star_blazer.ihx
- ./a2_pack.py ${LOAD_ADDR} $^ $@
+star_blazer_pack_fwd.a2bin: lzss_unpack_fwd.bin star_blazer.ihx
+ ./a2_pack_fwd.py ${END_ADDR} $^ $@
-lzss_unpack.bin: lzss_unpack.ihx
+lzss_unpack_fwd.bin: lzss_unpack_fwd.ihx
${HEX2BIN} $< $@
-lzss_unpack.ihx: lzss_unpack.rel
+lzss_unpack_fwd.ihx: lzss_unpack_fwd.rel
${ASLINK} -n -m -u -i -b text=0 $@ $^
-lzss_unpack.rel: lzss_unpack.asm
+lzss_unpack_fwd.rel: lzss_unpack_fwd.asm
${AS6500} -l -o $<
star_blazer.ihx: star_blazer.a2bin star_blazer_segments.txt
MAX_LEN = (1 << LEN_BITS1) + 1 # length codes are 2..MAX_LEN
if len(sys.argv) < 5:
- print(f'usage: {sys.argv[0]:s} end_addr lzss_unpack.bin in.ihx out.a2bin')
+ print(f'usage: {sys.argv[0]:s} end_addr lzss_unpack_fwd.bin in.ihx out.a2bin')
sys.exit(EXIT_FAILURE)
end_addr = int(sys.argv[1], 0)
-lzss_unpack_bin = sys.argv[2]
+lzss_unpack_fwd_bin = sys.argv[2]
in_ihx = sys.argv[3]
out_a2bin = sys.argv[4]
-with open(lzss_unpack_bin, 'rb') as fin:
- lzss_unpack = list(fin.read())
+with open(lzss_unpack_fwd_bin, 'rb') as fin:
+ lzss_unpack_fwd = list(fin.read())
def lzss_pack(dest, bin):
heads = {}
if len(sections[SECTION_UNPACKER].data) == 0:
sections[SECTION_UNPACKER].data.extend(
- lzss_unpack[::-1]
+ lzss_unpack_fwd[::-1]
)
addr2 += 5 - 0x100
[
0xa9, 0x00, # lda #<addr2
0xa0, 0x00, # ldy #>addr2
- 0x20, 0x00, 0x00, # jsr lzss_unpack
+ 0x20, 0x00, 0x00, # jsr lzss_unpack_fwd
][::-1]
)
sections[SECTION_LOADER].fixups.extend(