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!"
L102 dta d"I THOUGHT YOU LIKED ME?"
L103 dta d"CTO XYEB"
L104 dta d"I THINK THIS GUY'S A LITTLE CRAZY."
L105 dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
L106 dta d"HEY! KILLIN' AIN'T COOL."
L107 dta d"GEE... THANKS."
L108 dta d"I'VE FALLEN AND I CAN'T GET UP!"
L109 dta d"911?"
L110 dta d"OH NO! HERE I BLOW AGAIN!"
L111 dta d"I'LL BE BACK..."
L112 dta d"HEY - I'VE GOT LAWYERS."
L113 dta d"TIME TO CALL 1-900-SUE-TANK."
L104 ;dta d"I THINK THIS GUY'S A LITTLE CRAZY."
L105 ;dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
L106 ;dta d"HEY! KILLIN' AIN'T COOL."
L107 ;dta d"GEE... THANKS."
L108 ;dta d"I'VE FALLEN AND I CAN'T GET UP!"
L109 ;dta d"911?"
L110 ;dta d"OH NO! HERE I BLOW AGAIN!"
L111 ;dta d"I'LL BE BACK..."
L112 ;dta d"HEY - I'VE GOT LAWYERS."
L113 ;dta d"TIME TO CALL 1-900-SUE-TANK."
LEND
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
@@ -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 >LEND
NumberOfOffensiveTexts=54
NumberOfDeffensiveTexts=60
NumberOfDeffensiveTexts=50 ;60 (sorry - memory)
.endp
hoverFull dta d"MY HOVERCRAFT IS FULL OF EELS!", $ff
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 $0d,$01,$05,$00,$25,$23,$08,$0a
.by $2f,$28,$3e,$2d,$0b,$10,$2e,$16
.by $2b,$17,$1f,$1e,$1a,$18,$1d,$1b
.by $33,$35,$30,$32,$22,$21 ;,$0e <-- hyphen removed from the table, sorry hyphen lovers
.by $2b,$17
.by $32,$1f,$1e,$1a,$18,$1d,$1b
.by $33,$35,$30,$22,$21 ;,$0e <-- hyphen removed from the table, sorry hyphen lovers
keycodesEnd
scrcodes
dta d"abcdefgh"
dta d"ijklmnop"
dta d"qrstuvwx"
dta d"yz123456"
dta d"7890. " ; "-"
dta d"yz"
zero
digits ; decimal constans
dta d"0123456"
dta d"789. " ; "-"
;-------decimal constans
;zero
;digits dta d"0123456789"
;-----------------------------------
gameOverSpritesTop
; end of the Gover sprites by number of players
; 1 2 3 4 5 6
.by 130+7,130+7,136+7,142+7,148+7,154+7
;-------decimal constans
zero
digits dta d"0123456789"
;------credits
CreditsStart
dta d" "*
+10 -6
View File
@@ -32,16 +32,20 @@ NameScreen3
dta d" Human/Atari (difficulty level) "
NameScreen5
.IF TARGET = 800
dta d" "
dta d"TAB"*
dta d" - Player/Difficulty level "
dta d" "
dta d"TAB"*
dta d" - Port nr "
dta d"Joy"*
dta d" - Difficulty "
dta d" "
dta d"Return"*
dta d" - Proceed "
.ELIF TARGET = 5200
dta d" "
dta d"Joy"*
dta d" - Player/Difficulty level "
dta d" "
dta d"(5)"*
dta d" - Port nr "
dta d"Joy"*
dta d" - Difficulty "
dta d" "
dta d"FIRE"*
dta d" - Proceed "
+17 -5
View File
@@ -26,8 +26,9 @@
;---------------------------------------------------
icl 'definitions.asm'
;---------------------------------------------------
FirstZpageVariable = $61
FirstZpageVariable = $60
.zpvar DliColorBack .byte = FirstZpageVariable
.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)
.zpvar xbyte .word
@@ -269,12 +270,15 @@ FirstSTART
; 5 values in RMT file
; not elegant :(
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 #$06 MODUL-6+$bc3 ; $07 > $06
mva #$04 MODUL-6+$bf8 ; $05 > $04
mva #$08 MODUL-6+$e3d ; $0a > $08
mva #$06 MODUL-6+$e69 ; $08 > $06
mva #$06 MODUL-6+$ebc ; $08 > $06
NoRMT_PALchange
.ELSE
mva #$7f SkStatSimulator
@@ -671,7 +675,8 @@ RoboTanks
jmp AfterManualShooting
ManualShooting
lda JoyNumber,x
sta JoystickNumber ; set joystick port for player
jsr WaitForKeyRelease
jsr BeforeFire
lda escFlag
@@ -1095,6 +1100,7 @@ deletePtr = temp
; clean variables
lda #0
sta escFlag
sta JoystickNumber
tay
mwa #variablesStart deletePtr
@ tya
@@ -1346,6 +1352,12 @@ nextlinedisplay
; bne EndOfCreditsVBI
mwa #Credits DLCreditsAddr
EndOfCreditsVBI
; support for joysticks :)
ldx JoystickNumber
lda STICK0,x
sta STICK0
lda STRIG0,x
sta STRIG0
.IF TARGET = 5200
lda SkStatSimulator
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 :) !!!
jmp AfterManualPurchase
ManualPurchase
lda JoyNumber,x
sta JoystickNumber ; set joystick port for player
mva #0 isInventory
jsr Purchase ; purchase weapons
bit escFlag
@@ -1224,6 +1226,9 @@ FirstChar
ChangeOfJoyUp
ldx TankNr
inc JoyNumber,x
lda JoyNumber,x
and #%00000011 ; max 4 joysticks
sta JoyNumber,x
jmp CheckKeys
ChangeOfLevelUp ; change difficulty level of computer opponent
inc:lda DifficultyLevel
@@ -2087,6 +2092,7 @@ FinishResultDisplay
mva #0 COLOR1
sta COLBAKS ; set color of background
sta CreditsVScrol
sta JoystickNumber ; set joystick port for player
mva #TextForegroundColor COLOR2
SetDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen
; make text and color lines for each tank