Next Generation Emulation banner

KrossX's Magical Tools™

24096 Views 116 Replies 9 Participants Last post by  shinra358
KrossX's Magical Tools™ (Edited)

Just a nicely named thread to group some sillies I made and perhaps new ones. You'll probably need Visual C++ 2010 Runtimes if you haven't them already: Runtimes' link.

Disclaimer/Warning! This programs may make your computer blow up and/or make you bald. Use them at your own risk. And should really not be used with admin rights... really.

  • Arcana Heart 3 (input config)
    View attachment 216650

    To use it, start the program with the EXE to be modified on the command line. Or, just drag the file to be modified on top and it will open it.

  • TypeX Config (typex_config replacement)
    View attachment 216651 View attachment 216652

    To use it, just move/copy the program into the typex_loader game folder and execute it. Supports keyboards and joysticks compatible with DirectInput8.

  • Replacer (command line tool)

    It will replace a set of characters for another in a given file. For example (batch included in zip):
    replacer --file game.exe --s1 D:\ --s2 .\\ [--wide]

    The new optional --wide switch will cheaply convert the Strings into wide versions and search for them instead. Necessary for Matrimelee Matsuri for example. Basically, if there's no match in your searches, try with the --wide switch.

    The idea is to have a tool to change save locations for the arcade games. But never forget to always make a backup of the file beforehand.

  • GetFocus (command line tool)

    Usage: GetFocus --title TITLE --wait NUMBER

    It will search for TITLE in current desktop's windows. If there's first match, it will wait for a NUMBER of ms and give focus afterwards. Not using parameters will simply try to use the current window as target and wait for 1s before giving it focus.

  • BitrateCalculator (WPF)
    View attachment 216653

    Exactly what it says, a very simple bitrate calculator.

  • PDF Bookzoom: Simple brute force replacement of the zoom/fit tags. That way your current zoom won't be changed when clicking PDF bookmarks.

    Usage: PDF_Bookzoom filename, or just drag the file on top.

=> KrossX @ GitHub, Download Folder @ GoogleDrive

#Mediafire Folder (old)
[Magical Tools @ Google Code] (old)
See less See more
1 - 20 of 117 Posts
Any plans on adding editable trigger ranges for pokopom and duranzo?

Why it's needed:

Without Wedge Helper:

With Wedge Helper:

See how this would help with the vast amount of games that don't deal with trigger ranges?

If so, an editable range while pressing down (activation) and a 2nd editable range for releasing (deactivation) would be nice for those who don't want to use a wedge. And both buttons would share the same editable ranges.

This is desired for games that require rapid presses without the huge angle of the triggers. When pressing a button, I find myself not fully releasing the trigger and then when I need to come back to press it, the move never comes out because I'm still slightly holding the trigger. So the input doesn't register because I never fully released the trigger.
See less See more
Untouched it is 0. Pressed fully it is 255.

I mentioned 2 values because if someone doesn't want to use the wedges, they may want a different value when pressed and a different one to tell the controller to release. I myself am disputing between just 1 notch for press or half of 255 for press and just half of 255 going back up when releasing (without wedges). I don't know if there is a way to detect when you are pressing and when you are releasing or not. If not, just ignore this paragraph.

It is not a problem with your tools at all, it is triggers in general. I hate them lol. I get that problem by default and I mentioned this to see if I can get a remedy. It's messing up my online play on PC games with fighters and it gives me a hard time in action oriented emulation. And I don't like playing with fight sticks.

But my comfort resting position with the wedges are 235 (when I line it up with the L1R1 buttons physically). That way I won't have far to go to actually press it in full (like a button). Going above 235 in squeeze for me should activate the button if you were to make this a configurable number option inside of the .ini only. But of course different ppl may want different values for themselves hence the user inputting their own value.
(^I think I answered your question correctly here lol. Pardon me if I didn't. Also, sorry for the wait. I had to head off to work earlier.)
See less See more
Wedges = pic 2, post 42. Keeps the trigger held down low (makes it into a button instead of a trigger like a ps2 controller). If I have the ability to change the press of the initiation, then I can make that wedge work. Going below 235 will do nothing. Going above 235 would initiate the button press. Yeah, I don't want the 235 to become the standard, I just want it to become adjustable.

If not using the wedges like pic 1 post 42, I'm asking that a customizable press for pressing down and a separate customizable number for releasing the trigger. Say like if a person is okay with the button being activated at pressure 1 on press but don't like the button to say it is not pressed at pressure 1 but at pressure 125 instead. That means when they release the trigger, they want the trigger to say it is not pressed early, getting rid of the problem I mentioned earlier (if not using the wedges).

For example (inside .ini only):


This would mean for both of the triggers, the action performed on the game will initiate when your press is 10 or greater. But when you release the trigger, the trigger press will be over half way before you fully release the trigger.
*These 2 lines would apply to both triggers - no need for 4 lines to do both triggers individually*


Would mean that the press is activated when the trigger is held half way down and above, and when you release the trigger half way up, the press is deactivated.


In these 2 lines, on press ~ 0-14 would be 'the deadzone' so to speak. On release ~ 0-129 would be 'the deadzone'.

So is that even possible to detect when trigger is pressed/released separately like that in order to create those 2 options?

If that is not possible, then I request (inside .ini only):


In order to tell the game that the trigger(s) are considered pressed at a certain pressure.

For pic 2 post 42, 'triggerpressure=' would be 'triggerpressure=236'. That's where I got that number 235 from.

Get me now?
See less See more
Okay, fair enough. I guess I can get a set of moldable ear plugs to use as a more stable wedge to use for this :)
Cool. Seems to work correctly so far. Thanks.
Sorry I kept you waiting. This site doesn't give me email notifications even though I have them turned on :(

Don't forget Durazno B)

(Edit: checked spam box and they were all going to it @[email protected])
Hey, Kross.
I've been using this program called Autohidmousecursor and it looks like this:

It is a small program without the need of an installation. The only downside to it is that it doesn't have the ability to look at a whitelist in order to only make the mouse cursor disappear only on certain programs.

Can you put hiding the cursor in insomnia to consolidate these features?

HideMouseCursor= 'removes cursor completely (can still use mousewheel if used'

HideCursorWhitelist= 'makes hiding the cursor only happen during items in current whitelist'

HideCursorTimer= 'idle time before mouse cursor hides'

Whether you want to make it show in the gui is up to you, but can you put this in the .ini?
See less See more
@ruantec: Sorry for lateness.

@kross: Aight. Thanks home skillet :)
Sorry to bug you Kross, but I was playing SSF4 again online and my logitech controller is kinda losing its grip with the analog triggers. The L2 trigger keeps pressing by itself because it has gotten loose from gameplay. It's also affecting every game I play for PC as well. So if you aren't that busy or are taking a break in between what you are working on now, how 'bout those deadzone trigger settings for durazno (puts up firaga shield)?

See less See more
Works, Thanks.
Is it possible to use this .dll and .ini with the scp xinput1_3.dll in order to have this function work directly with the ps3 controllers or is it coded differently?
Okay, cool. Thanks again.
Hey, for Pokopom, the trigger deadzone feature doesn't work for EPSXE1.9 or Project641.6. The .ini doesn't go into the .ini folder in EPSXE. Also, don't forget to set that flag so that when a controller is removed from the Project64, it displays the 'No Controller, Please Reset Game" in-game dialogue.
Yeah, I know. I just thought that was something that was overlooked because I see an ini folder in the epsxe main folder. I forgot that Shark and GDSX created the ini folder and not EPSXE itself.

Also, Rumble doesn't seem to be carrying over sometimes when switching from digital to analog via the home button on the controller.
When switching via the plugin itself, all seems well.
But sometimes if you have it on digital or analog via the plugin, then switch to analog/digital via the controller, 1 mode will have rumble and the other will not (and vice-versa). I just noticed this when playing FFVIII on EPSXE.

For PS2 games, the analog button is supposed to disable/enable the analog sticks. Currently here, it doesn't do anything.
For the EPSXE part,
currently while playing FFVIII, if it is on digital in the plugin, and I play the game and put it on analog via the controller (because it is an analog game), the rumble stops working.
If It is on analog in the plugin, and I play the game and put it on digital via the controller, the rumble also stop working in the new mode.
But if It is on analog in the plugin by default, rumble works. If it is on digital by default in the plugin, rumble works.
That's why I thought all functions didn't carry over when switching via the home button and something may have been misaligned and/or forgotten.

Another thing that makes me think something is off is when I play for example: when i do the analog switch on FFVIII in the middle of a rumble, rumbling gets stuck to on the whole time similar to a previous bug (that you fixed) that dealt with turning the emulator off while it was rumbling and the rumble got stuck.

Ok, I understand about the ps2 part.
Well, the analog button does nothing but change the current mode reported by the controller. Just as the controller would do. The plugin setting just sets the default mode, as in "what is the controller set to before booting the game".

If you let FF8 boot (no savestate load), the game will set the controller mode to analog. Check the LED to see what the current mode is. If rumble works only with the LED on (analog mode) then it's working fine.
Aight, yeah it was the savestates that was misaligning functions. I was using savestates to look at some different shaders. So it does work correctly for epsxe. Thanks.
What runtimes do i need? I remember using this tool back in January and it worked fine. And the GUI is not starting and i am also running it in its own folder.
Runtimes are at the lower left corner. Everything in the shark folder in the download goes in the main directory of epsxe. You can't use shark in its own folder.
Oh, my bad. I got mixed up in your other statement in your other post on another thread. I'll go post there.
1 - 20 of 117 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.