SPWAW Artillery Fix Version 2.1 - REMOVED
Moderator: MOD_SPWaW
-
- Posts: 421
- Joined: Mon May 08, 2000 8:00 am
- Location: kouvola finland
RE: SPWAW Artillery Fix Version 2 (Automatic)
Hmm if I set affinity CPU 0, choosing/marking delay is about 30 seconds[:'(]... Okay, it's better than nothing[;)] for me. Alternatives CPU 2 and 3 had nothing affect what comes to delay in my Enhanced mod...
RE: SPWAW Artillery Fix Version 2 (Automatic)
I have removed the download link for the fix for now. I will need to test the fix on an Intel i5 computer and see what is wrong.
RE: SPWAW Artillery Fix Version 2 (Automatic)
I have bad news regarding the future of the artillery screen bug and SPWAW.
I have now tested the game on a 6 core AMD cpu and no matter what AFFINITY value I tried I could not get it to work properly.
This may mean that the fix does not work on any AMD cpu's. It could perhaps work on a dual core AMD cpu but that remains untested.
As for Intel quad core CPU's I have one guy who says that the artillery fix works for his Intel i5 cpu. Then again I have several reports that it does not work for Intel i5.
So for the quad core and 8 core intel cpu's it looks like this:
Intel i3 -> Not tested and I do not have access to any computer with this type of cpu to test it out.
Intel i5 -> Most reports say the fix does not work.
Intel i7 -> Reported not to work.
So in the end it would appear that the Artillery screen fix will only work for people who have a dual core CPU and maybe only an Intel branded one since AMD remains untested. This is a major dissapointement since it means that SPWAW is basicaly broken for anyone using a modern quad core or 8 core cpu.
I have now tested the game on a 6 core AMD cpu and no matter what AFFINITY value I tried I could not get it to work properly.
This may mean that the fix does not work on any AMD cpu's. It could perhaps work on a dual core AMD cpu but that remains untested.
As for Intel quad core CPU's I have one guy who says that the artillery fix works for his Intel i5 cpu. Then again I have several reports that it does not work for Intel i5.
So for the quad core and 8 core intel cpu's it looks like this:
Intel i3 -> Not tested and I do not have access to any computer with this type of cpu to test it out.
Intel i5 -> Most reports say the fix does not work.
Intel i7 -> Reported not to work.
So in the end it would appear that the Artillery screen fix will only work for people who have a dual core CPU and maybe only an Intel branded one since AMD remains untested. This is a major dissapointement since it means that SPWAW is basicaly broken for anyone using a modern quad core or 8 core cpu.
- Major_Mess
- Posts: 478
- Joined: Sun Feb 08, 2004 4:28 pm
- Location: The True North. Strong and Free
RE: SPWAW Artillery Fix Version 2 (Automatic)
I have a AMD dual core machine, your first fix worked great for me, the second fix (V2) also works for me, but not as well as the first version.
HTH
MM
HTH
MM
RE: SPWAW Artillery Fix Version 2 (Automatic)
ORIGINAL: Major Mess
I have a AMD dual core machine, your first fix worked great for me, the second fix (V2) also works for me, but not as well as the first version.
HTH
MM
That is good to hear Major Mess!
I am sorry for possibly raising false hopes with the artillery fix v2. When I got the fix working for a quad core Intel i5 I jumped to the conclusion that the fix could be made to work for all multi core cpu's not just dual core ones.
As it turns out things are much more complicated than I had imagined. So many different cpu's and technologies out there. [:(]
But at least the fix works for dual core cpu's.
RE: SPWAW Artillery Fix Version 2 (Automatic)
I just want to share my clicking experience with SPWAW 2016 and artillery click bug feature on core i7 with Windows 10.
I manage to control the artillery menu by clicking at two tor three different location in the same hex / box. Its just like double click, but I need to move the mouse a bit for the second click, and additional third click just to make sure. So its a triple click.
The trick seems to work without having to press shift or shift/L button.
I tested with fixed affinity core 7 or core 0 but its no different (with control-shift-esc - detail tab - set affinity).
Also I remove the /affinity 80 from mech.exe and it still work fine.
A little bit difficult on the small artillery command box, but that's the fun.
Triple shifted clicks on each hex/box is just like playing game. Well it is a game...
Its a feature now
I manage to control the artillery menu by clicking at two tor three different location in the same hex / box. Its just like double click, but I need to move the mouse a bit for the second click, and additional third click just to make sure. So its a triple click.
The trick seems to work without having to press shift or shift/L button.
I tested with fixed affinity core 7 or core 0 but its no different (with control-shift-esc - detail tab - set affinity).
Also I remove the /affinity 80 from mech.exe and it still work fine.
A little bit difficult on the small artillery command box, but that's the fun.
Triple shifted clicks on each hex/box is just like playing game. Well it is a game...

Its a feature now

RE: SPWAW Artillery Fix Version 2 (Automatic)
Howdy again!
I really did not plan on posting anymore but seeing as there is so much interest in fixing the artillery screen I felt like I had to add some more things here.
I have gotten SPWAW to work on an i7 processor now. However this was a laptop processor that has two physical cores and 4 logical cores. So infact it is just a dual core cpu with hyper threading. Intel's naming of CPU's is really confusing for me and not all i7 cpu's are the same. Infact it seems that i7 does not really appear to mean much at all. [&:]
Interestingly I have also gotten the game to run fine on an i5 quad core cpu.
The AFFINITY values I have had luck with are: 1,2,4 and 8.
AFFINITY 1 works with single core cpu's that use hyper-threading
AFFINITY 2 works with dual core cpu's
AFFINITY 4 works with dual core cpu's that use hyper-threading
AFFINITY 8 works with quad core cpu's
Following that logic:
AFFINITY 40 should work with a quad core i7 that uses hyper-threading.
At first I was thinking that hyper threading was the main reason why the AFFINITY fix did not work for i7 but this seems not to be the case... Or maybe the issue is only with quad core i7 cpu's with HT?
I have not had luck with AMD FX cpu's. Basicaly all the AMD processors that use the "Bulldozer" technology might be affected though this is just speculation.
Also worth noting is that in addition to the AFFINITY value there might be third party programs like antivirus software or other background programs that affect the arty screen. And in addition many CPU's have power saving modes enabled. These power saving settings might mess up with the game too especialy on laptops.
Additionaly a really clever programmer might be able to run a real-time debugger on mech.exe and see what happens in the code when the artillery screen ignores the mouse clicks. Then the code might be "hacked" to fix the issue permanently. I know that for some other old games there has been amazing work done. For example some people have ported the Syndicate Wars and Dungeon Keeper games to work in Windows and they did this without any source code. [X(]
I really did not plan on posting anymore but seeing as there is so much interest in fixing the artillery screen I felt like I had to add some more things here.
I have gotten SPWAW to work on an i7 processor now. However this was a laptop processor that has two physical cores and 4 logical cores. So infact it is just a dual core cpu with hyper threading. Intel's naming of CPU's is really confusing for me and not all i7 cpu's are the same. Infact it seems that i7 does not really appear to mean much at all. [&:]
Interestingly I have also gotten the game to run fine on an i5 quad core cpu.
The AFFINITY values I have had luck with are: 1,2,4 and 8.
AFFINITY 1 works with single core cpu's that use hyper-threading
AFFINITY 2 works with dual core cpu's
AFFINITY 4 works with dual core cpu's that use hyper-threading
AFFINITY 8 works with quad core cpu's
Following that logic:
AFFINITY 40 should work with a quad core i7 that uses hyper-threading.
At first I was thinking that hyper threading was the main reason why the AFFINITY fix did not work for i7 but this seems not to be the case... Or maybe the issue is only with quad core i7 cpu's with HT?
I have not had luck with AMD FX cpu's. Basicaly all the AMD processors that use the "Bulldozer" technology might be affected though this is just speculation.
Also worth noting is that in addition to the AFFINITY value there might be third party programs like antivirus software or other background programs that affect the arty screen. And in addition many CPU's have power saving modes enabled. These power saving settings might mess up with the game too especialy on laptops.
Additionaly a really clever programmer might be able to run a real-time debugger on mech.exe and see what happens in the code when the artillery screen ignores the mouse clicks. Then the code might be "hacked" to fix the issue permanently. I know that for some other old games there has been amazing work done. For example some people have ported the Syndicate Wars and Dungeon Keeper games to work in Windows and they did this without any source code. [X(]
RE: SPWAW Artillery Fix Version 2 (Automatic)
I can confirm that the fix is not working on Core I7 (both on Win10 or Win7), either using affinity 1,2,4,8,40, or 80.
It also wont work even if you set the processor to only use core 7, or other core (from ctrl-shift-esc - detail - set affinity menu).
So far only click while moving is works, even without affinity set.
It also wont work even if you set the processor to only use core 7, or other core (from ctrl-shift-esc - detail - set affinity menu).
So far only click while moving is works, even without affinity set.
RE: SPWAW Artillery Fix Version 2.2 (Automatic)
I am attaching here the last version 2.2(now 2.3 [;)]) that I made of the Artillery Fix for reference.
If someone wants to use it the "code" should be pasted into Notepad and saved as a .cmd file that can be run from the SPWAW main game folder.
Version 2.2 changes:
- Cleanup and reorganization of the script. Hopefully better performance.
- Included comments in the script to explain what it is doing.
Version 2.3 changes:
- Affinity is not set using the PowerShell command instead of the unreliable Start /affinity command.
- The affinity values have been corrected for 6core, 8core and 4coreHT processors.
If someone wants to use it the "code" should be pasted into Notepad and saved as a .cmd file that can be run from the SPWAW main game folder.
Version 2.2 changes:
- Cleanup and reorganization of the script. Hopefully better performance.
- Included comments in the script to explain what it is doing.
Version 2.3 changes:
- Affinity is not set using the PowerShell command instead of the unreliable Start /affinity command.
- The affinity values have been corrected for 6core, 8core and 4coreHT processors.
[font="Courier New"]
@echo off
echo SPWAW Artillery Fix version 2.3 (PowerShell)
REM --------------------------------
REM Steel Panthers World at War artillery screen fix now theoretically supports up to
REM 8-core CPU's or 4-core CPU's with Hyper-Threading.
REM A CPU with more than 8 cores is not supported.
REM --------------------------------
REM SPWAW needs to be run with the last physical CPU core of a multi core processor.
REM First the script finds out the number of physical CPU cores:
REM --------------------------------
wmic cpu get NumberOfCores | find "2" > nul
if %ERRORLEVEL% == 0 goto 2core
wmic cpu get NumberOfCores | find "3" > nul
if %ERRORLEVEL% == 0 goto 3core
wmic cpu get NumberOfCores | find "4" > nul
if %ERRORLEVEL% == 0 goto 4core
wmic cpu get NumberOfCores | find "6" > nul
if %ERRORLEVEL% == 0 goto 6core
wmic cpu get NumberOfCores | find "8" > nul
if %ERRORLEVEL% == 0 goto 8core
REM --------------------------------
REM After finding out the number of CPU cores the script also checks for the presence of additional logical CPU cores.
REM If no additional logical CPU cores are found the game is started with the Affinity value of the last physical CPU core:
REM --------------------------------
REM Affinity 1 value is also good for a Hyper-Threaded single core CPU (e.g. Intel Atom).
echo Single core CPU found.
echo SPWAW started in AFFINITY 1.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=1
exit
:2core
echo 2 CPU cores found.
wmic cpu get NumberOfLogicalProcessors | find "4" > nul
if %ERRORLEVEL% == 0 goto 2coreHT
echo SPWAW started in AFFINITY 2.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=2
exit
REM The only 3 core cpu is AMD Phenom II X3 and it has no Hyper-Threading.
:3core
echo 3 CPU cores found.
echo SPWAW started in AFFINITY 4.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=4
exit
:4core
echo 4 CPU cores found.
wmic cpu get NumberOfLogicalProcessors | find "8" > nul
if %ERRORLEVEL% == 0 goto 4coreHT
echo SPWAW started in AFFINITY 8.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=8
exit
:6core
echo 6 CPU cores found.
echo SPWAW started in AFFINITY 32.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=32
exit
:8core
echo 8 CPU cores found.
echo SPWAW started in AFFINITY 128.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=128
exit
REM --------------------------------
REM If additional logical CPU cores are found the processor is determined to be using Hyper-Threading.
REM In this case the game is started with the second to last CPU core which is the
REM last physical CPU core on an Intel CPU with Hyper-Threading.
REM --------------------------------
:2coreHT
echo Hyper-Threading detected.
echo SPWAW started in AFFINITY 4.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=4
exit
:4coreHT
echo Hyper-Threading detected.
echo SPWAW started in AFFINITY 64.
Powershell start mech.exe
Powershell $Process = Get-Process mech; $Process.ProcessorAffinity=64
exit
[/font]