add Roulette (1979-Softape)

This commit is contained in:
4am 2025-04-05 14:51:45 -04:00
parent c1caf038ad
commit 817f6ac1aa
18 changed files with 139 additions and 1 deletions

5
res/ATTRACT/ROULETTE Normal file
View File

@ -0,0 +1,5 @@
#
# Attract mode for ROULETTE
# This file is automatically generated
#

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -81,6 +81,7 @@
011000,PRESS.YOUR.LK=Press Your Luck/1988
000010,REVERSI=Reversi/1981
000010,ROCK.N.SCROLL=Rock & Scroll/1987
000010,ROULETTE=Roulette/1979
000010,SEEGA=Seega/1988
000010,SHUFFLEBOARD=Shuffleboard/1981
100001,SILENT.SERVICE=Silent Service/1985

View File

@ -2,5 +2,6 @@
SHUFFLEBOARD
CRAPS
VIDEO.VEGAS
ROULETTE
CMPTR.FOOSBALL
POOL

View File

@ -2,5 +2,6 @@
ROCK.N.SCROLL
POOL
NINE.MENS
ROULETTE
NIMWIT
ONE.ON.ONE

Binary file not shown.

BIN
res/TITLE.HGR/ROULETTE Normal file

Binary file not shown.

Binary file not shown.

View File

@ -54,7 +54,6 @@ Pure Stat Baseball [needs-crack][64K]
Pure Stat College Basketball
Pyramid of Ra
Ringside Seat (SSI) [4am/san inc crack][48K]
Roulette (Softape) [48K][BASIC]
Sargon III (Hayden) [4am crack][supports-data-disk]
Star League Baseball [needs-crack][64K]
Star Rank Boxing II [4am crack][priority]

View File

@ -0,0 +1,53 @@
# 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=ROULETTE
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
EXEADDR=4000
DECOMPADDR=0800
EXE=$(BUILDDIR)/ROULETTE\#06$(EXEADDR)
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/roulette.a
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
@touch "$@"
$(RES): $(BUILDDIR)
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
@touch "$@"
$(COMPRESSED):
$(EXOMIZER) src/OBJ@0x$(DECOMPADDR) -o "$@"
mount: $(BUILDDISK)
@open "$(BUILDDISK)"
clean:
rm -rf "$(BUILDDIR)"
$(BUILDDIR):
mkdir -p "$@"
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C
all: clean mount
.NOTPARALLEL:

BIN
res/ports/roulette/src/OBJ Normal file

Binary file not shown.

Binary file not shown.

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 $4000
!word $FFFF
!word 0
filename
+PSTRING "ROULETTE"

View File

@ -0,0 +1,34 @@
!cpu 6502
*=$4000
!to "build/ROULETTE#064000",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 = 0
!src "../common/src/exodecrunch.a"
start
+INIT_MACHINE
!if * != $5b0e {
!serious "Adjust prelaunch to patch JSR at ", *, " to JMP"
}
jsr decrunch ; compressed data contains target address
ldx #0
- lda $2c40, x
sta $0, x
inx
bne -
jmp $D566 ; RUN
get_crunched_byte
lda compressed_data
inc get_crunched_byte+1
bne +
inc get_crunched_byte+2
+ rts

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

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