Comments (9)
The emulator is doing something strange in terms of how it figures out the return value from a call to EnumObjects
, which is used to enumerate virtual controller objects like axes, buttons, and so on. For axes it seems fine, but for buttons it seems to be reading memory it shouldn't be reading.
For the system's DirectInput implementation and XInput Plus it seems to get back a non-zero value, which is interpreted as "give me more buttons." But with Xidi it is somehow computing zero, which means "stop giving me buttons." This is why it is only seeing one button with Xidi.
I added a workaround that ignores the return code from the application and enumerates all objects regardless of what the application says. It appears to fix this issue.
Please give this development build a try, along with the supplied configuration.
Xidi-v4.1.1-dev.6.0+a8e64f50.zip
Xidi.ini:
[Mapper]
Type = DigitalGamepad
[Workarounds]
IgnoreEnumObjectsCallbackReturnCode = yes
from xidi.
You need to put your customizations into a custom mapper. Try this instead:
[Mapper]
Type = Custom
[CustomMapper]
Template = DigitalGamepad
; These changes are applied on top of the template.
ButtonA = Button(4)
ButtonB = Button(3)
ButtonX = Button(2)
ButtonY = Button(1)
from xidi.
Doesn't seem to be working: Log
Always shows 1 button only...
from xidi.
You might need to change the mapping scheme then.
Does the application actually support multiple gamepad buttons, and if so does it work with another controller with or without Xidi?
You can try mapping to a keyboard button. For example:
; Maps the A button on the controller to the X key on the keyboard
ButtonA = Keyboard(X)
from xidi.
Thanks...
Yes "forcing" ButtonB = Keyboard(z)... does work as expected and the buttons get mapped to the corresponding key in the emu now. The strange thing is that it always sees one single button joystick only:
Of course if I use the XBox One BT controller it shows correctly all the buttons. Same if I use XInputPlus wrapper with the Hori Fighting Stick Mini: the emulator gives me all the expected buttons to be remapped internally...
P.S.
Consider originally emulated ZX Spectrum joystick had one button only, so it's the default for the emulator.
from xidi.
Digging in a little bit more, it looks like there are some bugs that affect how the game enumerates objects (more specifically, buttons).
One of them is an API issue that can be fixed pretty easily, and the other of which might need a workaround.
from xidi.
This is partially addressed by 9efe81a.
from xidi.
Works fine as expected now! All buttons are available and remappable from within the emulator.
from xidi.
Great, glad to hear that this fixes the problem.
from xidi.
Related Issues (20)
- Missing FFB in Grand Prix 4 HOT 4
- compatibility for windows 8.1 and 7 HOT 1
- Chaos Legion PC - Bugs and crashes when accessing control configuration menu HOT 5
- Strange dropped input issues in Rayman 2 HOT 2
- [DOA5LR] Conflict with Xidi's dinput8.dll and Autolink 3.30's dinput8.dll HOT 7
- Ford Racing 3: problem with analog triggers and calibration HOT 3
- Alias Gamepad configuration still merging analog and triggers HOT 8
- buttons work but unable to configure D-pad HOT 2
- Colin McRae Rally 2.0 (2000) HOT 3
- Solution for 8-way map on sticks and DPad HOT 2
- Force feedback multiplier or percent-adjustment HOT 2
- FFB not working on Midnight Club II (log included) HOT 3
- Rectangle correction for analog sticks (simulate DualShock diagonal analog range) HOT 1
- Weird behavior with Alone in the Dark: The New Nightmare HOT 1
- Glover (original PC port, not Steam): Xidi thinks XInput controller is not XInput HOT 5
- What to do when an old game uses dinput.dll file as an ASI patch loader HOT 2
- Implement additional force feedback effect types
- No mouse movement with Xidi installed (Psygnosis Lander) HOT 2
- Richard Burns Rally fails to launch with Xidi HOT 1
- How to make vibration less intensive? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xidi.