What's new

NRage Input Plugin V2.00 BETA (an overhaul)

squall_leonhart

The Great Gunblade Wielder
Test rumble working
Rumble in zelda oot working
rumble in Zelda MM is working

Code:
*** DLL Attach (2.00 Beta-Debugbuild | built on Aug 17 2006 at 16:35:09)
Initiating controllers...
GetInputDevice: gGuid is {6F1D2B60-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {6F1D2B61-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {60745C20-8156-11DA-8002-444553540000}
    Loaded settings from registry
Controller 4: unplugged
Controller 3: unplugged
Controller 2: unplugged
Controller 1: rumble device set, plugged in, with paktype 2, RawMode is 1
GetInputDevice: gGuid is {60745C20-8156-11DA-8002-444553540000}
Got FF device 0
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 1
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 2
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 3
*** DLL Detach
---DEBUG FILE CLOSED---
*** DLL Attach (2.00 Beta-Debugbuild | built on Aug 17 2006 at 16:35:09)
Initiating controllers...
GetInputDevice: gGuid is {6F1D2B60-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {6F1D2B61-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {60745C20-8156-11DA-8002-444553540000}
    Loaded settings from registry
Controller 4: unplugged
Controller 3: unplugged
Controller 2: unplugged
Controller 1: rumble device set, plugged in, with paktype 2, RawMode is 1
GetInputDevice: gGuid is {60745C20-8156-11DA-8002-444553540000}
Got FF device 0
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 1
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 2
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 3
RomOpen
RomClosed
RomOpen
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
Rumble: DIES_NODOWNLOAD OK
RomClosed
*** DLL Detach
---DEBUG FILE CLOSED---
 

Harlay

New member
I don't know it's why, the new debug plugin is work correct. My pad is rumble now.
But the log isn't correct yet.
Code:
*** DLL Attach (2.00 Beta-Debugbuild | built on Aug 17 2006 at 16:35:09)
Initiating controllers...
GetInputDevice: gGuid is {6F1D2B60-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {6F1D2B61-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8001-444553540000}
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8002-444553540000}
GetInputDevice: gGuid is {4FF7DF40-7330-11DA-8001-444553540000}
	Loaded settings from registry
Controller 4: unplugged
Controller 3: unplugged
Controller 2: unplugged
Controller 1: rumble device set, plugged in, with paktype 2, RawMode is 1
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8001-444553540000}
Got FF device 0
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 1
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 2
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 3
*** DLL Detach
---DEBUG FILE CLOSED---
*** DLL Attach (2.00 Beta-Debugbuild | built on Aug 17 2006 at 16:35:09)
Initiating controllers...
GetInputDevice: gGuid is {6F1D2B60-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {6F1D2B61-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8001-444553540000}
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8002-444553540000}
GetInputDevice: gGuid is {4FF7DF40-7330-11DA-8001-444553540000}
	Loaded settings from registry
Controller 4: unplugged
Controller 3: unplugged
Controller 2: unplugged
Controller 1: rumble device set, plugged in, with paktype 2, RawMode is 1
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8001-444553540000}
Got FF device 0
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 1
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 2
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 3
RomOpen
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
Rumble: Can't rumble: 1
RomClosed
*** DLL Detach
---DEBUG FILE CLOSED---
*** DLL Attach (2.00 Beta-Debugbuild | built on Aug 17 2006 at 16:35:09)
Initiating controllers...
GetInputDevice: gGuid is {6F1D2B60-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {6F1D2B61-D5A0-11CF-BFC7-444553540000}
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8001-444553540000}
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8002-444553540000}
GetInputDevice: gGuid is {4FF7DF40-7330-11DA-8001-444553540000}
	Loaded settings from registry
Controller 4: unplugged
Controller 3: unplugged
Controller 2: unplugged
Controller 1: rumble device set, plugged in, with paktype 2, RawMode is 1
GetInputDevice: gGuid is {FB33BB50-C303-11D9-8001-444553540000}
Got FF device 0
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 1
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 2
GetInputDevice: gGuid is {00000000-0000-0000-0000-000000000000}
GetInputDevice: Device does not appear available
Didn't get FF device 3
*** DLL Detach
---DEBUG FILE CLOSED---
 

Legend

New member
Poobah said:
I never use the "RawMode" option because I like to have a separate mempak for each game; it's very convenient! Maybe you could convince some of the popular N64 emulator developers such as Zilmar or Rice to see about having more information provided to the plug-ins so that input plug-ins could also have this functionality.

I agree. I think unfortunatly that's what most people don't use it even though it is less accurate. Maybe there's a couple ways we can make it easier for everybody though:

1. Have the plugin do a search for the correct mempak (in rawmode) when game is launched; instead of launching then going to settings and pick one out manually.

2. Probably not possible but have a ONE mempak thingey that can store infinite game notes. Right now I would need 5 or 6 mpks to store all my notes.

3. Have the plugin have a hotkey for switching between rawmode or not.

I don't know, I think the system is OK now but could be easier and more convient for the community. Just some thoughts....
 

squall_leonhart

The Great Gunblade Wielder
i think it would be possible to modify mempak emulation to allow to have infinite slots, it would just need some work... i'll need to read up on programming and what each key actually does...

i found the 1.82a source btw, rabiddeity


but wow... the cpp in 1.82a is a quarter of the size of the one in 1.83 and 2.0... its likely the rom isn't being read properly... i'll look into it.

what program will i need to recompile the source when i want to test it?
 
OP
R

rabiddeity

Plugin Hacker
Yay, the rumble bug is squashed! Those of you who don't want to create large log files can switch over to the Release version, as it's updated now.

Harlay, I think your plugin is returning the wrong value, but as long as it rumbles OK, I wouldn't worry about it.

Legend: I agree, this would be a convenient feature. Number 1 is the ideal way to do it, but it isn't possible unless the emulator uses Controller Spec 1.1 and sends header data (the ROM header has info about the "real" name of the ROM); otherwise the plugin has no idea what ROM it's running. Number 2 isn't possible for rather complex reasons; in short, the N64 ROMs are hardcoded to use 32k mempaks. Number 3 sounds good, except it's very dangerous. Again, the short explanation: if the emulator is in the middle of reading from or writing to a controller, and we switch controller rawmodes, the emulator is going to be in an unknown state. In the best case, it doesn't finish its read operation properly and just crashes. In the worst case, it's in the middle of a write operation, crashes, and corrupts your mempak.

So I like option 1, but I don't have an emulator I can test the header functionality with. (Controller spec 1.1 is broken in PJ64 1.6; it's fixed in 1.7 but I don't have access to that yet.)

OK, so in terms of bugs, I've got three left, unless someone wants to add more:
-mouse saving/assigning issue in "modifiers", this is a nasty little bug
-.a64 file saving/importing (note file import/export)
-transfer pak stuff (I barely know what the transfer pak does, so Squall I'm leaving most of this up to you)
 
OP
R

rabiddeity

Plugin Hacker
squall_leonhart said:
i think it would be possible to modify mempak emulation to allow to have infinite slots, it would just need some work... i'll need to read up on programming and what each key actually does...

i found the 1.82a source btw, rabiddeity


but wow... the cpp in 1.82a is a quarter of the size of the one in 1.83 and 2.0... its likely the rom isn't being read properly... i'll look into it.

what program will i need to recompile the source when i want to test it?

Whoops, sorry, wasn't quite fast enough on that. On the first point, see the post above. I think the source is bigger because he added LOTS of DebugWrite statements (these write directly to the NRage-Debug.txt file).

To compile, your best bet is Visual Studio. Normally it costs lots of money, but recently MS released a free version called "Visual Studio Express". It should compile and run just fine... but I'm not sure about optimizations. Here's the link:
http://msdn.microsoft.com/vstudio/express/
Click on "Download now" and follow the instructions.

If you need info about how the source is laid out, or how anything works, or how to compile it, PM me.

Oh and one more thing: you might notice I replaced all DebugWrite statements in GBCart.cpp with DebugWriteA. In 1.83 and previous, they're equivalent, but for rather involved reasons involving Unicode support, they're not. If you want to add some debug lines of your own to 2.00, use DebugWriteA. Otherwise, it won't write properly to the debug file.

OK, I'm off to fix some more bugs!
 

squall_leonhart

The Great Gunblade Wielder
lol.. omg.. can't find a direct download link on that page. :| do i have to download them separately or something...

lol, im not gunna have full netspeed back till the 22nd.
 

squall_leonhart

The Great Gunblade Wielder
lol, ok, becoz im too lazy to have to redownload it, which of the img files do i need to download.. i'd rather hardcopy it to disk :p.

coz theres 2 visual c's on there.

this uses .net framework doesn't it?... i have the latest version of that. and the latest DX for .net framework

nvm.. got the right one :p.. hmm i'll have to tell my ex about these. shes still using the old VB6
 
Last edited:

Legend

New member
rabiddeity said:
Yay, the rumble bug is squashed! Those of you who don't want to create large log files can switch over to the Release version, as it's updated now.

Rumble does work again now, thanks for that. Are you still trying to expand rumble compatability? Games like Conker, Worms, and the Castlevanias should have rumble but don't (for me at least). Anyway, can't wait for your continued work, you're going to make this plugin perfect it sounds like.
 
OP
R

rabiddeity

Plugin Hacker
Legend: If your rumble isn't working, can you delete your debug file, run just that one game, do some stuff that should rumble, and post it up here? Thanks. Also, did it rumble in 1.83?

One last thing, and this goes for everyone. Do you use an Adaptoid? Or do you know anyone who is? I need some testers for a couple things. First off, there's no documentation on the a64 format, so I need some sample a64 note files from someone, NOT from this plugin but from the Adaptoid software. Also, I want to do more of a raw style, pass everything straight through to the controller style Adaptoid support. The drivers let you send commands straight to the N64 controller itself instead of emulating all the calls.
 
Last edited:

squall_leonhart

The Great Gunblade Wielder
just checked
Conker doesn't have rumble and DK64 doesn't have rumble... i know DK64 has rumble on my own n64 so theres a problem there...


edit

nvm.. DK64's rumble is working now.
 
Last edited:

Legend

New member
Here,

First, I played f-zero which rumbles just fine, then Conker, did some rumble stuff, then my favorite game WORMS, did rumble stuff. Those games have never rumble ever I think, including 1.83.
 
OP
R

rabiddeity

Plugin Hacker
That's weird, it looks like the plugin isn't even processing any rumble commands for the other two games. I'll add some more debug stuff next week when I come in. Gotta finish this a64 fix first.

OK, fixed the following:

-a64 notefile support should export much better now. crc support is still broken but it will only affect you if you're trying to reimport the .a64 file through Adaptoid software. Need examples of real a64 files to fix this.
-fixed a couple bugs with not unlocking the mouse before going into the config menu. Before, if you started the plugin with some registry saved mouse controls bound to modifiers, you couldn't bind any more mouse axes. You shouldn't have any more problems binding mouse axes or buttons now.
-discovered a nasty crash bug with trying to save with an unassigned modifier.
-side effect of fixing a64 support: "extra" appended characters in mempaks should display properly in the window now-- this means gamesaves for games like Blast Corps will be numbered! Yay!

All files have been updated, including source.
 
Last edited by a moderator:

squall_leonhart

The Great Gunblade Wielder
ok.. once i get visual studio im going to basically rip all the stuff out of the transfer pack, and see if i can get it working on a basic level, then i'll slowly add the new stuff back in and see if anything breaks it again, once i find out whats going on i'll need to look up to see why its doing it,.. then determine whether its needed or not...

i know one thing though, the bug is in regards to the rom handling and not the save game.... so something is making the transfer pack not read the pokemon yellow rom.

hey, rabid deity, can you compile a version of the plugin with the transferpack.cpp from 1.82a i want to see if that might work... i know that 1.82a loads all the Pokeroms i have fine
Blue yellow, red, gold silver,... and crystal
 

Poobah

New member
MSVC Express doesn't even come with any Windows API stuff, making it useless. It also looks for "stringconv.cpp" and "databufferclass.cpp" files, but they didn't come with the rest of your source code.
 

squall_leonhart

The Great Gunblade Wielder
might depend on the installer you use?...

...i'd copy your sig poobah, but Ritalin has trace amounts of LSD in it so technically i have used drugs in the past...
 
Last edited by a moderator:

Poobah

New member
squall_leonhart said:
might depend on the installer you use?...
I used the full ISO one aswell. :) Actually, it seems that we're still allowed to get away with installing the Windows-specific stuff from external sources. You'll also have to spend a few hours on Google trying to find a download of a minimal DirectX 8 or 9 SDK distribution, since most normal people don't want to download 500MB of MS's crap just to get a few MB of includes and precompiled libs.
 
Last edited:

Top