add Wipeout

This commit is contained in:
4am 2024-04-01 15:58:49 -04:00
parent b4a93bb57e
commit e587eed77f
96 changed files with 296 additions and 54 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
res/ACTION.DHGR/WIPEOUT Normal file

Binary file not shown.

BIN
res/ACTION.DHGR/WIPEOUT2 Normal file

Binary file not shown.

BIN
res/ACTION.DHGR/WIPEOUT3 Normal file

Binary file not shown.

10
res/ATTRACT/WIPEOUT Normal file
View File

@ -0,0 +1,10 @@
#
# Attract mode for WIPEOUT
# This file is automatically generated
#
WIPEOUT2=B
WIPEOUT3=B
WIPEOUT=B
[eof]

Binary file not shown.

Binary file not shown.

24
res/GAMEHELP/WIPEOUT Normal file
View File

@ -0,0 +1,24 @@
Answer trivia questions
to win cash and prizes
joystick or keyboard
< select >

Press Return to commit answer
Esc* * * * * * * * * * * * * * * * pause
Ctrl-S * * * * * * * * * * *toggle sound
Ctrl-Q * * * * * * * * * * * * * * *quit
[eof]

View File

@ -77,6 +77,7 @@
00001,WARI=Wari
00000,WINTER.GAMES=Winter Games
01100,WORLD.GAMES=World Games
01100,WIPEOUT=Wipeout
00000,WORLD.KARATE=World Karate Championship
[eof]

View File

@ -5,6 +5,7 @@
CALI.GAMES5=CALI.GAMES
SS.SOCCER3=SS.SOCCER
WORLD.GAMES3=WORLD.GAMES
WIPEOUT
SUMMER.EDITION3=SUMMER.EDITION
TEST.DRIVE2=TEST.DRIVE
WINTER.EDITION4=WINTER.EDITION

View File

@ -5,6 +5,7 @@
SS.BASEBALL2=SS.BASEBALL
WINTER.EDITION2=WINTER.EDITION
TEST.DRIVE4=TEST.DRIVE
WIPEOUT3=WIPEOUT
SS.BASKETBALL2=SS.BASKETBALL
WORLD.GAMES4=WORLD.GAMES
CALI.GAMES6=CALI.GAMES

View File

@ -8,5 +8,6 @@ SS.FOOTBALL3=SS.FOOTBALL
CALI.GAMES4=CALI.GAMES
SS.SOCCER2=SS.SOCCER
TEST.DRIVE6=TEST.DRIVE
WIPEOUT2=WIPEOUT
[eof]

View File

@ -7,6 +7,7 @@ TEST.DRIVE
SS.FOOTBALL
SS.BASEBALL
BATTLE.CHESS
WIPEOUT
SS.SOCCER
CALI.GAMES
SUMMER.EDITION

BIN
res/TITLE.DHGR/WIPEOUT Normal file

Binary file not shown.

Binary file not shown.

View File

@ -13,6 +13,7 @@
- Rock & Scroll
- Seega
- Wari
- Wipeout
## Revision 1.0-alpha.3 / 20231114

View File

@ -87,7 +87,6 @@ The $100,000 Pyramid [DHGR]
The Price is Right
Wheel of Fortune [DHGR] (+ Second Edition, New Second Edition, Third Edition, Golden Edition)
Win, Lose, or Draw [DHGR] (+ Junior Edition, Second Edition)
Wipeout
//idea:Bez collection (these are in woz-a-day)
Weights and Treasure [has construction kit]

View File

@ -11,6 +11,17 @@
jsr ROM_IN0
}
; X=0, Z=1 on exit
; A clobbered
; Y preserved
!macro SHORT_COPY .start, .end, .target {
ldx #<(.end-.start)
- lda .start-1, x
sta .target-1, x
dex
bne -
}
!macro READ_ENTIRE_FILE .parm_open, .parm_read {
jsr PRODOS_MLI
!byte CMD_OPEN

View File

@ -0,0 +1,54 @@
;license:MIT
;(c) 2024 by 4am
;
;
; Ensure ProDOS has a current prefix, otherwise opening any file will fail,
; which is bad. If launched from Bitsy Bye, there will be no current prefix.
; In that case, we get the boot volume name, then set the prefix to that.
; PREFIX_BUFFER ($40 bytes) is clobbered but may be reused after.
;
prefix_loop
jsr PRODOS_MLI
op_prefix
!byte CMD_GETPREFIX ; self-modified
!word parm_prefix
ldx PREFIX_BUFFER
bne clear_memory_map
; get boot volume name
lda PRODOS_BOOT_UNIT
sta parm_online_unit
jsr PRODOS_MLI
!byte CMD_ONLINE
!word parm_online
lda PREFIX_BUFFER+1
and #$0F
tax
inx
stx PREFIX_BUFFER
lda #$2F
sta PREFIX_BUFFER+1
; PREFIX_BUFFER is now a length-prefixed string
; of '/' + the boot volume name
dec op_prefix ; -> CMD_SETPREFIX
bne prefix_loop ; always branches
parm_prefix
!byte 1
!word PREFIX_BUFFER
parm_online
!byte 2
parm_online_unit
!byte SELF_MODIFIED_BYTE
!word PREFIX_BUFFER+1
clear_memory_map
; clear ProDOS memory bitmap
ldx #$17
lda #$00
- sta PRODOS_MEMORY_MAP, x
dex
bpl -

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=WIPEOUT
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
EXE=$(BUILDDIR)/WIPEOUT\#060800
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/wipeout.a
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
@touch "$@"
$(RES): $(BUILDDIR)
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
@touch "$@"
$(COMPRESSED):
$(EXOMIZER) src/OBJ@0x4000 -o "$@"
mount: $(BUILDDISK)
@open "$(BUILDDISK)"
clean:
rm -rf "$(BUILDDIR)"
$(BUILDDIR):
mkdir -p "$@"
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 800KB -C
all: clean mount
.NOTPARALLEL:

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.

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.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Binary file not shown.

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

Binary file not shown.

BIN
res/ports/wipeout/src/OBJ.X Normal file

Binary file not shown.

View File

@ -0,0 +1,35 @@
!cpu 6502
*=$2000
!to "build/LOADER.SYSTEM#FF2000",plain
STAGE2 = $3F00
PREFIX_BUFFER = $4000
!src "../common/src/constants.a"
!src "../common/src/macros.a"
!src "../common/src/prodos.init.a"
+SHORT_COPY move_stage2_start, move_stage2_end, STAGE2
jmp STAGE2
move_stage2_start
!pseudopc STAGE2 {
+READ_ENTIRE_FILE parm_boot_open, parm_boot_read
jmp (entry)
parm_boot_open
!byte 3
!word filename
!word PREFIX_BUFFER
!byte 0
parm_boot_read
!byte 4
!byte 1
entry !word $0800
!word $FFFF
!word 0
filename
!text 7,"WIPEOUT"
}
move_stage2_end

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2018356
!be24 2044498
!le16 322

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2020048
!le16 562
!be24 2046216
!le16 576

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2022050
!be24 2048232
!le16 528

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2024654
!le16 820
!be24 2050862
!le16 834

View File

@ -3,4 +3,4 @@
;
; This file is automatically generated
;
!word 37
!word 38

View File

@ -3,4 +3,4 @@
;
; This file is automatically generated
;
!word 56
!word 57

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2037961
!le16 766
!be24 2064239
!le16 810

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2036039
!le16 229
!be24 2062303
!le16 243

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2032089
!le16 999
!be24 2058325
!le16 1013

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2036268
!be24 2062546
!le16 335

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2036603
!be24 2062881
!le16 89

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2036784
!be24 2063062
!le16 175

View File

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

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2034208
!be24 2060458
!le16 491

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2034699
!le16 512
!be24 2060949
!le16 526

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2025474
!le16 999
!be24 2051696
!le16 1013

View File

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

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2017470
!be24 2043612
!le16 886

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2018678
!le16 1370
!be24 2044820
!le16 1396

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2020610
!be24 2046792
!le16 1440

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2022578
!le16 2076
!be24 2048760
!le16 2102

View File

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

View File

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

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2035211
!be24 2061475
!le16 828

View File

@ -4,5 +4,5 @@
; This file is automatically generated
;
!byte 0
!be24 2017044
!be24 2043186
!le16 426

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

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