What's new

NRage Input Plugin V2.00 BETA (an overhaul)

Harlay

New member
It's crash at the step 3.
The settings can saving in the registry include the rumble device.
I've uploading my registry settings and the controller config file for you.
 
OP
R

rabiddeity

Plugin Hacker
Harlay said:
It's crash at the step 3.
The settings can saving in the registry include the rumble device.
I've uploading my registry settings and the controller config file for you.

Thanks, that's really helpful. If you open the config while a game is running, and then click "Use", does it still crash? (I'm guessing yes.)

Maybe it's an international or character set issue? Just curious, what language version of Windows are you using? I guess I need to switch the codebase over to Unicode.... I'm pretty sure I can fix it, but it's a big fix and will probably take awhile. I will keep you updated.
 
Last edited:

Harlay

New member
when the game is running, in the "Controls" TAB, click "Use", the emulator will not crash, but choice "Controller Pak" TAB and "Use", it will crash.
My OS is Simplified Chinese.
 
OP
R

rabiddeity

Plugin Hacker
OK, I switched all text to Unicode. Set to defaults, and I hope it works now.

Still have to fix a64 support. Also if I can just get that Japanese from mempak headers to display properly... time for some custom code pages, sigh.

The plugin now displays names for Japanese mempak notes almost correctly. God, that was a pain in the ass. I still don't have mappings for some characters and there is literally NO documentation on it. But if you have Japanese language support on your computer, and you have a mempak with a Japanese savegame, and the header is in Japanese, it should be legible (if you read Japanese). At least, most of it.

And if you get any weird circle characters with spikes sticking out of them, it means you've found my missing characters. Please tell me what game it is, so that I can finish the mapping.
 
Last edited by a moderator:

Harlay

New member
It's no rumble in game and crash on 'save'.
this time, the 'save' button can not save the rumble device, in the next time I'm open the config, the rumble device is "none".
I'm uploading two Shift-JIS code tables for you, one txt, one html. I hope this can help you.
 

NaSeR

Spanish Member
When I assign a mouse movement for a key ("Mouse wheel +" [this also goes for all mouse movements] for button "A" in N64 gamepad for example) and reload the saved settings, the mouse entries are no there :S and you have to assing each mouse movement you have assigned to a key and in "modifiers" too every time you change profiles.
Thanks for this plugin, it´s the best but more compatibility with mouses will make it the very best, it´s very useful for shooters like Turok or Goldeneye.

I´ve had another idea but since I´m not english i´m not able to explain it propertly, it´s something like a sensivity option in every key, of course this will not work like this, but is there is any way (something like a turbo but adjustable) it´ll be good for example in Perfect Dark since when you assign a mouse movement for a key (In this case "C-buttons") and those buttons are not as sensitive as the analog stick but you use them in the pc to move is very weird, the lateral turn (left/right in analogic stick in N64 gamepad) in pc with the mouse are perfect, but the up-down (c buttons in N64 gamepad) in pc with the mouse are TOO slow so is useless to try and up/down the look, that´s because in N64 gamepad they´re assigned to buttons, but in pc you assign them to the mouse and it´s like an analog stick, that´s the problem. It´ll be useful too in xbox 360 controller since all their buttons are analogic (sensitive to pressure)
Well i don´t know if you´re going to understand something, sorry about my bad english.
 

squall_leonhart

The Great Gunblade Wielder
found some bugs mate,

Pack directories arent saved properly.

modifying the registry keys directly forces the plugin to read them but if i change them in the plugin options well...

i'll upload a dump of how the reg key is sposed to look.. and how it does look when you save in the plugin options...

also, loading a mempak created in 1.83a (that works in 1.83a) crashes the emulator

Ok i have 2 mempaks here.
mempak 1 works in 1.83a but crashes 2.0
mempak 2 works in both 1.83a and 2.0

the difference between the 2 is that mempak 1 has more saves on it then 2, but mempak 2 has more slots used.
 
Last edited:
OP
R

rabiddeity

Plugin Hacker
Sorry guys, just got back from a trip to Korea. OK, in order...

Harlay: It looks like we're not done yet. Probably I'm doing something stupid like checking for the string "Mouse" in English. I'll look through it again.
Oh, and about the Shift-JIS stuff: thanks, but I have those tables already. The problem is that the ROM header uses a non standard text format: not JIS 201, not Shift-JIS, not EUC, not ISO 2022-JP, not Unicode. So I kinda have to figure it out on my own, which means I need examples to work from.

NaSeR: yeah, I have the same problem with the mouse settings not being saved in the controller files. Thanks for pointing it out! As for FPS shooters and the analog settings, you can do one of two things: in Perfect Dark, set your control scheme to 1.2 instead of 1.1; this puts your movement on C-buttons (which you should assign to WASD) and your joystick to look (set it to your mouse). Bind the R-trigger (aim) to a button like left shift. Now go into the modifiers tab, and create a new modifier of type "Configuration". Click the circle for "Cycle through configurations", bind it to the same key you set for R-trigger, and click "Apply Changes". This last step allows you to aim more intuitively. You can't get quite the same degree of control as in a regular FPS made for a computer, simply because you can only move an analog stick so far. But it's an interesting way to play PD.

squall_leonhart: ooo, a buglist. OK, I'll get right on it. The first will probably be easy to fix. The second... hmm. I'll see if I can reproduce it.

OK, give me a day to tinker.
 

squall_leonhart

The Great Gunblade Wielder
i can reproduce the second bug on both my machines ;) and the first bug is an odd one lol. which also occurs on both machines.... now that im tinkering with it :p.

btw, could a import old config file, method be made?.


edit.

theres something going on here.

its wierd, i can't assign any buttons to my XBCD modified Xbox Controller
it keeps assigning Z+ which is one of my trigger buttons.

the trigger buttons are perfectly setup though, in xbcd they show as 0 meaning they are in the disengaged zone.

ok i can see whats happening.

mate,
with my xbox control i have split the triggers between the Z- axis and the Z- rotation axis so i can use both buttons at once, this is technically how the xbox control works on the xbox (otherwise you couldn't press both triggers at once.. they would negate each other)

anyway, you have to allow for such controls to dip into the negative zone. like in the 1.82a plugin.

ok heres what happens

if i set the 2 triggers up on 1 axis, 50% would be the neutral zone.
but since i put the 2 triggers onto separate axis's 0% becomes the neutral zone once calibrated, so you have to allow for that in the plugin.

? do you have a modified xbox control available or something so i can show you what i mean with my own custom XBCD profile?

maybe i could upload some screenshots of what i mean...

:( i found a temp fix but it breaks other things.

resetting the calibration to defaults makes the neutral zone 50% again, which allows PJ64 to be configured

BUT.
games like EA's NFSU and NFSU:2 now suffer from not having the control pressed deep enough to accelerate. so it feels like you only have the control half pressed.

you need to re-allow for a 0% value to be the neutral zone on certain controllers. it worked in 1.82a and still does in 1.83 fine so.. yeah..
 
Last edited:
OP
R

rabiddeity

Plugin Hacker
Thought the forum ate my post but apparently it didn't... hmm.

Harlay: Ah hah, the rumble device save problem... it should be fixed now, I hope. See below.

squall_leonhart: I figured the first bug out; it has to do with using sizeof on a string to determine how many characters, or assuming that lstrlen will return the size in bytes of an existing string. Works fine for char, but breaks when you move to wchar_t. Fixed it... and it was also causing problems with saving rumble device names in the registry (Harlay's most recent issue).
As for the other bug... I'll look into it. The string thing might have caused those problems too. New post shortly.

Also fixed:
Cleaned up a weird leftover registry value that should have only showed up in debug mode. May have caused an odd crash or two in the release code (the one you're all playing with right now.)
 

squall_leonhart

The Great Gunblade Wielder
keep up the good work mate :)

if you ever need someone to run a test on a beta, pm me :p
i've worked on several beta,s (the latest being WL Messenger)
 
OP
R

rabiddeity

Plugin Hacker
waaaa hold on hold on...

Okay, so if I understand it, the controller read is seeing a nonzero axis as being "pressed"...

Ah hah, okay, I know why it's breaking. The old code kept a joystick state for the selected joystick; if it hadn't changed by a certain amount, then it wouldn't read it as an assignment. Unfortunately, when I made it so you didn't have to select a joystick in order to use it, I had to rip out that piece of code-- because now, it scans ALL your devices, so it would have to keep track of ALL the states when scanning. In DirectInput, on axis-based controls, "neutral" is supposed to be 0, "full positive" is 32767 and "full negative" is -32768. Even for throttles, for calibration purposes the rearmost position is usually 0 (unless it has reverse thrust, but we're not worrying about that here). So your triggers should be going from 0 to 32767 or from 0 to -32768 if they're set up right. Maybe a problem with the profile? I don't know the software that well. Oh well.

Alright... ermm... yeah, so I'll just fix it by making it an array of joystick states. It's ugly, but it should work.

I haven't tested it yet, so.... err... I hope it doesn't crash? I PM'd you with the details.

A better idea than setting them as analog axes is just to set the two triggers to be buttons in the XBCD config. That way you can adjust their activation strength from the XBCD control panel. N64 buttons aren't analog; the only analog axes on an N64 controller are the two joystick axes anyway. So you wouldn't be losing any quality.

squall_leonhart said:
i can reproduce the second bug on both my machines ;) and the first bug is an odd one lol. which also occurs on both machines.... now that im tinkering with it :p.

btw, could a import old config file, method be made?.


edit.

theres something going on here.

its wierd, i can't assign any buttons to my XBCD modified Xbox Controller
it keeps assigning Z+ which is one of my trigger buttons.

the trigger buttons are perfectly setup though, in xbcd they show as 0 meaning they are in the disengaged zone.

ok i can see whats happening.

mate,
with my xbox control i have split the triggers between the Z- axis and the Z- rotation axis so i can use both buttons at once, this is technically how the xbox control works on the xbox (otherwise you couldn't press both triggers at once.. they would negate each other)

anyway, you have to allow for such controls to dip into the negative zone. like in the 1.82a plugin.

ok heres what happens

if i set the 2 triggers up on 1 axis, 50% would be the neutral zone.
but since i put the 2 triggers onto separate axis's 0% becomes the neutral zone once calibrated, so you have to allow for that in the plugin.

? do you have a modified xbox control available or something so i can show you what i mean with my own custom XBCD profile?

maybe i could upload some screenshots of what i mean...

:( i found a temp fix but it breaks other things.

resetting the calibration to defaults makes the neutral zone 50% again, which allows PJ64 to be configured

BUT.
games like EA's NFSU and NFSU:2 now suffer from not having the control pressed deep enough to accelerate. so it feels like you only have the control half pressed.

you need to re-allow for a 0% value to be the neutral zone on certain controllers. it worked in 1.82a and still does in 1.83 fine so.. yeah..

Oh and one more thing, importing old config files isn't really high up on my priorities, but I'll see what I can do... gotta get the new ones working correctly first.
 
Last edited by a moderator:

squall_leonhart

The Great Gunblade Wielder
im not having any problems loading profiles :p


excellent :)

you've even incorporated the idea i asked for :) (being able to change paks via controller :D

ok, this might be an odd request.

but instead of having the mempak <> adaptoid it could be transferpak <> adaptoid

that way you could have all 4 features on just 2 buttons, making it quicker. :p



edit
another bug found.

Rumble isn't working (games tested, Zelda MM, Zelda OoT, Super Mario 64)
clicking the test button the control rumbles fine, but its like its not reporting that the rumble pack is connected to the game
 
Last edited:
OP
R

rabiddeity

Plugin Hacker
Just updated the source tree and the binary with the latest fixes.

/ Profiles with mouse buttons or axes save and load properly now. "Save Profile" wasn't saving mouse info at all, and even if it had, "Load Profile" wasn't reading it. Thanks NaSeR for pointing this out.
/ One kana was screwed up in my mapping. Caught it in the debugger.
/ squall_leonhart's issue with the xbcd mappings is now fixed.
/ a mempak crash bug fixed

Alright so that should be most of the outstanding bugs so far. I'll take one more look at that rumble problem once I get home. Harlay, is it working for you now?

Also, squall, rumble has to be supported by the game you're playing. OoT should work with it, as well as Majora's Mask, but Mario 64 has no rumble support. So wait, are you using an Adaptoid?? If so, make sure RawMode is selected along with either Adaptoid (that should work, I think) or RumblePak with Direct Rumble. If it still doesn't work, I need to know how you've tried setting it up.
 

squall_leonhart

The Great Gunblade Wielder
im using a Modified Xbox controller using Dxinput for forcefeed back

rumble support is provided through the XBCD drivers, and worked fine on 1.83.

tested different settings, setups, etc, Rumble is not working in OoT and MM no matter what setting i use

will post a screenshot to show its set up properly and that.

as yu can see the settings are all setup.

pressing the test button results in the controller rumbling, but it won't rumble in rumble enabled games

working in 1.83
OoT
MM
Banjo Tooie

not working in 2.0
OoT
MM
Banjoo Tooie


heres how my control is modified ;)
http://smg.photobucket.com/albums/v253/squall_leonhart69r/xbox_controller_mod/
but as i've said. it all works (rumble as well) in 1.83/1.82a
 
Last edited:
OP
R

rabiddeity

Plugin Hacker
Here's how I test rumble in game, with Ocarina of Time.

First, if you're using a normal USB controller, you must have "rumble pak" selected from the config menu, and have your device selected. Some devices have a button to turn on/off rumble features, so make sure you've set that up right (use Test button to make sure rumble is turned on). Start OoT emulation, and press start from the intro to get into the menu. If I remember correctly, when you select a savegame, it should rumble when you select the save, and then again when you confirm it. Other places it rumbles are when rolling/crashing into a wall (usually) or when riding the horse (it will rumble a lot). There are also one or two places in OoT where the text of the game changes if you have a rumble pak inserted; the fishing game is one of them.

The most likely bug will be if the N64 thinks you have a rumble pak inserted, but your controller doesn't rumble. For regular USB controllers, this means the plugin isn't translating the N64's rumble instructions into DirectInput force feedback properly.

The unlikely bug is if the N64 doesn't see a rumble pak plugged in at all. Obviously it won't send rumble data in that case. This means there's a major problem with how the plugin is handling data. I haven't seen any of these.

As for Adaptoid users, well I haven't done any testing with that yet because I don't have one (the Adaptoid lets you plug in a real N64 controller to your computer).

squall, for 1.83 were you using the newer build with the "xinput fix"? I assume not, but... alright I'll PM ya about it.
 
Last edited by a moderator:

squall_leonhart

The Great Gunblade Wielder
im testing by doing a sword charge/spin attack as it rumbles the entre time you hold the b button.

rabiddeity said:
squall, for 1.83 were you using the newer build with the "xinput fix"? I assume not, but... alright I'll PM ya about it.

xinput is not required on the Type-S controller
the s-type uses standard dinput (the original xbox was built on Dx8 code, predating Xinput)

i've never used the xinput fix.

Type-S (standard black Xbox 1 controller, users Dinput)
Type-360 (the new smaller xbox controls from the Xbox360, uses Xinput for rumble)
 
Last edited:
OP
R

rabiddeity

Plugin Hacker
Gotcha.

OK, other than that, I'll be out for the next week or so for work-related duties. No internet, no computer, and probably a very bored rabid. After that I'll be back to work on things again.
 

Harlay

New member
The rumble isn't work yet.
by the way, super mario 64 has a rumble version. see the screenshot.
edit: new found.
I'm set the shortcut to "Insert MemPak" and "Insert RumblePak".
Ingame the "Insert MemPak" will work, but the "Insert RumblePak" not.
and the "Player 1: Pak changed to Mempak" message will not disappear.
The emulator will no response when I use the shortcut key ingame and deactive the emulator. This mean the emulator could not be reactive now.
 
Last edited:

squall_leonhart

The Great Gunblade Wielder
we know Harlay, we found a bug in it, rumble capability isn't being reported to the emulator properly or something, even though clicking the test button rumbles the control.
 

Top