--- vid.c.orig Mon May 8 06:59:03 2000 +++ vid.c Wed Sep 20 18:14:22 2006 @@ -48,15 +48,15 @@ struct usb_ctl_request ur; unsigned char data[1024]; - ur.request.bmRequestType = UT_READ_VENDOR_INTERFACE; - ur.request.bRequest = 2; + ur.ucr_request.bmRequestType = UT_READ_VENDOR_INTERFACE; + ur.ucr_request.bRequest = 2; - USETW(ur.request.wValue, 0); /* unused */ - USETW(ur.request.wIndex, reg); /* index */ - USETW(ur.request.wLength, 1); /* payload len in bytes */ - ur.data = data; - ur.flags = 0; - ur.actlen = 0; + USETW(ur.ucr_request.wValue, 0); /* unused */ + USETW(ur.ucr_request.wIndex, reg); /* index */ + USETW(ur.ucr_request.wLength, 1); /* payload len in bytes */ + ur.ucr_data = data; + ur.ucr_flags = 0; + ur.ucr_actlen = 0; if(ioctl(fd, USB_DO_REQUEST, &ur) < 0) { return -1; @@ -72,15 +72,15 @@ data[0] = val; - ur.request.bmRequestType = UT_WRITE_VENDOR_INTERFACE; - ur.request.bRequest = 2; + ur.ucr_request.bmRequestType = UT_WRITE_VENDOR_INTERFACE; + ur.ucr_request.bRequest = 2; - USETW(ur.request.wValue, 0); /* unused */ - USETW(ur.request.wIndex, reg); /* index */ - USETW(ur.request.wLength, 1); /* payload len in bytes */ - ur.data = data; - ur.flags = 0; - ur.actlen = 0; + USETW(ur.ucr_request.wValue, 0); /* unused */ + USETW(ur.ucr_request.wIndex, reg); /* index */ + USETW(ur.ucr_request.wLength, 1); /* payload len in bytes */ + ur.ucr_data = data; + ur.ucr_flags = 0; + ur.ucr_actlen = 0; if(ioctl(fd, USB_DO_REQUEST, &ur) < 0) { return -1; @@ -217,12 +217,15 @@ struct vidstate vs; /* current read state */ int small = 0; /* use 320x240 */ int frmnm = 0; /* cyclic frame number key */ + int isplus; /* bridge is OV511+ if true, else OV511 */ + int is20; /* sensor is OV7620 if true, else OV7610 */ + int bufsize; /* size of packet buffer */ /* pnm_init(&argc, argv); */ /* required for PNM programs? */ while(++argv, --argc) { if(strcmp(*argv, "--version") == 0) { - fprintf(stderr, "OV511 capture program version " VERSION + fprintf(stderr, "OV511/OV511+ capture program version " VERSION "\nCopyright 2000 Peter S. Housel" "\nThis program is free software; " "you may redistribute it under the terms of" @@ -235,7 +238,7 @@ exit(0); } else if(strcmp(*argv, "--help") == 0) { fprintf(stderr, "usage: vid [options]\n" - "Capture an image frame from an OV511-based USB video camera\n" + "Capture an image frame from an OV511/OV511+ based USB video camera\n" "and write image data to standard output in PNM format\n\n" "--version print program version information\n" "--usage summarize command line options\n" @@ -287,8 +290,9 @@ exit(1); } - if(udi.vendorNo != 0x05A9 || udi.productNo != 0x0511) { - fprintf(stderr, "device %s is not an OmniVision OV511\n", devname); + if(udi.udi_vendorNo != 0x05A9 || (udi.udi_productNo != 0x0511 && + udi.udi_productNo != 0xa511)) { + fprintf(stderr, "device %s is not an OmniVision OV511 or OV511+\n", devname); exit(1); } } else { @@ -298,7 +302,8 @@ if((fd = open(dev, O_RDWR)) < 0) continue; if(ioctl(fd, USB_GET_DEVICEINFO, &udi) < 0 - || udi.vendorNo != 0x05A9 || udi.productNo != 0x0511) { + || udi.udi_vendorNo != 0x05A9 || (udi.udi_productNo != 0x0511 && + udi.udi_productNo != 0xa511)) { close(fd); fd = -1; continue; @@ -308,12 +313,15 @@ } if(fd < 0) { - fprintf(stderr, "vid: couldn't locate an OV511 device\n"); + fprintf(stderr, "vid: couldn't locate an OV511 or OV511+ device\n"); exit(1); } devname = dev; } + + isplus = udi.udi_productNo == 0xa511; + bufsize = (isplus ? 961 : 993); /* reset the OV511 */ if(ov511_reg_write(fd, OV511_REG_RST, 0x7f) < 0) @@ -398,23 +406,55 @@ if(ov511_reg_write(fd, OV511_REG_CE_EN, 0x0) < 0) exit(1); - ov511_i2c_write(fd, OV7610_REG_RWB, 0x5); - ov511_i2c_write(fd, OV7610_REG_EC, 0xFF); - ov511_i2c_write(fd, OV7610_REG_COMB, 0x01); - ov511_i2c_write(fd, OV7610_REG_FD, 0x06); - ov511_i2c_write(fd, OV7610_REG_COME, 0x1c); - ov511_i2c_write(fd, OV7610_REG_COMF, 0x90); - ov511_i2c_write(fd, OV7610_REG_ECW, 0x2e); - ov511_i2c_write(fd, OV7610_REG_ECB, 0x7C); - ov511_i2c_write(fd, OV7610_REG_COMH, 0x24); - ov511_i2c_write(fd, OV7610_REG_EHSH, 0x04); - ov511_i2c_write(fd, OV7610_REG_EHSL, 0xAC); - ov511_i2c_write(fd, OV7610_REG_EXBK, 0xFE); - ov511_i2c_write(fd, OV7610_REG_COMJ, 0x93); - ov511_i2c_write(fd, OV7610_REG_BADJ, 0x48); - ov511_i2c_write(fd, OV7610_REG_COMK, 0x81); + /* This returns 0 if we have an OV7620 sensor */ + if((is20 = ov511_i2c_read(fd, OV7610_REG_COMI)) < 0) + exit(1); + is20 = !is20; + + /* set up the OV7610/OV7620 */ + if(is20) { + ov511_i2c_write(fd, OV7610_REG_EC, 0xff); + ov511_i2c_write(fd, OV7610_REG_FD, 0x06); + ov511_i2c_write(fd, OV7610_REG_COMH, 0x24); + ov511_i2c_write(fd, OV7610_REG_EHSL, 0xac); + ov511_i2c_write(fd, OV7610_REG_COMA, 0x00); + ov511_i2c_write(fd, OV7610_REG_COMH, 0x24); + ov511_i2c_write(fd, OV7610_REG_RWB, 0x85); + ov511_i2c_write(fd, OV7610_REG_COMD, 0x01); + ov511_i2c_write(fd, 0x23, 0x00); + ov511_i2c_write(fd, OV7610_REG_ECW, 0x10); + ov511_i2c_write(fd, OV7610_REG_ECB, 0x8a); + ov511_i2c_write(fd, OV7610_REG_COMG, 0xe2); + ov511_i2c_write(fd, OV7610_REG_EHSH, 0x00); + ov511_i2c_write(fd, OV7610_REG_EXBK, 0xfe); + ov511_i2c_write(fd, 0x30, 0x71); + ov511_i2c_write(fd, 0x31, 0x60); + ov511_i2c_write(fd, 0x32, 0x26); + ov511_i2c_write(fd, OV7610_REG_YGAM, 0x20); + ov511_i2c_write(fd, OV7610_REG_BADJ, 0x48); + ov511_i2c_write(fd, OV7610_REG_COMA, 0x24); + ov511_i2c_write(fd, OV7610_REG_SYN_CLK, 0x01); + ov511_i2c_write(fd, OV7610_REG_BBS, 0x24); + ov511_i2c_write(fd, OV7610_REG_RBS, 0x24); + } else { + ov511_i2c_write(fd, OV7610_REG_RWB, 0x5); + ov511_i2c_write(fd, OV7610_REG_EC, 0xFF); + ov511_i2c_write(fd, OV7610_REG_COMB, 0x01); + ov511_i2c_write(fd, OV7610_REG_FD, 0x06); + ov511_i2c_write(fd, OV7610_REG_COME, 0x1c); + ov511_i2c_write(fd, OV7610_REG_COMF, 0x90); + ov511_i2c_write(fd, OV7610_REG_ECW, 0x2e); + ov511_i2c_write(fd, OV7610_REG_ECB, 0x7C); + ov511_i2c_write(fd, OV7610_REG_COMH, 0x24); + ov511_i2c_write(fd, OV7610_REG_EHSH, 0x04); + ov511_i2c_write(fd, OV7610_REG_EHSL, 0xAC); + ov511_i2c_write(fd, OV7610_REG_EXBK, 0xFE); + ov511_i2c_write(fd, OV7610_REG_COMJ, 0x93); + ov511_i2c_write(fd, OV7610_REG_BADJ, 0x48); + ov511_i2c_write(fd, OV7610_REG_COMK, 0x81); - ov511_i2c_write(fd, OV7610_REG_GAM, 0x04); + ov511_i2c_write(fd, OV7610_REG_GAM, 0x04); + } if(small) { vs.width = 320; @@ -442,14 +482,14 @@ ov511_reg_write(fd, OV511_REG_LNDV, 0x00); /* set FIFO format (993-byte packets) */ - if(ov511_reg_write(fd, OV511_REG_PKSZ, 0x1F) < 0) + if(ov511_reg_write(fd, OV511_REG_PKSZ, bufsize/32) < 0) exit(1); if(ov511_reg_write(fd, OV511_REG_PKFMT, 0x03) < 0) exit(1); /* select the 993-byte alternative */ - alt.interface_index = 0; - alt.alt_no = 1; + alt.uai_interface_index = 0; + alt.uai_alt_no = (isplus ? 7 : 1); if(ioctl(fd, USB_SET_ALTINTERFACE, &alt) < 0) { perror("USB_SET_ALTINTERFACE"); exit(1); @@ -475,36 +515,38 @@ } /* read, looking for start and end frames */ - while(vs.state != DONE && (len = read(isoc, &buf, 993)) >= 0) { + while(vs.state != DONE && (len = read(isoc, &buf, bufsize)) >= 0) { if(buf[0] == 0 && buf[1] == 0 && buf[2] == 0 && buf[3] == 0 && buf[4] == 0 && buf[5] == 0 && buf[6] == 0 && buf[7] == 0 - && (buf[8] & 0x80) == 0 && buf[992] == 0 && vs.state == SKIPPING) { + && (buf[8] & 0x80) == 0 && buf[bufsize-1] == 0 && vs.state == SKIPPING) { vs.state = READING; vs.iY = vs.jY = vs.iUV = vs.jUV = 0; vs.residue = 0; - procdata(&vs, buf + 9, 993 - 10); + procdata(&vs, buf + 9, bufsize - 10); } else if(buf[0] == 0 && buf[1] == 0 && buf[2] == 0 && buf[3] == 0 && buf[4] == 0 && buf[5] == 0 && buf[6] == 0 && buf[7] == 0 - && (buf[8] & 0x80) == 0x80 && buf[992] == 0 + && (buf[8] & 0x80) == 0x80 && buf[bufsize-1] == 0 && vs.state == READING) { vs.state = DONE; } else if(vs.state == READING) { - procdata(&vs, buf, 993 - 1); + procdata(&vs, buf, bufsize - 1); /* abort the capture and start over if packets come in out-of-order */ - if(buf[992] != frmnm && buf[992] != 1) { + if(buf[bufsize-1] != frmnm && buf[bufsize-1] != 1) { vs.state = SKIPPING; } - frmnm = buf[992] + 1; + frmnm = buf[bufsize-1] + 1; if(frmnm == 256) frmnm = 1; - } else if(buf[992] != 0) { - frmnm = buf[992] + 1; + } else if(buf[bufsize-1] != 0) { + frmnm = buf[bufsize-1] + 1; if(frmnm == 256) frmnm = 1; } } + /* reset and close the OV511 */ + ov511_reg_write(fd, OV511_REG_RST, 0x7f); close(isoc); close(fd); gnome/plain/games/avanor/?h=gstreamer&id=90803737cd0dad6b8e9178d840a6f05c9d06fb52'>avanor
  • awale
  • awele
  • balazar
  • balazarbrothers
  • banihstypos
  • barrage
  • bass
  • bastet
  • battalion
  • battleball
  • battletanks
  • belooted
  • bfm
  • biloba
  • biniax2
  • biorythm
  • bitefusion
  • blackjack
  • blackshadeselite
  • blinkensisters
  • blobby
  • bloboats
  • block
  • blockade
  • blockout
  • blokish
  • bloodfrontier
  • blue
  • bogged
  • bomb
  • bomberclone
  • bomberinstinct
  • bombermaze
  • bomns
  • boswars
  • braincurses
  • brainparty
  • brainworkshop
  • brickshooter
  • brikx
  • briquolo
  • brutalchess
  • bs
  • bsdgames
  • bsdrain
  • bsdtris
  • bsp
  • bubbros
  • bugsquish
  • bugsx
  • bumprace
  • burgerspace
  • burrtools
  • bygfoot
  • bzflag
  • cake
  • cardpics
  • cave9
  • cavezofphear
  • cchess
  • ceferino
  • cgoban
  • cgoban2
  • chanta
  • chapping
  • cheech
  • childsplay
  • childsplay_plugins
  • chroma
  • chromium-bsu
  • circuslinux
  • cleanq3
  • columns
  • concentration
  • connect4
  • connectfive
  • conquest
  • construo
  • corewars
  • cosmo
  • cosmosmash
  • cowsay
  • crack-attack
  • crafty-open-enormous
  • crafty-open-large
  • crafty-open-medium
  • crafty-tablebase-no-pawn
  • crafty-tablebase-pawn
  • crafty
  • cre
  • crimson
  • criticalmass
  • critterding
  • crossfire-client
  • crossfire-server
  • crrcsim
  • cryptoslam
  • csmash
  • ctris
  • cube
  • cultivation
  • cursive
  • cuyo
  • d2x-xl
  • d2x
  • daimonin-client
  • daimonin
  • dangen
  • dangerdeep-data
  • dangerdeep
  • darkplaces
  • deal
  • defendguin
  • demonquake
  • deng
  • diameter
  • digger-vgl
  • djgame2
  • dmjava
  • dodgindiamond2
  • dontspace
  • doom-data
  • doom-freedoom
  • doom-hacx
  • doom-hr
  • doom-hr2
  • doom-wolfendoom
  • doom
  • doomlegacy
  • dopewars
  • drm
  • dsnake
  • duel
  • duke3d-data
  • dungeon
  • dungeoncrawl
  • easysok
  • eboard
  • edge
  • editss
  • eduke32
  • egl
  • egoboo
  • eif
  • eights
  • einstein
  • el-data
  • el
  • ember
  • empire
  • endgame-singularity-music
  • endgame-singularity
  • enigma
  • ensemblist
  • enygma
  • etracer
  • etuxracer
  • euchre
  • evilfinder
  • evq3
  • excido
  • exhaust-doc
  • exhaust-ma
  • exhaust
  • exmars
  • exult
  • ezquake
  • f1spirit-remake
  • falconseye
  • farblazer
  • fargoal
  • fgkicker
  • fgrun
  • fillets-ng
  • filters
  • fishsupper
  • fkiss
  • flightgear-aircraft
  • flightgear-aircrafts
  • flightgear-atlas
  • flightgear-data
  • flightgear-mb339-pan
  • flightgear
  • flobopuyo
  • flyhard
  • flying
  • fmars
  • foobillard
  • formido
  • fortunate
  • fotaq
  • freebsd-carddeck-kde4
  • freecell-solver
  • freeciv-nox11
  • freeciv-sounds
  • freeciv
  • freecol
  • freedink-data
  • freedink-dfarc
  • freedink-engine
  • freedink
  • freedoko
  • freedroid
  • freedroidrpg
  • freeorion
  • freera
  • freesci
  • freesweep
  • freesynd
  • freetennis
  • fretsonfire-data
  • fretsonfire
  • frikqcc
  • frotz
  • frozenbubble
  • fteqw
  • ftjava
  • fuhquake
  • funnyboat
  • fxsudoku
  • galaxis
  • galaxyhack
  • galaxymage
  • garith
  • gbottler
  • gbrainy
  • gcompris
  • gdado
  • geki2
  • geki3
  • gemdropx
  • gemrb
  • ggz-client-libs
  • ggz-gtk-client
  • ggz-gtk-games
  • ggz-kde-client
  • ggz-sdl-games
  • ggz-txt-client
  • gillo
  • gish-demo
  • gl-117
  • glasteroids
  • glaxium
  • glbsp
  • glchess
  • glest-data
  • glest
  • glife
  • glmaze
  • glob2
  • glsfcave
  • gltron
  • gma
  • gmastermind
  • gmines
  • gnarr
  • gnmm
  • gno3dtet
  • gnome-games-extra-data
  • gnome-games
  • gnomeattacks
  • gnomebreakout
  • gnomechess
  • gnomekiss
  • gnomememoryblocks
  • gnomermind
  • gnomesudoku
  • gnono
  • gnubg
  • gnuchess
  • gnudoku
  • gnugo
  • gnurobbo
  • gnurobots
  • gnushogi
  • gnustep-ladder
  • gnustep-sudoku
  • golddig
  • gomoku.app
  • gondola
  • goonies
  • gracer
  • grande
  • greed
  • gretools
  • grhino
  • gridlock
  • gru
  • grubik
  • grubinvaders
  • gshisen
  • gtetrinet
  • gtkabale
  • gtkatlantic
  • gtkballs
  • gtklife
  • gtkpool
  • gtkradiant
  • gtktetcolor
  • gturing
  • gtypist
  • gunfudeadlands
  • gweled
  • hangman
  • hedgewars
  • heretic
  • heroes
  • hex-a-hop
  • hex
  • hexalate
  • hexxagon
  • highmoon
  • hinversi
  • hllib
  • hlstats
  • hlstatsx
  • hohlin
  • holotz-castle
  • icbm3d
  • icebreaker
  • ifm
  • imaze
  • inform
  • intensityengine
  • interlogic
  • ioquake3-devel
  • ioquake3
  • iourbanterror
  • irrlamb
  • ishido
  • ivan
  • jag
  • jaggedalliance2
  • jchessboard
  • jetpack
  • jfduke3d
  • jfk
  • jigsaw
  • jigzo
  • jin
  • joequake
  • jools
  • jtans
  • jvgs
  • jzip
  • kaid
  • kamikaze
  • kanatest
  • kardsgt
  • kartofel
  • kbilliards
  • kcheckers
  • kdegames3
  • kdegames4
  • kevedit
  • kfreerings
  • kiki
  • kimboot
  • klavaro
  • klondike
  • kmastermind
  • kmquake2
  • knights-kde4
  • knights
  • kobodeluxe
  • koth
  • kpicframer
  • kpictorial
  • kpuzzle
  • krosswordplayer
  • kslide
  • ksudoku
  • ktritoc
  • kuklomenos
  • kwappen
  • ladder
  • lander
  • lapispuzzle
  • latrine
  • lbreakout
  • lbreakout2
  • ldmud
  • legends
  • legesmotus
  • lexter
  • lgeneral-data
  • lgeneral
  • lianliankan
  • libdungeonmaker
  • libfov
  • libggz
  • libmaitretarot
  • libmt_client
  • libshhcards
  • lincity-ng
  • lincity
  • linux-americasarmy
  • linux-candycruncher-demo
  • linux-coldwar-demo
  • linux-darwinia-demo
  • linux-defcon
  • linux-doom3-demo
  • linux-doom3
  • linux-enemyterritory-etpro
  • linux-enemyterritory-etpub
  • linux-enemyterritory-fortress
  • linux-enemyterritory-jaymod-21
  • linux-enemyterritory-jaymod
  • linux-enemyterritory-omni-bot-0660
  • linux-enemyterritory-omni-bot
  • linux-enemyterritory-shrub
  • linux-enemyterritory-tce
  • linux-enemyterritory
  • linux-etqw-demo-server
  • linux-etqw-server
  • linux-gorky17-demo
  • linux-hdb-demo
  • linux-majesty-demo
  • linux-nerogame
  • linux-ningpo-demo
  • linux-nwnclient
  • linux-nwserver
  • linux-quake3-demo
  • linux-quake3
  • linux-quake4-demo
  • linux-quake4
  • linux-savage-samuraiwars
  • linux-savage
  • linux-skulltag
  • linux-sof
  • linux-spheresofchaos-demo
  • linux-ssamtfe
  • linux-ssamtse
  • linux-steam
  • linux-unrealgold
  • linux-uplink-demo
  • linux-ut
  • linux-ut2003-demo
  • linux-ut2004-demo
  • linux-virtual-jay-peak
  • linux-warsow
  • linux-worldofgoo-demo
  • linwarrior
  • liquidwar
  • lm-solve
  • lmarbles
  • lmpc
  • lordsawar
  • lpairs
  • ltris
  • lucidlife
  • luola
  • macopix
  • madbomber
  • maelstrom
  • magiccube4d
  • magicor
  • mahjong
  • maitretarot
  • mangband
  • mangos
  • marsnomercy
  • masterserver
  • maxr
  • memonix
  • meqcc
  • meritous
  • merlin
  • mindfocus
  • mindguard
  • mirrormagic
  • miscom
  • mkgichessclub
  • mkhexgrid
  • monkeybubble
  • monopd
  • monster-masher
  • monsterz
  • moon-buggy
  • moonlander
  • moria
  • mt_dolphin_ia
  • mt_gtk_client
  • mtaserver
  • mudmagic
  • mvdsv
  • nInvaders
  • nadar
  • naev-data
  • naev
  • nazghul
  • nehquake
  • nethack32
  • nethack33-gnome
  • nethack33-nox11
  • nethack33
  • nethack34-gnome
  • nethack34-nox11
  • nethack34-qt
  • nethack34
  • netherearth
  • netpanzer-data
  • netpanzer
  • netrek-BRMH-bin
  • netrek-COW3-bin
  • netris
  • netspades
  • nettoe
  • neverball
  • newvox
  • nextgo
  • nexuiz
  • nibbles
  • nighthawk
  • nil
  • nimuh
  • ninix-aya
  • njam
  • noegnud-addons
  • noegnud-data
  • noegnud-littlehack
  • noegnud-nethack-deet
  • noegnud-nethack
  • noegnud-slashem
  • nonsense
  • npush
  • nuclearchess
  • numptyphysics-npcomplete
  • numptyphysics
  • nwndata
  • odamex
  • oilwar
  • omega
  • oneko-sakura
  • oneko
  • oolite
  • oonsoo
  • openalchemist
  • openarena
  • openastromenace
  • opencity
  • openglad
  • openjazz
  • openlierox
  • openmortal
  • opensonic
  • openttd
  • openyahtzee
  • optimax
  • orbital_eunuchs_sniper
  • osgg
  • outerspace
  • p5-Acme-GuessNumber
  • p5-Algorithm-Pair-Best
  • p5-Algorithm-Pair-Swiss
  • p5-Baseball-Sabermetrics
  • p5-Games-Alak
  • p5-Games-AlphaBeta
  • p5-Games-Bingo-Bot
  • p5-Games-Bingo-Print
  • p5-Games-Bingo
  • p5-Games-Dice
  • p5-Games-GuessWord
  • p5-Games-Tournament-RoundRobin
  • pachi
  • paintown
  • palomino
  • passage
  • pathological
  • pcgen
  • pear-Games_Chess
  • peg-e
  • pengpong
  • penguin-command
  • pengupop
  • pentix
  • pets
  • phalanx
  • phpua-bf
  • phpua-cod
  • phpua-engine
  • phpua-hl
  • phpua-q3
  • phpua-ut
  • phpua-ut2003
  • pinball
  • pingus
  • pink-pony
  • pioneers
  • pipenightdreams
  • pipepanic
  • pipewalker
  • plee-the-bear
  • plonx
  • plutocracy
  • pmars-sdl
  • pmars
  • poker-engine
  • poker-eval
  • pokerth
  • polypuzzle
  • pongix
  • pouetchess
  • powder
  • powermanga
  • powwow
  • ppracer
  • prboom
  • primateplunge
  • ptkei
  • ptools
  • pushover
  • pvpgn
  • py-anki
  • py-mnemosyne
  • py-poker-eval
  • py-pychess
  • py-sgflib
  • py-sgfsummary
  • py-ski
  • pyawale
  • pyching
  • pydance
  • pykawari
  • pysol-cardsets
  • pysol-music
  • pysol
  • pysolfc
  • pysycache-lang
  • pysycache-themes
  • pysycache
  • pythonchess
  • q15
  • q2p
  • q2pro
  • q3cellshading
  • qcc
  • qccx
  • qgo
  • qix
  • qkmj
  • qmars
  • qnetchess
  • qnetwalk
  • qonk
  • qstat
  • qtv
  • quackle
  • quake-data
  • quake-dpmod
  • quake-extras
  • quake-reaper
  • quake-source
  • quake2-3zb2
  • quake2-ctf
  • quake2-data
  • quake2-extras
  • quake2-lights
  • quake2-matrix
  • quake2-psychomod
  • quake2-relay
  • quake2-rogue
  • quake2-source
  • quake2-xatrix
  • quake2-zaero
  • quake2forge
  • quake2lnx
  • quake2max
  • quake3-data
  • quake3-excessive
  • quake3-freezetag
  • quake3-osp
  • quake3-ra3
  • quake3-rq3
  • quake3-ut
  • quake3-wfa
  • quake3
  • quakeforge
  • quantumminigolf
  • quaqut
  • qudos
  • quetoo
  • quit
  • qwdtools
  • r1q2
  • race
  • railroad-rampage
  • redeclipse
  • reminiscence
  • rezerwar
  • rfksay
  • ri-li
  • rigsofrods
  • robocode
  • robotfindskitten
  • rockdodger
  • rocksndiamonds
  • rottdc
  • rt2-demo
  • rtb
  • rtcw
  • rubix
  • ruby-exmars
  • sampsvr
  • sarien
  • sauerbraten
  • scare
  • scid
  • scorched3d
  • scourge-data
  • scourge
  • scramble
  • scummvm-tools
  • scummvm
  • sdb
  • sdl-ball
  • sdlCC
  • sdlquake2
  • sdlroids
  • sdlsand
  • seabattle
  • seahaven
  • secretmaryochronicles-music
  • secretmaryochronicles
  • senken
  • senso
  • sex
  • sfbol
  • shaaft
  • shootingstar
  • simplevaders
  • simutrans
  • six
  • sjeng
  • sl
  • slashem-tty
  • slige
  • slump
  • slune
  • smiley
  • sokoban
  • sol
  • solarconquest
  • solarwolf
  • sopwith
  • spacearyarya
  • spacehulk
  • spacejunk
  • speak
  • species
  • spellathon
  • spellcast
  • speyes
  • spicetrade
  • spider
  • spring
  • springlobby
  • starlanes
  • stepbill
  • stepmania-devel
  • stonesoup
  • stormbaancoureur
  • stransball2
  • stratagus
  • stroq
  • stvef-paks
  • stvef-server
  • sudoku
  • sudoku_solver
  • sudsol
  • super_methane_brothers
  • supertux
  • supertuxkart
  • sxsame
  • tads
  • taipan
  • tank
  • taxipilot
  • tbclock
  • tecnoballz
  • teeworlds
  • teg
  • tenebrae
  • tetrinet-x
  • tetrinet
  • tetrons
  • tetzle
  • textmaze
  • thevalley
  • thudboard
  • tileworld
  • timeseal
  • tinymux
  • tkmoo
  • tksol
  • tmw
  • tnl
  • tomatoes
  • tome
  • toppler
  • torcs
  • tornado
  • torrent
  • toycars
  • trackballs
  • tractorgen
  • traindirector
  • tremor
  • tremulous
  • trigger
  • trimines
  • trojka
  • trophy
  • tsito
  • tt
  • ttraffic
  • ttt
  • tux-aqfh
  • tuxkart
  • tuxmath
  • tuxpaint-config
  • tuxpaint-fonts
  • tuxpaint-stamps
  • tuxpaint
  • tuxpuck
  • tuxracer
  • tuxracer_golf
  • tuxtype
  • tvp
  • twitch
  • tycho
  • typespeed
  • tyrquake
  • ufoai-data
  • ufoai
  • uhexen
  • uhexen2-extras
  • uhexen2
  • ultimatestunts
  • umark
  • unnethack
  • untahris
  • uox3
  • uqm
  • urbanterror-data
  • utserver
  • vamos
  • vavoom-extras
  • vavoom
  • vdrift-data
  • vdrift
  • vectoroids
  • vegastrike-data
  • vegastrike
  • violetland
  • vitetris
  • volleyball
  • vor
  • vultures-claw
  • vultures-eye
  • wanderer
  • wargus
  • warmux
  • warsow-data
  • warsow
  • warzone2100
  • wesnoth-devel
  • wesnoth
  • whichwayisup
  • widelands
  • windstille
  • wmeyes
  • wmfortune
  • wmminichess
  • wmpuzzle
  • wmqstat
  • wmquake
  • wmshuffle
  • wmtictactoe
  • wmtimebomb
  • wolf3d
  • wolfpack
  • wop
  • wordplay
  • worldofpadman
  • wormux-devel
  • wormux
  • wrogue
  • wtf
  • xabacus
  • xarchon
  • xasteroids
  • xataxx
  • xbaby
  • xbat
  • xbattle
  • xbill
  • xbl
  • xblackjack
  • xblast
  • xblood
  • xbloody
  • xboard
  • xboing
  • xbomb
  • xbomber
  • xbubble
  • xchadance
  • xcheckers
  • xchomp
  • xcogitate
  • xconq
  • xcowsay
  • xcubes
  • xdeblock
  • xdemineur
  • xdesktopwaves
  • xdigger
  • xdino
  • xevil
  • xeyesplus
  • xfireworks
  • xflame
  • xfrisk
  • xgalaga
  • xgame
  • xgammon
  • xglk
  • xgospel
  • xhexagons
  • xhime
  • xinfocom
  • xinvaders
  • xinvaders3d
  • xisola
  • xjewel
  • xjig
  • xjump
  • xjumpx
  • xkobo
  • xkoules
  • xlaby
  • xlife
  • xlines
  • xlogical
  • xmahjongg
  • xmastermind
  • xmball
  • xmemory
  • xmille
  • xmine
  • xminehunter
  • xmines
  • xminesweep
  • xmlink
  • xmoto
  • xmris
  • xmulti
  • xneko
  • xoct
  • xoids
  • xoj
  • xonix
  • xonotic
  • xorgramana
  • xosmulti
  • xpacman
  • xpanex
  • xpat2
  • xpenguins