Duke4.net Forums: bMouse 0.5 released - Duke4.net Forums

Jump to content

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

bMouse 0.5 released  "Mouse driver that fixes the terrible mouselook on DOS Build games"

User is offline   SwissCm 

#1

Update: bMouse 0.6 released
Grab it at the downloads section here

You may have noticed that when playing with mouselook with the original Blood, Redneck Rampage, Shadow Warrior or Duke3D executables it feels awful. This is because of some crappy filtering code that is implemented on all of them that stops both axes from being updated at the same time, giving preference to the one with the most velocity.

Using 3D Realm's external controller driver code as a base I put together a mouse driver that doesn't have that filtering and supports the above mentioned games. If anyone knows of any more games that use 3D Realms external driver hook message me so I can support it please!

I've tested it only using DOSBox, however there shouldn't be a reason why it wouldn't work under a normal DOS environment.

I released v0.4 a while ago but it was pretty broken since it wouldn't parse command line parameters through the the game executable. Now it does and as a bonus supports a bunch more games. You can now have the fixed mouselook in multiplayer!

--------------------------------------------------------------
bMouse - Fixed mouse driver for (some) Build Engine games v0.6
External driver code Written by Mark Dochtermann
Modified by SwissCM
--------------------------------------------------------------

-------
History
-------

Here is some code that is most likely in the Blood, Duke3D,
Shadow Warrior and Redneck Rampage Source:

   if (abs(control.axes[0])>abs(control.axes[1])
)
	  control.axes[1]/=3;
   else
	  control.axes[0]/=3;
	  
What does that do? Why, it makes mouselook shitty! It essentially stops
both axes from being updated at the same time, giving preference to
the axis with the most movement.

Why they did this I have no idea, but it was actually incredibly simple
to fix. Most later Build games have an option to use an external device
for game controls. It was mainly designed in mind for use with headsets
and more complicated game controllers, but theoretically it could be
used with any traditional input.

Luckily, right on the 3D Realms website lay a zip containg sample code.
Maybe I could use this as a base to create a new mouse driver for Blood.
After some messing about installing an old compiler in DOSBox I set
about looking at the code to see if it was possible to do so using my
pathetically inept coding skills.

Turns out the code used a mouse as a sample device! Score! I quickly
compiled the binary to test it out only to find the exact same problem.
This got me worried, since if the same problem occurs using the external
driver it may be an internal problem, much harder to fix. Nonetheless I
looked into the source code.

I found the offending code above. All someone needed to do all along was
comment this code out and compile and mouselook is instantly far more
usable!

--------
Features
--------

- Supports Redneck Rampage, Blood, Shadow Warrior and Duke Nukem 3D
- Fixes shitty mouse filtering
- Correctly maps all controls from default CFG file
- Independently configurable axis sensitivity
- Makes better sandwiches than eduke32 along with muffins

--------------------------
Changes since last release
--------------------------

- Removed debugging information
- Removed the prompt before game launch.

--------------
How to Install
--------------

There are two ways of running bMouse...

From Setup:
1. Unzip this archive into the directory where you have installed Blood
2. Run "SETUP.EXE"
3. Go to Controller Setup->Choose Controller Type and select "Keyboard
and External"
4. Go to Setup External and change the program name to "BMOUSE.EXE"
5. Then Save and Launch Blood through "SETUP.EXE"

From a Command Prompt/Batch File:
1. Unzip this archive into your game directory
2. Go to your game directory via command prompt and type the following
   (without commas):
   
  BMOUSE.EXE LAUNCH "GAME.EXE"

  Replace GAME.EXE with the game you are using eg. BLOOD.EXE

----------------
How to Configure
----------------

You cannot configure most mouse options ingame, but you can do it in
SETUP.EXE.

For Button Mappings go to:
Controller Setup->Setup Mouse
NOTE: Sensitivity and inversion options in this menu do not do anything.

For mouse sensitivity options go to:
"Controller Setup->Setup Advanced Control Options->Advanced Mouse Setup"
Here you can change the Sensitivity per Axis by going to "Mouse X Axis
Scale" and "Mouse Y Axis Scale". Configure to your liking and ignore
the rest of the options.

The in-game Y-Axis inversion toggle works just fine, though it
doesn't save. As a more permanent solution you can set the "Mouse Y
Axis Scale" to negative vales for inverted look.

Note that bMouse uses only the game's default CFG files for control
mapping information.

------
Issues
------

Mouselook still isn't perfect due to engine limitations. Vertical Look
has a rather low resolution and can feel pretty jerky in Blood and Duke3D
and moving the mouse at slow velocity can make vertical mouselook not
register. At higher sensitivities this is less noticable.

I have only tested this using DOSBox, though I don't see why it wouldn't
work in a non-emulated enviroment.

----------------
Future Additions
----------------

Fixing the above mentioned vertical mouselook not registrating at low
velocities is a priority but will be difficult to fix.

--------------
Special Thanks
--------------

JonoF, Plagman, TerminX and all my other friends at #eduke32!


This post has been edited by SwissCm: 22 April 2010 - 11:07 PM

0

User is offline   ReaperMan 

#2

Thanks, now i don't have to play Blood with shitty mouse control. :P
0

User is online   Danukem 

  • Duke Plus Developer

#3

Yeah, that's awesome. This was my main complaint about playing Blood with DOSBox.
0

User is offline   supergoofy 

#4

The external exe through setup it doesn't work. Tested on Blood. (I don't know if I did something wrong, but I had bmouse.exe in both root and blood folders).

The other way though ( BMOUSE.EXE LAUNCH BLOOD.EXE or BMOUSE.EXE LAUNCH CRYPTIC.EXE ) works ok. Very nice job :P

Is there a way to remove the question if I want to continue or not, when loading blood.exe through bmouse.exe. It's a little annoying. :D

Overall, amazing job. :D


[edit]
Redneck Rampage
Redneck Rides Again
Redneck Deer Huntin

All of the above work with the BMOUSE.EXE LAUNCH "GAME.EXE" method. It's really cool.

All tests done in DOSBOX.

This post has been edited by supergoofy: 22 April 2010 - 09:31 AM

0

User is offline   repzor 

#5

PLEASE make a x64 version too. :P

This post has been edited by repzor: 22 April 2010 - 10:13 AM

0

User is offline   supergoofy 

#6

Why? There is no point. Blood exe (and the other build games) can only run in 32-bit OS.

16-bit apps (like dos exe) cannot run under 64-bit OS.

If you have a system that can run 64-bit Win7, then you should have the cpu power to fully run Blood (and the other build games) under DOSBox.


I think I prefer the BMOUSE.EXE LAUNCH "GAME.EXE" method. But, SwissCm, please remove the question "if you want to continue press any key or ESC to exit".

The conclusion is that bMouse is working great and SwissCm has done an amazing job. Thanks.

This post has been edited by supergoofy: 22 April 2010 - 10:47 AM

0

User is offline   dumbguy 

#7

Thanks man! Now only if we could stop the buildings from "shifting". But I think that's an engine problem.
0

User is offline   supergoofy 

#8

I would suggest to use NOLFB.COM before running BLOOD.EXE
0

User is offline   SwissCm 

#9

supergoofy said:

I think I prefer the BMOUSE.EXE LAUNCH "GAME.EXE" method. But, SwissCm, please remove the question "if you want to continue press any key or ESC to exit".

It looks a bit rough with all the debug crap too. I'll have that cleaned up on next release.

Quote

The external exe through setup it doesn't work. Tested on Blood. (I don't know if I did something wrong, but I had bmouse.exe in both root and blood folders).

Perhaps you forgot to change the external exe option in Setup? Works fine here.
0

User is offline   supergoofy 

#10

Maybe because I run the game normally through blood.exe

Probably the external exe method works if that game starts through setup.exe. Am I right?
0

User is offline   SwissCm 

#11

bMouse 0.6 released. Gets rid of debug info and the like. Grab it from my awesome website

View Postsupergoofy, on Apr 23 2010, 04:41 PM, said:

Probably the external exe method works if that game starts through setup.exe. Am I right?

Yup.
0

User is offline   The Commander 

  • I used to be a Brown Fuzzy Fruit, but I've changed bro...

#12

View PostSwissCm, on Apr 23 2010, 07:06 PM, said:

Grab it from my awesome website

GeoCities much? :P
0

User is offline   supergoofy 

#13

With bmouse 0.6 I have crashes. Redneck Rides Again crashes. Wtf? With bmouse 0.5 it worked ok.
0

User is offline   SwissCm 

#14

View Postsupergoofy, on Apr 23 2010, 07:25 PM, said:

With bmouse 0.6 I have crashes. Redneck Rides Again crashes. Wtf? With bmouse 0.5 it worked ok.

Try downloading it again, I may have packaged the wrong executable.
0

User is offline   repzor 

#15

View Postsupergoofy, on Apr 22 2010, 11:29 AM, said:

Why? There is no point. Blood exe (and the other build games) can only run in 32-bit OS.

16-bit apps (like dos exe) cannot run under 64-bit OS.



I run eduke32 @ Windows 7 x64 just fine. Where exactly do i have to paste the files? "dukeplus" or main folder? ("Duke Nukem eterity" in my case)

This post has been edited by repzor: 23 April 2010 - 02:07 AM

0

User is offline   SwissCm 

#16

View Postrepzor, on Apr 23 2010, 07:59 PM, said:

I run eduke32 @ Windows 7 x64 just fine.

DOS is unsupported on x64 Windows. You have to use DOSBox to play Blood.
0

User is offline   repzor 

#17

View PostSwissCm, on Apr 23 2010, 03:03 AM, said:

DOS is unsupported on x64 Windows. You have to use DOSBox to play Blood.


That was a fast reply.

Well im not familiar with the dos box anymore (since win2000) See if i get this together.
0

User is offline   SwissCm 

#18

View Postrepzor, on Apr 23 2010, 08:10 PM, said:

That was a fast reply.

Well im not familiar with the dos box anymore (since win2000) See if i get this together.

DOSBox is a program. The command prompt in Windows 7 isn't DOS.
0

User is offline   repzor 

#19

Posted Image

What did i do wrong?
0

User is offline   SwissCm 

#20

View Postrepzor, on Apr 23 2010, 08:38 PM, said:

Posted Image

What did i do wrong?

bMouse is for the DOS versions of the games. eduke32 fixes the mouse issue.
0

User is offline   repzor 

#21

View PostSwissCm, on Apr 23 2010, 03:49 AM, said:

bMouse is for the DOS versions of the games. eduke32 fixes the mouse issue.


But the mouse doesn't feel right. Sure x and y have to be set, but still it does feel like i don't have 1:1 cursor movement. Tried Dpi 800,1400, 2200 other values on my mouse. Its all the same. Feels like 200 Dpi. Never ever had such thing in my games. (also in Doomsday or risen3d the mouse always felt perfect)
0

User is offline   supergoofy 

#22

EDuke32 is a native Windows application, it doesn't need (and doesn't work) with bMouse.

TX said that he reworked the mouse code in EDuke32, he just hasn't committed the changes (yet) to the SVN repository. Be patient.
0

User is offline   repzor 

#23

Ok Thanks for the answers.
0

User is offline   Skulldog 

#24

Makes Mouselook work very well Now. Only one thing. I have to turn on invert mouse aim in game options everytime I run it.

Never Mind. I just saw it in the readme text:

The in-game Y-Axis inversion toggle works just fine, though it
doesn't save. As a more permanent solution you can set the "Mouse Y
Axis Scale" to negative vales for inverted look.

This post has been edited by Skulldog: 24 April 2010 - 07:38 PM

0

User is offline   Gambini 

#25

Quote

src\blood.cpp(1551): invalid argument -control

returned from blood.exe


:P

Happens either setting bmouse.exe as external control or launching bmouse.exe launch ¨blood.exe¨

How i can fix this?
0

User is offline   Skulldog 

#26

Try, BMOUSE.exe Launch Blood.exe without the Quotes.
0

User is offline   supergoofy 

#27

and you can still use command line options, for example:

BMOUSE LAUNCH BLOOD.exe -nodemo -nocd

This post has been edited by supergoofy: 07 May 2010 - 12:21 AM

0

User is offline   Skulldog 

#28

Swisscm, Does BMOUSE.exe code use a /w ? The reason I ask, is that when you use Bmouse with Shadow Warrior. It Work fine
with SW.exe, WD.exe, but when used with the tc addons like WangBang Heaven, which are made with swgroup program. It invokes
the /w command on WBH.COM file. Its fine for Multiplayer games BMOUSE.EXE LAUNCH WBH.COM.
Using Dosbox btw.
WangBang Heaven without Bmouse

Special Startup menu - WBH.com (Brings up a Dos launch menu.)
Single player - WBH.com /x (Skips Menu and goes right to game.)
Multiplayer - WBH.com /w (Skips menu and goes right to sub dos multiplayer menu )

With BMouse it Always goes to sub dos Multiplayer menu even with BMouse.exe Launch WBH.com /x.

Can this be fixed? Or maybe it's something that Swgroup com files are prone to fail with Bmouse.

This post has been edited by Skulldog: 01 June 2010 - 10:29 AM

0

User is offline   SwissCm 

#29

View PostSkulldog, on Jun 2 2010, 04:28 AM, said:

Swisscm, Does BMOUSE.exe code use a /w ? The reason I ask, is that when you use Bmouse with Shadow Warrior. It Work fine
with SW.exe, WD.exe, but when used with the tc addons like WangBang Heaven, which are made with swgroup program. It invokes
the /w command on WBH.COM file. Its fine for Multiplayer games BMOUSE.EXE LAUNCH WBH.COM.
Using Dosbox btw.
WangBang Heaven without Bmouse

Special Startup menu - WBH.com (Brings up a Dos launch menu.)
Single player - WBH.com /x (Skips Menu and goes right to game.)
Multiplayer - WBH.com /w (Skips menu and goes right to sub dos multiplayer menu )

With BMouse it Always goes to sub dos Multiplayer menu even with BMouse.exe Launch WBH.com /x.

Can this be fixed? Or maybe it's something that Swgroup com files are prone to fail with Bmouse.

bMouse hasn't really been tested with mod/TC launchers and I don't plan on adding any additional support for launchers in general due to the difficulty of doing so. It's lucky that it runs some launchers in the first place since theres no code in the program that explicitly supports them. Instead I recommend unpacking the contents of the TC into a seperate directory, merging them with the appropriate game files and launching with the original game executable.
0

User is offline   Skulldog 

#30

Thanks, I will do that.
0

Share this topic:


  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options