Compare commits

...

18 Commits

Author SHA1 Message Date
Pirx 31c181ce89 Merge pull request #154 from pkali/develop
Develop
2023-01-23 05:41:41 -05:00
Pirx 33d8303270 readme updt 2023-01-23 05:41:05 -05:00
Pecusx f9fad89d7c Revert "wait by atariki"
This reverts commit 41094db7dd.
2023-01-23 08:50:03 +01:00
Pecusx e9ff60210e Revert "minor fixes"
This reverts commit b7560ab6d9.
2023-01-23 08:49:58 +01:00
Pirx b7560ab6d9 minor fixes 2023-01-22 23:03:10 -05:00
Pirx 41094db7dd wait by atariki 2023-01-22 22:46:47 -05:00
Pecusx ab30227843 Ctrl+HELP - new "debug" switch 2023-01-22 23:17:26 +01:00
Pecusx 5d619c80f8 "Debug" for Laser 2023-01-22 19:46:37 +01:00
Pecusx e842d455e6 Visual Debug :) added 2023-01-21 22:48:46 +01:00
Pecusx da4d82cca4 All the splash text is swapped. 2023-01-21 13:51:26 +01:00
Pecusx f7931afbb4 Second fire (shift) on 5200
Thanks RB5200!
2023-01-20 21:26:39 +01:00
Pecusx b18793014d Very rare distance measuring bug fixed.
Sometimes a perfectly hit tank still lived.
2023-01-20 14:40:54 +01:00
Pecusx ef1c0dc62c Binary files upd. 2023-01-20 11:05:12 +01:00
Pecusx bc338198a0 Merge branch 'develop' of https://github.com/pkali/scorch_src into develop 2023-01-20 11:01:36 +01:00
Pecusx 2a08447b9c The tanks talk to each other again. 2023-01-20 11:00:46 +01:00
Pecusx 4088e5f8fa Macro "wait" optimization, and better credits 2023-01-19 19:46:06 +01:00
Pirx 79b5bc3290 readme updt 2023-01-17 10:04:09 -05:00
Pirx 3b80de7def readme updt 2023-01-17 09:25:01 -05:00
10 changed files with 116 additions and 75 deletions
+15 -2
View File
@@ -51,6 +51,18 @@ With the advent of [fujinet](https://fujinet.online/) we are thinking about maki
## Changelog: ## Changelog:
###### Version 1.26
2023-01-23
Early morning edition. It is 5:11 am and I am writing this instead of dreaming of electric sheep.
For the last 6 weeks theversions we released had an awful bug - the conversations of tanks were completely invisible. Thanks for pointing this out, RB5200.
- tanks talk to each other again
- better stochastic non blocking wait one frame
- rare dstance measurement bug fixed (rarely a tank survived a direct hit)
- 5200: second fire works (by RB5200)
- "visual debug" mode in A800 version, triggered by pressing [CTRL]+[HELP]. It displays distances measured, laser aiming and aiming technique. It leaves a mess on screen, but it does not impair the game, just makes it a bit harder.
###### Version 1.25 ###### Version 1.25
2023-01-17 2023-01-17
@@ -58,8 +70,9 @@ Y2K Compliance Edition
This version is 5200 SuperSystem focused. This version is 5200 SuperSystem focused.
- the correct production year in the splash screens!!! - the correct production year in the splash screens!!!
- very rare hangups when accessing the inventory seemingly eliminated, thanks @RB5200 for testing! - very rare hangups when accessing the inventory seemingly eliminated, thanks @RB5200 for testing!
- a new feature - pressing [Tab] (atari800) or [5] (5200) when selecting the wind power switches wind mode to changing with each turn, what makes aiming arguably more challenging! It is indicated by "?" next to the "Wind" in the main menu. - a new feature - pressing [Tab] (atari800) or [5] (5200) when selecting the wind power switches wind mode to changing with each turn, which makes aiming arguably more challenging! It is indicated by "?" next to the "Wind" in the main menu.
- all these changes were made possible because of the extensive code size optimization by @Pecus - pressing [G] during the game changes the color scheme (classic, Polish rainbow, Xmas).
- all these changes were made possible thanks to the extensive code size optimization by @Pecus
###### Version 1.23 ###### Version 1.23
+11 -4
View File
@@ -626,10 +626,13 @@ CreditsStart
dta d"Bocianu, Probabilitydragon, EnderDude",d","* dta d"Bocianu, Probabilitydragon, EnderDude",d","*
dta d"Beeblebrox, KrzysRog, lopezpb, Dracon",d","* dta d"Beeblebrox, KrzysRog, lopezpb, Dracon",d","*
dta d"brad-colbert, archon800, nowy80",d","* dta d"brad-colbert, archon800, nowy80",d","*
dta d"Shaggy the Atarian, RetroBorsuk, ZP",d"H"* dta d"Shaggy the Atarian, RetroBorsuk, ZPH"
.IF target = 5200 .IF target = 5200
dta d"x-usr(1536), Aking, JAC!, phaero",d"n"* dta d","*
dta d"x-usr(1536), Aking, JAC!, phaeron",d","*
dta d"RB520",d"0"* dta d"RB520",d"0"*
.ELSE
dta d" "*
.ENDIF .ENDIF
dta d" "* dta d" "*
dta d"Additional testin",d"g"* dta d"Additional testin",d"g"*
@@ -641,9 +644,13 @@ CreditsStart
dta d" "* dta d" "*
CreditsEnd CreditsEnd
.IF target = 5200 .IF target = 5200
CreditsLines=37 CreditsLines=38
.ELSE .ELSE
CreditsLines=42 ; 34 in reality. add 7? CreditsLines=42 ; 34 in reality. add 7?
.ENDIF .ENDIF
.IF target = 5200
; Atari 5200 splash
NewSplashText=*
dta d"copyright 2023 atari"
.ENDIF
.endif .endif
+9 -1
View File
@@ -140,8 +140,13 @@ LineParametersReady
ora DX+1 ora DX+1
ora DY ora DY
ora DY+1 ora DY+1
jeq EndOfDraw bne NotOnePoint
; length=0
sta LineLength
sta LineLength+1
jmp EndOfDraw
NotOnePoint
; here we have DX,DY,XK and we know which operations ; here we have DX,DY,XK and we know which operations
; are to be performed with these factors when doing PLOT ; are to be performed with these factors when doing PLOT
; (accordingly to given bits of 'HowToDraw') ; (accordingly to given bits of 'HowToDraw')
@@ -219,6 +224,8 @@ PutPixelinDraw
bit drawFunction bit drawFunction
bpl @+ bpl @+
inw LineLength inw LineLength
bit Vdebug
bmi MeasureVisualisation
jmp ContinueDraw ; was `bne` - not good, because LineLength starts from $ffff jmp ContinueDraw ; was `bne` - not good, because LineLength starts from $ffff
@ @
bvc @+ bvc @+
@@ -266,6 +273,7 @@ CheckCollisionDraw
StopHitChecking StopHitChecking
jmp ContinueDraw jmp ContinueDraw
@ @
MeasureVisualisation
jsr plot jsr plot
ContinueDraw ContinueDraw
+10 -15
View File
@@ -74,23 +74,18 @@
.ENDM .ENDM
;------------------------------------- ;-------------------------------------
.MACRO WAIT .MACRO WAIT
; WAIT ; WAIT
; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) ; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
?zero LDA VCOUNT ?ze LDA VCOUNT
cmp #$05 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
bcc ?zero bcc ?ze
cmp #$70 sbc #10 ; last lines correction
bcc ?WA ?wa cmp VCOUNT
sbc #10 ; last lines correction bcc ?wa
?WA cmp VCOUNT ?wf cmp VCOUNT
beq ?WA bcs ?wf
bcc ?WA .ENDM
?WFRAME cmp VCOUNT
beq ?nowait
bcs ?WFRAME
?nowait
.ENDM
;------------------------------------- ;-------------------------------------
.macro waitRTC .macro waitRTC
lda RTCLOK+1 lda RTCLOK+1
+10 -15
View File
@@ -73,23 +73,18 @@
PLA PLA
.ENDM .ENDM
;------------------------------------- ;-------------------------------------
.MACRO WAIT .MACRO WAIT
; WAIT ; WAIT
; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) ; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
?zero LDA VCOUNT ?ze LDA VCOUNT
cmp #$05 ; if line<5 then wait for line>4 cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
bcc ?zero bcc ?ze
cmp #$70 sbc #10 ; last lines correction
bcc ?WA ; if line>=112 then ?wa cmp VCOUNT
sbc #10 ; last lines correction bcc ?wa
?WA cmp VCOUNT ?wf cmp VCOUNT
beq ?WA bcs ?wf
bcc ?WA .ENDM
?WFRAME cmp VCOUNT
beq ?nowait
bcs ?WFRAME
?nowait
.ENDM
;------------------------------------- ;-------------------------------------
.macro waitRTC .macro waitRTC
lda RTCLOK+2 lda RTCLOK+2
+14 -11
View File
@@ -15,7 +15,7 @@
;--------------------------------------------------- ;---------------------------------------------------
.macro build .macro build
dta d"1.25" ; number of this build (4 bytes) dta d"1.26" ; number of this build (4 bytes)
.endm .endm
.macro RMTSong .macro RMTSong
@@ -27,12 +27,13 @@
icl 'definitions.asm' icl 'definitions.asm'
;--------------------------------------------------- ;---------------------------------------------------
FirstZpageVariable = $5A FirstZpageVariable = $59
.zpvar DliColorBack .byte = FirstZpageVariable .zpvar DliColorBack .byte = FirstZpageVariable
.zpvar GradientNr .byte .zpvar GradientNr .byte
.zpvar GradientColors .word .zpvar GradientColors .word
.zpvar WindChangeInRound .byte ; wind change after each turn (not round only) flag - (0 - round only, >0 - each turn) .zpvar WindChangeInRound .byte ; wind change after each turn (not round only) flag - (0 - round only, >0 - each turn)
.zpvar JoystickNumber .byte .zpvar JoystickNumber .byte
.zpvar Vdebug .byte ; "visual debug" flag ($00 - off, $ff - on)
.zpvar xdraw .word ;= $64 ;variable X for plot .zpvar xdraw .word ;= $64 ;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
@@ -274,14 +275,12 @@ rom2joy
; modify the text ; modify the text
splash_text = $3c80 ; '.scorch.supersystem.copyright.19xx.atari' splash_text = $3c80 ; '.scorch.supersystem.copyright.19xx.atari'
splash_year = splash_text + $1e splash_year = splash_text + $1e
lda #"2" splash_copyright = splash_text + $14
sta splash_year ldy #19 ; 20 characters
sta splash_year+2 @ lda NewSplashText,y
lda #"0" sta splash_copyright,y
sta splash_year+1 dey
lda #"3" bpl @-
sta splash_year+3
; splash screen delay. maybe add fire to speed up? ; splash screen delay. maybe add fire to speed up?
@ cpx RTCLOK+1 @ cpx RTCLOK+1
@@ -1457,7 +1456,11 @@ EndOfCreditsVBI
sta stick0 sta stick0
ldx JoystickNumber ldx JoystickNumber
lda trig0,x ; check shift key (5200 second fire button)
lda SKSTAT
:3 lsr ; third bit
and trig0,x ; and first button
;lda trig0,x
sta strig0 ;Move hardware to shadow sta strig0 ;Move hardware to shadow
mva chbas chbase mva chbas chbase
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+21 -21
View File
@@ -1633,6 +1633,27 @@ displayloop1
rts rts
.endp .endp
;--------------------------------------------------------
.proc DisplayOffensiveTextNr ;
ldx TextNumberOff
lda talk.OffensiveTextTableL,x
sta LineAddress4x4
lda talk.OffensiveTextTableH,x
sta LineAddress4x4+1
inx ; the next text
lda talk.OffensiveTextTableH,x
sta temp+1
lda talk.OffensiveTextTableL,x
sta temp ; opty possible
; substract address of the next text from previous to get text length
sbw temp LineAddress4x4 temp2
mva temp2 fx
;jsr Display4x4AboveTank
;rts
; POZOR !!!
.endp
;-------------------------------------------------------- ;--------------------------------------------------------
.proc Display4x4AboveTank ; .proc Display4x4AboveTank ;
; Displays texts using PutChar4x4 above tank and mountains. ; Displays texts using PutChar4x4 above tank and mountains.
@@ -1751,27 +1772,6 @@ DOTOldLowestValue
.endp .endp
;--------------------------------------------------------
.proc DisplayOffensiveTextNr ;
ldx TextNumberOff
lda talk.OffensiveTextTableL,x
sta LineAddress4x4
lda talk.OffensiveTextTableH,x
sta LineAddress4x4+1
inx ; the next text
lda talk.OffensiveTextTableH,x
sta temp+1
lda talk.OffensiveTextTableL,x
sta temp ; opty possible
; substract address of the next text from previous to get text length
sbw temp LineAddress4x4 temp2
mva temp2 fx
;jsr Display4x4AboveTank
;rts
; POZOR !!!
.endp
;-------------------------------------------------------- ;--------------------------------------------------------
.proc DisplayTankNameAbove ; .proc DisplayTankNameAbove ;
lda tankNr lda tankNr
+25 -5
View File
@@ -1166,8 +1166,17 @@ NoSpyHard
cmp #$80|@kbcode._tab cmp #$80|@kbcode._tab
jeq CTRLPressedTAB jeq CTRLPressedTAB
and #$3f ;CTRL and SHIFT ellimination
jumpFromStick jumpFromStick
.IF TARGET = 800
cmp #$80|17 ; Ctrl+Help
bne NoVdebugSwitch
lda Vdebug
eor #$ff
sta Vdebug
jmp ReleaseAndLoop
NoVdebugSwitch
.ENDIF
and #$3f ;CTRL and SHIFT ellimination
cmp #@kbcode._up ; $e cmp #@kbcode._up ; $e
jeq pressedUp jeq pressedUp
cmp #@kbcode._down ; $f cmp #@kbcode._down ; $f
@@ -1451,8 +1460,10 @@ AfterOffensiveText
cmp #ind_Laser__________ ; laser cmp #ind_Laser__________ ; laser
bne NotStrongShoot bne NotStrongShoot
; Laser: (not)very strong - invisible - shot for laser beam end coordinates ; Laser: (not)very strong - invisible - shot for laser beam end coordinates
bit Vdebug
bmi @+
mva #0 color mva #0 color
lda #1 @ lda #1
sta Force sta Force
sta Force+1 sta Force+1
mva #$ff LaserFlag ; $ff - Laser mva #$ff LaserFlag ; $ff - Laser
@@ -1748,7 +1759,10 @@ LaserNoWalls
bit TestFlightFlag bit TestFlightFlag
bmi nowait bmi nowait
bit LaserFlag ; faster laser prepare bit LaserFlag ; faster laser prepare
bmi nowait bpl nolaserwait
bit Vdebug
bpl nowait
nolaserwait
lda color lda color
beq nonowait ; smoke tracer erases slowly beq nonowait ; smoke tracer erases slowly
lda tracerflag lda tracerflag
@@ -1789,10 +1803,16 @@ SkipCollisionCheck
mwa ytraj+1 ydraw mwa ytraj+1 ydraw
bit TestFlightFlag bit TestFlightFlag
bvs NoUnPlot bvc NoTestFlight
lda tracerflag bit Vdebug
bpl NoTestFlight
jsr WaitOneFrame ; visualize AI targeting
jmp YesUnPlot
NoTestFlight
lda tracerflag
bne NoUnPlot bne NoUnPlot
YesUnPlot
jsr UnPlot jsr UnPlot
NoUnPlot NoUnPlot