add Anchorman

This commit is contained in:
4am 2024-04-04 22:15:21 -04:00
parent 09fa5e6c07
commit c9f7f11e69
73 changed files with 268 additions and 58 deletions

Binary file not shown.

Binary file not shown.

BIN
res/ACTION.HGR/ANCHORMAN Normal file

Binary file not shown.

BIN
res/ACTION.HGR/ANCHORMAN2 Normal file

Binary file not shown.

9
res/ATTRACT/ANCHORMAN Normal file
View File

@ -0,0 +1,9 @@
#
# Attract mode for ANCHORMAN
# This file is automatically generated
#
ANCHORMAN2=A
ANCHORMAN=A
[eof]

Binary file not shown.

Binary file not shown.

View File

@ -23,6 +23,7 @@
#
11100,SLICKS=8bit-Slicks
01000,ANCHORMAN=Anchorman
01100,ADVANCE=Advance to Boardwalk
00001,AUTOBAHN=Autobahn
01100,BATTLE.CHESS=Battle Chess

View File

@ -5,11 +5,13 @@
CHAMP.WRESTLE
CHAMP.BSKETBAL2=CHAMP.BSKETBALL
BLACK.BELT
ANCHORMAN2=ANCHORMAN
BOP.N.WRESTLE
CHECKERS
AUTOBAHN
BLACK.BELT2=BLACK.BELT
CHAMP.BSKETBALL
ANCHORMAN
CHAMP.WRESTLE2=CHAMP.WRESTLE
CMPTR.FOOSBALL
BOP.N.WRESTLE2=BOP.N.WRESTLE

View File

@ -3,6 +3,7 @@
#
BLACK.BELT
ANCHORMAN
CHAMP.BSKETBALL
BOP.N.WRESTLE
AUTOBAHN

Binary file not shown.

BIN
res/TITLE.HGR/ANCHORMAN Normal file

Binary file not shown.

Binary file not shown.

View File

@ -5,6 +5,7 @@
### New games
- Advance to Boardwalk
- Anchorman
- Checkers
- Fox & Geese
- Go

View File

@ -0,0 +1,60 @@
# https://sourceforge.net/projects/acme-crossass/
ACME=acme
# https://github.com/mach-kernel/cadius
CADIUS=cadius
# note: flags set to decrunch backwards
EXOMIZER=exomizer mem -lnone -P23 -q
BUILDDIR=build
DISKVOLUME=ANCHORMAN
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
EXE=$(BUILDDIR)/ANCHORMAN\#064800
COMPRESSED1=src/AUXOBJ.6000.87FF.X
COMPRESSED2=src/OBJ.0800.47FF.X
COMPRESSED3=src/OBJ.6000.B8FF.X
SOURCES=$(wildcard src/*.a) $(COMPRESSED1) $(COMPRESSED2) $(COMPRESSED3)
RES=$(wildcard res/*) $(wildcard ../common/res/*)
BUILDDISK=$(BUILDDIR)/$(DISKVOLUME).po
.PHONY: clean mount all
$(BUILDDISK): $(EXE) $(LOADER) $(RES)
$(LOADER): $(SOURCES) | $(BUILDDIR)
$(ACME) src/loader.a
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(LOADER)" -C
@touch "$@"
$(EXE): $(SOURCES) | $(BUILDDIR)
$(ACME) src/anchorman.a
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
@touch "$@"
$(RES): $(BUILDDIR)
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
@touch "$@"
$(COMPRESSED1):
$(EXOMIZER) src/AUXOBJ.6000.87FF@0x0800 -o "$@"
$(COMPRESSED2):
$(EXOMIZER) src/OBJ.0800.47FF@0x0800 -o "$@"
$(COMPRESSED3):
$(EXOMIZER) src/OBJ.6000.B8FF@0x6000 -o "$@"
mount: $(BUILDDISK)
@open "$(BUILDDISK)"
clean:
rm -rf "$(BUILDDIR)"
$(BUILDDIR):
mkdir -p "$@"
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C
all: clean mount
.NOTPARALLEL:

View File

@ -0,0 +1,29 @@
requires 128K even though single hi-res
- SYSTEM file -> $2000..$47FF/main
jumps to $3000 then loads from disk into mainmem:
- ANCHB4FTO67 -> $9F00..$B8FF/main
- ANCHB76 -> $9600..$9FFF/main (slight overlap)
- ANCHB2 -> $2000..$2FFF/main (clobbers part of SYSTEM file)
- ANCHB3 -> $0800..$13FF/main
- ANCHB4 -> $1400..$1FFF/main
ends up with $0800..$47FF/main and $9600..$B8FF/main
then calls $3100 to move to auxmem
- $2000..$2FFF/main to $6000..$6FFF/aux
- $0800..$1FFF/main to $7000..$87FF/aux
ends up with $3000..$47FF/main, $9600..$B8FF/main, and $6000..$87FF/aux
then jumps to $3180 to load more from disk into mainmem
- ANCHB8TO20 -> $0800..$1FFF
- ANCHB6 -> $6000..$6FFF
- ANCHB7 -> $7000..$7FFF
- B80T96 -> $8000..$95FF
ends up with $0800..$47FF/main, $6000..$B8FF/main, and $6000..$87FF/aux
do not need to call $A58A at all (is all protection-related, already disabled)
game entry point is $AEE0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,46 @@
!cpu 6502
*=$4800
!to "build/ANCHORMAN#064800",plain
!src "../common/src/constants.a"
!src "../common/src/macros.a"
+INIT_MACHINE
jsr decrunch ; decompress auxmem data into $800/main first
+COPY_TO_AUXMEM $800, $2FFF, $6000
dec ExoProgressPtr+1
dec ExoProgressPtr+1
dec ExoProgressPtr+1
dec ExoProgressPtr+1
dec ExoProgressPtr+1
jsr decrunch_no_reset_progress ; decompress more data into $800/main
dec ExoProgressPtr+1
dec ExoProgressPtr+1
dec ExoProgressPtr+1
dec ExoProgressPtr+1
jsr decrunch_no_reset_progress ; decompress more data into $6000/main
!if * != $485C {
!serious "Adjust prelaunch to patch JSR at ", *
}
jmp $AEE0
get_crunched_byte
lda _byte_lo
bne +
dec _byte_hi
+ dec _byte_lo
_byte_lo = * + 1
_byte_hi = * + 2
lda end_of_compressed_data
rts
FORWARD_DECRUNCHING = 0
SHOW_PROGRESS_DURING_DECRUNCH = 1
kExoProgressWidth = 33 ; depends on total size, max 38
!src "../common/src/exodecrunch.a"
!bin "src/OBJ.6000.B8FF.X"
!bin "src/OBJ.0800.47FF.X"
!bin "src/AUXOBJ.6000.87FF.X"
end_of_compressed_data

View File

@ -0,0 +1,25 @@
!cpu 6502
*=$2000
!to "build/LOADER.SYSTEM#FF2000",plain
!src "../common/src/constants.a"
!src "../common/src/macros.a"
+READ_ENTIRE_FILE parm_boot_open, parm_boot_read
jmp (entry)
parm_boot_open
!byte 3
!word filename
!word $2100
!byte 0
parm_boot_read
!byte 4
!byte 1
entry !word $4800
!word $FFFF
!word 0
filename
!text 9,"ANCHORMAN"

View File

@ -162,14 +162,14 @@ decrunch:
!IF SHOW_PROGRESS_DURING_DECRUNCH = 1 {
ldx #(kExoProgressWidth+2)
lda #$DF
- sta $0528+(20-(kExoProgressWidth/2))-1, x
sta $05A8+(20-(kExoProgressWidth/2))-1, x
- sta $0528+(20-(kExoProgressWidth/2))-2, x
sta $05A8+(20-(kExoProgressWidth/2))-2, x
dex
bpl -
lda #$20
sta $05A8+(20-(kExoProgressWidth/2))-1
sta $05A8+(20-(kExoProgressWidth/2))+kExoProgressWidth+1
lda #$A8+(20-(kExoProgressWidth/2))
sta $05A8+(20-(kExoProgressWidth/2))-2
sta $05A8+(20-(kExoProgressWidth/2))+kExoProgressWidth
lda #$A8+(20-(kExoProgressWidth/2))-1
sta ExoProgressPtr+1
decrunch_no_reset_progress:
}

View File

@ -36,3 +36,20 @@
+ !byte 1
!byte 0
}
!macro COPY_TO_AUXMEM .mainstart, .mainend, .auxstart {
lda #<.mainstart
sta $3C
lda #>.mainstart
sta $3D
lda #<.mainend
sta $3E
lda #>.mainend
sta $3F
lda #<.auxstart
sta $42
lda #>.auxstart
sta $43
sec
jsr AUXMOVE
}

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2211272
!be24 2221182
!le16 571

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2198392
!be24 2208221
!le16 978

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2189164
!be24 2198889
!le16 357

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2191096
!le16 643
!be24 2200851
!le16 664

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2193371
!be24 2203147
!le16 591

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2196321
!le16 939
!be24 2206127
!le16 946

View File

@ -3,4 +3,4 @@
;
; This file is automatically generated
;
!word 44
!word 45

View File

@ -3,4 +3,4 @@
;
; This file is automatically generated
;
!word 65
!word 66

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2211843
!be24 2221753
!le16 306

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2212493
!be24 2222403
!le16 336

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2212829
!be24 2222739
!le16 303

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 1787025
!be24 1796750
!le16 69

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2202010
!be24 2211839
!le16 1640

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2212225
!be24 2222135
!le16 67

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2211260
!be24 2221170
!le16 12

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2210370
!be24 2220280
!le16 838

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2208315
!be24 2218192
!le16 271

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2199370
!be24 2209199
!le16 2640

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2204008
!le16 1132
!be24 2213837
!le16 1148

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2212149
!be24 2222059
!le16 76

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2211208
!be24 2221118
!le16 52

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2212292
!be24 2222202
!le16 201

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2208586
!le16 350
!be24 2218463
!le16 383

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2208936
!be24 2218846
!le16 138

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2209074
!be24 2218984
!le16 92

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2209166
!be24 2219076
!le16 202

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2209368
!be24 2219278
!le16 713

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2210081
!be24 2219991
!le16 285

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2210366
!be24 2220276
!le16 4

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2213132
!be24 2223042
!le16 2370

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2206260
!le16 610
!be24 2216105
!le16 626

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2206870
!be24 2216731
!le16 526

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2197260
!le16 1132
!be24 2207073
!le16 1148

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 628779
!be24 636459
!le16 8184

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 645155
!be24 652835
!le16 8184

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 636963
!be24 644643
!le16 8192

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2188164
!be24 2197889
!le16 1000

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2189521
!le16 1575
!be24 2199246
!le16 1605

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2191739
!be24 2201515
!le16 1632

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2193962
!le16 2359
!be24 2203738
!le16 2389

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2203650
!be24 2213479
!le16 358

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2205140
!be24 2214985
!le16 1120

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2207396
!le16 919
!be24 2217257
!le16 935

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2187647
!be24 2197372
!le16 517

19
src/prelaunch/anchorman.a Normal file
View File

@ -0,0 +1,19 @@
;license:MIT
!cpu 6502
!to "build/PRELAUNCH.INDEXED/ANCHORMAN",plain
*=$106
!source "src/prelaunch/common.a"
+ENABLE_ACCEL
lda #$4C
sta $485C
jsr $4800
+DISABLE_ACCEL
+RESET_VECTOR $100
jmp $485F
!if * > $1C0 {
!error "code is too large, ends at ", *
}