Dynamic recompiler
-
- Posts: 65
- Joined: Sun 22 Mar, 2015 10:16 pm
Re: Dynamic recompiler
Thank you I just get confused because it sounds like there is hope and than there is not. I did read that post but was thinking even that might be talking future high end hardware. PIII would be more than I need. Just trying to fill gaps with emulation for hardware I no longer have. And save some space. Supply, funds and space are all limited in my life and that is why I so very much appreciate projects like this one.
- SarahWalker
- Site Admin
- Posts: 2054
- Joined: Thu 24 Apr, 2014 4:18 pm
Re: Dynamic recompiler
There is hope for faster emulation, but it's not down the 'just make everything multithreaded' path that people keep suggesting - it's going to require a hell of a lot of work.
Re: Dynamic recompiler
As for AMD core counts, a few recent AMD Ryzen leaks strongly imply that the consumer CPUs may actually have twice as many cores (4 core i3-equivalents, 8-core i5 equivalents, 8-core 16-thread i7-equivalents). So I could be wrong there. But, like any pre-release, pre-actual-product-review pie-in-the-sky information, take with a sizable dose of salt.
Which, if true, may allow more Voodoo threads, but I don't actually know if that's possible, efficient, or anywhere near easy.
Which, if true, may allow more Voodoo threads, but I don't actually know if that's possible, efficient, or anywhere near easy.
Re: Dynamic recompiler
That information may be true, however, is probable means nothing for us (PCem users and developers) as Sarah just stated in in the post just above yours that more threads or cores just won't do for PCem as CPU emulation takes 90% of the CPU (host) work and that can't be split in threads.A. Naim wrote:As for AMD core counts, a few recent AMD Ryzen leaks strongly imply that the consumer CPUs may actually have twice as many cores (4 core i3-equivalents, 8-core i5 equivalents, 8-core 16-thread i7-equivalents). So I could be wrong there. But, like any pre-release, pre-actual-product-review pie-in-the-sky information, take with a sizable dose of salt.
Which, if true, may allow more Voodoo threads, but I don't actually know if that's possible, efficient, or anywhere near easy.
There may be 16 cores as standard in 5 years, but that won't change how PCem works
Re: Dynamic recompiler
"Which, if true, may allow more Voodoo threads..."omarsis81 wrote:That information may be true, however, is probable means nothing for us (PCem users and developers) as Sarah just stated in in the post just above yours that more threads or cores just won't do for PCem as CPU emulation takes 90% of the CPU (host) work and that can't be split in threads.A. Naim wrote:As for AMD core counts, a few recent AMD Ryzen leaks strongly imply that the consumer CPUs may actually have twice as many cores (4 core i3-equivalents, 8-core i5 equivalents, 8-core 16-thread i7-equivalents). So I could be wrong there. But, like any pre-release, pre-actual-product-review pie-in-the-sky information, take with a sizable dose of salt.
Which, if true, may allow more Voodoo threads, but I don't actually know if that's possible, efficient, or anywhere near easy.
There may be 16 cores as standard in 5 years, but that won't change how PCem works
Before you reply, please read the entire post.
Edit: I apologize for the tone of my post. I have had quite a bit of frustration in the past from people not actually reading what I wrote, and that bled into my reply.
Re: Dynamic recompiler
I read you entire post, maybe I misundertood it.
For what I read from Sarah, CPU emulation takes 90%, so, Voodoo and all other stuff takes the 10% remaining. A voodoo alone percentage is, of course below a 10%, and for what I see, it may not justify another thread for less than 10% usage. Also, Voodoo2 doesn't use more than 2 TMUs. How many Voodoos threads you want?
For what I read from Sarah, CPU emulation takes 90%, so, Voodoo and all other stuff takes the 10% remaining. A voodoo alone percentage is, of course below a 10%, and for what I see, it may not justify another thread for less than 10% usage. Also, Voodoo2 doesn't use more than 2 TMUs. How many Voodoos threads you want?
- SarahWalker
- Site Admin
- Posts: 2054
- Joined: Thu 24 Apr, 2014 4:18 pm
Re: Dynamic recompiler
CPU emulation takes ~90% of the main thread. Voodoo threads will run up to 100% utilisation each. Potentially increasing the number of Voodoo threads would improve peak Voodoo performance, but given that the current CPU emulation can't drive the existing Voodoo emulation at 100% it would be somewhat pointless.
Re: Dynamic recompiler
My apologies; I thought it was only the CPU that couldn't have threads added, with the implication that Voodoo threads could be.SarahWalker wrote:CPU emulation takes ~90% of the main thread. Voodoo threads will run up to 100% utilisation each. Potentially increasing the number of Voodoo threads would improve peak Voodoo performance, but given that the current CPU emulation can't drive the existing Voodoo emulation at 100% it would be somewhat pointless.
- SarahWalker
- Site Admin
- Posts: 2054
- Joined: Thu 24 Apr, 2014 4:18 pm
Re: Dynamic recompiler
Voodoo threads can be added, it's just that there's currently no point in doing so.
-
- Posts: 13
- Joined: Wed 17 Aug, 2016 1:30 am
Re: Dynamic recompiler
My english is not very good, perhaps I haven't understood it right,
there is a game, (Star Trek Armada),
which needs a Pentium 200 MHz minimum (this should be able to be emulated with PCem),
and the voodoo from PCem V11 can only reach the resolution 800*600. This is a qarter of what is maximum possible (1600*1200).
I don't know, but if there would be 4 voodoo-threads, wouldn't that be enough?
Is this not a good example?
Or have I understood something completely wrong?
there is a game, (Star Trek Armada),
which needs a Pentium 200 MHz minimum (this should be able to be emulated with PCem),
and the voodoo from PCem V11 can only reach the resolution 800*600. This is a qarter of what is maximum possible (1600*1200).
I don't know, but if there would be 4 voodoo-threads, wouldn't that be enough?
Is this not a good example?
Or have I understood something completely wrong?
Re: Dynamic recompiler
Resolution limitation comes from Voodoo and not from the CPU itself. Voodoo1 with 4MB (most standard) could only handle 640x480, those with 8MB or more could achieve 800x600. Same goes with Voodoo2 that can go as high as 1024x768.codehacker wrote:My english is not very good, perhaps I haven't understood it right,
there is a game, (Star Trek Armada),
which needs a Pentium 200 MHz minimum (this should be able to be emulated with PCem),
and the voodoo from PCem V11 can only reach the resolution 800*600. This is a qarter of what is maximum possible (1600*1200).
I don't know, but if there would be 4 voodoo-threads, wouldn't that be enough?
Is this not a good example?
Or have I understood something completely wrong?
1600x1200 is unthinkable by now, and also impractical to run with a Pentium 200. You'd requiere a high end Pentium II or Pentium 3, and of course a Voodoo3
Re: Dynamic recompiler
Adding multiple threads MAYBE a viable idea when (if) emulating a Voodoo4 or 5, like one thread could handle each VSA-100 chipcodehacker wrote:My english is not very good, perhaps I haven't understood it right,
there is a game, (Star Trek Armada),
which needs a Pentium 200 MHz minimum (this should be able to be emulated with PCem),
and the voodoo from PCem V11 can only reach the resolution 800*600. This is a qarter of what is maximum possible (1600*1200).
I don't know, but if there would be 4 voodoo-threads, wouldn't that be enough?
Is this not a good example?
Or have I understood something completely wrong?
Today's Voodoo 1 and 2 are fine with just one thread (if I understood correctly too)
- SarahWalker
- Site Admin
- Posts: 2054
- Joined: Thu 24 Apr, 2014 4:18 pm
Re: Dynamic recompiler
Again, you'd need a major speedup of the emulated CPU to make a Voodoo 4/5 worthwhile.
Re: Dynamic recompiler
Using a Voodoo graphics card (preferably a Voodoo 2) would most likely improve performance on a Pentium 200 MMX, but in my experience a Pentium II would still be needed for normal performance at that time, back in the late 90s and early 2000s. This being said, my old Pentium II 350 Mhz with a venerable Voodoo 3 graphics card (resolution 640x480) still ran that great old game a bit slow with the load times. Once in game, performance was good as long as you did not have too many objects on the screen at one time. The game had bugs back then, with game crashes a common thing. There were the occasional graphical error as well.omarsis81 wrote:Resolution limitation comes from Voodoo and not from the CPU itself. Voodoo1 with 4MB (most standard) could only handle 640x480, those with 8MB or more could achieve 800x600. Same goes with Voodoo2 that can go as high as 1024x768.codehacker wrote:My english is not very good, perhaps I haven't understood it right,
there is a game, (Star Trek Armada),
which needs a Pentium 200 MHz minimum (this should be able to be emulated with PCem),
and the voodoo from PCem V11 can only reach the resolution 800*600. This is a qarter of what is maximum possible (1600*1200).
I don't know, but if there would be 4 voodoo-threads, wouldn't that be enough?
Is this not a good example?
Or have I understood something completely wrong?
1600x1200 is unthinkable by now, and also impractical to run with a Pentium 200. You'd requiere a high end Pentium II or Pentium 3, and of course a Voodoo3
Today the best way to run that game would be with a Windows XP or 7 computer. Game crashes were far less frequent. The video card should not be an issue, though NVidia cards seemed to be less compatible than others I have used. Windows 8 and 10 are always a nightmare for these games.
A virtual pc running XP seems to never work right with Armada.
If you are unable to get an XP computer, then dgvoodoo 2 is a good option for getting Armada to work on modern computers. You might even be able to run the game at 1600x1200. I never tried that, but it will work with 1366x768. That is more than you could do with a Pentium I or II. You would need the Armada 1.3 patch installed first, but with a little work you can get the game working fairly well on a modern pc. The in-game menus always switch to windowed mode, but when in-game you will always play in fullscreen mode. Graphical errors when switching from menu to in-game can be solved by clicking on the Objectives button in the menu. Game crashes were not common at all.
I am certainly not trying to discourage use of PCem for Star Trek Armada, if anything I will be trying it myself when I get the chance. I do not like my screen switching from fullscreen to windowed mode any more than anyone else. A 300 Mhz MMX pc with a Voodoo 2 will probably approximate my old pc from decades past. It would be amazing to do that. I am simply giving you some options for a game that is notoriously difficult to run on modern PCs.
I hope you found this post helpful. I really like PCem. It has immense potential given the extreme difficulty of running most games with modern PCs. I look forward to my next chance to use the software, with hopefully a P200 MMX successfully emulated.
tk421
Re: Dynamic recompiler
That is what I meant, although not what I literally, semantically said.SarahWalker wrote:Voodoo threads can be added, it's just that there's currently no point in doing so.