Ergebnis 1 bis 4 von 4
  1. #1
    hØp€£€§§ ®ØMÅn†|¢ Avatar von SusiSuicide
    Registriert seit
    Aug 2007
    Beiträge
    668

    Standard 8217 ActionMap XML Steuerungsconfig in NFS Shift 2

    Ich hab mir mit einer Platine aus einer USB-Tastatur selber eine H-Schaltung für Rennspiele am PC gebaut. Klappt soweit ganz gut mit diversen Spielen, wo man die einzelnen Gänge im Spielemenü selbst frei belegen kann.

    Nur bei Shift 2 Unleashed geht das leider nicht. Man kann übers Menü nur hoch und runter Schalten belegen (Schaltwippen), allerdings gibts im Spieleverzeichnis in /actionmap einige xml-Dateien mit den Belegungen:

    Code:
    <?xml version="1.0" ?>
    <_cVehicleSetData>
        <tControllerPreset Name="PC_LogitechG27_SeparatePedals" />
        <DeviceList>
            <Controller Name="PC_Logitech_G27RacingWheel" />
        </DeviceList>
        <Flags _AsDefaultWhenSaved="0" Customised="0" DampeningEnabled="0" ForcesEnabled="1" GearSelectButtonHold="1" CombinedPedals="0" SwapShifters="0" CameraInverted="0" CircularSteerDeadzone="0" />
        <ControlsList>
            <_cControl Name="Accelerate">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="1" InputPhase="eINPUTPHASE_NEGATIVE" />
            </_cControl>
            <_cControl Name="Brake">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="5" InputPhase="eINPUTPHASE_NEGATIVE" />
            </_cControl>
            <_cControl Name="Clutch">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="7" InputPhase="eINPUTPHASE_NEGATIVE" />
            </_cControl>
            <_cControl Name="Steer Left">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="0" InputPhase="eINPUTPHASE_NEGATIVE" />
            </_cControl>
            <_cControl Name="Steer Right">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="0" InputPhase="eINPUTPHASE_POSITIVE" />
            </_cControl>
            <_cControl Name="Handbrake">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="6" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Cycle HUD">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_DPAD" InputIndex="2" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="PDA Function Left">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="0" InputType="eINPUTTYPE_DPAD" InputIndex="3" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Vehicle Labels">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="0" InputType="eINPUTTYPE_DPAD" InputIndex="0" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Show Pause Menu">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="22" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Pause">
                <BInputId DeviceType="eDEVICE_KEYBOARD" DeviceIndex="0" InputType="eINPUTTYPE_KEY" InputIndex="8217" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Driving View">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_DPAD" InputIndex="1" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Look Behind">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="7" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Boost">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="0" InputType="eINPUTTYPE_STATE" InputIndex="21" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Shift Down">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="5" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Shift Up">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="4" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Look Up">
                <BInputId DeviceType="eDEVICE_UNDEFINED" DeviceIndex="0" InputType="eINPUTTYPE_INVALID" InputIndex="0" InputPhase="INVALID PHASE" />
            </_cControl>
            <_cControl Name="Look Down">
                <BInputId DeviceType="eDEVICE_UNDEFINED" DeviceIndex="0" InputType="eINPUTTYPE_INVALID" InputIndex="0" InputPhase="INVALID PHASE" />
            </_cControl>
            <_cControl Name="Chase Look">
                <BInputId DeviceType="eDEVICE_UNDEFINED" DeviceIndex="0" InputType="eINPUTTYPE_INVALID" InputIndex="0" InputPhase="INVALID PHASE" />
            </_cControl>
            <_cControl Name="Reset Car">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="0" InputType="eINPUTTYPE_STATE" InputIndex="0" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            
            <_cControl Name="First Gear">
                <BInputId DeviceType="eDEVICE_KEYBOARD" DeviceIndex="0" InputType="eINPUTTYPE_KEY" InputIndex="49" InputPhase="eINPUTPHASE_ANY" />
            
            <_cControl Name="Second Gear">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="9" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Third Gear">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="10" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Fourth Gear">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="11" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Fifth Gear">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="12" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Sixth Gear">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="13" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Reverse Gear">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="14" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Look Left">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="20" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="Look Right">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="19" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid TractionControl">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="1" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid StabilityControl">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="2" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid ABS">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="3" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid AutoSteer">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="15" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid AutoBrake">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="18" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid AutoGears">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="16" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
            <_cControl Name="ToggleAid AutoClutch">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_STATE" InputIndex="17" InputPhase="eINPUTPHASE_ANY" />
            </_cControl>
        </ControlsList>
        <InputsList>
            <_cInputSetting Deadzone="0.000000" Sensitivity="1.000000" Centre="0.000000" Saturation="1.000000">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="0" InputPhase="eINPUTPHASE_ANY" />
            </_cInputSetting>
            <_cInputSetting Deadzone="0.050000" Sensitivity="1.000000" Centre="0.000000" Saturation="1.000000">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="6" InputPhase="eINPUTPHASE_ANY" />
            </_cInputSetting>
            <_cInputSetting Deadzone="0.050000" Sensitivity="1.000000" Centre="1.000000" Saturation="1.000000">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="1" InputPhase="eINPUTPHASE_ANY" />
            </_cInputSetting>
            <_cInputSetting Deadzone="0.050000" Sensitivity="1.000000" Centre="1.000000" Saturation="1.000000">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="5" InputPhase="eINPUTPHASE_ANY" />
            </_cInputSetting>
            <_cInputSetting Deadzone="0.050000" Sensitivity="1.000000" Centre="1.000000" Saturation="1.000000">
                <BInputId DeviceType="eDEVICE_GAMEPAD" DeviceIndex="4" InputType="eINPUTTYPE_AXIS" InputIndex="7" InputPhase="eINPUTPHASE_ANY" />
            </_cInputSetting>
        </InputsList>
        <_cForceSettings Level="Full" Gain="1.000000">
            <Flags ThrottleFxOnSteerAxis="1" BrakeFxOnSteerAxis="1" RumbleForce="0" UseOldSteeringForce="0" DedicatedMixerChannel="0" SteeringForceConstant="1" DynamicSpringForce="0" SteeringSpringModSat="0" />
            <EnableMask SteeringForce="1" SteeringFriction="0" SteeringDamper="1" SteeringSpring="1" ThrottleVibe="1" BrakeVibe="1" Jolt="1" RumbleStrip="1" GearChange="1" WheelSpin="0" ThrottleSpring="0" BrakeSpring="0" />
            <SoftwareMixMask SteeringForce="1" SteeringFriction="0" SteeringDamper="0" SteeringSpring="0" ThrottleVibe="0" BrakeVibe="0" Jolt="1" RumbleStrip="0" GearChange="1" WheelSpin="1" ThrottleSpring="0" BrakeSpring="0" />
            <_cSteering Gain="0.750000" FrequencyMultiplier="0.000000" ZeroMagnitude="0.035000" Slope="0.000000" WaveType="Sine" AverageWeight="0.600000" Exponent="0.990000" InputMax="11500.000000" OutputMax="1.700000" GripWeight="0.800000" GripFactor="0.600000" UpdateThreshold="0.000150" FrictionCoefficient="0.175000" FrictionSaturation="1.000000" DamperCoefficient="0.500000" DamperSaturation="1.000000" />
            <_cThrottle FrequencyMultiplier="0.400000" ZeroMagnitude="0.020000" Slope="0.000000" WaveType="Sine" UpdateThreshold="0.020000" />
            <_cBrake FrequencyMultiplier="4.000000" ZeroMagnitude="0.100000" Slope="0.020000" WaveType="Sine" UpdateThreshold="0.020000" />
            <_cRumbleStrip Magnitude="0.500000" FrequencyMultiplier="0.900000" WaveType="Sine" PullFactor="-0.700000" UpdateThreshold="0.075000" />
            <_cJolt Magnitude="2.000000" />
            <_cSpring Saturation="0.250000" Coefficient="1.000000" />
            <_cGearChange Magnitude="0.300000" Duration="0.200000" FrequencyMultiplier="1.000000" WaveType="SawToothDown" />
            <_cWheelSpin MinWheelSpin="0.000000" MinMagnitude="0.000000" MaxWheelSpin="0.000000" MaxMagnitude="0.000000" FrequencyMultiplier="1.000000" WaveType="Sine" />
        </_cForceSettings>
        <_cControllerSettings SpeedSensitiveSteering="0.000000" DampeningTimeCentreToLock="0.500000" DampeningTimeLockToCentre="0.300000" DampeningTimeOppositeLockToCentre="0.300000" DigitalRampRateSteering="0.200000" DigitalRampRateThrottle="0.500000" DigitalRampRateBrake="0.500000" DigitalRampRateClutch="0.200000" NominalRiseDamping="0.950000" NominalFallDamping="0.750000" MaxSteerVelocity="3.141593" NominalYawAngle="0.785398" TurnDeadzone="0.000000" ThrottleDeadzone="0.050000" BrakeDeadzone="0.050000" ClutchDeadzone="0.050000" TurnSensitivity="0.500000" ThrottleSensitivity="0.500000" BrakeSensitivity="0.500000" ClutchSensitivity="0.500000" WheelLock="1.000000" WheelLockDegrees="360" AlternateWheelLock="1.000000" AlternateWheelLockDegrees="300" AlternateSpeedSensitiveSteering="0.600000" />
    </_cVehicleSetData>
    Für den ersten Gang hab ich mal zum Testen den einzigen in der Datei vorkommenden Keyboard-Button eingesetzt, nämlich "8217". Funktioniert nicht. Warum?!

    Es würde mir stark weiterhelfen, wenn mir jemand sagen könnte was 8217 heisst.
    ist das zusammengesetzt aus 82 und 17, also eine Tastenkombination? Ich habe schon einige Tabellen durchforstet. Bei HTML ist 8217 ein einzelnes Gänsefüßchen, aber das ist es in dem Fall auch nicht...

    Hat jemand einen Tipp?

  2. #2
    Mitglied
    Registriert seit
    May 2009
    Beiträge
    1.888

    Standard Re: 8217 ActionMap XML Steuerungsconfig in NFS Shift 2

    Kaum DirectX und "direkte" Win-API Ahnung darum sagt mir das nix.

    Auch nicht wenn ich aus dezimal 8217 hexadezimal 2019 mache...

    Hier gibt es eine Übersicht mit Keyboard Scan Codes aus DirectX, ich würde vermuten diese würde ein Spiel am ehesten verwenden.

    Ich würde zum ummappen von Inputs für Spiele auch eher spezialisierte Tools empfehlen.

    Also Zeugs wie:
    Xpadder
    PPJoy
    und
    GlovePIE

    Da gibt's noch mehr von aber ich bin gerade zu faul dir alle Tools in dem Umfeld rauszusuchen.

    Das mächtigste (aber auch leider am schwersten zu "benutzende") Tool von denen ist GlovePIE.

    Mit dessen Scriptingmöglichkeiten könnte ich mir vorstellen das du evtl. auch ein GlovePIE-Script dazu bringen könntest das es sich den aktuellen Gang merkt und dann bei Gangwechseln die korrekte Zahl von Schaltwippen-Events auslöst.

    Wie das Script aber erkennen soll wenn der Gang nicht von dir ausgelöst im Spiel wechselt ist mir schleierhaft.

    Auch weiß ich nicht wirklich ob die GlovePIE-Scripte wirklich mächtig genug wären (hab' noch nicht wirklich viel damit gemacht).

    Aber mit der Kombination GlovePIE + PPJoy kann man ziemlich viele Inputprobleme für (multiple) Spielsteuerungen erschlagen wenn man nur genug Zeit investiert...

    Dazu finden sich auch einige Anleitungen im Netz bei den Hardcore Flug- und Rennsimulationsfans (die basteln sich übrigens ihre Schaltungen meist mit ForceFeedback-Sticks und speziellen Kraft-Widerstands-Feldern für die Auslenkungen des Sticks wo die Gänge und die Wege zwischen ihnen nicht sind).

    Evtl. kann man dir da weiterhelfen.

    Suche mal bei Google nach "Joystick to Shifter" bzw. "Joystick H Shifter" da findest du vermutlich ein paar hilfreiche Links.

    Zu PPJoy und GlovePIE lässt sich wie gesagt einiges vor allem in Flugsimulationsforen finden wo man erklärt bekommt wie man z.B. unterschiedliche Eingabegeräte von unterschiedlichen Herstellern zu einem (virtuellen) Eingabegerät kombiniert oder aber die Knöpfe von diversen Eingabegeräten auf (virtuelle) Tastendrücke mappt.

    HTH

  3. #3
    hØp€£€§§ ®ØMÅn†|¢

    (Threadstarter)

    Avatar von SusiSuicide
    Registriert seit
    Aug 2007
    Beiträge
    668

    Standard Re: 8217 ActionMap XML Steuerungsconfig in NFS Shift 2

    Die von dir vorgeschlagene Software kenn ich größtenteils. Allerdings bringt mich das nicht weiter, da auch, wenn ein Button auf einen Key oder andersherum gemappt würde, dem Spiel das egal ist.

    Sieht so aus als müsste man tiefer in das Spiel eingreifen. Die hatten das gleiche Problem:
    http://www.nogripracing.com/forum/sh...d.php?t=247035

    Das Spiel übernimmt die Änderungen in den Config-Files einfach ums Verrecken nicht.
    Ändert man Einstellungen im Spielmenü, dann werden diese auch nicht in diese Config-Files, sondern *irgendwo* gespeichert.

    Jetzt wäre interessant, wie man das herausfinden kann. Kennt sich hier jemand mit Spieleprogrammierung aus?
    Dieses ActionMap Zeugs hat ja anscheinend was mit Java zu tun...

  4. #4
    Mitglied
    Registriert seit
    May 2009
    Beiträge
    1.888

    Standard Re: 8217 ActionMap XML Steuerungsconfig in NFS Shift 2

    Mit Process Monitor kannst du dir Filesystem und Registry-Zugriffe von Prozessen anzeigen lassen.

    Mit ein wenig Filterung, abspeichern als Text-Log und langem drauf gucken kann man so mit ein wenig Geduld herausfinden worauf ein Programm lesend und schreibend zugreift.

    Also das Tool starten, auf den NFS-Prozess filtern und dann die Config ändern und speichern und während dessen die Zugriffe loggen lassen, so sollte sich die Stelle wo die Config abgelegt wird finden lassen.

    Das Java dabei eine Rolle spielt glaube ich eher nicht, bei Spielen die "untendrunter" Java benutzen wie IL2 ist das gut möglich, bei einem modernen NFS-Teil wohl eher nicht, selbst für Menüs & Config eher nicht.

  5.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •