| retrohackers.org https://retrohackers.org/ |
|
| LIGHT GUN and trigger... https://retrohackers.org/viewtopic.php?f=1&t=552 |
Page 1 of 1 |
| Author: | MIRKOSOFT [ Wed Jan 20, 2010 4:57 pm ] |
| Post subject: | LIGHT GUN and trigger... |
Hi! I'm user of C128DCR and now owner of light gun Cheetah DEFENDER64. What's my problem? I can aim to target on screen and light gun it indicates, but I can't to get trigger status. I tried IRQ, of course $DC01 (JoyPort1), commands COLLISION and PEN(x) in BAISC V7. In assembler it was easier, but I can't detect if is trigger holding down or released... Can anybody help me? Thanks for every help. Miro |
|
| Author: | mistermsk [ Wed Jan 20, 2010 8:58 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
I assume you tried Gangster or Time Traveler which I believe are Light Gun games for the Commodore 64, correct? Just trying to find out if the problem you are having is the Light Gun functioning or are you just trying to get the status interrupt only? Kinda' veg when you posted. |
|
| Author: | MIRKOSOFT [ Wed Jan 20, 2010 9:16 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
Hi! Yes, I tried games, no problem, works. My problem is that I want to programming Light Gun. Position is not problem, but I don't know how detect trigger. Usually ways as $DC01, IRQ, PEN(4), COLLISION works not - exactly - some changes are in $DC01. If I check $DC01 in assembler, when I aim at screen value $FF changes to $EF (like fire is pressed), but I don't press trigger... ...and if I press trigger, no values are changed... Miro |
|
| Author: | mistermsk [ Wed Jan 20, 2010 9:28 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
In 64 Mode (Holding the C= Key down on power on) try: Code: 100 REM * LIGHT PEN DEMO * 150 A$=CHR$(147):PRINTA$ 160 PRINTTAB(10)"THREE CHOICES" 170 PRINT:PRINT 180 PRINTTAB(5)"* CHOICE ONE" 190 PRINT:PRINT:PRINT:PRINT 200 PRINTTAB(5)"* CHOICE TWO" 210 PRINT:PRINT:PRINT:PRINT 220 PRINTTAB(5)"* CHOICE THREE" 230 A=PEEK(53267):B=PEEK(53268) 240 IF A>55 THEN 230 250 IF (B>70) AND (B<80) THEN 300 260 IF (B>110) AND (B<120) THEN 330 270 IF (B>150) AND (B<160) THEN 360 290 GOT0230 300 PRINTA$ 310 PRINT"CHOICE ONE" 320 GOTO 400 330 PRINTA$ 340 PRINT"CHOICE TWO" 350 GOTO 400 360 PRINTA$ 370 PRINT"CHOICE THREE" 400 FOR I=0 TO 1500 410 NEXT I:PRINT 420 PRINT"* CONTINUE" 430 IF PEEK(53267)<55 AND PEEK(53268) <70{2 SPACES}THEN 150 440 GOTO 430 (taken from here.) and then run it. If I am not mistaken all a light gun is, is a light pen. Instead of pressing the pen to the screen (which makes it like the fire button) they made the trigger (switch) external. |
|
| Author: | MIRKOSOFT [ Wed Jan 20, 2010 9:37 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
Yes, I know this example. I have also Light pen. This demo works correctly with both devices (Light gun and Light pen). But this demo checks not trigger/light pen press... I reprogrammed this demo for detect pressing, light pen works ok, light gun not. There's the problem - light gun has other indicating of pressing trigger... and I don't know it. Miro |
|
| Author: | RaveGuru [ Thu Jan 21, 2010 1:13 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
Did you check the paddle triggers? Enable paddles by writing #$c0 to $dc00 and check for activity in $dc00 or $dc01. Don't forget to set the DDR registers to input... |
|
| Author: | mistermsk [ Mon Jan 25, 2010 6:02 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
I found this artical that shows the light gun trigger is pin 6, which is odd because that IS the fire button. I also found this program at 64HDD under Projects. It also uses pin 6. It has a basic program that should work for you. Let Us Know, MisterMsk |
|
| Author: | MIRKOSOFT [ Mon Jan 25, 2010 6:37 pm ] |
| Post subject: | Re: LIGHT GUN and trigger... |
Thank you for support. I found with help that if I'm checking (pot(2)and255) it gives back to me value 2, then I'm checking coordinates normally, here's example: 100 rem * light gun demo * 110 color0,2:color4,14:color5,1 150 a$=chr$(147):printa$:x=0:y=0:z=0 160 printtab(10)"shoot targets!" 180 char1,5,5,"O" 200 char1,5,10,"O" 220 char1,5,15,"O" 230 if(pot(2)and255)<>2then230 235 a=pen(0):b=pen(1) 250 if (b>75) and (b<90) then char1,5,5, "0":x=1 260 if (b>110) and (b<135) then char1,5, 10,"0":y=1 270 if (b>145) and (b<170) then char1,5, 15,"0":z=1 280 ifx=1andy=1andz=1thenchar1,10,20,"yo u passed!":end 290 goto230 Also thanks for every help. Miro |
|
| Page 1 of 1 | All times are UTC [ DST ] |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|