add Fastgammon

This commit is contained in:
4am 2025-01-31 18:04:31 -05:00
parent 09e4b1a7a0
commit 7cc42d199e
70 changed files with 202 additions and 62 deletions

Binary file not shown.

BIN
res/ACTION.HGR/FASTGAMMON Normal file

Binary file not shown.

6
res/ATTRACT/FASTGAMMON Normal file
View File

@ -0,0 +1,6 @@
#
# Attract mode for FASTGAMMON
# This file is automatically generated
#
FASTGAMMON=A

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -43,6 +43,7 @@
100001,DIVE.BOMBER=Dive Bomber/1988
000010,DRAW.POKER=Draw Poker/1981
100001,F15.STRK.EGL=F-15 Strike Eagle/1985
000010,FASTGAMMON=Fastgammon/1979
011000,FAMILY.FEUD=Family Feud/1989
100001,FIGHT.NIGHT=Fight Night/1985
000001,FS2=Flight Simulator II/1984

View File

@ -3,6 +3,7 @@ REVERSI
CHECKERS
MICROCHESS
GO.FOUR.IT
FASTGAMMON
DRAW.POKER
ACEY.DEUCEY
ODIN

View File

@ -2,6 +2,7 @@
DIVE.BOMBER2=DIVE.BOMBER
FIGHT.NIGHT
DIVE.BOMBER
FASTGAMMON
F15.STRK.EGL
DIVE.BOMBER5=DIVE.BOMBER
FORMULA.1.RACER

View File

@ -4,6 +4,7 @@ ACEY.DEUCEY
ODIN
GO.FOUR.IT
ULTRACHECKERS
FASTGAMMON
DRAW.POKER
REVERSI
GO

View File

@ -4,5 +4,6 @@ FIGHT.NIGHT
F15.STRK.EGL
DRAW.POKER
FORMULA.1.RACER
FASTGAMMON
FOX.AND.GEESE
FS2

Binary file not shown.

BIN
res/TITLE.HGR/FASTGAMMON Normal file

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,10 @@
## Revision 1.0-alpha.5 / unreleased
### New games in v1.0-alpha.5
- Fastgammon
### Migrated from Total Replay in v1.0-alpha.5
- Bejeweled

View File

@ -0,0 +1,51 @@
# https://sourceforge.net/projects/acme-crossass/
ACME=acme
# https://github.com/mach-kernel/cadius
CADIUS=cadius
EXOMIZER=exomizer mem -lnone -P23 -f -q
BUILDDIR=build
DISKVOLUME=FASTGAMMON
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
EXE=$(BUILDDIR)/FASTGAMMON\#068000
COMPRESSED=src/OBJ.X
SOURCES=$(wildcard src/*.a) $(COMPRESSED)
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) $(COMPRESSED) | $(BUILDDIR)
$(ACME) src/fastgammon.a
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
@touch "$@"
$(RES): $(BUILDDIR)
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
@touch "$@"
$(COMPRESSED):
$(EXOMIZER) src/OBJ@0x0800 -o "$@"
mount: $(BUILDDISK)
@open "$(BUILDDISK)"
clean:
rm -rf "$(BUILDDIR)"
$(BUILDDIR):
mkdir -p "$@"
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C
all: clean mount
.NOTPARALLEL:

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,30 @@
!cpu 6502
*=$8000
!to "build/FASTGAMMON#068000",plain
!src "../common/src/constants.a"
!src "../common/src/macros.a"
jmp start
compressed_data
!bin "src/OBJ.X"
FORWARD_DECRUNCHING = 1
SHOW_PROGRESS_DURING_DECRUNCH = 1
kExoProgressWidth = 7 ; depends on total size, max 38
!src "../common/src/exodecrunch.a"
start
+INIT_MACHINE
!if * != $97D9 {
!serious "Adjust prelaunch to patch JSR at ", *, " to JMP"
}
jsr decrunch ; compressed data contains target address
jmp $0800
get_crunched_byte
lda compressed_data
inc get_crunched_byte+1
bne +
inc get_crunched_byte+2
+ rts

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 $8000
!word $FFFF
!word 0
filename
!text 10,"FASTGAMMON"

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2999136
!be24 3015442
!le16 652

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2981413
!be24 2997632
!le16 1559

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2968093
!le16 588
!be24 2984121
!le16 602

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2970953
!le16 956
!be24 2987027
!le16 981

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2974211
!le16 938
!be24 2990342
!le16 952

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2978434
!le16 1405
!be24 2994611
!le16 1430

View File

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

View File

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

View File

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

View File

@ -3,4 +3,4 @@
;
; This file is automatically generated
;
!word 91
!word 92

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2999788
!be24 3016094
!le16 237

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 3000705
!be24 3017011
!le16 309

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2999116
!be24 3015422
!le16 20

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2998002
!be24 3014308
!le16 1062

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2995375
!be24 3011664
!le16 365

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2988396
!be24 3004634
!le16 246

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2988642
!be24 3004880
!le16 538

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2989180
!le16 1574
!be24 3005418
!le16 1591

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2995740
!be24 3012029
!le16 456

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2996196
!le16 209
!be24 3012485
!le16 226

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2996405
!be24 3012711
!le16 107

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2996512
!be24 3012818
!le16 292

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2996804
!be24 3013110
!le16 791

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2997595
!be24 3013901
!le16 380

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2997975
!be24 3014281
!le16 27

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2992530
!le16 931
!be24 3008785
!le16 948

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2993461
!be24 3009733
!le16 647

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2979839
!le16 1574
!be24 2996041
!le16 1591

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2966602
!le16 1491
!be24 2982598
!le16 1523

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2968681
!le16 2272
!be24 2984723
!le16 2304

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2971909
!le16 2302
!be24 2988008
!le16 2334

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2975149
!le16 3285
!be24 2991294
!le16 3317

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2990754
!be24 3007009
!le16 1776

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2994108
!le16 1267
!be24 3010380
!le16 1284

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2983041
!le16 717
!be24 2999260
!le16 736

View File

@ -0,0 +1,19 @@
;license:MIT
;(c) 2024 by 4am
!cpu 6502
!to "build/PRELAUNCH.INDEXED/FASTGAMMON",plain
*=$106
!source "src/macros.a"
+ENABLE_ACCEL
lda #$4C
sta $97D9
jsr $8000
+DISABLE_ACCEL
jmp $97D9+3
!if * > HideLaunchArtwork {
!error "code is too large, ends at ", *
}