Post subject: What about VMWare?
Joined: 12/6/2008
Posts: 7
Just had a wild thought -- what about using VM programs like VMWare? They allow savestates, slow motion, and, since you can savestate the whole thing with the state of a screen recorder that runs under the VM... it also supports rerecording. (That's if the particular program doesn't have native rerecording, so you can still do it.) Of course you need a stupidly powerful PC for that, but man... TAS for PC games? Count me in!!
Player (36)
Joined: 9/11/2004
Posts: 2623
But it doesn't allow input recording so there's no way of verifying.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Joined: 1/26/2009
Posts: 558
Location: Canada - Québec
since the operating would have to be open-source as well, this might be annoying... my best guess would be to create a TAS-OS based with something like reactOS (should support most basic game and other before 1999) But we may only looking for abandonware and free game to avoid problem for getting the correct and exact game, etc. Then someone create an iso with a fixed configuration(minimal system, default resolution, and other thing) and every full playback, the game should start from the first time that the .exe is executed for installing the game and once installed we should be able to see the actual problem(this process should help for avoiding desynch issue). but first of all, yeah... adding tasing feature on a virtual machine is probably harder than any current emulator.
Joined: 11/1/2007
Posts: 100
BadPotato wrote:
the game should start from the first time that the .exe is executed for installing the game and once installed we should be able to see the actual problem(this process should help for avoiding desynch issue).
You need to record right from power-on because the PRNG samples not only from the system clock but also from user input. Everything up until the GameCube relied on controller input for PRNG seeding, so you'd be dealing with a totally different beast.
Emulator Coder, Site Developer
Joined: 11/6/2004
Posts: 833
This has come up before. My recommendation would be qemu. It can be made cycle-deterministic, is cross-platform (at a speed expense), etc. But what games? If you want to do DOS games, I'd direct you to Bisqwit's efforts with Dosbox. If it's windows... holy crap that's a can of worms from Microsoft.
Joined: 2/19/2007
Posts: 424
Location: UK
QEMU is far from deterministic enough, and making it so seems very difficult. On the other hand, I spoke to somebody in #tasvideos who was almost done making a deterministic (and hopefully rerecording-enabled) version of JPC, which is another PC emulator. So getting this is perhaps not too far fetched. There is no reason for there to be any cans of worms involved either, no matter whose worms those would be. The way to do this is just like how we handle sram now: When a movie needs to start from sram, one has to provide a movie that generates said sram, right? Here is how a TAS of some windows game would work: Instead of one having a rom of the game (which would be a can of worms, as you say), runs of the game would start from a standardized savestate. This savestate would be one where windows and the game itself + dependencies have been installed, and the game exectuable just started. This would serve as a common starting point for all runs of the game. This savestate would ofcourse not be distributed, since that would, again, be a can of worms. What would instead be distributed is an emulator movie which generates this savestate. This movie would start from another savestate (the "windows just installed" savestate), and would contain input like "eject CD tray", "insert CD with hash 5bba729dcfe9", "close tray", "move mouse to X,Y", "click right button", etc. etc., which would lead to the game being installed and configured. The savestate the "install game"-movie started from, which is the "windows just installed"-savestate, would be generated in much the same way, but this one would start from a standardized plain state (downloadable from tasvideos, and without anything installed), and not from another savestate. So each user would have to make sure they have the correct CDs, and would then have to play back the "install windows" and "install game" movies once in order to generate the standard savestate from which tases of the game would start. And since nothing but input is distributed, there can be no problems with this. The only conceptually new thing needed for this is an emulator movie instruction to insert a specific CD on a given frame. Just like the ROMs are checksummed to make sure the right one is being used when playing back a movie, so would the starting savestate be. In fact, the starting savestate plays almost exactly the same role as the rom, does now, except that one has to generate it oneself (by playing back a movie).
Tub
Joined: 6/25/2005
Posts: 1377
amaurea wrote:
So each user would have to make sure they have the correct CDs, and would then have to play back the "install windows" and "install game" movies once in order to generate the standard savestate from which tases of the game would start. And since nothing but input is distributed, there can be no problems with this.
Except that the input for installation does contain a valid license Key and still has to be activated. If everyone provides his own license key and activation, the installations will differ. ReactOS or linux+wine are the way to go, creating a lightweight distro should be possible. But creating a deterministic PC-Emulator that still provides accelerated 3D-gfx seems very difficult.
m00
Banned User
Joined: 12/5/2007
Posts: 742
Location: Gone
I would not go after VMWare. They don't appear to be an open-source emulator to me, and they do require licensing in order for use. Most mentioned qemu and maybe even Bochs. If I was in this situation, there is no telling which open-source PC emulator will stand out for TAS'ing.