5200 cart size full music, a 4KiB glitch to be fixed still

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