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:
###### 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
2023-01-17
@@ -58,8 +70,9 @@ Y2K Compliance Edition
This version is 5200 SuperSystem focused.
- the correct production year in the splash screens!!!
- 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.
- all these changes were made possible because of the extensive code size optimization by @Pecus
- 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.
- 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
+11 -4
View File
@@ -626,10 +626,13 @@ CreditsStart
dta d"Bocianu, Probabilitydragon, EnderDude",d","*
dta d"Beeblebrox, KrzysRog, lopezpb, Dracon",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
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"*
.ELSE
dta d" "*
.ENDIF
dta d" "*
dta d"Additional testin",d"g"*
@@ -641,9 +644,13 @@ CreditsStart
dta d" "*
CreditsEnd
.IF target = 5200
CreditsLines=37
CreditsLines=38
.ELSE
CreditsLines=42 ; 34 in reality. add 7?
.ENDIF
.IF target = 5200
; Atari 5200 splash
NewSplashText=*
dta d"copyright 2023 atari"
.ENDIF
.endif
+9 -1
View File
@@ -140,8 +140,13 @@ LineParametersReady
ora DX+1
ora DY
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
; are to be performed with these factors when doing PLOT
; (accordingly to given bits of 'HowToDraw')
@@ -219,6 +224,8 @@ PutPixelinDraw
bit drawFunction
bpl @+
inw LineLength
bit Vdebug
bmi MeasureVisualisation
jmp ContinueDraw ; was `bne` - not good, because LineLength starts from $ffff
@
bvc @+
@@ -266,6 +273,7 @@ CheckCollisionDraw
StopHitChecking
jmp ContinueDraw
@
MeasureVisualisation
jsr plot
ContinueDraw
+10 -15
View File
@@ -74,23 +74,18 @@
.ENDM
;-------------------------------------
.MACRO WAIT
.MACRO WAIT
; WAIT
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
?zero LDA VCOUNT
cmp #$05
bcc ?zero
cmp #$70
bcc ?WA
sbc #10 ; last lines correction
?WA cmp VCOUNT
beq ?WA
bcc ?WA
?WFRAME cmp VCOUNT
beq ?nowait
bcs ?WFRAME
?nowait
.ENDM
?ze LDA VCOUNT
cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
bcc ?ze
sbc #10 ; last lines correction
?wa cmp VCOUNT
bcc ?wa
?wf cmp VCOUNT
bcs ?wf
.ENDM
;-------------------------------------
.macro waitRTC
lda RTCLOK+1
+10 -15
View File
@@ -73,23 +73,18 @@
PLA
.ENDM
;-------------------------------------
.MACRO WAIT
.MACRO WAIT
; WAIT
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
?zero LDA VCOUNT
cmp #$05 ; if line<5 then wait for line>4
bcc ?zero
cmp #$70
bcc ?WA ; if line>=112 then
sbc #10 ; last lines correction
?WA cmp VCOUNT
beq ?WA
bcc ?WA
?WFRAME cmp VCOUNT
beq ?nowait
bcs ?WFRAME
?nowait
.ENDM
?ze LDA VCOUNT
cmp #16 ; if line<16 then wait for line>15 (long VBI protection)
bcc ?ze
sbc #10 ; last lines correction
?wa cmp VCOUNT
bcc ?wa
?wf cmp VCOUNT
bcs ?wf
.ENDM
;-------------------------------------
.macro waitRTC
lda RTCLOK+2
+14 -11
View File
@@ -15,7 +15,7 @@
;---------------------------------------------------
.macro build
dta d"1.25" ; number of this build (4 bytes)
dta d"1.26" ; number of this build (4 bytes)
.endm
.macro RMTSong
@@ -27,12 +27,13 @@
icl 'definitions.asm'
;---------------------------------------------------
FirstZpageVariable = $5A
FirstZpageVariable = $59
.zpvar DliColorBack .byte = FirstZpageVariable
.zpvar GradientNr .byte
.zpvar GradientColors .word
.zpvar WindChangeInRound .byte ; wind change after each turn (not round only) flag - (0 - round only, >0 - each turn)
.zpvar JoystickNumber .byte
.zpvar Vdebug .byte ; "visual debug" flag ($00 - off, $ff - on)
.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 xbyte .word
@@ -274,14 +275,12 @@ rom2joy
; modify the text
splash_text = $3c80 ; '.scorch.supersystem.copyright.19xx.atari'
splash_year = splash_text + $1e
lda #"2"
sta splash_year
sta splash_year+2
lda #"0"
sta splash_year+1
lda #"3"
sta splash_year+3
splash_copyright = splash_text + $14
ldy #19 ; 20 characters
@ lda NewSplashText,y
sta splash_copyright,y
dey
bpl @-
; splash screen delay. maybe add fire to speed up?
@ cpx RTCLOK+1
@@ -1457,7 +1456,11 @@ EndOfCreditsVBI
sta stick0
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
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
.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 ;
; Displays texts using PutChar4x4 above tank and mountains.
@@ -1751,27 +1772,6 @@ DOTOldLowestValue
.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 ;
lda tankNr
+26 -6
View File
@@ -1166,8 +1166,17 @@ NoSpyHard
cmp #$80|@kbcode._tab
jeq CTRLPressedTAB
and #$3f ;CTRL and SHIFT ellimination
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
jeq pressedUp
cmp #@kbcode._down ; $f
@@ -1451,8 +1460,10 @@ AfterOffensiveText
cmp #ind_Laser__________ ; laser
bne NotStrongShoot
; Laser: (not)very strong - invisible - shot for laser beam end coordinates
bit Vdebug
bmi @+
mva #0 color
lda #1
@ lda #1
sta Force
sta Force+1
mva #$ff LaserFlag ; $ff - Laser
@@ -1748,7 +1759,10 @@ LaserNoWalls
bit TestFlightFlag
bmi nowait
bit LaserFlag ; faster laser prepare
bmi nowait
bpl nolaserwait
bit Vdebug
bpl nowait
nolaserwait
lda color
beq nonowait ; smoke tracer erases slowly
lda tracerflag
@@ -1789,10 +1803,16 @@ SkipCollisionCheck
mwa ytraj+1 ydraw
bit TestFlightFlag
bvs NoUnPlot
lda tracerflag
bvc NoTestFlight
bit Vdebug
bpl NoTestFlight
jsr WaitOneFrame ; visualize AI targeting
jmp YesUnPlot
NoTestFlight
lda tracerflag
bne NoUnPlot
YesUnPlot
jsr UnPlot
NoUnPlot