Skip to content

Posts from Heroes 3 on a dual-core processor.

No ratings yet — be the first to rate!
18 years ago
Auto-translated
I tried this program and made the following observations. It works with the third "platinum" edition of Heroes, but not immediately. For some reason, the regular expression only works when it's in the form ".*". Assigning an expression that matches only the Heroes3.exe file (e.g., ".*Heroes3.*") doesn't produce the desired effect. The game starts to lag, but the CPU load doesn't decrease as quickly as one would like. It can be assumed that the lag is roughly proportional to the CPU load reduction. In other words, the CPU is freed up at the expense of slowing down the program. In reality, there is probably some benefit to stopping the program at the point where the aforementioned function is called, rather than somewhere else, but it's probably not that significant. Well, what did you expect? This is what should have been expected. Moreover, the "shim" itself consumes a noticeable amount of CPU, which is significant. It doesn't work with the second Heroes game. Probably, the second Heroes game uses a different method. In general, it can probably be done properly only by modifying the game itself – replacing the infinite function call with a single, more intelligent call, or something like that. Nevertheless, thank you to the author for the work done. If the goal is to reduce the resource consumption of the third Heroes game by any means, then this option can be used. Especially when there are no other options at all
18 years ago
Auto-translated
What processor are you using, if you don't mind sharing?
The program doesn't reduce the number of calculations required for the "heroes" to function; it reduces the number of "unnecessary" calculations. If the processor is weak, it might turn out that 95% of the processor time is spent on calculations for Heroes, and only 5% is spent on simply running an infinite loop. The program corrects this, but it also consumes 10% of the processor time itself :-)
However, if the processor is powerful, then 98% is spent on the infinite loop, and 1-3% is spent on the seven heroes. In this case, the gain is significant. In my case, the gain is noticeable even on a 1.6 GHz laptop.
18 years ago
Auto-translated
A P4 2.8GHz processor. I don't think the absolute processing power matters much, except for its impact on heat dissipation, of course. :) And where did the idea come from that API function calls are the main consumers of processor time, and why are they considered redundant calculations? I looked at the calls in the second Heroes game, and during idle time, the most frequent Win32 call is actually `sleep`. Moreover, the number of these calls isn't that large and clearly exceeds the number of executed assembly instructions by several orders of magnitude. I'm not a big expert in all these matters, but it seems to me that the problem with the infinite loop lies somewhere within the program itself, and not in its calls to external functions. For the third Heroes game, I think 3% of my processor is enough. The remaining 97% is, accordingly, spent on a pointless cycle. When we start stopping the program with a certain periodicity (by calling specific API functions in our case), slowing it down, say, by 50%, then the "useful" part of the Heroes game is left with, accordingly, 1.5%, i.e., half of what is needed. This is if we look at it in the long term, i.e., how the user perceives it. This is where the slowdown comes from. And from the computer's point of view, we are simply creating a certain "free time window" in the processor's time, and when the program wakes up, it continues to churn through pointless cycles in the same proportion to its useful part - 97/3. And this will be the case on any processor, even a 10GHz one. I think that's how it works. Of course, it would be logical to assume that the program learns about external events, which it uses as a guide, through its most frequent calls to the operating system functions, but apparently, it's more complicated than that.
18 years ago
Auto-translated
Not an API, but the main program loop.
It might look like this:

start:
draw the picture
check for user input
if 10 ms have passed (for example), then
perform a calculation step
endif
go to start
------
That is, on a weak processor, everything will work great, but on a powerful one, a calculation step will be performed every 10 ms, and the rest of the time, the picture will be redrawn. Simply, on a weak computer, it will be redrawn, say, 20 times per second, and on a powerful one, 1000 times.
And here, if you insert sleep(1) in the right place, the processor will be unloaded for some time.

I'll try to find the second Heroes and the third Platinum edition (they're somewhere around here) and see what's happening with them.
18 years ago
Auto-translated
Since I'm new here, and maybe I created the topic in the wrong place, please don't kick me. But still, how can I run it on a dual-core processor? Both "In the Wake of Gods" and "Complete Collection" freeze almost immediately. I tried disabling one core, but it doesn't help. And I really want to play :(
In reply to Gjiod
User Avatar
18 years ago
Auto-translated
What do your two cores have to do with it?
I've never heard of this before... I played everything on an Athlon X2 myself...
Look for the reason elsewhere, most likely it's an incompatibility with the video adapter or something else...
Do you have a video card with integrated graphics?
User Avatar
18 years ago
Auto-translated
Thanks to the kind people, they have already solved this problem. Here is a link with fixes for the platinum heroes of Heroes of Might and Magic I, II, and III.
In reply to Gjiod
18 years ago
Auto-translated
yes, I have the same problem, it freezes
I have an Athlon 64 X2 4800+
Windows XP SP2 Professional Rus, version 2002
Graphics card GeForce 8600 GTS 256MB
2GB DDR2 RAM

I tried various compatibility settings with Windows 98, but it doesn't help...
In reply to Gjiod
User Avatar
18 years ago
Auto-translated
<вырезано> I can advise you to update your video card drivers and reinstall the game. www.nvidia.ru And the processor really isn't the issue here.
In reply to Gjiod
User Avatar
18 years ago
Auto-translated
I have a Core2Duo. I didn't experience any issues under Windows XP.
In reply to Gjiod
User Avatar
18 years ago
Auto-translated
I will provide these recommendations; feel free to ask if you have any questions. In a dual-core system, the most common problem (which can also occur with a processor using Hyper-Threading technology) is a decrease in performance compared to a similar single-core system. Additionally, in games, you might observe a sharp increase in in-game speed (not performance!). This is caused by an incorrect selection of the operating system timer – instead of the ACPI power management timer, the TSC timer is used, leading to errors in programs that use the QueryPerformanceCounter kernel function. In this case, you need to do the following: first, add the /usepmtimer key to the end of the line in the boot.ini file, located in the root directory of the C drive, which looks like this: "multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional"/noexecute=optin/fastdetect". If you don't see this file in Explorer, go to the menu, select "Folder Options" under "Tools." In the window that appears, on the "View" tab, uncheck the box next to "Hide protected operating system files" and, in the "Hidden files and folders" section, select "Show hidden files and folders." Next, owners of AMD processors should download and install the AMD DualCore Optimizer program. Note that if you use RMClock version 2.15 instead of the system's built-in tools to manage processor frequency, simply adding /usepmtimer to the boot file is sufficient. However, if problems (freezes, crashes to the desktop, etc.) still occur during the game, even after performing the above steps, you should try to hard-bind the game to one of the cores. To do this, after launching the game, press Ctrl+Alt+Del, right-click on the game in the Task Manager, select "Go to Processes," then right-click on the highlighted process again and select "Set Affinity." In the window that appears, uncheck one of the cores – it doesn't matter which one – then close the window, the Task Manager itself, and return to the game. If the problems still persist after these steps, and you have an NVIDIA video card, you can try disabling multi-threaded optimizations in the video drivers. Launch the Registry Editor (Start -> Run -> regedit.exe), go to the address HKey_Local_Machine\Hardware\DeviceMap\Video, and copy the address where the video card settings are located from the devicevideo0 variable. Note that this address is different for Windows 2000 and Windows XP: in Windows 2000, it will be \REGISTRY\Machine\System\ControlSet001\Services\nv\Device0, while in Windows XP, it will be \Registry\Machine\System\CurrentControlSet\Control\Video{DD18ED74-F584-4145-B29B-E3A6C6189FAA}\0000. Navigate to the specified address, keeping in mind that \Registry in this case indicates that the information is in the registry, and \Machine indicates that it is stored in the HKEY_LOCAL_MACHINE section. Click in the right pane, select "New" -> "DWORD Parameter," name it OGL_ThreadControl, and assign it the value 2. To disable multithreading in Direct3D applications, you need to create a variable of the same type called WTD_EXECMODEL and assign it the value 0. [[COLOR="Red"Note that game developers usually respond quite quickly to these types of problems, and before disabling dual-core support, it's worth checking if there is a patch for the game that fixes possible errors.

Added 17 minutes ago
I was too hasty about the processor last time; I thought we were talking about the fifth installment.
In reply to C13
18 years ago
Auto-translated
C13;172867
Well, I don't know, but I can suggest updating your graphics card drivers and reinstalling the game. www.nvidia.ru And the processor really isn't the issue here.
I have the latest update.

C13;172883
Next, owners of AMD processors should download and install the AMD DualCore Optimizer program.
I have it installed.
C13;172883
If, despite performing the actions described above, problems still occur during the game (freezes, crashes to the desktop, etc.), you should try to hard-bind the game to one of the cores. To do this, after launching the game, press Ctrl+Alt+Del, in the task manager that appears, right-click on the game, select Go to processes, then click again with the right button on the selected process and select Set affinity. In the window that appears, uncheck one of the cores, it doesn't matter which one, and then close the window, the task manager itself, and return to the game.
Doesn't help.
C13;172883
If, after the specified actions, the problems do not disappear, and you have an NVIDIA video card installed, you can try disabling multithreading optimizations in the video drivers. Launch the registry editor (Start -> Run -> regedit.exe), go to the address HKey_Local_MachineHardwareDeviceMapVideo and write down the address where the video card settings are located from the variable devicevideo0. Note that the specified address differs in Windows 2000 and Windows XP, in Windows 2000 it will look like \REGISTRY\Machine\System\ControlSet001\Services\nv\Device0, while in Windows XP \Registry\Machine\System\CurrentControlSet\Control\Video{DD18ED74-F584-4145-B29B-E3A6C6189FAA}\0000. Go to the specified address, keeping in mind that \Registry in this case indicates that the information is in the registry, and \Machine indicates that it is stored in the HKEY_LOCAL_MACHINE section. Click the mouse in the right part of the window, select Create - DWORD Parameter, name it OGL_ThreadControl and assign it the value 2. To disable multithreading in Direct3D applications, you need to create a variable WTD_EXECMODEL of the same type and assign it the value 0. [[COLOR="Red"Note that game developers usually react quite quickly to such problems, and before disabling dual-core support, it is worth checking if there is a patch for the game that fixes possible errors.

Added 17 minutes ago
Last time I was too hasty about the processor, I thought we were talking about the fifth game.
Doesn't help.


I read on some forum that Service Pack 2 of Windows XP is to blame, I don't know
In reply to King Arthur
18 years ago
Auto-translated
King Arthur;169910
What do your two cores have to do with it?
I've never heard of that before... I played everything on an Athlon X2 myself...
Look for the reason elsewhere, most likely it's an incompatibility with the video adapter or something else...
Do you have a video card with integrated graphics?
video ATI Radeon 1600 Pro. It used to work perfectly with the same video card on an Athlon 3000+ processor.
In reply to Gjiod
User Avatar
18 years ago
Auto-translated
Gjiod and Gilmor, please tell me what motherboards you have, we'll figure something out, and we'll definitely get the game running!!!
User Avatar
18 years ago
Auto-translated
Recently, I found a similar topic on the forum; there's a program that works well and reduces file size by 10-15%. The topic doesn't get much attention, so I'm not going to search for it right now. If anyone needs it, send me a message on ICQ. 432-146-477.

Statistics

Welcome our newest member: recijeb

Users Online 3 users 1368 guests