Changes

Tennis Cup 2 (cartridge)

5,163 bytes added, 00:07, 7 June 2023
/* Analog Joystick Support */ typo
[[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 ==
</gallery>
== Cartrige Cartridge ==
<gallery caption="Tennis Cup 2">
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 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 ==
[[Category:Games]][[Category:Cartridges]][[Category:CPC Plus]][[Category:CPC Plus Games]]
897
edits