Joy

Ian Smith smithi at nimnet.asn.au
Thu Mar 17 09:22:41 PST 2005


On Thu, 17 Mar 2005, Kevin Downey wrote:
 > On Wed, 16 Mar 2005 16:57:32 -0500, Mathew Kanner <mat at cnd.mcgill.ca> wrote:
 > > On Mar 16, Kevin Downey wrote:
 > > > So, I got this cheap old used microsoft gamepad of some
 > > > kind(sidewinder?). It plugs into the "game port" on the sound card. I
 > > > figure all I will have to do is kldload a module or few to get it
 > > > running. So kldload joy and nada. Does device joy need to be in the
 > > > kernel? is joy.ko just a siren's song of impossibilities to lure the
 > > > ignorant?

kldload joy hasn't worked for me since 3.3-RELEASE.  It worked (as I
recall) in 2.2.6-RELEASE though I added it to the kernel then anyway,
for an experimental UPS interface - yet another unfinished project :)

I've tried kldload joy on 3.3, 4.5, 4.8 and 4.10 systems. Yes it loads,
no it doesn't work, but works fine in kernel here on 3.3 and 4.5 boxes.

 > >         Been a long time since I've though about joy.  Anyway, I seem
 > > to recall that you need a hint to enable joy since it's ISA and not
 > > PNP.  Is it there?  Is it commented out?  (Away from my freebsd
 > > machine)
 > > 
 > >         --Mat

joy.c (at 4.x) has a bunch of isa_pnp_id definitions, with pnp probe -
maybe kldload might work with PnP, dunno, mine were ISA gameport cards. 

 > I see.
 > I have not found a device.hints line for joy. Well, I have found
 > several "suggested" joy device.hints lines such as:
 > hints.joy.0.at="pci0"
 > hints.joy.0.at="isa"
 > I found these while mucking around with google. Now I am pretty sure
 > the ISA deal is not the way to go because, well, its a pci sound card.

Don't know about 5.x or -current, but it's likely still accessed via the
ISA bus.  In 2.x, 3.x and 4.x kernels it's: 

  device          joy0    at isa? port IO_GAME

smithi on paqi% grep joy /var/run/dmesg.boot
joy0 at port 0x201 on isa0
smithi on paqi% kldstat -v | grep joy
                35 isa/joy
                56 pci/emujoy

No idea what emujoy does.  This Compaq Armada 1500c laptop's joystick
connector appears only on its docking station, presumably via the sound
card, which also appears here as ISA; no, I haven't tried MIDI with it.

sbc0: <ESS ES1869 (Compaq OEM)> at port 0x220-0x22f,0x388-0x38b,0x330-0x331 irq 5 drq 1,5 on isa0
pcm0: <ESS 18xx DSP> on sbc0

 > But I have tried both of them anyway. Next I will try put device joy
 > in the kernel(instead of kldload joy). Now looking around in the BIOS
 > has lead me to associate the string "200-207H" with the gameport, and
 > it seems like this might be something useful, but gosh, I dunno.

Given I don't know about 5.x & 6.x, I suspect that it should still work. 
0x201 = joystick port.  /sys/isa/joy.c is a quick read.  From man 4 joy: 

smithi on paqi% perl -e 'open(JOY,"/dev/joy0")||die;while(1) \
 {sysread(JOY,$x,16);@j=unpack("iiii",$x);print "@j\n";sleep(1);}'
-2147483648 -2147483648 0 0
-2147483648 -2147483648 0 0
-2147483648 -2147483648 0 0
^C

(correct results for an unconnected game port :)

Cheers, Ian



More information about the freebsd-multimedia mailing list