mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-21 06:39:40 +02:00
pre build. bugfixes + new font
This commit is contained in:
Binary file not shown.
+2
-73
@@ -42,11 +42,6 @@ LineBottom
|
|||||||
LineEmpty
|
LineEmpty
|
||||||
dta d"# #"
|
dta d"# #"
|
||||||
.byte $ff
|
.byte $ff
|
||||||
LineHeader1
|
|
||||||
dta d"# ROUND: "
|
|
||||||
RoundNrDisplay
|
|
||||||
dta d" #"
|
|
||||||
.byte $ff
|
|
||||||
LineHeader2
|
LineHeader2
|
||||||
dta d"# RESULTS #"
|
dta d"# RESULTS #"
|
||||||
.byte $ff
|
.byte $ff
|
||||||
@@ -288,9 +283,9 @@ costable
|
|||||||
.by 0
|
.by 0
|
||||||
|
|
||||||
linetableL
|
linetableL
|
||||||
:screenheight .by <(display+screenBytes*#)
|
:screenheight+1 .by <(display+screenBytes*#)
|
||||||
linetableH
|
linetableH
|
||||||
:screenheight .by >(display+screenBytes*#)
|
:screenheight+1 .by >(display+screenBytes*#)
|
||||||
;----------------------------
|
;----------------------------
|
||||||
bittable
|
bittable
|
||||||
.by $80,$40,$20,$10,$08,$04,$02,$01
|
.by $80,$40,$20,$10,$08,$04,$02,$01
|
||||||
@@ -638,72 +633,6 @@ TanksNamesDefault
|
|||||||
dta d"5th.Tank"
|
dta d"5th.Tank"
|
||||||
dta d"6th.Tank"
|
dta d"6th.Tank"
|
||||||
|
|
||||||
;Weapon prices (*10 on screen)
|
|
||||||
price_Baby_Missile___ = 0 ;_0
|
|
||||||
price_Missile________ = 96 ;_1
|
|
||||||
price_Baby_Nuke______ = 111 ;_2
|
|
||||||
price_Nuke___________ = 144 ;_3
|
|
||||||
price_LeapFrog_______ = 192 ;_4
|
|
||||||
price_Funky_Bomb_____ = 293 ;_5
|
|
||||||
price_MIRV___________ = 456 ;_6
|
|
||||||
price_Death_s_Head___ = 337 ;_7
|
|
||||||
price_Napalm_________ = 0 ;496 ;_8
|
|
||||||
price_Hot_Napalm_____ = 0 ;511 ;_9
|
|
||||||
price_Tracer_________ = 102 ;_10
|
|
||||||
price_Smoke_Tracer___ = 291 ;_11
|
|
||||||
price_Baby_Roller____ = 689 ;_12
|
|
||||||
price_Roller_________ = 600 ;_13
|
|
||||||
price_Heavy_Roller___ = 592 ;_14
|
|
||||||
price_Riot_Charge____ = 0 ;330 ;_15
|
|
||||||
price_Riot_Blast_____ = 0 ;341 ;_16
|
|
||||||
price_Riot_Bomb______ = 369 ;_17
|
|
||||||
price_Heavy_Riot_Bomb = 322 ;_18
|
|
||||||
price_Baby_Digger____ = 336 ;_19
|
|
||||||
price_Digger_________ = 276 ;_20
|
|
||||||
price_Heavy_Digger___ = 253 ;_21
|
|
||||||
price_Baby_Sandhog___ = 218 ;_22
|
|
||||||
price_Sandhog________ = 191 ;_23
|
|
||||||
price_Heavy_Sandhog__ = 305 ;_24
|
|
||||||
price_Dirt_Clod______ = 104 ;_25
|
|
||||||
price_Dirt_Ball______ = 130 ;_26
|
|
||||||
price_Ton_of_Dirt____ = 171 ;_27
|
|
||||||
price_Liquid_Dirt____ = 0 ;530 ;_28
|
|
||||||
price_Dirt_Charge____ = 581 ;_29
|
|
||||||
price_Earth_Disrupter = 0 ;430 ;_30
|
|
||||||
price_Plasma_Blast___ = 0 ;274 ;_31
|
|
||||||
price_Laser__________ = 577 ;_32
|
|
||||||
price______________33 = 0
|
|
||||||
price______________34 = 0
|
|
||||||
price______________35 = 0
|
|
||||||
price______________36 = 0
|
|
||||||
price______________37 = 0
|
|
||||||
price______________38 = 0
|
|
||||||
price______________39 = 0
|
|
||||||
price______________40 = 0
|
|
||||||
price______________41 = 0
|
|
||||||
price______________42 = 0
|
|
||||||
price______________43 = 0
|
|
||||||
price______________44 = 0
|
|
||||||
price______________45 = 0
|
|
||||||
price______________46 = 0
|
|
||||||
price______________47 = 0
|
|
||||||
price_Heat_Guidance__ = 0 ;_48_($30)
|
|
||||||
price_Bal_Guidance___ = 0 ;_49
|
|
||||||
price_Horz_Guidance__ = 0 ;_50
|
|
||||||
price_Vert_Guidance__ = 0 ;_51
|
|
||||||
price_Lazy_Boy_______ = 0 ;_52
|
|
||||||
price_Parachute______ = 1100 ;_53
|
|
||||||
price_Battery________ = 0 ;_54
|
|
||||||
price_Mag_Deflector__ = 0 ;_55
|
|
||||||
price_Shield_________ = 0 ;_56
|
|
||||||
price_Force_Shield___ = 0 ;_57
|
|
||||||
price_Heavy_Shield___ = 0 ;_58
|
|
||||||
price_Super_Mag______ = 0 ;_59
|
|
||||||
price_Auto_Defense___ = 0 ;_60
|
|
||||||
price_Fuel_Tank______ = 0 ;_61
|
|
||||||
price_Contact_Trigger = 0 ;_62
|
|
||||||
price______________63 = 0
|
|
||||||
|
|
||||||
WeaponPriceH ; weapons prices (tables with prices of weapons)
|
WeaponPriceH ; weapons prices (tables with prices of weapons)
|
||||||
.by >price_Baby_Missile___
|
.by >price_Baby_Missile___
|
||||||
.by >price_Missile________
|
.by >price_Missile________
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
|
||||||
|
|
||||||
|
screenheight = 200
|
||||||
|
screenBytes = 40
|
||||||
|
screenwidth = screenBytes*8 ; Max screenwidth = 512!!!
|
||||||
|
margin = 48 ;mountain drawing Y variable margin
|
||||||
|
display = $1010 ;screen takes $2K due to clearing routine
|
||||||
|
MaxPlayers = 6
|
||||||
|
maxOptions = 7 ;number of all options
|
||||||
|
PMOffset = $23 ; P/M to graphics offset
|
||||||
|
|
||||||
|
|
||||||
|
;Weapon prices (*10 on screen)
|
||||||
|
price_Baby_Missile___ = 0 ;_0
|
||||||
|
price_Missile________ = 96 ;_1
|
||||||
|
price_Baby_Nuke______ = 111 ;_2
|
||||||
|
price_Nuke___________ = 144 ;_3
|
||||||
|
price_LeapFrog_______ = 192 ;_4
|
||||||
|
price_Funky_Bomb_____ = 293 ;_5
|
||||||
|
price_MIRV___________ = 456 ;_6
|
||||||
|
price_Death_s_Head___ = 337 ;_7
|
||||||
|
price_Napalm_________ = 0 ;496 ;_8
|
||||||
|
price_Hot_Napalm_____ = 0 ;511 ;_9
|
||||||
|
price_Tracer_________ = 102 ;_10
|
||||||
|
price_Smoke_Tracer___ = 291 ;_11
|
||||||
|
price_Baby_Roller____ = 689 ;_12
|
||||||
|
price_Roller_________ = 600 ;_13
|
||||||
|
price_Heavy_Roller___ = 592 ;_14
|
||||||
|
price_Riot_Charge____ = 0 ;330 ;_15
|
||||||
|
price_Riot_Blast_____ = 0 ;341 ;_16
|
||||||
|
price_Riot_Bomb______ = 369 ;_17
|
||||||
|
price_Heavy_Riot_Bomb = 322 ;_18
|
||||||
|
price_Baby_Digger____ = 336 ;_19
|
||||||
|
price_Digger_________ = 276 ;_20
|
||||||
|
price_Heavy_Digger___ = 253 ;_21
|
||||||
|
price_Baby_Sandhog___ = 218 ;_22
|
||||||
|
price_Sandhog________ = 191 ;_23
|
||||||
|
price_Heavy_Sandhog__ = 305 ;_24
|
||||||
|
price_Dirt_Clod______ = 104 ;_25
|
||||||
|
price_Dirt_Ball______ = 130 ;_26
|
||||||
|
price_Ton_of_Dirt____ = 171 ;_27
|
||||||
|
price_Liquid_Dirt____ = 0 ;530 ;_28
|
||||||
|
price_Dirt_Charge____ = 581 ;_29
|
||||||
|
price_Earth_Disrupter = 0 ;430 ;_30
|
||||||
|
price_Plasma_Blast___ = 0 ;274 ;_31
|
||||||
|
price_Laser__________ = 577 ;_32
|
||||||
|
price______________33 = 0
|
||||||
|
price______________34 = 0
|
||||||
|
price______________35 = 0
|
||||||
|
price______________36 = 0
|
||||||
|
price______________37 = 0
|
||||||
|
price______________38 = 0
|
||||||
|
price______________39 = 0
|
||||||
|
price______________40 = 0
|
||||||
|
price______________41 = 0
|
||||||
|
price______________42 = 0
|
||||||
|
price______________43 = 0
|
||||||
|
price______________44 = 0
|
||||||
|
price______________45 = 0
|
||||||
|
price______________46 = 0
|
||||||
|
price______________47 = 0
|
||||||
|
price_Heat_Guidance__ = 0 ;_48_($30)
|
||||||
|
price_Bal_Guidance___ = 0 ;_49
|
||||||
|
price_Horz_Guidance__ = 0 ;_50
|
||||||
|
price_Vert_Guidance__ = 0 ;_51
|
||||||
|
price_Lazy_Boy_______ = 0 ;_52
|
||||||
|
price_Parachute______ = 1100 ;_53
|
||||||
|
price_Battery________ = 0 ;_54
|
||||||
|
price_Mag_Deflector__ = 0 ;_55
|
||||||
|
price_Shield_________ = 0 ;_56
|
||||||
|
price_Force_Shield___ = 0 ;_57
|
||||||
|
price_Heavy_Shield___ = 0 ;_58
|
||||||
|
price_Super_Mag______ = 0 ;_59
|
||||||
|
price_Auto_Defense___ = 0 ;_60
|
||||||
|
price_Fuel_Tank______ = 0 ;_61
|
||||||
|
price_Contact_Trigger = 0 ;_62
|
||||||
|
price______________63 = 0
|
||||||
+26
-39
@@ -35,6 +35,9 @@
|
|||||||
;and due to being always short of time/energy (to finish the game)
|
;and due to being always short of time/energy (to finish the game)
|
||||||
;we decided it must go in 'English' to let other people work on it
|
;we decided it must go in 'English' to let other people work on it
|
||||||
|
|
||||||
|
icl 'definitions.asm'
|
||||||
|
|
||||||
|
|
||||||
.zpvar xdraw .word = $80 ;variable X for plot
|
.zpvar xdraw .word = $80 ;variable X for plot
|
||||||
.zpvar ydraw .word ;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen)
|
.zpvar ydraw .word ;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen)
|
||||||
.zpvar xbyte .word
|
.zpvar xbyte .word
|
||||||
@@ -72,15 +75,6 @@
|
|||||||
|
|
||||||
displayposition = modify
|
displayposition = modify
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
;constants
|
|
||||||
screenheight = 200
|
|
||||||
screenBytes = 40
|
|
||||||
screenwidth = screenBytes*8 ; Max screenwidth = 512!!!
|
|
||||||
margin = 48 ;mountain drawing Y variable margin
|
|
||||||
display = $1010 ;screen takes $2K due to clearing routine
|
|
||||||
MaxPlayers = 6
|
|
||||||
maxOptions = 7 ;number of all options
|
|
||||||
PMOffset = $23 ; P/M to graphics offset
|
|
||||||
|
|
||||||
icl 'lib/atari.hea'
|
icl 'lib/atari.hea'
|
||||||
icl 'lib/macro.hea'
|
icl 'lib/macro.hea'
|
||||||
@@ -92,6 +86,12 @@ PMOffset = $23 ; P/M to graphics offset
|
|||||||
;Screen displays go first to avoid crossing 4kb barrier
|
;Screen displays go first to avoid crossing 4kb barrier
|
||||||
;-----------------------------------------------
|
;-----------------------------------------------
|
||||||
icl 'display.asm'
|
icl 'display.asm'
|
||||||
|
;----------------------------------------------
|
||||||
|
.ALIGN $400
|
||||||
|
WeaponFont
|
||||||
|
ins 'artwork/weapons_AW4.fnt' ; 'artwork/weapons.fnt'
|
||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
; Game Code
|
; Game Code
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
@@ -590,7 +590,7 @@ PlayerXdeath .proc
|
|||||||
jsr DisplayOffensiveTextNr
|
jsr DisplayOffensiveTextNr
|
||||||
|
|
||||||
|
|
||||||
; calculate position of the explosion (the post-death one?)
|
; calculate position of the explosion (the post-death one)
|
||||||
ldx TankTempY
|
ldx TankTempY
|
||||||
clc
|
clc
|
||||||
lda xtankstableL,x
|
lda xtankstableL,x
|
||||||
@@ -604,7 +604,7 @@ PlayerXdeath .proc
|
|||||||
sbc #4
|
sbc #4
|
||||||
sta ydraw
|
sta ydraw
|
||||||
lda #0
|
lda #0
|
||||||
sta ydraw+1 ; there is 0 left in A, so...
|
sta ydraw+1 ; there is 0 left in A, so... TODO: bad code above. revisit when transitioning ydraw to byte
|
||||||
|
|
||||||
;cleanup of the soil fall down ranges (left and right)
|
;cleanup of the soil fall down ranges (left and right)
|
||||||
sta RangeRight
|
sta RangeRight
|
||||||
@@ -616,14 +616,12 @@ PlayerXdeath .proc
|
|||||||
|
|
||||||
|
|
||||||
; We are randomizing the weapon now.
|
; We are randomizing the weapon now.
|
||||||
; As we are jumping into the middle of the weapon
|
; jumping into the middle of the explosion
|
||||||
; routine we are preparing the number *2 -
|
; routine
|
||||||
; - to make it easier and because we are using only
|
|
||||||
; first 32 weapons we are doing this with just one AND
|
|
||||||
|
|
||||||
lda random
|
lda random
|
||||||
and #$3e ; range (0-31 number multiplied by 2)
|
and #%00011111 ; range 0-31
|
||||||
jsr Explosion2
|
jsr ExplosionDirect
|
||||||
|
|
||||||
; jump to after explosion routines (soil fallout, etc.)
|
; jump to after explosion routines (soil fallout, etc.)
|
||||||
; After going through these routines we are back
|
; After going through these routines we are back
|
||||||
@@ -1115,9 +1113,7 @@ WaitForKeyRelease .proc
|
|||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
;----------------------------------------------
|
|
||||||
OffensiveTexts
|
|
||||||
icl 'artwork/talk.asm'
|
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
icl 'weapons.asm'
|
icl 'weapons.asm'
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
@@ -1129,35 +1125,26 @@ OffensiveTexts
|
|||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
icl 'constants.asm'
|
icl 'constants.asm'
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
icl 'variables.asm'
|
icl 'artwork/talk.asm'
|
||||||
|
;----------------------------------------------
|
||||||
|
|
||||||
font4x4
|
font4x4
|
||||||
ins 'artwork/font4x4s.bmp',+62
|
ins 'artwork/font4x4s.bmp',+62
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
TankFont
|
TankFont
|
||||||
ins 'artwork/tanks.fnt'
|
ins 'artwork/tanks.fnt'
|
||||||
TankFontend
|
;----------------------------------------------
|
||||||
.if TankFontEnd>$9800
|
icl 'variables.asm'
|
||||||
|
;----------------------------------------------
|
||||||
|
TheEnd
|
||||||
|
.if TheEnd > PMGraph + $300
|
||||||
.error memory conflict
|
.error memory conflict
|
||||||
;this is to warn if code and P/M graphics
|
|
||||||
;overlap!
|
|
||||||
.endif
|
.endif
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
; Player/missile memory
|
; Player/missile memory
|
||||||
ORG $9800
|
org $b800
|
||||||
pmgraph
|
PMGraph
|
||||||
|
|
||||||
;----------------------------------------------
|
|
||||||
ORG $a400
|
|
||||||
WeaponFont
|
|
||||||
ins 'artwork/weapons.fnt'
|
|
||||||
;----------------------------------------------
|
|
||||||
TheEnd
|
|
||||||
.if TheEnd>$c000
|
|
||||||
.error memory conflict
|
|
||||||
|
|
||||||
.endif
|
|
||||||
|
|
||||||
|
|
||||||
run START
|
run START
|
||||||
|
|||||||
BIN
Binary file not shown.
+5
-1
@@ -26,7 +26,11 @@ skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning
|
|||||||
ResultLineBuffer
|
ResultLineBuffer
|
||||||
dta d" "
|
dta d" "
|
||||||
.byte $ff
|
.byte $ff
|
||||||
|
LineHeader1
|
||||||
|
dta d"# ROUND: "
|
||||||
|
RoundNrDisplay
|
||||||
|
dta d" #"
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
variablesStart ; zeroing starts here
|
variablesStart ; zeroing starts here
|
||||||
;--------------
|
;--------------
|
||||||
|
|||||||
+23
-7
@@ -12,14 +12,14 @@ Explosion .proc
|
|||||||
|
|
||||||
ldx TankNr
|
ldx TankNr
|
||||||
lda ActiveWeapon,x
|
lda ActiveWeapon,x
|
||||||
asl
|
|
||||||
.endp
|
.endp
|
||||||
Explosion2 .proc
|
ExplosionDirect .proc
|
||||||
|
asl
|
||||||
tax
|
tax
|
||||||
lda ExplosionRoutines+1,x
|
lda ExplosionRoutines+1,x
|
||||||
pha
|
pha
|
||||||
lda ExplosionRoutines,x
|
lda ExplosionRoutines,x
|
||||||
pha
|
pha
|
||||||
rts
|
rts
|
||||||
ExplosionRoutines
|
ExplosionRoutines
|
||||||
.word babymissile-1
|
.word babymissile-1
|
||||||
@@ -115,10 +115,19 @@ VOID
|
|||||||
pla
|
pla
|
||||||
sta TankNr
|
sta TankNr
|
||||||
|
|
||||||
|
|
||||||
|
; this is to fix bug MIRV loops #6
|
||||||
|
; the issue was that after MIRV the flight routine called here
|
||||||
|
; was mirving. This happened when a tank dies by MIRV and then
|
||||||
|
; leapfrogs
|
||||||
|
tax
|
||||||
|
lda #4 ; leapfrog
|
||||||
|
sta ActiveWeapon,x
|
||||||
|
|
||||||
|
|
||||||
; it looks like force is divided by 4 here BUT"
|
; it looks like force is divided by 4 here BUT"
|
||||||
; in Flight routine force is multiplied by 2 and left
|
; in Flight routine force is multiplied by 2 and left
|
||||||
; so, we have Force divided by 2 here (not accurately)
|
; so, we have Force divided by 2 here (not accurately)
|
||||||
|
|
||||||
lsr Force+1
|
lsr Force+1
|
||||||
ror Force
|
ror Force
|
||||||
;lsr Force+1
|
;lsr Force+1
|
||||||
@@ -195,6 +204,13 @@ EndOfLeapping
|
|||||||
pla
|
pla
|
||||||
sta TankNr
|
sta TankNr
|
||||||
|
|
||||||
|
; this is to fix bug MIRV loops #6
|
||||||
|
; the issue was that after MIRV the flight routine called here
|
||||||
|
; was mirving. This happened when a tank dies by MIRV and then
|
||||||
|
; leapfrogs
|
||||||
|
tax
|
||||||
|
lda #5 ; fynkybomb
|
||||||
|
sta ActiveWeapon,x
|
||||||
mva #5 FunkyBombCounter
|
mva #5 FunkyBombCounter
|
||||||
FunkyBombLoop
|
FunkyBombLoop
|
||||||
mva #1 tracerflag
|
mva #1 tracerflag
|
||||||
@@ -677,7 +693,7 @@ rbombLoop
|
|||||||
PositiveVelocity
|
PositiveVelocity
|
||||||
; first we look for the left slope
|
; first we look for the left slope
|
||||||
; then righ slope and set the flag
|
; then righ slope and set the flag
|
||||||
; $FF - we are in a hole (flighting in missile direction)
|
; $FF - we are in a hole (flying in missile direction)
|
||||||
; 1 - right, 2 - left
|
; 1 - right, 2 - left
|
||||||
mva #$ff HowMuchToFall
|
mva #$ff HowMuchToFall
|
||||||
mva ydraw HeightRol
|
mva ydraw HeightRol
|
||||||
|
|||||||
Reference in New Issue
Block a user