Initial support for multiple joysticks (A800 only)

This commit is contained in:
Pecusx
2022-11-18 21:54:07 +01:00
parent ccd3fa5224
commit dedfd7a248
7 changed files with 57 additions and 31 deletions
+11 -11
View File
@@ -105,16 +105,16 @@ L100 dta d"IT WASN'T JUST A JOB IT WAS AN ADVENTURE!"
L101 dta d"I DIDN'T LIKE VIOLENCE ANYWAY!" L101 dta d"I DIDN'T LIKE VIOLENCE ANYWAY!"
L102 dta d"I THOUGHT YOU LIKED ME?" L102 dta d"I THOUGHT YOU LIKED ME?"
L103 dta d"CTO XYEB" L103 dta d"CTO XYEB"
L104 dta d"I THINK THIS GUY'S A LITTLE CRAZY." L104 ;dta d"I THINK THIS GUY'S A LITTLE CRAZY."
L105 dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE." L105 ;dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
L106 dta d"HEY! KILLIN' AIN'T COOL." L106 ;dta d"HEY! KILLIN' AIN'T COOL."
L107 dta d"GEE... THANKS." L107 ;dta d"GEE... THANKS."
L108 dta d"I'VE FALLEN AND I CAN'T GET UP!" L108 ;dta d"I'VE FALLEN AND I CAN'T GET UP!"
L109 dta d"911?" L109 ;dta d"911?"
L110 dta d"OH NO! HERE I BLOW AGAIN!" L110 ;dta d"OH NO! HERE I BLOW AGAIN!"
L111 dta d"I'LL BE BACK..." L111 ;dta d"I'LL BE BACK..."
L112 dta d"HEY - I'VE GOT LAWYERS." L112 ;dta d"HEY - I'VE GOT LAWYERS."
L113 dta d"TIME TO CALL 1-900-SUE-TANK." L113 ;dta d"TIME TO CALL 1-900-SUE-TANK."
LEND LEND
OffensiveTextTableL OffensiveTextTableL
dta <L0,<L1,<L2,<L3,<L4,<L5,<L6,<L7,<L8,<L9,<L10,<L11,<L12,<L13,<L14,<L15,<L16,<L17,<L18,<L19,<L20,<L21,<L22,<L23,<L24,<L25,<L26,<L27,<L28,<L29,<L30,<L31,<L32,<L33,<L34,<L35,<L36,<L37,<L38,<L39,<L40,<L41,<L42,<L43,<L44,<L45,<L46,<L47,<L48,<L49,<L50,<L51,<L52 dta <L0,<L1,<L2,<L3,<L4,<L5,<L6,<L7,<L8,<L9,<L10,<L11,<L12,<L13,<L14,<L15,<L16,<L17,<L18,<L19,<L20,<L21,<L22,<L23,<L24,<L25,<L26,<L27,<L28,<L29,<L30,<L31,<L32,<L33,<L34,<L35,<L36,<L37,<L38,<L39,<L40,<L41,<L42,<L43,<L44,<L45,<L46,<L47,<L48,<L49,<L50,<L51,<L52
@@ -125,7 +125,7 @@ OffensiveTextTableH
dta >L53,>L54,>L55,>L56,>L57,>L58,>L59,>L60,>L61,>L62,>L63,>L64,>L65,>L66,>L67,>L68,>L69,>L70,>L71,>L72,>L73,>L74,>L75,>L76,>L77,>L78,>L79,>L80,>L81,>L82,>L83,>L84,>L85,>L86,>L87,>L88,>L89,>L90,>L91,>L92,>L93,>L94,>L95,>L96,>L97,>L98,>L99,>L100,>L101,>L102,>L103,>L104,>L105,>L106,>L107,>L108,>L109,>L110,>L111,>L112,>L113 dta >L53,>L54,>L55,>L56,>L57,>L58,>L59,>L60,>L61,>L62,>L63,>L64,>L65,>L66,>L67,>L68,>L69,>L70,>L71,>L72,>L73,>L74,>L75,>L76,>L77,>L78,>L79,>L80,>L81,>L82,>L83,>L84,>L85,>L86,>L87,>L88,>L89,>L90,>L91,>L92,>L93,>L94,>L95,>L96,>L97,>L98,>L99,>L100,>L101,>L102,>L103,>L104,>L105,>L106,>L107,>L108,>L109,>L110,>L111,>L112,>L113
dta >LEND dta >LEND
NumberOfOffensiveTexts=54 NumberOfOffensiveTexts=54
NumberOfDeffensiveTexts=60 NumberOfDeffensiveTexts=50 ;60 (sorry - memory)
.endp .endp
hoverFull dta d"MY HOVERCRAFT IS FULL OF EELS!", $ff hoverFull dta d"MY HOVERCRAFT IS FULL OF EELS!", $ff
hoverFullEnd hoverFullEnd
+12 -8
View File
@@ -573,24 +573,28 @@ keycodes ;tables for converting KeyCode to Screen Code (38 -1 characters)
.by $3f,$15,$12,$3a,$2a,$38,$3d,$39 .by $3f,$15,$12,$3a,$2a,$38,$3d,$39
.by $0d,$01,$05,$00,$25,$23,$08,$0a .by $0d,$01,$05,$00,$25,$23,$08,$0a
.by $2f,$28,$3e,$2d,$0b,$10,$2e,$16 .by $2f,$28,$3e,$2d,$0b,$10,$2e,$16
.by $2b,$17,$1f,$1e,$1a,$18,$1d,$1b .by $2b,$17
.by $33,$35,$30,$32,$22,$21 ;,$0e <-- hyphen removed from the table, sorry hyphen lovers .by $32,$1f,$1e,$1a,$18,$1d,$1b
.by $33,$35,$30,$22,$21 ;,$0e <-- hyphen removed from the table, sorry hyphen lovers
keycodesEnd keycodesEnd
scrcodes scrcodes
dta d"abcdefgh" dta d"abcdefgh"
dta d"ijklmnop" dta d"ijklmnop"
dta d"qrstuvwx" dta d"qrstuvwx"
dta d"yz123456" dta d"yz"
dta d"7890. " ; "-" zero
digits ; decimal constans
dta d"0123456"
dta d"789. " ; "-"
;-------decimal constans
;zero
;digits dta d"0123456789"
;----------------------------------- ;-----------------------------------
gameOverSpritesTop gameOverSpritesTop
; end of the Gover sprites by number of players ; end of the Gover sprites by number of players
; 1 2 3 4 5 6 ; 1 2 3 4 5 6
.by 130+7,130+7,136+7,142+7,148+7,154+7 .by 130+7,130+7,136+7,142+7,148+7,154+7
;-------decimal constans
zero
digits dta d"0123456789"
;------credits ;------credits
CreditsStart CreditsStart
dta d" "* dta d" "*
+10 -6
View File
@@ -32,16 +32,20 @@ NameScreen3
dta d" Human/Atari (difficulty level) " dta d" Human/Atari (difficulty level) "
NameScreen5 NameScreen5
.IF TARGET = 800 .IF TARGET = 800
dta d" " dta d" "
dta d"TAB"* dta d"TAB"*
dta d" - Player/Difficulty level " dta d" - Port nr "
dta d"Joy"*
dta d" - Difficulty "
dta d" " dta d" "
dta d"Return"* dta d"Return"*
dta d" - Proceed " dta d" - Proceed "
.ELIF TARGET = 5200 .ELIF TARGET = 5200
dta d" " dta d" "
dta d"Joy"* dta d"(5)"*
dta d" - Player/Difficulty level " dta d" - Port nr "
dta d"Joy"*
dta d" - Difficulty "
dta d" " dta d" "
dta d"FIRE"* dta d"FIRE"*
dta d" - Proceed " dta d" - Proceed "
+17 -5
View File
@@ -26,8 +26,9 @@
;--------------------------------------------------- ;---------------------------------------------------
icl 'definitions.asm' icl 'definitions.asm'
;--------------------------------------------------- ;---------------------------------------------------
FirstZpageVariable = $61 FirstZpageVariable = $60
.zpvar DliColorBack .byte = FirstZpageVariable .zpvar DliColorBack .byte = FirstZpageVariable
.zpvar JoystickNumber .byte
.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
@@ -269,12 +270,15 @@ FirstSTART
; 5 values in RMT file ; 5 values in RMT file
; not elegant :( ; not elegant :(
mva #$06 MODUL-6+$967 ; $07 > $06 mva #$06 MODUL-6+$967 ; $07 > $06
;mva #$06 MODUL-6+$bc3 ; $07 > $06
;mva #$06 MODUL-6+$e69 ; $08 > $06
;mva #$06 MODUL-6+$ebc ; $08 > $06
sta MODUL-6+$bc3 ; $07 > $06
sta MODUL-6+$e69 ; $08 > $06
sta MODUL-6+$ebc ; $08 > $06
mva #$10 MODUL-6+$a69 ; $12 > $10 mva #$10 MODUL-6+$a69 ; $12 > $10
mva #$06 MODUL-6+$bc3 ; $07 > $06
mva #$04 MODUL-6+$bf8 ; $05 > $04 mva #$04 MODUL-6+$bf8 ; $05 > $04
mva #$08 MODUL-6+$e3d ; $0a > $08 mva #$08 MODUL-6+$e3d ; $0a > $08
mva #$06 MODUL-6+$e69 ; $08 > $06
mva #$06 MODUL-6+$ebc ; $08 > $06
NoRMT_PALchange NoRMT_PALchange
.ELSE .ELSE
mva #$7f SkStatSimulator mva #$7f SkStatSimulator
@@ -671,7 +675,8 @@ RoboTanks
jmp AfterManualShooting jmp AfterManualShooting
ManualShooting ManualShooting
lda JoyNumber,x
sta JoystickNumber ; set joystick port for player
jsr WaitForKeyRelease jsr WaitForKeyRelease
jsr BeforeFire jsr BeforeFire
lda escFlag lda escFlag
@@ -1095,6 +1100,7 @@ deletePtr = temp
; clean variables ; clean variables
lda #0 lda #0
sta escFlag sta escFlag
sta JoystickNumber
tay tay
mwa #variablesStart deletePtr mwa #variablesStart deletePtr
@ tya @ tya
@@ -1346,6 +1352,12 @@ nextlinedisplay
; bne EndOfCreditsVBI ; bne EndOfCreditsVBI
mwa #Credits DLCreditsAddr mwa #Credits DLCreditsAddr
EndOfCreditsVBI EndOfCreditsVBI
; support for joysticks :)
ldx JoystickNumber
lda STICK0,x
sta STICK0
lda STRIG0,x
sta STRIG0
.IF TARGET = 5200 .IF TARGET = 5200
lda SkStatSimulator lda SkStatSimulator
bmi @+ bmi @+
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+6
View File
@@ -242,6 +242,8 @@ invertme
jsr PurchaseAI ; remember to make ActivateAI :) !!! jsr PurchaseAI ; remember to make ActivateAI :) !!!
jmp AfterManualPurchase jmp AfterManualPurchase
ManualPurchase ManualPurchase
lda JoyNumber,x
sta JoystickNumber ; set joystick port for player
mva #0 isInventory mva #0 isInventory
jsr Purchase ; purchase weapons jsr Purchase ; purchase weapons
bit escFlag bit escFlag
@@ -1224,6 +1226,9 @@ FirstChar
ChangeOfJoyUp ChangeOfJoyUp
ldx TankNr ldx TankNr
inc JoyNumber,x inc JoyNumber,x
lda JoyNumber,x
and #%00000011 ; max 4 joysticks
sta JoyNumber,x
jmp CheckKeys jmp CheckKeys
ChangeOfLevelUp ; change difficulty level of computer opponent ChangeOfLevelUp ; change difficulty level of computer opponent
inc:lda DifficultyLevel inc:lda DifficultyLevel
@@ -2087,6 +2092,7 @@ FinishResultDisplay
mva #0 COLOR1 mva #0 COLOR1
sta COLBAKS ; set color of background sta COLBAKS ; set color of background
sta CreditsVScrol sta CreditsVScrol
sta JoystickNumber ; set joystick port for player
mva #TextForegroundColor COLOR2 mva #TextForegroundColor COLOR2
SetDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen SetDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen
; make text and color lines for each tank ; make text and color lines for each tank