Thursday, August 21, 2014

Titanfall higher framerate than your refresh rate

So firstly yes I know framerate != refresh rate... that's a deeper conversation that I'm not going to get into.

Special Thanks to: Kiwi-B3ar for originally discovering that running Titanfall on another monitor with a higher refresh rate (like a CRT) and dragging it over to another monitor it maintains the higher framerate, even after messing with the video settings... A second thank you to him, for discovering as well if you change your resolution, launch the game during the countdown timer if the video settings are okay, it will automatically reset, but Titanfall will still have those hertz value set (will make sense later).

So Respawn of course took a long time to get the unlocked framerates going, and not only that get the kinks worked out at running at a faster framerate. I'm also going to start off with a few warnings I've seen from some other blogs and of course the obvious.

Warnings and needs to know:.
  •  Mileage may vary, this method worked for me, doesn't mean it will work for you.
  • I bounced between a couple different methods while working on this solution, my methodology explained.
  •  Framerates higher than your refresh rate can cause abnormalities such as screen tearing. 
  •  Apparently in Titanfall there is a direct correlation between framerate and mouse sensitivity, this can drive a person insane if you are not careful
  • So if you want to maintain the higher framerates to avoid the mouse sensitivity changes lower your settings!
  • Titanfall still maxes at 144FPS
Why you would do this:
  • Some people find 60FPS is not high enough for responsive gameplay, especially for a fast game like Titanfall, or any mouse input game due to the accuracy of a mouse vs let's say a controller.
  • Bypass something because you can? You can't tell me what framerate to run the game at!

What you need for this tutorial: 
(once you read this you may take a different approach)

Let's get started:

  1. I'm going to go through how I did it on my system.
  2. Launch the NVIDIA Control Panel (Right click your desktop > NVIDIA Control Panel) (nvidia steps end at step#9, AMD users, Intel, or CRU users can skip to step#10)
  3. Under the "Display" section you should see "Change resolution"
  4. Once there, select the display that is your primary monitor (Titanfall defaults to this screen)
  5. Then Choose the "Customize..." button towards the bottom of the window (note if you clicked anything the button might disappear, just apply your changes and it should re-appear).
  6. A window should pop-up that will allow you to check a box for "Enable resolutions not exposed by the display" and then click "Create Custom Resolution..."
  7. Simply use your same resolution with your desired new framerate, since Titanfall maxes out at 144, I put 144.
  8. When you click "Test" if your monitor doesn't support that resolution it's either going to go black or do funky things, don't worry that's why we're here. It's going to have a pop-up more than likely you can't see asking if you can see it, counting down from I believe 15 seconds. Press the "Y" key for yes.. I believe "space" or "enter" will also work here.
  9. It will except the changes and go back to your standard resolution, Click "OK" and you should have a new custom resolution, this is needed so MultiRes doesn't flip out and tell you the inputs you are giving it are not supported.
  10. Now onto MultiRes, if you only have one monitor skip to step #16
  11. Let's determine what monitor your primary is, believe it or not it's not always listed as #1 in MultiRes.
  12. When you launch MultiRes your taskbar should get 3 little monitor icons, hovering over each one gives you information like their current resolution, and graphics card.
  13. You should notice each icon has a distinct number, if your monitors have different resolutions I'm sure you already figured out which one is your main.
  14. Click an icon, go up to refresh rate and you should see your new entry.
  15. Mine happen to be 1... remember what number it's going to be.
  16. Now the purpose of multires is so we can write a batch file that launches Titanfall making this a much smoother experience than having to drag it from a CRT or other monitor with higher refresh rates, or change to the custom resolution, launch titanfall blind, and wait for it to time out and load the old resolution.
  17. My Bat filestart /D "C:\Program Files (x86)\MultiRes\" MultiRes.exe /1:2560,1440,32,144 /exit
    start /D "E:\Program Files (x86)\Origin Games\Titanfall\" Titanfall.exe
    TIMEOUT /T 5
    :search
    tasklist|find "Titanfall.exe"
    IF %ERRORLEVEL% == 0 GOTO found
    TIMEOUT /T 5
    GOTO search
    :found
    start /D "C:\Program Files (x86)\MultiRes\" MultiRes.exe /restore /exit
  18. Now some explanation here, and where you might have to do some trial and error
  19. Line 1, my primary is 1 so I started with /1: .. you single monitor folks can just go right into the resolution like so /2560,1440,32,144 (2560 horizontal pixels, 1440 Vertical, 32 bit color, 144hz)
  20. I also think for your main monitor I could skip the 1:, but better safe than sorry.
  21. The timeouts may not be the same for everyone, so this is waiting 5 seconds before searching for the process as sometimes the process starts, but hasn't detected the HERTZ yet.
  22. That goes for the other 5 second timer, if it doesn't find Titanfall, we want it to wait before searching again so it has some time to load, computer specs can affect this, not to mention things like SSDs (I'm currently running Titanfall from a 10k WD Raptor drive)
  23. Please also note your install directories may be different, and this changes your batch file.
  24. Enjoy your higher framerate.

Discovery:

  • So after Kiwi dropped that knowledge on me about his CRT giving him a higher framerate for his IPS panel I had to get this to work. 
  • I didn't have a CRT so, I found CRU and had my second monitor which happened to be a HP2310 hooked to my GTX780 via DVI.
  • I added 120hz to the standard resolutions list, as well as the Detailed resolutions list, clicked OK and rebooted.
  • This gave me what I needed, set this Monitor as the main display launched titanfall, then dragged it over to my main screen... I told Kiwi this and he tried setting a custom res on his main monitor and launching the game and letting the countdown timer go back to his normal res/refreshrate and it worked while titanfall kept the higher framerate.
  • This is where I really got interested in getting a batch file to work, so I switched my focus to my main display... 2560x1440 Monoprice 27" IPS
  • Custom Resolution Utility didn't really get me what I wanted, no matter what I inputted into that software it would not even let me fake 120hz on this Monoprice monitor.
  • And tried using multires command line to change the res/refresh to something that wasn't listed, it would error out.
  • So I remembered people downsampling in Nvidia with custom resolution and knew I could set the HERTZ there so I did, and bam I started getting somewhere... 
  • So now I know multres has command line support so I went off to the races to get this to work, and eventually got the batch file you see in the tutorial step# 17
  • I also attempted several other ways to get a higher framerate, such as my autoexec.cfg fps_max max_fps com_maxfps(quake command, don't know why I would think it would work).
  • I even tried browsing the Titanfall VPK _dir files for some sort of solution using this tool .. which the answer might still be in there I just didn't find it.
  • I tried forcing a higher framerate with NVIDIA Inspector, by editing the driver
  • I tried using MSI Afterburner (basically a skinned/easier to use RivaTuner) and setting the framerate there.
  • Tried to see what I could find using Cheat Engine (basically process inspect tool) saw some commands going through and I think some stuff from an autoexect or my video settings, but didn't locate anything FPS... I didn't focus too hard on this aspect as the custom resolution method I had already discovered... Also this tool can be used for a lot more awesome things than cheating, and there may be better process inspectors I could have been using, but this is the one that I knew about for setting my FOV back in the MW2 days.... which will VAC ban you btw :-(
  • Opened Titanfall EXE in a hex editor... looked pretty encrypted especially with the digicert at the bottom. it did point to some dlls in the bin\x64_retail location launcher and tier0 so I'm poking around in there see some amusing things like c:/hl2/src/blah.cpp ignore asset debugger... 
  • and a bunch of other things I'm currently still going through DLLs and EXE's for a hint...
  • This is a good enough way to launch the game as any.





random sidenote -novid shaves about 9 seconds (in my non-scientific study of running with and without using a stopwatch) from game launch to clicking items in the menu, but for some reason it feels longer because you are still waiting about 20 seconds just to get to the menu, which I guess is better than 30. I leave the videos on, as the sound let's me know what's about to happen. also 20-30 seconds for with(out) videos you could probably get away with waiting longer than 5 seconds searching for the titanfall process

EDIT1: If you are having trouble setting custom resolutions check out downsampling guides
EDIT2: From the Reddit thread, looks like https://www.youtube.com/watch?v=UYnZRNuasd4 was discovered beforehand, but I wanted to have a batch process before posting this blog. Anyway giving credit where credit is due.

EDIT3: Apparently easier method Source
1. Turn on Vsync in the game.
2. Force Vsync off in the drivers aka Nvidia control panel 3D application settings
3. If desired, use something like Nvidia Inspector and set a max framerate.

For me I was able to max fps 120, played a game on Haven and it seemed to work out pretty good. The input lag was certainly better than it being stuck at 60, but I don't know if it was quite as gone as with the above method. It does feel pretty good, I'm going to use it for a while and see how it goes.  (all of this may be for nothing as I did order that new Asus RoG swift Gsync monitor PG278Q.. but it's in high demand so it might be a while before I see it so I'll stick with these methods.

Thursday, July 24, 2014

My Chamberlain Ingernet Gateway power dilemma

Really this is just a post to hopefully help some poor soul who likes to google things rather than call tech support Like I had to end up doing. By the way chamberlain doesn't sell the part seperately, the device didn't have any indication of what voltage or amperage it runs at. Luckily the tech support was able to look at one in person and read the DC information for me. I also opened it up looking for different numbers and various things to see anything that would lead me to the proper volts an amps. No avail anyway here are a bunch of numbers from the PCB, and outside casing.


 

chamberlain internet gateway powercord

CIGBU/C

patent: 7,071,850 7,561,075
FCC ID: HBW7549
IC: 2666A-7549

132B2768-3

014D1205 RevE


Barcode
00000014650

132A2589-1

 Oh yeah maybe why you're here.

DC 3.7V 0.3A
Adaptaplug size 'B'


Wednesday, June 11, 2014

The Tale of Keyboard Mouse adapters for Consoles

First of all this isn't going to be a history lesson, because if it was, I would have to talk about XFrag 360 from Team Xecuter which didn't allow you to rebind most of the controls (might have in the second revision). Or the Smartjoy for the PS2/OriginalXbox. Nah I'm trying to be a little more modern here. So I decided to make a quick little doc about some of the devices and upcoming device the Xim4. I'm really looking forward to the Xim4 and it's support for the headset while using the Xbone controller. Yes there are workarounds using a second controller logged into a Live guest account, or just using Kinect. But I like my all in one solutions. And the xim settings from a phone is just genius, no need to make their build $50 more expensive to add a screen and a clugey interface. Don't get me wrong I love my XIM3, just I'm looking forward to the future. If you didn't catch the link above here is the comparison chart of the {XIM3(discontinued) XIM Edge(discontinued) XIM4(not released yet) CronusMAX iOGear Keymander PS3 Eagle Eye Penguin United Eagle Eye FragFx PS3 & 360 Variant (two models)}

EDIT: updated the google doc link, and the XIM4 was great, now onto testing XIM Apex

Wednesday, March 13, 2013

Well Google Reader appears to be going away :-(

Reading the news on Google Reader, something I tend to do multiple times a day whether I am on my phone, at work, or on my personal computer. Well straight from Google's official blog http://googleblog.blogspot.com/2013/03/a-second-spring-of-cleaning.html it's going away July 1st 2013. Any alternatives that appear to be worth looking at, well their pages are down at the time of writing this. For example Tiny Tiny RSS http://tt-rss.org/ So I went ahead and signed a petition, because I figured why not https://www.change.org/petitions/google-keep-google-reader-running . Reddit of course has picked up the story as they always too, and it appears many are just as concerned regarding it's departure http://i.imgur.com/kzzvGSk.jpg Well Google maybe I'll go out and find something better, but just something about what you had just worked and I appreciated that.

Sunday, April 22, 2012

Doing Well

I'm doing well and quite proud of my Battlefield 3 post, actually checking the stats on that today. A bit of spike of interest a couple days ago, now considering there is software that does all the hard work to shame, it is surprising to still see it linked to in forums. Anyway just posting to post really. Other not pre-ordered tickets for the Avengers, hopefully it will not be a disappointment

Wednesday, January 18, 2012

Sunday, December 18, 2011

Battlefield 3 Key Binding issue fix, specifically the jet.

UPDATE: http://bf3.realmware.co.uk/settings-editor/downloads since update 2.3 released on January 5th it pretty much does everything now.

First of all I have to thank 2 specific blog entries as they were very helpful
http://expfist.blogspot.com/2011/10/battlefield-3-key-bindings-issue-fix.html
http://www.tumblr.com/tagged/q+spotting
In fact the second was nice benefit as I use ‘E’ to spot and ‘Q’ is how I enter/exit vehicles. The key binding issue in Battlefield 3 comes down to they didn’t necessarily hard code the controls, they just didn’t have the rebind function, do all the commands it should. You can clearly see this in the ‘q’ spotting article. Now the reason I had to write this key binding article the jets. So when I bind a key to decelerate other than ‘s’ you will see that ‘s’ will still decelerate, even if it’s bound to something else. I use a variation of an old quake config that I can’t play first person shooters any other way. [Space=forward, a=backwards, s=strafe left, d=strafe right]. So for me ‘s’ is going to be yaw left which it did, however it would also decelerate. And if I set ‘A’ to throttle down, it did nothing, unless you were in SU-39 Frogfoot which if you were in third person you can see the air brakes deployed. Yet in first person you can clearly see they are not slowing you down with your speed on the

GstKeyBinding.jet.ConceptBrake.0.axis 0
GstKeyBinding.jet.ConceptBrake.0.button 30
GstKeyBinding.jet.ConceptBrake.0.negate 0
GstKeyBinding.jet.ConceptBrake.0.type 0
^this is the only thing the keybinding from the gui does.
This is your throttle up
GstKeyBinding.jet.ConceptMoveFB.1.axis 0
GstKeyBinding.jet.ConceptMoveFB.1.button 57
GstKeyBinding.jet.ConceptMoveFB.1.negate 0
GstKeyBinding.jet.ConceptMoveFB.1.type 0
When binding the throttle down BF3 needs to be patched so it actually binds the following, which You can add into the config.
GstKeyBinding.jet.ConceptMoveFB.2.axis 0
GstKeyBinding.jet.ConceptMoveFB.2.button 30
GstKeyBinding.jet.ConceptMoveFB.2.negate 1
GstKeyBinding.jet.ConceptMoveFB.2.type 0
^this is the throttle down that will actually help.
Cool so I did all this and I should be good to go, ‘A’ will not decelerate, but ‘S’ is still slowing me down as well. That brings me to my next discovery that “GstKeyBinding.gunner” keys actually affect the jet.
So I needed to do the following
GstKeyBinding.gunner.ConceptMoveFB.2.axis 0
GstKeyBinding.gunner.ConceptMoveFB.2.button 30
GstKeyBinding.gunner.ConceptMoveFB.2.negate 1
GstKeyBinding.gunner.ConceptMoveFB.2.type 0
I didn’t have to bother rebinding the rest of the gunner as far as I know, I have not had it break anything.

That’s My story, now like the blog entry above that talks about config fixes I am going to explanation to how BF3 config actually works.

GstKeyBinding.gunner.ConceptMoveFB.2.axis 0
GstKeyBinding.gunner.ConceptMoveFB.2.button 30
GstKeyBinding.gunner.ConceptMoveFB.2.negate 1
GstKeyBinding.gunner.ConceptMoveFB.2.type 0

So let us break this down.
GstKeyBindng = letting the game know this is a key binding
Gunner/vehicle/jet/infantry/etc. = This lets the game know what instance to use this binding in
ConceptMoveFB = This lets the game know what kind of binding it is (side note: FB, most likely stands for forward Back)
2 = it’s the 3rd (because the count starts at 0) key that is bound to do this action
Axis/button/negate/type: a little more explanation needs to go here.
Axis = This is where I am not at a full understanding, this is more for editing mouse movements, joysticks, and controllers. Since this article is focused on keyboard/mouse, axis 0 should suffice.
Button = they key, or joystick button that the action is bound to i.e. 30 on the keyboard is ‘a’
Negate = for FB 0 is forward because it’s not negated, and if its negated with ‘1’ its backwards. And for LR(left right) or YAW, 0 is right, and left is 1.

The keyboard buttons, it starts at tilde which is ‘1’ which 2 is ‘1’ also based on full keyboard.
And it counts from there, however it doesn’t appear to count all the keys in order either.
So I do some work to figure out the keys

Actual Key Button #
`[tilde] 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
0 11
- 12
= 13
[backspace] 14
[tab] 15
q 16
w 17
e 18
r 19
t 20
y 21
u 22
i 23
o 24
p 25
[ 26
] 27
[enter] 28
[left control] 29
a 30
s 31
d 32
f 33
g 34
h 35
j 36
k 37
l 38
; 39
[left Shift] 42
\ 43
z 44
x 45
c 46
v 47
b 48
n 49
m 50
, 51
. 52
/ 53
[right shift] 54
NUM* 55
[left alt] 56
[space] 57
[caps lock] 58
F1 59
F2 60
F3 61
F4 62
F5 63
F6 64
F7 65
F8 66
F9 67
F10 68
NULOCK 69
NUM7 71
NUM8 72
NUM9 73
NUM- 74
NUM4 75
NUM5 76
NUM6 77
NUM+ 78
NUM1 79
NUM2 80
NUM3 81
NUM0 82
NUMDEL 83
F11 87
F12 88
NUMENTER 156
[right control] 157
NUM/ 181
[right alt] 184
HOME 199
[up arrow] 200
PAGEUP 201
[left arrow] 203
[right arrow] 205
END 207
[down arrow] 208
PAGEDOWN 209
INS 210
DEL 211
[left windows] 219
[right windows] 220
[application key] 221
[unbound] 255