Reviewer, Expert player (2434)
Joined: 5/21/2013
Posts: 414
True, doing it that way would allow more CDs. If we need to swap to a previous CD, we can just repeat the file path in the list. Floppies could be done in much the same way, just with a different hotkey (different ones for A: and B:).
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Being able to swap between 10 CDs with hot keys should cover almost everything. The titles that use more I'm not even sure are suitable for publication on TASVideos, so it might be moot. Floppy disks on the other hand can be an issue. Some games went absolutely nuts on floppy disks. I think most of those games eventually had a CD-based re-release, but for anything that didn't, 10 will not cut it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
If anything, this one feature could be sent upstream as a patch (PCen doesn't accept pull requests).
slamo wrote:
True, doing it that way would allow more CDs. If we need to swap to a previous CD, we can just repeat the file path in the list.
Yeah, or put them in the string in any non-linear order we want.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Player (69)
Joined: 6/22/2005
Posts: 1050
feos wrote:
would "previous CD" ever be needed?
Yes. For example, The Journeyman Project 3: Legacy of Time has you switching between CDs to go to different locations, and you can change locations at basically any time. IDK how much backtracking is necessary in an optimal run, but there could be some. The hotkey idea with a "next" option sounds good to me.
Current Projects: TAS: Wizards & Warriors III.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Many adventure games broke up their data by location, and you'd have to swap floppies or CDs as you moved around. Most adventure games also require revisiting past areas with new items collected, so at least a few will require disk juggling. How about this? -User up front can specify all the disk images that might be used for each removable device. -There are forward and back cycle buttons (hot keys) to loop through the list of disk images for each device. -There's a button to replace the currently loaded disk image with the current selection from that device's cycle. We'd want information somehow provided to the user regarding the disk cycling/replacing so they know what they're doing. But at the same time, I don't think we want the cycling itself to show up in encodes. We probably do want information like "Disk in drive B: replaced with disk image 4" to show up in encodes.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
It's just a regular input, similar to what we have with playstation and fds, and we don't put that into encodes. I think this workflow would be ideal:
CD_path_var = file1.ext;file2.ext;file1.ext;file5.ext
In the cfg file for a given machine. This would queue 3 file paths in a specific order that the author plans to use them in, and after pressing the "next image" command, the emulator would simply load the next image in the queue.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Sure, but you don't want visual feedback letting you know you pushed it and what the current one is?
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
libTAS will show what key was pressed to activate the command. And PCem does console logging, I just don't know if it reports image changes (it should).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Reviewer, Expert player (2434)
Joined: 5/21/2013
Posts: 414
If the precedent is that disc switches don't show up in encodes then we should probably stick with that. We could just have a "disc switched: path" message in the console, that should be good enough to let us know it worked.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
But you also want to see what you're cycling through in the console, before you make the selection.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Reviewer, Expert player (2434)
Joined: 5/21/2013
Posts: 414
Here's what I've got for a late 90s build. If you're testing on Windows, make sure you download the newest PCem Windows build in the first post because this uses a GPU that was just made single-threaded. If you're testing on Linux, you should build the latest commit. https://drive.google.com/file/d/1lRd6cNJWWGYv7FjbMpbV32NPzD-9VUiu/view?usp=sharing I tested Quake, Carmageddon, and Snood and they all worked without a hitch. This config is not really suitable for casual play unless you have an insanely good PC (maybe lower the clock speed if you want), but it should be fine for TASing. The era for this config will have the bulk of newly TASable games. EDIT: I had to repackage all of these because the config files didn't work in Linux (newlines are bad and dumb). It's fixed now, the links are all the same: Late 80s Early 90s Late 90s
Joined: 9/12/2014
Posts: 540
Location: Waterford, MI
Does midtown madness 2 work under the 90s config? Under "working" from the capability list: Midtown Madness 2 (demo) GA686BX, Pentium II 233, Voodoo3 3000, SB16, 256MB, Windows 98SE
Editor, Player (69)
Joined: 6/22/2005
Posts: 1050
Is the latest commit from here still the preferred one for testing in Linux? Building fails for me in Tiny Core with a bunch of "undefined reference" messages, inluding:
  • undefined reference to ddc_i2c_change in vid_s3_virge.c
  • undefined reference to voodoo_flush in vid_voodoo.c
  • undefined reference to mvhd_close in wx-config.c
Current Projects: TAS: Wizards & Warriors III.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Builds and runs for me on my lubuntu 20.04. If it's a clean clone/build, then your best bet is asking kilaye.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Danfun64
He/Him
Joined: 7/25/2007
Posts: 50
While I understand the simplicity in having three configurations, I can't help but feel that having an 8088 configuration (for the long list of early 80s games that predate the 386) and a 486 configuration (for games that run too slow on a 386 but too fast on a Pentium) would be very helpful. Is there any interest in creating official configurations for these microprocessors to go alongside the other three?
Reviewer, Expert player (2434)
Joined: 5/21/2013
Posts: 414
If there's a good reason for needing different configurations, and instructions plus a verification movie for the setup can be provided (like we have for the other configs), then we'll probably allow it. I don't personally have any plans to make new ones but anybody can get one approved if they do it correctly.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Forgot to post what we ended up supporting officially. https://tasvideos.org/EmulatorResources/PCem#MovieSubmissions
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Danfun64
He/Him
Joined: 7/25/2007
Posts: 50
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Nice! What guide did you use to build it?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Danfun64
He/Him
Joined: 7/25/2007
Posts: 50
Multiple guides, most notably this and this. I compiled using MSYS2's 32-bit MinGW mode. After issuing a "pacman -Syuu" command to make sure everything is up to date, I ran the command "pacman -Sy mingw-w64-{i686,x86_64}-ntldd-git mingw-w64-{i686,x86_64}-toolchain mingw-w64-{i686,x86_64}-SDL2 mingw-w64-{i686,x86_64}-openal mingw-w64-{i686,x86_64}-wxWidgets mingw-w64-{i686,x86_64}-libpcap mingw-w64-{i686,x86_64}-cmake mingw-w64-{i686,x86_64}-libslirp" to get everything it needed. Then, after cloning the repository with git, I ran the commands in the forum post linked as the second guide (though running "./configure --enable-networking --enable-release-build" and "make" seems to work just as well. I copied the specific folders and files from the root directory of the pcem folder to another folder, and then copied the pcem.exe from the src folder into the root of the second folder. After making a copy of the second directory, I then opened the pcem.exe in the MSYS2 MinGW 32-bit shell and checked out every dependency using Process Explorer, and copied over all 22 dlls to the root of the copied directory. Then I zipped it up and uploaded it. Although apparently, the latest version of PCem's upstream has a cmake solution that the TASVideos fork lacks.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Added your build to the release.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Post subject: Major breakthrough for PCem + Windows
Reviewer, Expert player (2434)
Joined: 5/21/2013
Posts: 414
We had a pretty major breakthrough for PCem + Windows, and I think we actually found a method that should reproduce a Windows installation reliably for multiple people. For a long time the main hurdle was the fact that Win9x required a CD key to use it at all, and we obviously couldn't provide an installation movie where we end up distributing a serial. However, Windows XP SP3 does not immediately require you to enter a CD key, instead letting you have a 30 day trial period before you have to activate it. It retains full functionality in this trial period, so it should be fine for our purposes (unless your TAS is more than a month long somehow). Obviously we cannot distribute this config like we did the DOS ones, but if we provide the SHA1 of the Windows XP disc and an installation .ltm, then it shouldn't be too hard to produce for yourself. I have been testing Windows XP in PCem and it surprisingly works great with a few tweaks. This will finally take full advantage of PCem's capabilities. It should be able to run any Windows game from 2000 and earlier, and probably some after it, depending on the system requirements. Here is what I'm thinking for the config, this is the best hardware PCem has: Pentium II 450 MHz 256 MB RAM 3DFX Voodoo 3 3000 (16 MB VRAM) Sound Blaster AWE32 4 GB hard drive (is this enough?) 72x speed CD drive PS/2 mouse Some notes about the config:
  • DirectX 9.0c automatically gets installed with Windows XP SP3.
  • Sound Blaster does not get automatically configured for some reason, but is easy enough to install manually.
  • The official Voodoo 3 drivers don't get along too well with XP, but some dedicated people have made 3rd party drivers that I've tested and can confirm fix any 3D issues I was having. It comes with 3DfxTools so you can tweak settings for your game if needed.
Is there anything I'm missing here? And please respond if you think anything else would need to be installed for the config.
Dimon12321
He/Him
Editor, Reviewer, Experienced player (595)
Joined: 4/5/2014
Posts: 1217
Location: Romania
Doesn't it correlate with what you and feos responded to me earlier about non-deterministic Windows installation? So, if we use only one specific distribution, then we get it working fine, right? How will it all work? 1. From what moment should the actual movie begin? Can put an installed game (folder + .exe) on a PCem hard drive and start a libTAS movie recording where we simply surf the explorer up to the game .exe, launch it and go on with the game as usual? Or should we begin with mounting a game image with, let's say, Daemon Tools and install it live, then launch it? - Can it be a separate movie? 2. What about game distributions? If we record us installing the game, will it be ok to show a CD key for a game? Specific distributions, that free you from using it or keeping a game disk in the reader to make it work, are actually more stable and convenient. I guess OpenAL installation should be added to the config. Or should it be included into the game installation part? Visual C++? Even though I can think of 2005+ distributions only, maybe elder versions existed that had to be installed back in the day.
TASing is like making a film: only the best takes are shown in the final movie.
Site Admin, Skilled player (1250)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Dimon12321 wrote:
Doesn't it correlate with what you and feos responded to me earlier about non-deterministic Windows installation? So, if we use only one specific distribution, then we get it working fine, right?
We couldn't accept Windows activation in movies, and we would be unable to ensure sync if Windows is installed outside libTAS, so there's no way to make judges and publishers activate it separately or secretly. That was the main obstacle.
Dimon12321 wrote:
1. From what moment should the actual movie begin? Can put an installed game (folder + .exe) on a PCem hard drive and start a libTAS movie recording where we simply surf the explorer up to the game .exe, launch it and go on with the game as usual? Or should we begin with mounting a game image with, let's say, Daemon Tools and install it live, then launch it? - Can it be a separate movie?
Installing the OS will be a separate movie that we can host and distribute, and if your game takes more than a few minutes to install, you can prepare it in yet another movie, and provide it alongside your submission. Pretty similar to DOS rules.
Dimon12321 wrote:
2. What about game distributions? If we record us installing the game, will it be ok to show a CD key for a game?
That sounds like a problem yeah, similar to problems with activating your OS.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.