elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.16k stars 83 forks source link

Dear elishacloud, kindly ask for your help with the mouse input issue in Operation Flashpoint 1.96 #280

Open NATO2000 opened 10 months ago

NATO2000 commented 10 months ago

@elishacloud Hello, it's been more than a year since we last contacted.

The D3DX tool you invented is amazing, used by a lot of people, and they all know your name

Thank you very much for your outstanding contribution to OFP

There are still some unresolved issues, can you find a way to add frame limit in D3DX?

Because the use of external software or RTSS for frame limiting, it will increase the game input lag and increase the threshold for some players

The game self-limits frames to achieve the lowest input latency. https://github.com/crosire/d3d8to9/issues/142

The second question, remember I once reported to you, there are some deadzone problems in OFP's mouse operation and aiming

By using the D3DX components you invented, turning off vsync, using a high-performance gaming mouse, and lowering the DPI to less than 200, you can significantly reduce the huge negative impact of deadzone, but the source of the problem has not been eliminated, and OFP still cannot achieve accurate mouse aiming and reaction speed like CS:GO.

I believe I consulted your posted input8 .dll, but it doesn't seem helpful for OFP

Let me describe the mouse features of OFP in detail:

The game engine seems to have a jumping phenomenon when processing mouse movements. A normal crosshair is a continuous tracking of movement

The mouse of OFP is normal when dragged at high speed, but when aiming accurately at low speed, it starts to freeze

If the CS:GO gaming mouse trajectory is a line (————————————————————————————) Then the OFP gaming mouse trajectory is more like (▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ )

Hope you will be interested in solving this problem

elishacloud commented 1 week ago

It is frustrating because despite the stuttering problem, it is so close to perfection for Chaos Theory as well now.

Yes, I feel the same way. I will have to test out these games myself and see if I can figure it out. Right now I just have my old laptop.

However, I had one last possible change. I doubt this will help but just in case. This basically also updates the timestamp and sequence number when merging the buffer entries: dxwrapper.zip

NATO2000 commented 1 week ago

@NATO2000,

d3d8.dll (modified d3d8tod9)

What exactly is modified on d3d8to9? I have that module included in dxwrapper so if you could use the dxwrapper version it could simplify this.

The keybind issue stems from dinput8.dll. When placed in the root directory, dinput8.dll leads to key interference and malfunction. The previous Dxwrapper.zip you provided did not include dinput8.dll, thus avoiding this issue.

You don't need to use the dinput8.dll as a stub. Dxwrapper only needs a single stub. If you are already using d3d8.dll as a stub then you don't need dinput8.dll.

Due to a conflict between the provided dxwrapper.dll + d3d8.dll and the original D3DX's d3d8.dll (modified d3d8tod9), further testing is hindered.

How about if you use d3d9.dll as the stub to load dxwrapper? d3d8to9 loads the local version of d3d9.dll, so you don't need to use d3d8.dll as a stub.

Proposal for D3DX Integration

The d3dx tool is a copy dxwrapper. Did I put custom code in there? I think you can just replace all the functionality with dxwrapper instead. The current version is newer. Just set the same options in dxwrapper.ini that you had set in d3dx.ini.

@NATO2000,

d3d8.dll (modified d3d8tod9)

What exactly is modified on d3d8to9? I have that module included in dxwrapper so if you could use the dxwrapper version it could simplify this.

The keybind issue stems from dinput8.dll. When placed in the root directory, dinput8.dll leads to key interference and malfunction. The previous Dxwrapper.zip you provided did not include dinput8.dll, thus avoiding this issue.

You don't need to use the dinput8.dll as a stub. Dxwrapper only needs a single stub. If you are already using d3d8.dll as a stub then you don't need dinput8.dll.

Due to a conflict between the provided dxwrapper.dll + d3d8.dll and the original D3DX's d3d8.dll (modified d3d8tod9), further testing is hindered.

How about if you use d3d9.dll as the stub to load dxwrapper? d3d8to9 loads the local version of d3d9.dll, so you don't need to use d3d8.dll as a stub.

Proposal for D3DX Integration

The d3dx tool is a copy dxwrapper. Did I put custom code in there? I think you can just replace all the functionality with dxwrapper instead. The current version is newer. Just set the same options in dxwrapper.ini that you had set in d3dx.ini.

https://github.com/crosire/d3d8to9/issues/142 QQ截图20240626215613

You may have forgotten. You provided a solution in the previous link. In 2005, an OFP game player created “DXDLL component ”for Flashpoint Operations.

This component uses the d3d8.dll file to customize visual effects and fix black and white night vision. Since the core file of DXDLL is d3d8.dll, and the core files of D3D8ToD9 and your dxwarpper are also d3d8.dll, in order to make the two DLLs work together, you modified one of the two d3d8.dll files in DXDLL and D8toD9, renamed it to D3DX.dll, and used d3dx.ini to replace Dxwrapper.ini.

Now the d3d8.dll in the Dxwrapper.zip you released to fix mouse deadzone needs to be "chained" with the d3d8.dll in DXDLL again according to the original scheme.

That's the situation

Joshhhuaaa commented 1 week ago

It is frustrating because despite the stuttering problem, it is so close to perfection for Chaos Theory as well now.

Yes, I feel the same way. I will have to test out these games myself and see if I can figure it out. Right now I just have my old laptop.

However, I had one last possible change. I doubt this will help but just in case. This basically also updates the timestamp and sequence number when merging the buffer entries: dxwrapper.zip

@elishacloud Yeah, unfortunately that didn't do the trick.

If you ever get the chance to test the games in the future, I have enhanced releases that you can use for testing:

Enhanced SCCT Versus - 30 FPS is commonly used in Chaos Theory due to 60 FPS causing issues so its higher priority. Also, most people care about this game getting fixed before Double Agent, it has more players. We do use dgVoodoo2 for this particular game to fix lighting and dsound.dll for EAX support, but I don't believe they are conflicting with the mouse.

Enhanced SCDA Online - Double Agent also has a stuttering issue at 30 FPS but most people play at 60 FPS anyways. Enhanced SCDA comes with a dinput8.dll stub for ASI patch currently, so make sure to use d3d9.dll for dxwrapper.

The games aren't particular demanding obviously being almost 20 years old, but I think you will need a 1000Hz+ polling mouse to be able to troubleshoot the issue yourself. 1000Hz doesn't have the issue too severely but if you move your mouse around for about 30 seconds or so, you'll begin noticing them. 8000Hz makes it very noticeable, almost every 5 seconds.

Thanks for the help, hopefully we'll figure it out sometime.

elishacloud commented 1 week ago

I am going to move this issue to dxwrapper, since it is related to that project.

elishacloud commented 1 week ago

This issue is now under dxwrapper.

elishacloud commented 6 days ago

@NATO2000, I went through the ticket and memory lane. I see the confusion. The d3dx.dll is just a renamed version of dxwrapper.dll and d3dx.ini is just a renamed version of dxwrapper.ini.

Here is what I suggest:

  1. Delete dxwrapper and dinput8.dll from the package (at least the dinput8.dll stub that came with dxwrapper you can use a different dinput8 if you like)
  2. Take note of all the settings in the d3dx.dll file (especially the WrapperMode = d3d8.dll setting, that needs to be set or the game won't even work).
  3. Replace the d3dx files (dll and ini) with the dxwrapper files, renaming both dxwrapper files to d3dx.
  4. In the new d3dx.ini set all the setings that you noted in step 2. You can also set other settings, like the FixHighFrequencyMouse or the MouseMovementPadding.

This will allow the new dxwrapper to replace the old d3dx files. This should give you all the functionality of the old d3dx but with the new functionality of the new dxwrapper.

Here is the latest dxwrapper fo you to use. I pre-enabled some of the settings for you: dxwrapper.zip

elishacloud commented 6 days ago

@Joshhhuaaa, I do have the GOG version of Splinter Cell. Can the same issue be repeated on this version?

I also tried downloading Enhanced SCCT Versus but the mouse is so choppy it is unplayable for me. Even in the starting menus the mouse just jumps around and it is hard to even get it over the right button to press. I tried forcing vsync to be off I tried using d3d8to9 instead of dgVoodoo2 I tried a few other things. I'm not sure if my laptop is too slow or if something else is happening.

Joshhhuaaa commented 6 days ago

@Joshhhuaaa, I do have the GOG version of Splinter Cell. Can the same issue be repeated on this version?

I also tried downloading Enhanced SCCT Versus but the mouse is so choppy it is unplayable for me. Even in the starting menus the mouse just jumps around and it is hard to even get it over the right button to press. I tried forcing vsync to be off I tried using d3d8to9 instead of dgVoodoo2 I tried a few other things. I'm not sure if my laptop is too slow or if something else is happening.

@elishacloud I just gave it a shot, and yeah, it is possible on the original Splinter Cell at 30 FPS with 1000 polling or higher. Splinter Cell 1 has a 200 FPS engine cap, so issues might not be noticeable when playing at that high of a framerate. To really expose the problem, just be sure to cap the FPS at 30.

The GOG version should come with 3 DLC missions at the bottom of the levels tab (already unlocked on new profiles), you probably want to load into Kola Cell so you can test immediately with no cutscenes/training mission forces you through some stuff before having control of your character. You can press "E" to draw your weapon which might make it easier to notice than third person. I would recommend lowering the in-game mouse sensitivity a bit as well just so you can flick your mouse easier to notice the stutter without the game doing constant spinning.


Edit: After testing some more, it seems the mouse stutters more often when I have keys pressed down, like holding W and A keys down for forward strafing while moving the mouse. Even a single key held down seems to do the trick as well, it can just be A or D without W. This seems to cause it to overload more easily.

elishacloud commented 6 days ago

it is possible on the original Splinter Cell at 30 FPS with 1000 polling or higher. Splinter Cell 1 has a 200 FPS engine cap

How do I set the game to 30 FPS? I don't see any options for that in the game's menu.

Edit: After testing some more, it seems the mouse stutters more often when I have keys pressed down, like holding W and A keys down for forward strafing while moving the mouse. Even a single key held down seems to do the trick as well, it can just be A or D without W. This seems to cause it to overload more easily.

Ok, that is interesting. DirectInput uses a sequential method to keep track of the key press order. I merged the mouse movement records and basically ignored the sequence number. However, the game may take advantage of the sequence number and when it sees things out of sequence then it drops the records or it is not able to handle it.

I made an update to try keep the sequence order. This will only merge records that have consecutive sequences.

Note: with this you may want/need to set the MouseMovementPadding to some number. One of the games I tested with drops inputs that are only an increment of 1. When the mouse has higher frequency then the chances the mouse movement is only 1 is much higher. By setting the padding we can ensure that the game always accepts the movement.

Here is the new build: dxwrapper.zip

elishacloud commented 6 days ago

Ok, I forced Splinter Cell to 30 FPS using the Nvidia control panel. I am using dxwrapper's built-in d3d8to9 feature and setting FixHighFrequencyMouse to 1 and MouseMovementPadding to 1. I am not seeing any issues on my laptop with the latest build.

Edit: I tried with 6400Hz mouse.

Joshhhuaaa commented 6 days ago

Your latest build somehow really slowed down the Y-axis movement on Enhanced SCCT Versus, it's basically unusable on that game. I didn't experience that issue on Splinter Cell 1 but the stuttering does happen still.

How do I set the game to 30 FPS? I don't see any options for that in the game's menu.

The game doesn't have a built-in FPS cap option, I was using Nvidia Control Panel as well.

Edit: I tried with 6400Hz mouse.

I've never heard of a 6400Hz polling rate mouse, are you talking about DPI? That shouldn't matter as far as I know, but I use 1600 DPI. I had a few friends with 1000Hz mice also experience the stutter just to be sure it wasn't related to my system/mouse.

2000/4000/8000Hz polling mice are still relatively new. 1000Hz mice have existed for awhile now and is good enough to test for the issue though.

elishacloud commented 6 days ago

Your latest build somehow really slowed down the Y-axis movement on Enhanced SCCT Versus, it's basically unusable on that game. I didn't experience that issue on Splinter Cell 1 but the stuttering does happen still.

Sounds like you may need to increase the MouseMovementPadding value? The game may be ignoring input on the Y-axis because it is too small because I am not merging as many records as before. Adding padding that equals the value the game ignores will prevent the game from dropping the values.

I've never heard of a 6400Hz polling rate mouse, are you talking about DPI?

Yes, good call. It is DPI. My mouse only goes up to 1000Hz:

image

Joshhhuaaa commented 6 days ago

@elishacloud Okay, well I feel dumb now... so I tried without anything hooked to Splinter Cell 1, just using DirectX8 at 30 FPS with 1000Hz polling rate again, and the stutters are still happening. It seems to be a game engine issue I would say, dxwrapper isn't directly causing it.

I can't really blame myself though because Enhanced SCCT Versus when at 1000-8000Hz, the mouse speed is so slow that you can't even trigger a stutter on the default game. Splinter Cell 1 doesn't have the issue of higher polling rate resulting in slower mouse speed.

I'm not sure if this is something that can even be fixed if it's not your wrapper directly causing it. Regardless, not sure why you can't replicate it on your end.

elishacloud commented 6 days ago

Okay, well I feel dumb now... so I tried without anything hooked to Splinter Cell 1, just using DirectX8 at 30 FPS with 1000Hz polling rate again, and the stutters are still happening.

Ok, no problem. I was tearing out my hair trying to figure out what I did wrong. Sounds like this is not related to dxwrapper at all.

Regardless, not sure why you can't replicate it on your end.

Yeah, I just tried with 20 FPS and 1000Hz with 1600 DPI mouse speed on Splinter Cell and played for 10 minutes and did not see a single stutter.

I'm not sure if this is something that can even be fixed if it's not your wrapper directly causing it.

Did you try with out dgVoodoo2 and without EAX sound? I am just using non-EAX sound and d3d8to9.

BTW: I undid the sequencing change. This should fix the Y-axis: dxwrapper.zip

Joshhhuaaa commented 6 days ago

Okay, well I feel dumb now... so I tried without anything hooked to Splinter Cell 1, just using DirectX8 at 30 FPS with 1000Hz polling rate again, and the stutters are still happening.

Ok, no problem. I was tearing out my hair trying to figure out what I did wrong. Sounds like this is not related to dxwrapper at all.

Regardless, not sure why you can't replicate it on your end.

Yeah, I just tried with 20 FPS and 1000Hz with 1600 DPI mouse speed on Splinter Cell and played for 10 minutes and did not see a single stutter.

I'm not sure if this is something that can even be fixed if it's not your wrapper directly causing it.

Did you try with out dgVoodoo2 and without EAX sound? I am just using non-EAX sound and d3d8to9.

BTW: I undid the sequencing change. This should fix the Y-axis: dxwrapper.zip

Yeah, for Splinter Cell 1, I tested it without dgVoodoo2/EAX, just running the game in its standard DirectX8 capped at 30 FPS using RivaTuner (since Nvidia's cap requires DX9+). The 1000Hz does still cause stuttering. It might be hard to notice, but it's obvious to me when it happens. My friend also noticed it on his end, it even happens at 250Hz polling rate according to him, just very rare. So, it seems those games really want your mouse to update at ~120-125Hz. 60 FPS immediately fixes the stutter issue as far as I can tell, I'm not sure if it can be fixed for 30.

Your builds still feel helpful for Chaos Theory and Double Agent high polling when the game is at 60 FPS, so it wasn't a complete waste of time haha, but sorry for wasting your time with all those builds, I appreciate all the help.

elishacloud commented 6 days ago

Your builds still feel helpful for Chaos Theory and Double Agent high polling when the game is at 60 FPS, so it wasn't a complete waste of time haha, but sorry for wasting your time with all those builds, I appreciate all the help.

Ok, no problem. I am going to call this case closed for now. At least for the games I can test with I am not getting any stuttering and the FixHighFrequencyMouse definitely helps with these games.

elishacloud commented 5 days ago

@Joshhhuaaa, it a little bit bothered me that the stuttering only happened when the mouse frequency was high and the FPS was low. From what I can tell, the game is likely reading the mouse movements less often, since it seems to be reading the movements once per frame.

One thing I noticed with these games is that they only read one record from the mouse movement table at a time. However, the less often the table is read from the more chances that records will accumulate. That is because each time the records are read I merge only the new records and add them to the end of the table.

However, since the mouse frequency is so high and the FPS is so low that increases the chance that there will be two new records (one for X movement and one for Y movement) added to the table each frame. Since the game only reads one record on each frame it is possible that the records are building up and slowly become more and more out of date (older).

You mentioned that the issue happens more often when you have a key pressed, like 'W' or 'A'. If the mouse movements are getting older and the game detects that the key press from 'A' or 'W' is more out of sync (using the sequence numbers) with the mouse movement, the game may drop the old mouse movement records, causing the stuttering.

Anyways, that is just a theory. But, I did make a change today that doesn't just merge the new records. I also merge the old records with the new records. This should help the mouse movement get less out of sync and might help offset the fact that the records are read less often.

Here is the new build with this change in it: dxwrapper.zip

Joshhhuaaa commented 5 days ago

@Joshhhuaaa, it a little bit bothered me that the stuttering only happened when the mouse frequency was high and the FPS was low. From what I can tell, the game is likely reading the mouse movements less often, since it seems to be reading the movements once per frame.

One thing I noticed with these games is that they only read one record from the mouse movement table at a time. However, the less often the table is read from the more chances that records will accumulate. That is because each time the records are read I merge only the new records and add them to the end of the table.

However, since the mouse frequency is so high and the FPS is so low that increases the chance that there will be two new records (one for X movement and one for Y movement) added to the table each frame. Since the game only reads one record on each frame it is possible that the records are building up and slowly become more and more out of date (older).

You mentioned that the issue happens more often when you have a key pressed, like 'W' or 'A'. If the mouse movements are getting older and the game detects that the key press from 'A' or 'W' is more out of sync (using the sequence numbers) with the mouse movement, the game may drop the old mouse movement records, causing the stuttering.

Anyways, that is just a theory. But, I did make a change today that doesn't just merge the new records. I also merge the old records with the new records. This should help the mouse movement get less out of sync and might help offset the fact that the records are read less often.

Here is the new build with this change in it: dxwrapper.zip

The stutter issue remains present in that build. I grabbed an old mouse of mine that supports 125/250/500Hz to confirm, and yeah, even 250Hz and 500Hz can cause stuttering at 30 FPS. It seems only 125Hz is optimal for Unreal Engine 2, at least when running at 30 FPS.

I might go test some other Unreal Engine 2 games to see if I can learn more, although it's likely a widespread issue. Since Splinter Cell 1 and SCCT Versus are built on entirely different builds of Unreal Engine 2 and the multiplayer was developed separately by a different team with their own codebase, they shouldn't share exactly the same bugs.

elishacloud commented 5 days ago

Thanks for testing. I kept the change because I think it is a good change even if it does not help in your case. I wonder if there is an issue with the way the game handles timers. See here for an example: #175

Timers don't always function now exactly as they did in the past (when these games were made). Furthermore, things happen so much faster on computers now then they did before it can throw off the game's code. For example, the game starts to wait for something that was completed even before the game started to wait for it because the activity happened much faster than expected. Sometimes setting single process affinity can help, but other times other fixes need to be made.

mirh commented 5 days ago

Stuttering should be pretty noticeable (and quantifiable) if you just enable reporting of 1 and 0.1 percentiles in afterburner. Maybe you can notice some relative improvement for starters. Also notable that the program has like 4 different types of frame rate limiting...

p.s. UE2 source code for many of the builds has been leaked over and over again during the years (for as much as ubisoft might have then done its own modifications)

Joshhhuaaa commented 5 days ago

Well, some bad news for Splinter Cell haha. I guess my assumption was wrong that it would likely be engine wide. The multiplayer developers must've stole some code from the single player developers and exclusively only these games are broke.

All of these have the stutter issue, I haven't bothered testing Splinter Cell: Conviction (2010) and Splinter Cell: Blacklist (2013) but they run on the same Unreal Engine 2 foundation from the original game with tons of modifications to the engine. I wouldn't be surprised if they have the issue.

I tested Unreal Tournament 2004 and it had no issues, but it does run on a very late build of Unreal Engine 2 that could've seen improvements that Ubisoft didn't decide to integrate back into their older build of Unreal Engine 2. However, I just tested Rainbow Six 3 from Ubisoft and it didn't have the stutter issue and it's a build very close to the original Splinter Cell, so they must've just broke Splinter Cell's mouse code somehow.

p.s. UE2 source code for many of the builds has been leaked over and over again during the years (for as much as ubisoft might have then done its own modifications)

Yeah, I've got some Unreal Tournament 2004 builds of the source code. Interestingly, UT 2004 isn't showing the issue, so it might not be useful. It seems like the problem is specific to Splinter Cell. I do have the UnrealScript for SCPT Versus, but not the actual C++ source code, so that might not be as helpful.

Edit: Here's one more example of Splinter Cell: Pandora Tomorrow completely dying at 30 FPS with 8000Hz, this is a worst case scenario, but really shows what's going on if it's hard to notice on lower polling rates.

https://github.com/elishacloud/dxwrapper/assets/41166025/4fcf189c-bb67-48dc-be67-595e883a9093

Stuttering should be pretty noticeable (and quantifiable) if you just enable reporting of 1 and 0.1 percentiles in afterburner.

I should clarify that the game isn't actually stuttering. It feels more like your mouse is randomly dropping out or encountering a severe dead zone. I've been calling it the "stutter" problem, just for simplicity but I think it's more about input being ignored.

28-06-2024, 15:42:40 SplinterCell2.exe benchmark completed, 450 frames rendered in 15.000 s
                     Average framerate  :   29.9 FPS
                     Minimum framerate  :   30.0 FPS
                     Maximum framerate  :   30.0 FPS
                     1% low framerate   :   30.0 FPS
                     0.1% low framerate :   30.0 FPS

15 seconds of the mouse experiencing the issue at 8000Hz polling seems to hold a consistent 30 FPS.

mirh commented 5 days ago

All the games from Epic itself have been updated plenty of times since their release day (unless you are installing them from cd?). Deus ex invisible war, postal 2 or SWAT 4 would be probably better.


Holy moly maccaroni, that's NOT what stuttering is. In fact it looks like what 100% normally happens when a mouse has super duper sensitivity, and to counteract that you set in-game sensitivity to the lowest possible.

elishacloud commented 5 days ago

and to counteract that you set in-game sensitivity to the lowest possible.

I did add an option called MouseMovementFactor that can be set to a fractional value, like 0.5 to reduce the mouse speed/sensitivity. I also recommend pairing this with MouseMovementPadding, if you set the movement factor to a very small number.

Joshhhuaaa commented 5 days ago

All the games from Epic itself have been updated plenty of times since their release day (unless you are installing them from cd?). Deus ex invisible war, postal 2 or SWAT 4 would be probably better.

Holy moly maccaroni, that's NOT what stuttering is. In fact it looks like what 100% normally happens when a mouse has super duper sensitivity, and to counteract that you set in-game sensitivity to the lowest possible.

Yeah it's not stuttering at all, so I shouldn't refer to it as the "stutter" problem anymore haha. The issue happens on very low sensitivities as well, I know cranking sensitivity in older engines is typically a disaster. But this is not a result of that, this is caused by polling rate while also being on 30 FPS, 125Hz doesn't have the problem.

I installed UT 2004 from the Steam version, I assume that would be the latest. I can test SWAT 4 GOG later.

mirh commented 5 days ago

That's also granted to be very much patched.

"Immediate skipping" or "digital moving" could be better names perhaps.

elishacloud commented 4 days ago

My suggestion for the Splinter Cell games is that they get patched to fix the issues at 60 FPS or higher so that we can solve both issues.

Joshhhuaaa commented 4 days ago

My suggestion for the Splinter Cell games is that they get patched to fix the issues at 60 FPS or higher so that we can solve both issues.

That would be the ideal solution but least likely, there's not enough interest in Splinter Cell, nobody's going to make patches for it especially Versus modes.

mirh commented 4 days ago

I wouldn't really hope on patches (both because the games are old, but also because AFAICT more often than not games break in multiple ways and the more framerate increases and the more everything starts to get loose apart).

Anyway, maybe we should back up a little.. trying to sum up what happens, especially after this enormous fail (and also because I'm not even sure how we went from OFP to SCCT)

@0xvpr do you have any insight over the input code? @Methanhydrat are you still up into the game?