ROExt - mouse freedom and some tweaks

Started by Ruri, Sep 18, 2008, 02:41 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


New version (2018.6.10): (for client exe that contains string "dinput8.dll")
You can also get it from attachment to this post.

Updated version for new Renewal client.

  • Improved client internationalization (CodePage = 65001).
  • Removed features that aren't required anymore (like mouse freedom).
  • Removed parsing options from command line.
  • More control over CPU throttling.

Old version (2010.2.17): (for client exe that contains string "dinput.dll")
You can also get it from attachment to this post.

Features outline
1) Mouse freedom - in window mode you can freely move mouse cursor out of RO.
2) RO window can be set to any size and to be borderless or always on top.
3) Key remapping - 4 extra direct keys for skills, access for all 3 skill sets without /bm and ability to use skills from 3-5'th mouse buttons.
4) CPU usage reducing features - for better multiclient performance.
5) Overriding used codepage - allow client to be truly international and support all languages.

Windows NT (2000/XP/2003/Vista/2008/7/2008R2) is required, will not work on Windows 9x.
Close all RO clients, copy dinput.dll and dinput.ini to your RO folder, overwrite if files are already present.

Close all RO clients, delete dinput.dll and dinput.ini from your RO folder.

How to distinguish ROExt from other mouse freedom plugins (dinput.dll)
ROExt is very small (current version is 10k), in file properties you can see its version and copyright field is 'Ruri'.

Features description

1) Mouse freedom
ROExt implements complete DirectInput emulation for Ragnarok instead of hacking into it like other mouse freedom plugins do. This results in much better stability and performance.
Enabled by default, can be disabled by '-mf' command line option.

2) RO window size
ROExt can change Ragnarok window (in window mode) to any size you want, make it be always on top and remove the title so it has more useful space and can't be accidently dragged.


t - always on top.
l - lock the window and remove the title, by default maximizes window size to cover all screen except task bar.
X,Y - position of top-left window corner.
WIDTH,HEIGHT - size of the window.

Example, make window borderless and cover all screen except task bar:
C:\Games\Ragnarok\ragexe.exe -wl

Example, change window size to be 800x600 starting at left-top screen corner and make it always on top:
C:\Games\Ragnarok\ragexe.exe -wt0,0,800,600

3) Key remapping
Enabled/disabled by '-key' command line option, for classic (not Renewal) client only:
Break, F10-F12 work as F6-F9 of next skill set
Ctrl and Alt switch current skill set 1 and 2 forward when pressed and back when released
F12 moved to Shift+Esc
F10/F11 moved to Alt+Insert/Delete

Enabled/disabled by '-mb' command line option, requires mouse freedom:
Middle and two extended mouse buttons work as F3-F5 of next skill set when '-key' remapping is active and as F24-F22 otherwise.

Enabled/disabled by '-altf4' command line option:
Closing RO is moved from Alt+F4 to Alt+PrintScreen, so Alt+F4 can be used as regular key.

Work always:
Ctrl+W minimizes RO window.
ScrollLock is disabled and doesn't take screenshots (PrintScreen still does).

4) CPU usage reducing
There are two modes of CPU usage reducing:
a) Light - activated by turning on ScrollLock, affects all working clients simultaneously, only for Windows 2000/XP/2003.
b) Heavy - can be manually toggled on/off by Ctrl+S or automatically. Automatic mode (which is enabled/disabled by '-cpu' command line option) turns on when RO window is inactive.

5) Codepage override
Used codepage can be changed by -cpCODEPAGE command line option, -1 for no override.
Can be set to 65001 (UTF-8 Unicode), so all languages are supported at the same time.

C:\Games\Ragnarok\ragexe.exe -cp65001

Compatibility: ROExt doesn't modify any part or RO client (even in memory) so it should work with all clients, even with packed/protected.

All options defaults can be changed in dinput.ini file. Command line options inverse on/off switches and override numerical defaults.

For best multiclient performance it's recommended to set all background RO clients into Ctrl+S mode (or just enable automatic CPU usage reducing) and turn on ScrollLock.

How to specify command line options
Command line options can be specified in the 'Target' field of shortcut for Ragexe.exe. They will not work if you put them in shortcut for Ragnarok.exe.


Damn, I love this. It works so well, I can now even use WMP, MSN, 3 RO clients...and I don't have to end any Processes to keep my RAM free. xD  Nice!


Quote from: Anakha on Sep 23, 2008, 12:31 PM
Damn, I love this. It works so well, I can now even use WMP, MSN, 3 RO clients...and I don't have to end any Processes to keep my RAM free. xD  Nice!

xD anyway i'll download it and check it out....
but honestly i prefer not having mouse freedom x3


Thanks for sharing. :) This might come in handy.


disabling the re-mapping of keys wont work. someone help please. i don't want this because i dont find it useful to hold Alt and Ctrl then having to REACH for miles across my keyboard to hit the F keys, and the mouse clicking is not a feasable or efficient option.


You need to specify -nk as option in command line of ragexe.exe/sakexe.exe, not in the patcher's command line.


Quote from: Ruri on Oct 19, 2008, 05:11 AM
You need to specify -nk as option in command line of ragexe.exe/sakexe.exe, not in the patcher's command line.

thats part of my problem, i can't click ragexe.exe to run my game. all i get is error. theonly way to run ragnarok is through the shortcut / patcher.exe i made shortcuts for ragexe.exe etc but all i get is error trying to use both the shortcut and the exe itself. i need more specifics.


Usually patcher starts ragexe.exe/sakexe.exe with some options, without them it won't start. You can use ProcessExplorer to view these options when the game is running.


im at a completely loss for what your saying at this point. i will just remove it. it was nice while it lasted but the shortcut remapping is just unwanted for me. thanks


weh ...

cool. i might use it for my server. Im still using the old version of MouseFreedom for my client >.>



Very nice tweak! Just a suggestion if you plan to write the next version: key mapping really needs some customization method or selective removal (like -nk, but for each remap you put in). Maybe you could make it read off a text file so others can change it to their liking, or something. I kinda don't like any of the remaps except for the Ctrl + Alt hotkey switcher (cool + doesn't affect /bm).

For now I will use -nk. The mouse freedom + default resize is just too awesome to remove ;). I probably will give the CPU tweak a try, but I have a Laptop to multi-client slave chars anyway so it's not quite needed.


Major update. You can change default settings in ini file and inverse them from command line.

Main addition is full unicode (UTF-8) support hack for the client that allows using all languages at the same time and require no additional support from server. For it to work consistently all clients on server should use this hack (or they are going to see strange symbols instead of non-english letters).

UTF-8 works perfectly everywhere in game (chat, vending titles, log,...) but note that since non-english characters require longer internal encoding they use up text limits faster and can cause line breaks earlier.


Nice add-on.

Thanks. If you can, please post on how to directly enable/disable/edit step-by-step.

Thanks again.

QuoteWhatever floats your boat.


*Registered just to reply here xD*

Could you add settings for X, Y Position and Height, Weight to the ini too?
Quote from: exii on Jun 27, 2015, 06:07 AM
If you think casting quag is a good idea you or your guild heavily failed to create a viable guild rost.


Settings in ini file can be edited with any text editor (like notepad.exe). '= 0' means disabled and '= 1' means enabled. This and some short comments about each option you can read in the file itself. What you set in ini is considered default and used if you add nothing to rag/sakexe.exe command line. By adding command line options you can inverse your defaults and run several clients with different settings without re-editing ini each time.

I thought that X,Y,W,H are not very useful in ini: as default setting (that are in ini) you are probably going to use either full screen without taskbar or regular RO windows. If you want to precisely place each of several clients in their places - you need to specify different X,Y,W,H for each client and so have to use command line method.