What's new

NRage Input Plugin V2.00 BETA (an overhaul)

squall_leonhart

The Great Gunblade Wielder
Pokemon Green is MBC 1

the cartridge cannot be loaded by E and U roms, but it should work fine in the J version of Stadium and S2

if not.. then the MBC1 support might not be implemented properly :|
 

kros

New member
N-rage and pj64k 0.13 not working online?

I have been trying to play Smash brothers 64 online with pj64k, using N-rage's
input plugin (all kinds of versions). But none seems to work when using a gamepad (it possibly works when only a keyboard is used).

If I join someones game I'm not able to do anything, it's as if my controller wasn't plugged in at all. If I host the game I can see what I do but the others can't.
Jabos direct input works though, but it lacks the nice functions of nrage...

emulator: pj64k 0.13
input plugin: n-rage 2.200a (overwrite Jabo_DInput.dll with this one to get it to load on netplay)


any ideas on how to solve this?

thanks in advance
 
OP
R

rabiddeity

Plugin Hacker
Re the Win9x compatibility issues, it seems to be a problem of "plugins behaving badly." This is number 1 on the list of issues. PLEASE USE LATEST DEBUG VERSION if you're running Win9x to see if that fixes the problem (version should read 2.00b). It seems to only be an issue in non-English versions of Win9x.

Kruci was helping me debug this issue but he disappeared before I could confirm whether the fixes worked or not. lion10, if you'd like to help test, it would be greatly appreciated. Start by downloading the latest debug version and seeing if that helps at all.

all Ram are WORKING , exept for Ram enable.
Rom working exept Pocket Monster Green in Pocket Monster Stadiun 2 (J).
I can rewrite MBC code to speed up if you wish.
posible speed up :
make a switch (dwAddress >> 13) in all MBC function
put "bool (ptrfnReadCart *) (LPGBCART Cart, WORD dwAddress, BYTE *Data) in struct _GBCART and initialize this value in LoadRom(...) (not realy nesesary :p, but more faster)
put "bool (ptrfnWriteCart *) (LPGBCART Cart, WORD dwAddress, BYTE *Data) in struct _GBCART and initialize this value in LoadRom(...) (not realy nesesary :p ,but more faster)
put more logic in DebugWrite(...) (only if posible).

The rom and ram banks need to be circulate. try to read (or write) invalid bank return data from another bank. ( bank_to_read = bank % iNumRomBanks (beacause the "MBC chip" dont knock the iNumRomBanks) NO N64 ROM CHECK THIS! (code more easy)
The Default value reading in a invalid Addres could by 0x00 or 0xFF depending of circuit (pull-up or pull-down circuit) (OPTIONAL :p , usualy pull-up) NO N64 ROM CHECK THIS!

Cool. I'll change the if/else blocks to switch (dwAddress >> n). The function pointers for read/write are a good idea too. A bit dangerous, but it should speed things up quite a bit. Circular bank reads are a good idea too, much better than just clipping at the high end. I don't know what an invalid read produces on the real hardware so I'm going to leave that alone for now.
 
Last edited by a moderator:

kros

New member
you can't

PJ64k has been written to only be able to use the default plugins

Howcome nrage works online when you only use keyboard as input device?
Is there some difference in how it sends messages online, whether its gamepad or keyboard? If so, shouldn't it be possible to make them send the same type of messages, just to get it to work online. As a workaround?

As a side note, pj64k works with several other plugins than the "official"/bundled ones. Both input, graphics and sound.. you just need to overwrite the filenames of the default ones with your "custom" ones.
 

kros

New member
Please rabiddeity, maybe you can take a look at this problem? Perhaps it can be made to act/send the same typ of messages that jabos dinput sends?
 

Kruci

New member
Kruci was helping me debug this issue but he disappeared before I could confirm whether the fixes worked or not. lion10, if you'd like to help test, it would be greatly appreciated. Start by downloading the latest debug version and seeing if that helps at all.


No new version is out since my last post. My last post is still actual:)
my last post
http://www.emutalk.net/364087-post304.html
OK this is not true, but I can swear, that I post files from latest version:)
I have latest version, but I did no post. No post from version 24.11, weird:)
but it is same as in my latest post:)

I think that i was waiting for new version, but no version come out, so I forgot:)

Setting of buttons is still lost after change.

Edit:
I maybe remeber, you didnt say anything about progress with win9x problem, so I was waiting for some progres and then forget. OK the reason doesnt matter:)
 
Last edited:

emodel

New member
thanks for the hard work on this great plugin
Could you please consider moving settings to a cleaner .ini file, instead of using the registry ?
I mean, registry makes sense for multi users apps (like email etc), but for a plugin, come on ! :)

thanks
 

squall_leonhart

The Great Gunblade Wielder
yeah, i actually think thats a good idea Rabbiddiety, especially since PJ64 1.7 is moving from the registry do a ini file based format.
 

guille007

New member
yeah, i actually think thats a good idea Rabbiddiety, especially since PJ64 1.7 is moving from the registry do a ini file based format.
I agree.

---------------------- Nrage.ini ----------

[GLOBAL]
.....
..... global settings
.....

[STARFOX64]
......
...... specific game setings
......


[ÎÞÝÊÞ°ÏÝ Ë°Û°]
......
...... specific game setings.
......

------------------------------------------ ---

if you want I can make a module for manage the ini file. Specific game settings only saved if difer form GENERAL settings , and only the diferences setings should by saved in specific seting. In other words if you have only one botton diferen in a specific game in relation to global game settings then only in the specific game settings should aper that botton and not all the settings.

to do : A botton "kill especific setting" Let a game go back to the general settings.
botton "Save Specific" , or somefing equivalent.

------ Optional , changing subject : .---------------------------------------

About Shorcutes : add a botton "Next MemoryPak", switch between Memory packs. (very usefull)

about mensages: What do you thinks about display mensages in meadly of the games, like "RamblePaK selected" , "MemoryPak selected: MemPack1.mpk" , "Pak unpluged" , "TransferPak selected" , ETC!. (in the same way that zsnes and nestopia display mensages)

easy form to implement this is using GDI, ITs ugly but I dont knock another metod. I dont probe this but maeby works :p
The correct form is to talk to Zilmar to put a function in the interfase to make it posible, also the Video Plugin need to add a function to display mensages.

about shorcut "MenP <-> RumbleP" , should be greet to make a simple Rumble when change to RumblePak

any sugestion will be helpful.
 
OP
R

rabiddeity

Plugin Hacker
Sorry guys, I fell off the Internet for a month or so there around the holidays. I'm back now.

I agree.

---------------------- Nrage.ini ----------

[GLOBAL]
.....
..... global settings
.....

[STARFOX64]
......
...... specific game setings
......


[ÎÞÝÊÞ°ÏÝ Ë°Û°]
......
...... specific game setings.
......

------------------------------------------ ---

if you want I can make a module for manage the ini file. Specific game settings only saved if difer form GENERAL settings , and only the diferences setings should by saved in specific seting. In other words if you have only one botton diferen in a specific game in relation to global game settings then only in the specific game settings should aper that botton and not all the settings.

to do : A botton "kill especific setting" Let a game go back to the general settings.
botton "Save Specific" , or somefing equivalent.

------ Optional , changing subject : .---------------------------------------

About Shorcutes : add a botton "Next MemoryPak", switch between Memory packs. (very usefull)

about mensages: What do you thinks about display mensages in meadly of the games, like "RamblePaK selected" , "MemoryPak selected: MemPack1.mpk" , "Pak unpluged" , "TransferPak selected" , ETC!. (in the same way that zsnes and nestopia display mensages)

easy form to implement this is using GDI, ITs ugly but I dont knock another metod. I dont probe this but maeby works :p
The correct form is to talk to Zilmar to put a function in the interfase to make it posible, also the Video Plugin need to add a function to display mensages.

about shorcut "MenP <-> RumbleP" , should be greet to make a simple Rumble when change to RumblePak

any sugestion will be helpful.

I like the ini file idea. PJ64 1.7 is supposed to pass the N64 rom header info out so that we can identify the game we're playing. We can write the functions for per-game support, and then when 1.7 is released it will be ready. If you write .ini support, please keep all the variables separate, NOT mashed together into one hex value like the current registry or config files. I want the config info to be as human-readable as possible, and this is a good chance to fix that.

For the per-game settings, this could be really confusing, so we need to think about how the configuration should be set up. I was thinking we could have a checkbox or toggle button that says "Modify per-game settings". When the user toggles the control, a warning dialog comes up explaining that any changes they make will only take effect for the current game. If a game has a per-game setting, the controller config screen should show the currently bound button, probably in a different color to show it's not the all-games setting. That way the user isn't saying something like "my keybind says X is bound to A button, but when I press X nothing happens!" Also there is a button like you said to return the per-game settings to all-game.

So it would go something like this: I'm playing Goldeneye and I want to reassign the control stick to the mouse... but not for every game, just this one. I go into the config screen while the game is running, I check the box that says "Modify per-game settings", and I click OK on the warning dialog box. Now I click on the Analog Stick Up button, and move my mouse up. The new assignment shows up in RED because it's a per-game setting. If I click it again and hit ESC, it resets to the default (it does not unbind the key completely). If I _uncheck_ the "Modify per-game settings" box and click on a control that has a per-game setting, that per-game setting is removed immediately. Then if I click again I can change the all-games setting. Does that make sense?

Please rabiddeity, maybe you can take a look at this problem? Perhaps it can be made to act/send the same typ of messages that jabos dinput sends?

squall_leonhart said:
PJ64k has been written to only be able to use the default plugins

I think this indicates that they may be using a hacked-up version of Jabo's DirectInput, and very likely not following the plugin spec. If they follow spec Jabo's shouldn't be producing any different output than NRage... From the emulator's perspective if it reads control inputs using ReadController everything should work just fine. You can try toggling off Raw Mode and see if that helps, but I'm not making any promises.
 
Last edited by a moderator:

squall_leonhart

The Great Gunblade Wielder
maybe it would also be possible, so that if a game doesn't support a certain pack, it can be prevented from being selected?

just an idea...
 
OP
R

rabiddeity

Plugin Hacker
maybe it would also be possible, so that if a game doesn't support a certain pack, it can be prevented from being selected?

just an idea...

Nah, it's not really worth it. On the other hand, having the plugin save which pak you want to use to start for each game (and the associated Transferpak files, etc), that might be useful.

OK guille, I've updated the source with the switch (dwAddress) and the function pointer speedups. It needs testing to see if transferpaks still work.

Anyone else want to help me nail down this win98 thing?
 
Last edited by a moderator:

squall_leonhart

The Great Gunblade Wielder
well,.. i have a ME system setup in my bedroom (mainly for dos games and loading up walkthroughs and cheats when playing gamecube or ps2 :p)
 

lion10

New member
Re the Win9x compatibility issues, it seems to be a problem of "plugins behaving badly." This is number 1 on the list of issues. PLEASE USE LATEST DEBUG VERSION if you're running Win9x to see if that fixes the problem (version should read 2.00b). It seems to only be an issue in non-English versions of Win9x.

Kruci was helping me debug this issue but he disappeared before I could confirm whether the fixes worked or not. lion10, if you'd like to help test, it would be greatly appreciated. Start by downloading the latest debug version and seeing if that helps at all.

Ok, I have now tested the DEBUG BINARY. There is written "Generates a file called NRage-Debug.txt in your emulator folder".


Very strangely, there will be generated NO such file, probably I make something wrong? The differences, the emulators do NOT freeze anymore, but there is still displayed an error message similar to the first ones of my post.
 

Kruci

New member
NRage-Debug.txt is in your emulator directory(not plugin) if is generated.

Stil same error, not loading settings.
 
OP
R

rabiddeity

Plugin Hacker
Ok, I have now tested the DEBUG BINARY. There is written "Generates a file called NRage-Debug.txt in your emulator folder".


Very strangely, there will be generated NO such file, probably I make something wrong? The differences, the emulators do NOT freeze anymore, but there is still displayed an error message similar to the first ones of my post.

lion10: If the file is not generating at all, it means that the plugin DLL is not being loaded at all. Hmm...

OK, let's simplify things. First, clear out the registry entries under HKEY_CURRENT_USER\Software\NRage\DX8InputPlugin200
if there are any. Next, remove any NRage language plugin files from your emulator directory (any files like NRage-Language-1031.dll) Now delete any files in the same directory called NRage-Debug.txt and finally rerun the emulator to see if it generates a debug file.

If it's still failing, there's a small chance that it's because of some problem with the Unicode layer, so to rule that out you should install it (again?). I posted this link before; it has an installer for a development kit and an installer for the Unicode layer itself. You don't need to install the dev kit.

Unicode layer for Win98

squall, in the meantime can you see if you have similar issues on your ME box?

OK, Kruci, this DEBUG version will still fail but it will give me more information about where it's going wrong. DLL timestamp should be 10 Jan 2007, 4:00PM.
 
Last edited by a moderator:

Kruci

New member
yes, better error, default setting versus empty setting:)
OK same lost setting after change, as you said just testing.

Registry load failed, loading defaults from resource.
 

lion10

New member
lion10: If the file is not generating at all, it means that the plugin DLL is not being loaded at all. Hmm...

OK, let's simplify things. First, clear out the registry entries under HKEY_CURRENT_USER\Software\NRage\DX8InputPlugin200
if there are any. Next, remove any NRage language plugin files from your emulator directory (any files like NRage-Language-1031.dll) Now delete any files in the same directory called NRage-Debug.txt and finally rerun the emulator to see if it generates a debug file.

If it's still failing, there's a small chance that it's because of some problem with the Unicode layer, so to rule that out you should install it (again?). I posted this link before; it has an installer for a development kit and an installer for the Unicode layer itself. You don't need to install the dev kit.

Unicode layer for Win98


GREAT! Debug version now runs, with „unicows.dll“ in the emulator folder! Normal version still crashes and freezes, so there is unfortunately no change. See „Nrage-Debug.rar“ for more details.
 

Top