mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-21 06:39:46 +02:00
5200 cart size full music, a 4KiB glitch to be fixed still
This commit is contained in:
@@ -13,9 +13,6 @@ PMGraph = $1800 ; real PM start = PMGraph + $0300
|
||||
linetableL = PMGraph + $0300 - (screenHeight+1)*2
|
||||
linetableH = PMGraph + $0300 - (screenHeight+1)
|
||||
display = $2010 ;screen takes $1f68 because it has screenHeight+1 lines because of out of screen tracer(?)
|
||||
;rmtplyr len = $393, align to the beginning of the page.
|
||||
rmt_compilation_addr = ((linetableL - $393) / $100)*$100 ; $1500 for now
|
||||
rmt_memory_start = rmt_compilation_addr - $320 ; $11e0 for now
|
||||
.else
|
||||
;----------------------------------------------
|
||||
; Player/missile memory
|
||||
|
||||
@@ -28,15 +28,6 @@ OptionsHere
|
||||
OptionsScreenEnd
|
||||
|
||||
;-----------------------------------------------
|
||||
ListOfWeapons
|
||||
; 0123456789012345678901234567890123456789
|
||||
; :number_of_offensives dta d" "
|
||||
:32 dta d" "
|
||||
ListOfWeapons1End
|
||||
ListOfDefensiveWeapons
|
||||
; :number_of_defensives dta d" "
|
||||
:16 dta d" "
|
||||
ListOfDefensiveWeaponsEnd ;constant useful when clearing
|
||||
NameScreen
|
||||
dta d" Enter names of players "
|
||||
dta d" Tank 01 Name:"
|
||||
|
||||
+1
-1
@@ -106,7 +106,7 @@ dl ; MAIN game display list
|
||||
.byte $41
|
||||
.word dl
|
||||
;-----------------------------------------------
|
||||
.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
|
||||
;.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
|
||||
OptionsDL
|
||||
.byte $70
|
||||
.byte $47
|
||||
|
||||
+22
-32
@@ -5,17 +5,17 @@
|
||||
;Warsaw 2000,2001,2002,2003,2009,2012,2013
|
||||
;Miami & Warsaw 2022
|
||||
|
||||
.def target = 800 ;5200 ; or 800
|
||||
.def target = 5200 ; or 800
|
||||
|
||||
.macro build
|
||||
dta d"1.13" ; number of this build (3 bytes)
|
||||
.endm
|
||||
|
||||
.macro RMTSong
|
||||
.IF target != 5200
|
||||
; .IF target != 5200
|
||||
lda #:1
|
||||
jsr RMTSongSelect
|
||||
.ENDIF
|
||||
; .ENDIF
|
||||
.endm
|
||||
|
||||
icl 'definitions.asm'
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
;Game loading address
|
||||
.IF target = 5200
|
||||
ORG rmt_memory_start - (variablesEnd - OneTimeZeroVariables + 1)
|
||||
ORG linetableL - (variablesEnd - OneTimeZeroVariables + 1)
|
||||
icl 'variables.asm'
|
||||
ORG $4000
|
||||
.ELSE
|
||||
@@ -1686,33 +1686,23 @@ TankFont
|
||||
|
||||
;RMT PLAYER and song loading shenaningans
|
||||
|
||||
.IF target = 5200
|
||||
;----------------------------------------------
|
||||
; 5200 memory layout
|
||||
PLAYER = $1500
|
||||
;RASTERMUSICTRACKER = PLAYER
|
||||
;RMTSFXVOLUME = $1669
|
||||
PlayerBlobDest = $1282
|
||||
PlayerBlob
|
||||
; this is rmtplayr.a65 compiled with artwork/sfx/rmt_player_bin_blob.asm
|
||||
; the compiled .xex was loaded to atari memory in Altirra and saved with
|
||||
; .writemem rmtplr_blob.bin 1282 L614
|
||||
; I hate this solution, but the alternative would be rewriting RMT player so it uses no ORG inside
|
||||
; the player in 5200 mode takes memory from $11E0 !!!
|
||||
; WARNING!!!! Adding zpage vars require recompilation of rmt_player_bin_blob.asm !!!!!!!!
|
||||
; ins 'artwork/sfx/rmtplr_blob.bin'
|
||||
PlayerBlobEnd
|
||||
ORG PLAYER
|
||||
icl 'artwork/sfx/rmtplayr.a65'
|
||||
.align $100
|
||||
org $b400
|
||||
|
||||
MODUL
|
||||
;opt h- ;RMT module is standard Atari binary file already
|
||||
ins "artwork/sfx/scorch_SFX-only-str.rmt",+6 ;so remove the header to reallocate
|
||||
;opt h+
|
||||
.ELSE
|
||||
;----------------------------------------------
|
||||
; .IF target = 5200
|
||||
;;----------------------------------------------
|
||||
; ; 5200 memory layout
|
||||
;
|
||||
; .ds $0320
|
||||
; .align $100
|
||||
;
|
||||
;PLAYER icl 'artwork/sfx/rmtplayr_modified.asm'
|
||||
;
|
||||
; org $b500
|
||||
;
|
||||
;MODUL
|
||||
; ;opt h- ;RMT module is standard Atari binary file already
|
||||
; ins "artwork/sfx/scorch_SFX-only-str.rmt",6 ;so remove the header to reallocate
|
||||
; ;opt h+
|
||||
; .ELSE
|
||||
;;----------------------------------------------
|
||||
; normal (A800) memory layout
|
||||
; reserved space for RMT player
|
||||
.ds $0320
|
||||
@@ -1723,7 +1713,7 @@ MODUL equ $b000 ;address of RMT module
|
||||
opt h- ;RMT module is standard Atari binary file already
|
||||
ins "artwork/sfx/scorch_str6.rmt" ;include music RMT module
|
||||
opt h+
|
||||
.ENDIF
|
||||
; .ENDIF
|
||||
;
|
||||
MODULEND
|
||||
;----------------------------------------------
|
||||
|
||||
BIN
Binary file not shown.
+47
-35
@@ -26,7 +26,7 @@ TanksNames ; DO NOT ZERO ON GAME RESTART - ticket #24
|
||||
.ds 6*8
|
||||
;----------------------------------------------------
|
||||
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
variablesToInitialize
|
||||
;Options DO NOT ZERO ON RESTART GAME - ticket #27
|
||||
@@ -47,6 +47,18 @@ ResultLineBuffer
|
||||
;=====================================================
|
||||
variablesStart ; zeroing starts here
|
||||
;=====================================================
|
||||
; This is moved from display.asm to be easier to relocate
|
||||
ListOfWeapons
|
||||
; 0123456789012345678901234567890123456789
|
||||
; :number_of_offensives dta d" "
|
||||
;:32 dta d" "
|
||||
.ds 32*32
|
||||
ListOfWeapons1End
|
||||
ListOfDefensiveWeapons
|
||||
; :number_of_defensives dta d" "
|
||||
;:16 dta d" "
|
||||
.ds 16*32
|
||||
ListOfDefensiveWeaponsEnd ;constant useful when clearing
|
||||
;isInventory .ds 1 ; 0 - purchase, $ff - inventory
|
||||
;--------------
|
||||
drawFunction .ds 1 ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V)
|
||||
@@ -57,69 +69,69 @@ OptionsY .ds 1 ;vertical position of cursor on Options screen
|
||||
flyDelay .ds 1
|
||||
;--------------
|
||||
;NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
||||
TankSequence .DS [MaxPlayers] ;sequence of shooting during the Round
|
||||
TankSequence .DS MaxPlayers ;sequence of shooting during the Round
|
||||
GameIsOver .DS 1 ; 1 means it was the last round in the game
|
||||
;----------------------------------------------------
|
||||
moneyH ;we place zero at the end of prices and money
|
||||
;and have range from 0 to 99990 (not too much)
|
||||
;money players have (maybe one more byte is needed?)
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
moneyL
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
gainH ;how much money player gets after the round
|
||||
;it is gathered during the round basing on energy
|
||||
;opponents lose after player's shoots
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
gainL
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
loseH ;how much player looses after the round
|
||||
;calculated from REAL energy loss
|
||||
;(not only to zero energy)
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
loseL
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
Energy
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
ShieldEnergy
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
EnergyDecrease .DS 1
|
||||
eXistenZ
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
LASTeXistenZ ; eXistenZ before shoot
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
|
||||
ResultsTable ;the results in the gameeeeee
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
TempResults
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
DirectHitsH
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
DirectHitsL
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
EarnedMoneyH
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
EarnedMoneyL
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
ForceTableL ;shooting Force of the tank during the round
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
ForceTableH
|
||||
.DS [MaxPlayers] ;maxplayers=6
|
||||
.DS MaxPlayers ;maxplayers=6
|
||||
MaxForceTableL ;Energy of the tank during the round
|
||||
;(limes superior force of the Shoot)
|
||||
.DS [MaxPlayers] ;1000 is the default
|
||||
.DS MaxPlayers ;1000 is the default
|
||||
MaxForceTableH
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
BarrelLength ;length of the tank barrel - dont forget to set it to 6 at round start!
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
ActiveWeapon ;number of the selected weapon
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
ActiveDefenceWeapon ;number of the activated defence weapon - 0
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
WeaponDepleted .DS 1 ; if 0 deactivate the weapon and switch to Baby Missile
|
||||
;----------------------------------------------------
|
||||
|
||||
@@ -143,13 +155,13 @@ WindOrientation .DS 1 ;(0-right,1-left)
|
||||
WallsType .ds 1 ; bits 6 and 7: 00 - none, 01 - bump, 10 - wrap, 11 - boxy
|
||||
;----------------------------------------------------
|
||||
xtankstableL ;X positions of tanks (lower left point)
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
xtankstableH
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
ytankstable ;Y positions of tanks (lower left point)
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
LowResDistances ; coarse tank positions divided by 4 (to be in just one byte)
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;----------------------------------------------------
|
||||
TargetTankNr ; Target tank index (for AI routines)
|
||||
.DS 1
|
||||
@@ -368,24 +380,24 @@ CurrentResult
|
||||
.DS 1
|
||||
;--------------
|
||||
AngleTable ;Angle of the barrel of each tank during the round
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
;NewAngle ; used in AI
|
||||
.DS 1
|
||||
;previousBarrelAngle
|
||||
; .DS [MaxPlayers]
|
||||
; .DS MaxPlayers
|
||||
EndOfTheBarrelX
|
||||
.ds 2
|
||||
EndOfTheBarrelY
|
||||
.ds 1
|
||||
;----------------------------------------------------
|
||||
previousAngle
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
previousEnergyL
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
previousLeftRange
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
previousEnergyH
|
||||
.DS [MaxPlayers]
|
||||
.DS MaxPlayers
|
||||
RandBoundaryLow
|
||||
.ds 2
|
||||
RandBoundaryHigh
|
||||
|
||||
Reference in New Issue
Block a user