[Release] ACE v1.0f
- UT Sniper (SJA94)
- Inhuman
- Posts: 753
- Joined: Thu Jun 24, 2010 10:35 pm
- Personal rank: Retard
- Location: England
- Contact:
Re: [Release] ACE v1.0f
I set fps limit with Direct3D9 render, and also XC_Engine fps limiter(at different times). If I play with highperftoggle off and set fps limit with either to say 60 it will still force 167fps, it feels like highperftoggle is on because the fps is a rock solid 167fps, not like when you use a fps limiter with it off where it jumps around a few fps over the limit. My netspeed is normally on 20'000, or 25'000 on servers that support it. This happens with and without XC_Engine installed, with xc_engine installed it appears to be impossible to go over 200fps, which is nice when I'm playing offline to stop the engine going nuts.
Re: [Release] ACE v1.0f
The highperftoggle option is only used to select the timing function ACE uses. Even when highperftoggle is off, ACE might still affect your framerate. The reason why ACE does this is to fix multi-core timing issues on the one hand and to block speedhacks on the other hand. That said, it is very much possible that ACE doesn't pick up your frameratelimit setting correctly. This is definitely the case for the XC_Engine frameratelimit because ACE doesn't know how to parse that one. The D3D9Drv one should be recognized, however. Could you paste your D3D9Drv settings so I can see what's going on?UT Sniper (SJA94) wrote:I set fps limit with Direct3D9 render, and also XC_Engine fps limiter(at different times). If I play with highperftoggle off and set fps limit with either to say 60 it will still force 167fps, it feels like highperftoggle is on because the fps is a rock solid 167fps, not like when you use a fps limiter with it off where it jumps around a few fps over the limit. My netspeed is normally on 20'000, or 25'000 on servers that support it. This happens with and without XC_Engine installed, with xc_engine installed it appears to be impossible to go over 200fps, which is nice when I'm playing offline to stop the engine going nuts.
Re: [Release] ACE v1.0f
anth wrote:How did you configure the 195 limit? Did you use one of the UTGLR renderers and set the frameratelimit variable?
Code: Select all
FLOAT UXC_GameEngine::GetMaxTickRate()
{
guard(UXC_GameEngine::GetMaxTickRate);
ULevel* ALevel = Level();
if (ALevel && ALevel->NetDriver && !GIsClient)
return Clamp( (&ALevel->NetDriver->NetServerMaxTickRate)[LanPlay], 10, 120);
else
{
FLOAT Limit = 200.f;
if( ALevel && ALevel->NetDriver && ALevel->NetDriver->ServerConnection )
Limit = ALevel->NetDriver->ServerConnection->CurrentNetSpeed/64;
else if (ALevel && ALevel->DemoRecDriver && !ALevel->DemoRecDriver->ServerConnection)
Limit = Clamp( (&ALevel->DemoRecDriver->NetServerMaxTickRate)[LanPlay], 10, 120);
//Limit FPS!
if ( ClientFrameRateLimit >= 4 )
Limit = Min( (FLOAT)ClientFrameRateLimit, Limit);
return Clamp( Limit, 4.0f, 200.0f);
}
unguard;
}
Code: Select all
else if (ParseCommand(&Cmd, TEXT("FPS")) || ParseCommand(&Cmd, TEXT("FPSLimit")))
{
while (*Cmd == ' ')
Cmd++;
INT Limit = appAtoi(Cmd);
if ( !Limit )
Ar.Logf( NAME_XC_Engine, TEXT("Current frame rate limit is %i, use 'FPS [4-200]' to specify a framerate limit."), ClientFrameRateLimit);
else
{
ClientFrameRateLimit = Clamp(appAtoi(Cmd), 0, 200);
SaveConfig();
Ar.Logf(NAME_XC_Engine, TEXT("Client frame rate limit set to %i"), ClientFrameRateLimit);
}
}
Sleeping is left to the launcher, or ACE's Engine hook.
Re: [Release] ACE v1.0f
ack. What is the full type and context of the ClientFrameRateLimit variable? Is this variable exposed directly to UScript?
Re: [Release] ACE v1.0f
Helper func
Code: Select all
XC_CORE_API UProperty* FindScriptVariable( UStruct* InStruct, const TCHAR* PropName, INT* Found)
{
FName NAME_PropName = FName( PropName, FNAME_Find);
if ( NAME_PropName != NAME_None )
{
for( TFieldIterator<UProperty> Prop( InStruct ); Prop; ++Prop )
if( Prop->GetFName() == NAME_PropName )
{
if ( Found ) //Useful when finding many props and checking all were found on a single test.
(*Found)++;
return (UProperty*) *Prop;
}
}
return NULL;
}
Just call
Code: Select all
Engine->GetMaxTickRate();
Spoiler
Code: Select all
guard(UpdateRender);
if ( Engine->Client->Viewports(0)->RenDev != RenDev ) //RenDev is our cached pointer, we're doing this because the game may be able to switch it
{
RenDev = Engine->Client->Viewports(0)->RenDev;
RenDevTickRate = NULL;
UProperty* TickRateProp;
if ( RenDev
&& (TickRateProp=FindScriptVariable( RenDev->GetClass(), TEXT("FrameRateLimit")))
&& TickRateProp->IsA(UIntProperty::StaticClass()) )
{
RenDevTickRate = (INT*) ((BYTE*)RenDev + TickRateProp->Offset);
}
}
unguard;
Code: Select all
//** This is a net client **//
// Update TICKRATE on XC_Engine server
if ( XCGE_Server_Ver >= 24 )
{
INT NewTickRate = appRound(Engine->GetMaxTickRate());
if ( RenDevTickRate && (*RenDevTickRate > 4) )
NewTickRate = Min(NewTickRate, *RenDevTickRate);
if ( (NewTickRate >= 4) && (NewTickRate <= 200) && (NewTickRate != TickRate) && ((TickRate == 0) || (NetDriver->Time - LastTickRateTime > 0.5)) )
{
TickRate = NewTickRate;
LastTickRateTime = NetDriver->Time;
NetDriver->ServerConnection->Logf( TEXT("TICKRATE %i"), TickRate);
}
}
But if you wanna do it the hard way
![loool :loool:](./images/smilies/HaudenLukasoderso.gif)
Code: Select all
new( TheClass,TEXT("ClientFrameRateLimit"), RF_Public) UIntProperty(CPP_PROPERTY(ClientFrameRateLimit), TEXT("XC_GameEngine"), NativeEditConfig);
Code: Select all
static INT* XCGE_CFRL_Ptr = NULL;
...
UProperty* XCGE_CFRL_Prop = FindScriptVariable( Engine->GetClass(), TEXT("ClientFrameRateLimit"));
if ( XCGE_CFRL_Prop )
XCGE_CFRL_Ptr = (INT*) ((BYTE*)Engine + XCGE_CFRL_Prop->Offset);
=====================
Oh yeah, did i tell you that when I switched to a Glide wrapper, ACE would kick me when going windowed due to Glide <-> Software change?
That was on v08h tho.
- UT Sniper (SJA94)
- Inhuman
- Posts: 753
- Joined: Thu Jun 24, 2010 10:35 pm
- Personal rank: Retard
- Location: England
- Contact:
Re: [Release] ACE v1.0f
anth wrote:Could you paste your D3D9Drv settings so I can see what's going on?
This is the current settings I use, I did try a fresh render install(included removing the 3d9 settings so ut made afresh copy) a while ago the problem still persisted:
Code: Select all
[D3D9Drv.D3D9RenderDevice]
FrameRateLimit=146
Translucency=False
VolumetricLighting=False
ShinySurfaces=False
Coronas=False
HighDetailActors=False
DetailTextures=False
UseBGRATextures=True
UseAA=False
UseSSE=False
UseTexIdPool=False
DynamicTexIdRecycleLevel=100
UseTexPool=False
SwapInterval=0
OneXBlending=False
TruFormMinVertices=0
TruFormTessellation=3
UseTruForm=False
NumAASamples=0
RequestHighResolutionZ=False
MaskedTextureHack=False
UseVertexProgram=False
UseCVA=False
UseMultiDrawArrays=False
AAFilterHint=0
TexDXT1ToDXT3=False
BufferClippedActorTris=False
SinglePassDetail=False
ColorizeDetailTextures=False
DetailClipping=False
UseDetailAlpha=False
RefreshRate=144
MaxTMUnits=0
NoFiltering=False
UseFilterSGIS=False
MaxAnisotropy=0
UseTNT=False
Use4444Textures=false
UseS3TC=False
UseAlphaPalette=False
AutoGenerateMipmaps=False
UseTrilinear=False
UsePrecache=False
AlwaysMipmap=True
ShareLists=False
UsePalette=False
UseMultiTexture=False
UseZTrick=False
MaxLogTextureSize=8
MinLogTextureSize=0
MaxLogVOverU=8
MaxLogUOverV=8
GammaCorrectScreenshots=True
GammaOffset=0.090000
LODBias=-5.000000
DescFlags=0
GammaOffsetBlue=0.000000
GammaOffsetGreen=0.000000
GammaOffsetRed=0.000000
Description=GTX 750 TI
CacheStaticMaps=False
Use16BitTextures=false
ZRangeHack=False
NoAATiles=False
UseSoftwareVertexProcessing=False
UsePureDevice=False
UseTripleBuffering=False
SmoothMaskedTextures=False
UseSSE2=False
BufferTileQuads=False
SinglePassFog=False
DetailMax=0
Use565Textures=False
SceneNodeHack=True
UseFragmentProgram=False
Re: [Release] ACE v1.0f
Hello
People are getting troubles with ACE after getting the last win 10 update (1903 build)
On the previous ace versions (ace 08) it says this: you have been kicked from the server because ace has found a corrupted file DDraw.dll
![Image](https://cdn.discordapp.com/attachments/227148924635316229/582880436162658304/unknown.png)
On the newest ones (1.0) it says that any render file (.dll) is corrupted
![Image](https://cdn.discordapp.com/attachments/227148924635316229/582880666291798049/unknown.png)
I guess after the update DDraw.dll was changed and it needs to be whitelisted in the ACE.
Can anyone help with that?
Thanks
People are getting troubles with ACE after getting the last win 10 update (1903 build)
On the previous ace versions (ace 08) it says this: you have been kicked from the server because ace has found a corrupted file DDraw.dll
![Image](https://cdn.discordapp.com/attachments/227148924635316229/582880436162658304/unknown.png)
On the newest ones (1.0) it says that any render file (.dll) is corrupted
![Image](https://cdn.discordapp.com/attachments/227148924635316229/582880666291798049/unknown.png)
I guess after the update DDraw.dll was changed and it needs to be whitelisted in the ACE.
Can anyone help with that?
Thanks
Re: [Release] ACE v1.0f
We get windows 10 users kicked for use D3D9 and openGL... and as i now i cant whitelist dll files..
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: | Player Kick |
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: PlayerName.....: Gati'
[ACEv10f]: PlayerIP.......: 5.20.241.196
[ACEv10f]: OS.............: Microsoft Windows 10 x64 (Version 10.0.18363)
[ACEv10f]: CPU............: Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz
[ACEv10f]: CPUSpeed.......: 3599.991455 Mhz
[ACEv10f]: NICDesc........: Intel(R) Ethernet Connection (2) I219-V
[ACEv10f]: MACHash1.......: 3DCAD8B6BFDFF1937A69C953804B63AA
[ACEv10f]: MACHash2.......: 06C55401C590A62AFE154A8C9E968644
[ACEv10f]: HWID...........: 1FF2CB3A075D25B4E0B7004A106F06C3
[ACEv10f]: GameVersion....: 436
[ACEv10f]: Renderer.......: D3D9Drv.D3D9RenderDevice
[ACEv10f]: SoundDevice....: Galaxy.GalaxyAudioSubsystem
[ACEv10f]: CommandLine....:
[ACEv10f]: TimeStamp......: 22-11-2019 / 16:40:31
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: | Kick Reasons |
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: BaseAddress....: 0x6AF10000
[ACEv10f]: LibraryName....: D3D9.dll
[ACEv10f]: LibraryPath....: C:\Windows\SYSTEM32\d3d9.dll
[ACEv10f]: LibrarySize....: 1616784 bytes
[ACEv10f]: LibraryHash....: 50BD9902C00FB258ED1B0A9D9D4AAD93
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: KickReason.....: Import Address Mismatch
[ACEv10f]: ModuleName.....: D3D9.dll
[ACEv10f]: ImportNum......: 0
[ACEv10f]: ExpAddress.....: 0x77140F80
[ACEv10f]: ExpModule......: api-ms-win-appmodel-unlock-l1-1-0.dll
[ACEv10f]: ExpType........: 0
[ACEv10f]: ExpName........: IsDeveloperModeEnabled
[ACEv10f]: ActAddress.....: 0x750741B0
[ACEv10f]: ActModule......: kernel.appcore.dll
[ACEv10f]: ActFunction....: IsDeveloperModeEnabled
[ACEv10f]: ActOffset......: 0x0000
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: BaseAddress....: 0x6BEB0000
[ACEv10f]: LibraryName....: DDraw.dll
[ACEv10f]: LibraryPath....: C:\Windows\SYSTEM32\ddraw.dll
[ACEv10f]: LibrarySize....: 529408 bytes
[ACEv10f]: LibraryHash....: B293B5DFDAA100F01CB8ECF65F3E160A
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: KickReason.....: Import Address Mismatch
[ACEv10f]: ModuleName.....: DDraw.dll
[ACEv10f]: ImportNum......: 0
[ACEv10f]: ExpAddress.....: 0x77403D62
[ACEv10f]: ExpModule......: GDI32.dll
[ACEv10f]: ExpType........: 0
[ACEv10f]: ExpName........: D3DKMTCreateAllocation
[ACEv10f]: ActAddress.....: 0x72907700
[ACEv10f]: ActModule......: dxcore.dll
[ACEv10f]: ActFunction....: FUNC_72907700
[ACEv10f]: ActOffset......: 0x6700
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: | Player Kick |
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: PlayerName.....: Gati'
[ACEv10f]: PlayerIP.......: 5.20.241.196
[ACEv10f]: OS.............: Microsoft Windows 10 x64 (Version 10.0.18363)
[ACEv10f]: CPU............: Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz
[ACEv10f]: CPUSpeed.......: 3599.991455 Mhz
[ACEv10f]: NICDesc........: Intel(R) Ethernet Connection (2) I219-V
[ACEv10f]: MACHash1.......: 3DCAD8B6BFDFF1937A69C953804B63AA
[ACEv10f]: MACHash2.......: 06C55401C590A62AFE154A8C9E968644
[ACEv10f]: HWID...........: 1FF2CB3A075D25B4E0B7004A106F06C3
[ACEv10f]: GameVersion....: 436
[ACEv10f]: Renderer.......: D3D9Drv.D3D9RenderDevice
[ACEv10f]: SoundDevice....: Galaxy.GalaxyAudioSubsystem
[ACEv10f]: CommandLine....:
[ACEv10f]: TimeStamp......: 22-11-2019 / 16:40:31
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: | Kick Reasons |
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: BaseAddress....: 0x6AF10000
[ACEv10f]: LibraryName....: D3D9.dll
[ACEv10f]: LibraryPath....: C:\Windows\SYSTEM32\d3d9.dll
[ACEv10f]: LibrarySize....: 1616784 bytes
[ACEv10f]: LibraryHash....: 50BD9902C00FB258ED1B0A9D9D4AAD93
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: KickReason.....: Import Address Mismatch
[ACEv10f]: ModuleName.....: D3D9.dll
[ACEv10f]: ImportNum......: 0
[ACEv10f]: ExpAddress.....: 0x77140F80
[ACEv10f]: ExpModule......: api-ms-win-appmodel-unlock-l1-1-0.dll
[ACEv10f]: ExpType........: 0
[ACEv10f]: ExpName........: IsDeveloperModeEnabled
[ACEv10f]: ActAddress.....: 0x750741B0
[ACEv10f]: ActModule......: kernel.appcore.dll
[ACEv10f]: ActFunction....: IsDeveloperModeEnabled
[ACEv10f]: ActOffset......: 0x0000
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: BaseAddress....: 0x6BEB0000
[ACEv10f]: LibraryName....: DDraw.dll
[ACEv10f]: LibraryPath....: C:\Windows\SYSTEM32\ddraw.dll
[ACEv10f]: LibrarySize....: 529408 bytes
[ACEv10f]: LibraryHash....: B293B5DFDAA100F01CB8ECF65F3E160A
[ACEv10f]: +------------------------------------------------------------------------------+
[ACEv10f]: KickReason.....: Import Address Mismatch
[ACEv10f]: ModuleName.....: DDraw.dll
[ACEv10f]: ImportNum......: 0
[ACEv10f]: ExpAddress.....: 0x77403D62
[ACEv10f]: ExpModule......: GDI32.dll
[ACEv10f]: ExpType........: 0
[ACEv10f]: ExpName........: D3DKMTCreateAllocation
[ACEv10f]: ActAddress.....: 0x72907700
[ACEv10f]: ActModule......: dxcore.dll
[ACEv10f]: ActFunction....: FUNC_72907700
[ACEv10f]: ActOffset......: 0x6700