🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

doom 3

Started by
10 comments, last by icecubeflower 15 years, 3 months ago
I downloaded the Doom3 for linux shellscript and copied the files from my CD's and everything looks great and technically works. But the mouse control isn't very good. In fact it's bad enough that it's no fun to play. I'm going to guess how a mouse works here. I'm thinking the computer polls it and sees how far you moved the mouse since last time it polled. Well, in Doom3 I can't move the mouse slow. Suppose my crosshairs are a few millimeters from where I want to be. I'm screwed. I can't zero in on anything because Doom3 will only pick up fast movements. I think it only considers your mouse movement if it moved a large amount between polls. I don't understand why. The pointer works fine in KDE, I can move very slow and zero in on anything. It's just no fun in KDE because there's no zombies to shoot at. If it works in X and KDE then xorg.conf is correct, isn't it? I have an old IBM USB, 3 button mouse. Two buttons with a scroll button in the middle. xorg.conf:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 1.0  (buildmeister@builder63)  Thu Feb  5 00:18:17 PST 2009

# File generated by xorgconfig.
#
# Copyright 2004 The X.Org Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# The X.Org Foundation BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# 
# Except as contained in this notice, the name of The X.Org Foundation shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from
# The X.Org Foundation.
#
# **********************************************************************
# Refer to the xorg.conf(5) man page for details about the format of 
# this file.
# **********************************************************************
# **********************************************************************
# Module section -- this  section  is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
#
# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************
# **********************************************************************
# Server flags section.
# **********************************************************************
# **********************************************************************
# Input devices
# **********************************************************************
# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************
# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************
# **********************************************************************
# Other input device sections 
# this is optional and is required only if you
# are using extended input devices.  This is for example only.  Refer
# to the xorg.conf man page for a description of the options.
# **********************************************************************
#
# Section "InputDevice" 
#    Identifier  "Mouse2"
#    Driver      "mouse"
#    Option      "Protocol"      "MouseMan"
#    Option      "Device"        "/dev/mouse2"
# EndSection
#
# Section "InputDevice"
#    Identifier "spaceball"
#    Driver     "magellan"
#    Option     "Device"        "/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier "spaceball2"
#    Driver     "spaceorb"
#    Option     "Device"        "/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier "touchscreen0"
#    Driver     "microtouch"
#    Option     "Device"        "/dev/ttyS0"
#    Option     "MinX"          "1412"
#    Option     "MaxX"          "15184"
#    Option     "MinY"          "15372"
#    Option     "MaxY"          "1230"
#    Option     "ScreenNumber"  "0"
#    Option     "ReportingMode" "Scaled"
#    Option     "ButtonNumber"  "1"
#    Option     "SendCoreEvents"
# EndSection
#
# Section "InputDevice"
#    Identifier "touchscreen1"
#    Driver     "elo2300"
#    Option     "Device"        "/dev/ttyS0"
#    Option     "MinX"          "231"
#    Option     "MaxX"          "3868"
#    Option     "MinY"          "3858"
#    Option     "MaxY"          "272"
#    Option     "ScreenNumber"  "0"
#    Option     "ReportingMode" "Scaled"
#    Option     "ButtonThreshold"       "17"
#    Option     "ButtonNumber"  "1"
#    Option     "SendCoreEvents"
# EndSection
# **********************************************************************
# Monitor section
# **********************************************************************
# Any number of monitor sections may be present
# **********************************************************************
# Graphics device section
# **********************************************************************
# Any number of graphics device sections may be present
# Standard VGA Device:
# Device configured by xorgconfig:
# **********************************************************************
# Screen sections
# **********************************************************************
# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
# **********************************************************************
# ServerLayout sections.
# **********************************************************************
# Any number of ServerLayout sections may be present.  Each describes
# the way multiple screens are organised.  A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option.  In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.
# Section "DRI"
#    Mode 0666
# EndSection

Section "ServerLayout"

# The Identifier line must be present
# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.  In this example, screen 2 is located to the
# right of screen 1.
# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".
    Identifier     "Simple Layout"
    Screen         "Screen 1" 0 0
    InputDevice    "Mouse1" "CorePointer"
    InputDevice    "Keyboard1" "CoreKeyboard"
EndSection

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.
#    RgbPath	"/usr/share/X11/rgb"
# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
# 
# 
#    FontPath   "/usr/lib/X11/fonts/local/"
# The module search path.  The default path is shown here.
#    ModulePath "/usr/lib/xorg/modules"
    FontPath        "/usr/share/fonts/TTF"
    FontPath        "/usr/share/fonts/OTF"
    FontPath        "/usr/share/fonts/Type1"
    FontPath        "/usr/share/fonts/misc"
    FontPath        "/usr/share/fonts/75dpi/:unscaled"
    FontPath        "/usr/lib/X11/fonts/misc/"
    FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
    FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
    FontPath        "/usr/lib/X11/fonts/Speedo/"
    FontPath        "/usr/lib/X11/fonts/Type1/"
    FontPath        "/usr/lib/X11/fonts/TTF/"
    FontPath        "/usr/lib/X11/fonts/OTF/"
    FontPath        "/usr/lib/X11/fonts/cyrillic/"
    FontPath        "/usr/lib/X11/fonts/75dpi/"
    FontPath        "/usr/lib/X11/fonts/100dpi/"
EndSection

Section "Module"

# This loads the DBE extension module.
# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
# This loads the font modules
#    Load        "type1"
# This loads the GLX module
#    Load       "dri"
    Load           "dbe"  	# Double buffer extension
    SubSection     "extmod"
        Option         "omit xfree86-dga"   # don't initialise the DGA extension
    EndSubSection
    Load           "freetype"
#    Load        "xtt"
    Load           "glx"
# This loads the DRI module
EndSection

Section "InputDevice"

#    Option	"Xleds"      "1 2 3"
#    Option "LeftAlt"     "Meta"
#    Option "RightAlt"    "ModeShift"
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#    Option "XkbModel"    "pc105"
# If you have a US Microsoft Natural keyboard, you can use:
#    Option "XkbModel"    "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#    Option "XkbLayout"   "de"
# or:
#    Option "XkbLayout"   "de"
#    Option "XkbVariant"  "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#    Option "XkbOptions"  "ctrl:swapcaps"
# These are the default XKB settings for Xorg
#    Option "XkbRules"    "xorg"
#    Option "XkbModel"    "pc105"
#    Option "XkbLayout"   "us"
#    Option "XkbVariant"  ""
#    Option "XkbOptions"  ""
#    Option "XkbDisable"
    Identifier     "Keyboard1"
    Driver         "kbd"
    Option         "AutoRepeat" "500 30"
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
    Option         "XkbRules" "xorg"
    Option         "XkbModel" "pc104"
    Option         "XkbLayout" "us"
EndSection

Section "InputDevice"

# Identifier and driver
#    Option "Resolution"	"256"
# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.
#    Option "BaudRate"	"9600"
#    Option "SampleRate"	"150"
# Mouse wheel mapping.  Default is to map vertical wheel to buttons 4 & 5,
# horizontal wheel to buttons 6 & 7.   Change if your mouse has more than
# 3 buttons and you need to map the wheel to different button ids to avoid
# conflicts.
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)
#    Option "Emulate3Buttons"
#    Option "Emulate3Timeout"    "50"
# ChordMiddle is an option for some 3-button Logitech mice
#    Option "ChordMiddle"


  Driver       "mouse"
  Identifier   "Mouse1"
  Option       "Device" "/dev/mouse"
  Option       "Protocol" "Auto"
  Option       "Buttons" "3"

#   OLD SETTINGS -Eric
#    Identifier     "Mouse1"
#    Driver         "mouse"
#    Option         "Protocol" "Auto"	# Auto detect
#    Option         "Device" "/dev/input/mice"
## Mouse-speed setting for PS/2 mouse.
#    Option         "ZAxisMapping" "4 5 6 7"



# Emulate3Buttons is an option for 2-button mice
EndSection

Section "Monitor"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
#    HorizSync	30-64         # multisync
#    HorizSync	31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync	15-25, 30-50  # multiple ranges of sync frequencies
# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
    Identifier     "HP w1907"
    HorizSync       24.0 - 83.0
    VertRefresh     50.0 - 76.0
EndSection

Section "Device"

# The chipset line is optional in most cases.  It can be used to override
# the driver's chipset detection, and should not normally be specified.
#    Chipset	"generic"
# The Driver line must be present.  When using run-time loadable driver
# modules, this line instructs the server to load the specified driver
# module.  Even when not using loadable driver modules, this line
# indicates which driver should interpret the information in this section.
# The BusID line is used to specify which of possibly multiple devices
# this section is intended for.  When this line isn't present, a device
# section can only match up with the primary video device.  For PCI
# devices a line like the following could be used.  This line should not
# normally be included unless there is more than one video device
# intalled.
#    BusID      "PCI:0:10:0"
#    VideoRam	256
#    Clocks	25.2 28.3
    Identifier     "Standard VGA"
    Driver         "vga"
    VendorName     "Unknown"
    BoardName      "Unknown"
EndSection

Section "Device"

    #VideoRam    524288
    # Insert Clocks lines here if appropriate
    Identifier     "NVIDIA GeForce 8600GT"
    Driver         "nvidia"
EndSection

Section "Screen"
    Identifier     "Screen 1"
    Device         "NVIDIA GeForce 8600GT"
    Monitor        "HP w1907"
    DefaultDepth    24
    SubSection     "Display"
        Viewport    0 0
        Depth       8
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       16
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Viewport    0 0
        Depth       24
    EndSubSection
EndSection


I commented out the old settings and tried putting in my own settings. It still works the same. And I tried changing the m_smooth and sensitivity values in Doom3, I tried the max and min and everything in between. I'm stuck. I've played Doom3 in windows and it works fine. I know something is wrong with the mouse input on my Slackware machine. But I don't know what.
Advertisement
See this: http://forums.gentoo.org/viewtopic-t-648464.html
http://www.linux-gamers.net/modules/newbb/viewtopic.php?topic_id=3372
I don't get it. Actually I already found that page before I posted here but I didn't realize it was the solution. So it's an xorg bug? Most of the links they list are dead. The only good link I found was to patches supposedly but all I could find was a PKGBUILD text file and a mouse-int-to-float.diff text file. I don't know what to do with them.

...wait. I just clicked on the .diff file and it opened Kompare instead of Kedit. So... it's not a text file, it's a diff file. What the hell is a diff file. Hold on.

So xorg has a .h file called inputstr.h and it's saving the remainder of the x and y movements as int instead of float? Huh, neat. So that's why large movements worked. I was losing my remainder all the time I just only noticed if I tried to move a small distance.

I don't get this Kompare program that automatically opened. It looks like I can pick apply difference and it will update my /include/Inputstr.h file automatically. But then don't I have to recompile something? And what is that PKGBUILD file for?
I think that PKGBUILD file is a shellscript for Ubuntu. It looks like on Ubuntu the inputstr.h file is in a directory called /include. I think if you have both mouse-int-to-float.diff and PKGBUILD in the correct directory on Ubuntu you can just run the PKGBUID shellscript and it automatically modifies the inputstr.h file and then it runs autoconf and all that stuff and fixes the xorg bug for you.

I'm on the Slackware 12.2. My inputstr.h file is in /usr/include/xorg Where would I need to run the shellscript and would it even work for me?

My dxremaind and dyremaind are both type int. Can I just change them to float myself and recompile X?
Quote: Original post by icecubeflower
My dxremaind and dyremaind are both type int. Can I just change them to float myself and recompile X?

(Assuming everything else here is correct, I haven't really researched this thread's issue.) In short, yes. However, according to the freedesktop.org bugs page from the linux-gamers.net thread linked above, it will break ABI. Meaning that anything that uses ValuatorClassRec would need to be recompiled also, potentially making a mess of things quickly. I'm unsure of how public of an interface ValuatorClassRec is.

Xorg-server 1.5 and newer includes this fix already.
So you went to this link?:
https://bugs.freedesktop.org/show_bug.cgi?id=13808

I never went to it. At first I thought it was a dead link but I never bothered to read the page it showed me. Actually Firefox was just telling me it had an unknown certificate. ...I don't think xorg would be linking to virus infested websites. Hell, I don't know what an unknown certificate is, maybe that's a good thing.

I guess I'll try to figure out how to install xorg-server 1.5 then? I know pkgtool will do that for me.

If I try compiling something like this myself then I'll probably be formatting my hard drive and re-installing my OS the next weekend.
Augh. There is no xorg-server 1.5 package for slackware. ...so do I wait for the experts to make one or do I try compiling xorg server and installing it myself? Oh boy.
Well, xorg 1.5 comes with no readme file. It has an install shellscript which I don't really understand very well and a configure file. So do I run the shellscript or do I do ./configure, make, make install?

I'm gonna go try it. Pray for me. If I don't make it back then I destroyed my system and notify my next of kin.

************

Alright, nevermind, I give up. I have no idea what I'm doing. I'm gonna play Warcraft III and whenever slackware decides to start using xorg-server 1.5 or I can find packages then I'll worry about Doom 3.

[Edited by - icecubeflower on March 11, 2009 8:39:22 PM]
...why does it say my edit took place an hour BEFORE the original post?
Timezone issues? I don't know.

With regards to Quake, you could temporarily install a different distro alongside Slackware and go dual boot until Slackware starts shipping a newer X.org. Ubuntu, Fedora and quite a few others ship X.org 1.5 or even 1.6.

<hr />
Sander Marechal<small>[Lone Wolves][Hearts for GNOME][E-mail][Forum FAQ]</small>

This topic is closed to new replies.

Advertisement