Difference between revisions of "Tennis Cup 2 (cartridge)"
(→Analog Joystick) |
m (→Analog Joystick Support: typo) |
||
(14 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[File:Tennis cup 2 intro.png|384px|thumb|right]] | ||
+ | |||
+ | '''Tennis Cup 2''' is the Cartridge version of '''Tennis Cup''', a tennis game on CPC (old), both games produced by [[Loriciel]]. | ||
+ | |||
+ | |||
+ | Certainly the best looking Tennis game on Amstrad (in cartridge version). | ||
+ | |||
+ | |||
== Cover == | == Cover == | ||
Line 27: | Line 35: | ||
You can download in CPR for use in emulators and BIN from CPCmania ( See the links ). | You can download in CPR for use in emulators and BIN from CPCmania ( See the links ). | ||
− | + | == Videos == | |
− | == | + | Quick look by Novabug |
− | + | {{#ev:youtube|VQgmT-HRt2Y|340}} | |
− | + | ||
− | + | ==Comparison== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | [[File:Tennis cup cpc intro.png]][[File:Tennis cup cpc game.png]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | CPC version in mode1. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | [[File:Tennis cup 2 cartridge game 1.png]][[File:Tennis cup 2 cartridge game 2.png]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Cartridge version in Mode0 + Hardwired sprites. | |
− | + | ||
− | + | == Analog Joystick Support == | |
− | + | ||
+ | This game is perhaps the only one on Amstrad GX4000/Plus range that supports an [[Analog Joysticks|Analog Joystick]], however, it converts the analog signals to digital signals by software. In two-player mode, the game can be controlled by: | ||
+ | * Digital Joystick #1 and Digital Joystick #2 | ||
+ | or alternately (selectable in Options), | ||
+ | * Analog Joystick #1 and Digital Joystick #2 | ||
+ | That feature is intended for people who own one digital stick, and one analogue stick (rather than two digital ones). In the "analog" mode, Digital Joystick #1 is not used (because its button inputs would conflict with Analog Joystick #1). | ||
− | + | Disassembly of the joystick code in Tennis Cup 2: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ld bc,0f40eh | |
− | + | out (c),c | |
− | + | ld b,0f6h | |
− | + | in a,(c) | |
+ | and 30h | ||
+ | ld c,a | ||
+ | or 0c0h | ||
+ | out (c),a | ||
+ | out (c),c | ||
+ | inc b | ||
+ | ld a,92h | ||
+ | out (c),a | ||
+ | push bc | ||
+ | set 6,c | ||
+ | ld a,09h ;keyb.row 9 ;\ | ||
+ | or c ; | ||
+ | ld b,0f6h ; | ||
+ | out (c),a ; read digital joystick 1 | ||
+ | ld b,0f4h ; | ||
+ | in a,(c) ; | ||
+ | cpl ; | ||
+ | ld (8082h),a ;store joy 1 ;/ | ||
+ | push af ;push joy 1 | ||
+ | ld a,06h ;keyb.row6 ;\ | ||
+ | or c ; | ||
+ | ld b,0f6h ; | ||
+ | out (c),a ; read digital joystick 2 | ||
+ | ld b,0f4h ; | ||
+ | in a,(c) ; | ||
+ | cpl ; | ||
+ | ld (8083h),a ;store joy 2 ;/ | ||
+ | pop de ;pop joy 1 ;\ | ||
+ | or d ;merge joy 2 ; merge digital joystick 1+2 | ||
+ | ld (8086h),a ;store both ;/ | ||
+ | ld a,03h ;keyb.row3 ;\ | ||
+ | or c ; read pause button | ||
+ | ld b,0f6h ; (aka "P" key) | ||
+ | out (c),a ; (row3.bit3) | ||
+ | ld b,0f4h ; (bit3 still needs to be | ||
+ | in a,(c) ; isolated elsewhere) | ||
+ | cpl ; | ||
+ | ld (8084h),a ;store pause ;/ | ||
+ | pop bc | ||
+ | ld a,82h | ||
+ | out (c),a | ||
+ | dec b | ||
+ | out (c),c | ||
+ | ld bc,7fb8h | ||
+ | out (c),c | ||
+ | ld c,00h ;digital-joystick-style bits | ||
+ | ld a,(6808h) ;ADC0 ;+00h..+3Fh ;\ | ||
+ | sub 1fh ;-1Fh..+20h ; | ||
+ | cp 14h ; | ||
+ | jp p,261fh_RIGHT ;+14h..+20h ; | ||
+ | cp 0ech ;-14h ; read analog joystick 1, | ||
+ | jp m,2623h_LEFT ;-1Fh..-15h ; X-axis (ADC0) | ||
+ | jr 2625h_X_DONE ;-14h..+13h ; | ||
+ | 261f_RIGHT: ; | ||
+ | set 3,c ;bit3=right (as on digital joy) ; convert to digital left/right | ||
+ | jr 2625h_X_DONE ; | ||
+ | 2623_LEFT: ; | ||
+ | set 2,c ;bit2=left (as on digital joy) ; | ||
+ | 2625_X_DONE: ;/ | ||
+ | ld a,(6809h) ;ADC0 ;+00h..+3Fh ;\ | ||
+ | sub 1fh ;-1Fh..+20h ; | ||
+ | cp 14h ; | ||
+ | jp p,2639h_DOWN ;+14h..+20h ; | ||
+ | cp 0ech ;-14h ; read analog joystick 1, | ||
+ | jp p,263bh_Y_DONE ;-14h..+13h ; Y-axis (ADC1) | ||
+ | 2634h_UP: ;-1Fh..-15h ; | ||
+ | set 0,c ;bit0=up (as on digital joy) ; convert to digital up/down | ||
+ | jp 263bh_Y_DONE ; | ||
+ | 2639h_DOWN: ; | ||
+ | set 1,c ;bit1=down (as on digital joy) ; | ||
+ | 263bh_Y_DONE: ;/ | ||
+ | ld a,(8082h) ;joy1 ;\ | ||
+ | and 10h ;joy1 fire ; use digital joystick 1 fire | ||
+ | or c ; as analog joystick 1 fire | ||
+ | ld (8085h),a ;store A/D converted analog ;/ | ||
The keyboard is read to determine the state of the digital joysticks and the P button (pause button on gx4000 console). | The keyboard is read to determine the state of the digital joysticks and the P button (pause button on gx4000 console). |
Latest revision as of 19:07, 6 June 2023
Tennis Cup 2 is the Cartridge version of Tennis Cup, a tennis game on CPC (old), both games produced by Loriciel.
Certainly the best looking Tennis game on Amstrad (in cartridge version).
Contents
Cover
Covers from CPCmania
- Tennis Cup 2
Cartridge
- Tennis Cup 2
Manual
You can download in PDF from CPCmania ( See the links ).
Game
You can download in CPR for use in emulators and BIN from CPCmania ( See the links ).
Videos
Quick look by Novabug {{#ev:youtube|VQgmT-HRt2Y|340}}
Comparison
CPC version in mode1.
Cartridge version in Mode0 + Hardwired sprites.
Analog Joystick Support
This game is perhaps the only one on Amstrad GX4000/Plus range that supports an Analog Joystick, however, it converts the analog signals to digital signals by software. In two-player mode, the game can be controlled by:
- Digital Joystick #1 and Digital Joystick #2
or alternately (selectable in Options),
- Analog Joystick #1 and Digital Joystick #2
That feature is intended for people who own one digital stick, and one analogue stick (rather than two digital ones). In the "analog" mode, Digital Joystick #1 is not used (because its button inputs would conflict with Analog Joystick #1).
Disassembly of the joystick code in Tennis Cup 2:
ld bc,0f40eh out (c),c ld b,0f6h in a,(c) and 30h ld c,a or 0c0h out (c),a out (c),c inc b ld a,92h out (c),a push bc set 6,c ld a,09h ;keyb.row 9 ;\ or c ; ld b,0f6h ; out (c),a ; read digital joystick 1 ld b,0f4h ; in a,(c) ; cpl ; ld (8082h),a ;store joy 1 ;/ push af ;push joy 1 ld a,06h ;keyb.row6 ;\ or c ; ld b,0f6h ; out (c),a ; read digital joystick 2 ld b,0f4h ; in a,(c) ; cpl ; ld (8083h),a ;store joy 2 ;/ pop de ;pop joy 1 ;\ or d ;merge joy 2 ; merge digital joystick 1+2 ld (8086h),a ;store both ;/ ld a,03h ;keyb.row3 ;\ or c ; read pause button ld b,0f6h ; (aka "P" key) out (c),a ; (row3.bit3) ld b,0f4h ; (bit3 still needs to be in a,(c) ; isolated elsewhere) cpl ; ld (8084h),a ;store pause ;/ pop bc ld a,82h out (c),a dec b out (c),c ld bc,7fb8h out (c),c ld c,00h ;digital-joystick-style bits ld a,(6808h) ;ADC0 ;+00h..+3Fh ;\ sub 1fh ;-1Fh..+20h ; cp 14h ; jp p,261fh_RIGHT ;+14h..+20h ; cp 0ech ;-14h ; read analog joystick 1, jp m,2623h_LEFT ;-1Fh..-15h ; X-axis (ADC0) jr 2625h_X_DONE ;-14h..+13h ; 261f_RIGHT: ; set 3,c ;bit3=right (as on digital joy) ; convert to digital left/right jr 2625h_X_DONE ; 2623_LEFT: ; set 2,c ;bit2=left (as on digital joy) ; 2625_X_DONE: ;/ ld a,(6809h) ;ADC0 ;+00h..+3Fh ;\ sub 1fh ;-1Fh..+20h ; cp 14h ; jp p,2639h_DOWN ;+14h..+20h ; cp 0ech ;-14h ; read analog joystick 1, jp p,263bh_Y_DONE ;-14h..+13h ; Y-axis (ADC1) 2634h_UP: ;-1Fh..-15h ; set 0,c ;bit0=up (as on digital joy) ; convert to digital up/down jp 263bh_Y_DONE ; 2639h_DOWN: ; set 1,c ;bit1=down (as on digital joy) ; 263bh_Y_DONE: ;/ ld a,(8082h) ;joy1 ;\ and 10h ;joy1 fire ; use digital joystick 1 fire or c ; as analog joystick 1 fire ld (8085h),a ;store A/D converted analog ;/
The keyboard is read to determine the state of the digital joysticks and the P button (pause button on gx4000 console).
The routine reads analogue input channel 0 and 1 for the analogue joystick and performs some checking to see the range of the numbers. Based on this it sets the direction pressed.
Links
http://www.cpcmania.com/ ( on the games section : GX4000/CPC+ GAMES )