diff --git a/MANUAL_EN.md b/MANUAL_EN.md index 9792b9e..db1f4e1 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -24,6 +24,8 @@ On the first screen, you can configure gameplay options: Select options with cursor keys or a joystick. +The [TAB] key, and on the Atari 5200 console the [5] controller key change the color of the mountains. + The [RETURN] key or a joystick button moves to the next screen. ## 2. Entering the name of players and selecting the level of computer-controlled players diff --git a/MANUAL_PL.md b/MANUAL_PL.md index f9790aa..98ad537 100644 --- a/MANUAL_PL.md +++ b/MANUAL_PL.md @@ -23,6 +23,8 @@ Na pierwszym ekranie możemy skonfigurować opcje rozgrywki: Wybór opcji klawiszami kursora lub joystickiem. +Klawisz [TAB], a na konsoli Atari 5200 klawisz [5] kontrolera zmieniają kolor gór. + Klawisz [RETURN] lub przycisk Joysticka przechodzi do następnego ekranu. ## 2. Wprowadzanie nazwy graczy i wybór poziomu graczy sterowanych przez komputer diff --git a/constants.asm b/constants.asm index 8689ee9..d438c99 100644 --- a/constants.asm +++ b/constants.asm @@ -59,6 +59,9 @@ areYouSureText lineClear dta d" " +TankColoursTable .BYTE $58,$2a,$96,$ca,$7a,$ed +;TankStatusColoursTable .BYTE $54,$24,$92,$c4,$74,$e4 ; standard order +TankStatusColoursTable .BYTE $74,$c4,$24,$e4,$54,$94 ; Adam's order ;----------- pmtableL ; addressess of the P/M memory for 6 tanks .by <(pmgraph+$400) diff --git a/constants_top.asm b/constants_top.asm index c17e2f3..ed9232e 100644 --- a/constants_top.asm +++ b/constants_top.asm @@ -2,17 +2,14 @@ .IF *>0 ;this is a trick that prevents compiling this file alone -TankColoursTable .BYTE $58,$2a,$96,$ca,$7a,$ed -;TankStatusColoursTable .BYTE $54,$24,$92,$c4,$74,$e4 ; standard order ;TanksPMOrder .BYTE 4,3,1,5,0,2 ; 0-3 = P0-P3 , 4 = M0+M1 , 5 = M2+M3 -TankStatusColoursTable .BYTE $74,$c4,$24,$e4,$54,$94 ; Adam's order TanksPMOrder .BYTE 4,3,1,5,0,2 ; 0-3 = P0-P3 , 4 = M0+M1 , 5 = M2+M3 dliColorsBack :10 .by $02,$00 dliColorsFore .by $0a ; one mountains color -; .by $0e,$0c,$0c,$0b,$0b,$0a,$0a,$09,$09,$08 ; mountains colors array -; .by $08,$08,$07,$07,$07,$06,$06,$06,$06,$05 + .by $0e,$0c,$0c,$0b,$0b,$0a,$0a,$09,$09,$08 ; mountains colors array + .by $08,$08,$07,$07,$07,$06,$06,$06,$06,$05 CashOptionL ;(one zero less than on the screen) .by 0,<200,<800,<1200,<2000 CashOptionH diff --git a/scorch.asm b/scorch.asm index 55be6ee..fce0b98 100644 --- a/scorch.asm +++ b/scorch.asm @@ -26,8 +26,9 @@ ;--------------------------------------------------- icl 'definitions.asm' ;--------------------------------------------------- -FirstZpageVariable = $61 +FirstZpageVariable = $60 .zpvar DliColorBack .byte = FirstZpageVariable + .zpvar Gradient .byte .zpvar JoystickNumber .byte .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) @@ -1180,16 +1181,18 @@ MakeTanksVisible phy ldy dliCounter lda dliColorsBack,y - nop - nop - nop - .IF TARGET = 800 - nop ; necessary on 800 because DLIs take less time, jitter visible without it - nop - .ENDIF + bit Gradient + bmi GoGradient + ldy #$ff +GoGradient + iny +; .IF TARGET = 800 +; nop ; necessary on 800 because DLIs take less time, jitter visible without it +; nop +; .ENDIF sta COLPF1 -; lda dliColorsFore,y ; mountains colors array - lda dliColorsFore ; one mauntain color + lda dliColorsFore,y ; mountains colors array +; lda dliColorsFore ; one mauntain color sta COLPF2 inc dliCounter ;ldy dliY @@ -1226,8 +1229,11 @@ MakeTanksVisible ; lda dliColorsBack lda #0 sta COLPF1 + lda dliColorsFore+1 + bit Gradient + bmi @+ lda dliColorsFore - sta COLPF2 +@ sta COLPF2 pla rti .endp diff --git a/scorch.bin b/scorch.bin index e3b8011..220b344 100644 Binary files a/scorch.bin and b/scorch.bin differ diff --git a/scorch.xex b/scorch.xex index d8c35dd..f60a6b5 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/textproc.asm b/textproc.asm index 8bc3838..8bebe1b 100644 --- a/textproc.asm +++ b/textproc.asm @@ -110,7 +110,14 @@ OptionsNoRight cmp #@kbcode._ret ; $c ;Return key bne OptionsNoReturn jmp OptionsFinished + OptionsNoReturn + cmp #@kbcode._tab ; Tab key + bne OptionsNoTab + lda Gradient + eor #$80 + sta Gradient +OptionsNoTab jmp OptionsMainLoop OptionsFinished diff --git a/weapons.asm b/weapons.asm index 627a097..c1289c5 100644 --- a/weapons.asm +++ b/weapons.asm @@ -102,11 +102,13 @@ CheckNextTankBFG mva #17 ExplosionRadius jsr xmissile - ; soil must fall down now! there is no other way... + jsr SecondRepeat + +/* ; soil must fall down now! there is no other way... ; hide tanks or they fall down with soil jsr SoilDown2 - ; 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 ; so, we have Force divided by 2 here (not accurately) lsr Force+1 @@ -123,8 +125,9 @@ CheckNextTankBFG mva #15 ExplosionRadius jsr CalculateExplosionRange0 mva #sfx_baby_missile sfx_effect - jsr xmissile.NoRangeCalc + jsr xmissile.NoRangeCalc */ +SecondRepeat ; soil must fall down now! there is no other way... ; hide tanks or they fall down with soil jsr SoilDown2 @@ -142,7 +145,7 @@ CheckNextTankBFG jsr Flight lda HitFlag beq EndOfLeapping - mva #13 ExplosionRadius + mva #14 ExplosionRadius jsr CalculateExplosionRange0 mva #sfx_baby_missile sfx_effect jmp xmissile.NoRangeCalc