Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
I think I'm ready to try this one out now that I'm more experienced. We're going to need some sort of way of tracking enemies for opening locked doors because we have no sound cues, and a minimap script would be helpful in general, so I came up with this: https://www.youtube.com/watch?v=8lFgmGcWbGg BJ is the orange one, guards are brown, and the dogs are pink. It pulls tile data from the RAM to construct the map, although it needs to be refreshed manually through the lua console for each level (having it pull it every frame is trivial to do but makes it run extremely slowly). One nice thing about the tile data is that the bytes for doors contain their corresponding index in the door openness table, which is quite handy for visualizing the doors. The object table holds all the relevant enemy information, although I only have a couple IDs so far (regular guard and the dog) so the script is not complete. The other encode displays the damage dealt at the bottom of the screen and I couldn't find that version of the script, so if anyone has that around I can patch it in.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Wow! Post the script?
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.
Joined: 2/28/2012
Posts: 159
Location: Philadelphia
That script is nutty! I kinda want to try making some encodes of Doom TASes with a similar setup, though I'd probably just fudge it by dumping one instance of the demo normally and one with the automap up (most likely the cheats-enabled automap that displays all things on the map).
Post subject: I am so thrilled someone is taking this on!
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
Thanks, slamo! I've been soliciting various people asking for someone to take on a full run of the shareware-available levels of Wolfenstein 3D for a while to give me more time to focus on GDQ / TASBot stuff and I'm glad to see someone taking this on. Please let me know if there is anything I can provide assistance with, especially the controller script that converts analog Xbox / Xbox 360 analog stick positions into mouse acceleration. I am, as is often the case, indebted to Ilari for said script. Best of luck!
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
Here's what I've got for the script so far - http://tasvideos.org/userfiles/info/27792961681989279 Note that Hans Grosse will show up as a white dot since I don't have his ID yet, and I don't know if this will work with the full version (if not it should be easy to offset everything though)
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
It never occurred to me to post lua scripts as userfiles, likely because I've been working with so many esoteric movie formats that it rejects outright that I never thought to try it. :) I have located the Wolfenstein 3D analog-stick-as-mouse-input script from Ilari (that I tweaked slightly to convert from an Xbox 360 controller which he used for testing to work with an original Xbox controller that I was using at the time). The script requires using a custom input method (or rather, jpc-rr at the time I was initially working on this required building and enabling certain things that I don't have well documented). I do not appear to have anything well documented so we'll have to work with Ilari to reconstruct how to properly use this script but it's definitely doable.
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
I figured out the movement, turns out you don't need a controller. It revolves entirely around the jpcrr.hold_mouse_motion function, which is undocumented but still made its way into the public releases. I'm gonna use console commands to move the mouse, it will be more precise that way anyway. Here's the latest version of the script. http://tasvideos.org/userfiles/info/28162714919636898 Some notes about my early findings:
  • The "lurch" at the start of levels depends on when you start moving the mouse during the fade-in. You can even go backwards if you time it poorly. The magnitude of the mouse movement affects how far you lurch as well.
  • You can also lurch at an angle by moving the mouse in the x direction during fade-in.
  • I'm going to redo E1L1 since I found some improvements. It's possible to get an even better lurch, and rotating while the first door is opening instead of rotating in the hallway saves time as well.
  • Something strange I noticed in the WIP: the second guard in the final room before the elevator gets hit with 62 damage (I verified this is indeed right) at a distance of 6 or 7 tiles. According to the damage formula, this should not be possible. This needs to be looked into either as a useful bug or a misunderstanding of the damage formula. Never mind, forgot that you do double damage if it's a surprise attack...
So this is definitely good to go now, I'll start running through some levels and see how it goes.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
Got the 0:15. 32 frames saved overall on the old WIP. Link to video Improvements:
  • Slightly better lurch.
  • Turning before the first hallway instead of in it.
  • Turning and moving at a diagonal in certain rooms. Previous research seems to contradict this and suggests moving in straight lines, but I was definitely able to save a couple frames this way. Straight lines remain the best way in very small rooms and thin hallways but for larger rooms diagonals are faster.
  • The biggest time save involves the guard that opens the door for you. Shooting him as early as possible while on the move lets you run right through the door instead of stopping and turning.
  • Opened the elevator door a little earlier. The old WIP was in the process of shooting which delayed this.
I feel pretty good about this engine now, but if anyone sees something wrong please let me know.
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
slamo wrote:
Got the 0:15. 32 frames saved overall on the old WIP.
Nicely done! I'm done with AGDQ and can possibly help out if there is something sane I can do. Is any of my input even left in this run? :) Thanks for all of your hard work!
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
dwangoAC wrote:
slamo wrote:
Got the 0:15. 32 frames saved overall on the old WIP.
Nicely done! I'm done with AGDQ and can possibly help out if there is something sane I can do. Is any of my input even left in this run? :) Thanks for all of your hard work!
Well, the rest of the run is going to be pretty insane, but if there's any particular level you want to do, just let me know. All your level 1 input is gone but you still have the setup/menus!
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
Great luck to you! Look forward to see the whole game TAS!
TASing is like making a film: only the best takes are shown in the final movie.
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
slamo wrote:
Well, the rest of the run is going to be pretty insane, but if there's any particular level you want to do, just let me know. All your level 1 input is gone but you still have the setup/menus!
Sounds good - hit me up on IRC, I may be able to route a level or something but I don't want to overcommit either. I am super happy to see this moving!
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
I'm getting the hang of RNG manipulation and updated the script to display upcoming damage rolls. It's been a huge help so far. The RNG advancing depends on how many enemies are awake and how many can see you, so moving around in a strange manner to get in and out of cover is the most reliable way to do it. Here's what I've got for E1L2. The segmented run gets a 0:29 on this level so this is a huge improvement. Link to video
  • Backstrafing is usually preferable to rotating while going around a corner.
  • List of extremely unlikely things that happened: Hitting the first guard from the maximum distance, killing the first SS in 2 shots, killing the SS in the last room with 3 shots from that distance, and completely avoiding damage again.
  • I opt to kill the first SS near the key room to get the machine gun, since he will tear through me if I try to ignore him anyway.
  • It's often preferable to go around certain enemies rather than stop and shoot.
Again, please let me know if you see any improvements. I won't be posting too many more WIPs and I want to make sure I get the fundamentals down before I get too far.
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
Yeah... Bullets seems to fly through the walls! I've downloaded your video and watched it frame by frame. I don't know all the game mechanics, so you can ignore some of my notes. * When you entered the room with the key on 0:13, a dying dog blocked you for 1 frame. Isn't it better to kill the dog first, and then hit an SS twice or even kill him? (killing SS is not necessary, it depends on you) * You took a key and was running forward for 2 frames before you start going back. Will there be enough inertia to start running back 1 frame earlier (and take the key in the prosess of stopping)? * After that your turning was very slow (8 frames). Can it be faster? You spent only 1 frame on turning at the beginning of the level. * On 0:14 you ran 1 frame back and then got back to the previous place. It's done for manipulations? * You was standing in front of the switch for 10 frames before it turned. Does it work like that? If not, please edit the previous map. Map 1 seems to be OK! Great luck to you!
TASing is like making a film: only the best takes are shown in the final movie.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
Dimon12321 wrote:
Yeah... Bullets seems to fly through the walls! I've downloaded your video and watched it frame by frame. I don't know all the game mechanics, so you can ignore some of my notes. * When you entered the room with the key on 0:13, a dying dog blocked you for 1 frame. Isn't it better to kill the dog first, and then hit an SS twice or even kill him? (killing SS is not necessary, it depends on you) * You took a key and was running forward for 2 frames before you start going back. Will there be enough inertia to start running back 1 frame earlier (and take the key in the prosess of stopping)? * After that your turning was very slow (8 frames). Can it be faster? You spent only 1 frame on turning at the beginning of the level. * On 0:14 you ran 1 frame back and then got back to the previous place. It's done for manipulations? * You was standing in front of the switch for 10 frames before it turned. Does it work like that? If not, please edit the previous map. Map 1 seems to be OK! Great luck to you!
Thank you for the feedback! Some of these are indeed game mechanics: dying enemies can be walked through, the movement at 0:14 is due to bumping into an enemy, and the pause in the elevator is unavoidable. The game lets you pre-rotate while the level is loading which is why the first rotation is done instantly, otherwise it has to be done at 5 degrees per frame. I've been thinking and you're right about the key room though, I suspect the turn-around there could be handled better. It's tricky because you can't strafe and rotate at the same time, but I think backstrafing out of that room and rotating in the big room should be faster.
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
slamo wrote:
I think backstrafing out of that room and rotating in the big room should be faster.
I think you don't need to turn around in the big room. Try to run backwards all the time until you reach an area with a dog. I'm writing from a tablet so I can't provide the map with my idea. I hope you'll catch it! :-) Otherwise, I'll make it tommorow.
TASing is like making a film: only the best takes are shown in the final movie.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
Dimon12321 wrote:
slamo wrote:
I think backstrafing out of that room and rotating in the big room should be faster.
I think you don't need to turn around in the big room. Try to run backwards all the time until you reach an area with a dog. I'm writing from a tablet so I can't provide the map with my idea. I hope you'll catch it! :-) Otherwise, I'll make it tommorow.
I get what you're saying, but without rotating, I would have to run backwards without strafing after leaving the key room, which is relatively slow. For a small room that would probably be faster but at that distance it's better to rotate a bit and then backstrafe. Anyway I cut 14 frames by handling the key room better and using some better running angles (still a 0:17). Time to move on I think.
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
Time to move on. By the way, are you going to use the secret room before fighting with Grosse?
TASing is like making a film: only the best takes are shown in the final movie.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
Dimon12321 wrote:
Time to move on. By the way, are you going to use the secret room before fighting with Grosse?
Probably not. I think if I get good enough RNG I can skip the chaingun, and ammo won't be an issue.
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
How the progress? Can I help you with something?
TASing is like making a film: only the best takes are shown in the final movie.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
It's moving along pretty well. I've just about finished up E1L4. Times so far: E1L1: 0:15 E1L2: 0:17 E1L3: 0:16 E1L4: 0:15 (might be able to cut some frames, but still gonna be 15) I'm surprised how much time I'm cutting off the segmented run, for example he gets a 0:30 in E1L4 and I've cut that in half. The map script helped bigtime with the door trick. I probably won't post any more WIPs unless I reach something really problematic, since the routes are already figured out and the action is so frenetic that it would be difficult for anyone to offer advice. Should take a few weeks or up to a month to finish E1.
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
What should I do to set the emulator correctly? Using r11.7-precompiled. I've imported floppy.img and Wolf3d.img (originally called ''Wolfenstein 3d (1992)(Activision Publishing Inc) Game''). I did no changes to PC settings: CPU freq. - 50; memory size - 4096; modules - org.jpc.modules.BasicFPU,org.jpc.modules.SoundCard,org.jpc.modules.GMIDIInterface What should I press in DOS to start the game? Thanks!
TASing is like making a film: only the best takes are shown in the final movie.
Reviewer, Expert player (2394)
Joined: 5/21/2013
Posts: 414
Setup sucks, I have a snapshot that gets you up all the way to the episode select screen: https://dl.dropboxusercontent.com/u/30177754/WolfMenuSnap.jrsr Make sure you're using registered version 1.4 or the image won't match up. There's also a new version of the lua script you'll definitely need to optimize the game: http://tasvideos.org/userfiles/info/28795717603126010
Dimon12321
He/Him
Active player (480)
Joined: 4/5/2014
Posts: 1128
Location: Ukraine
OMG! You'd better NOT see this: https://cloud.mail.ru/public/KHpV/XiGgge7nQ The top screenshot shows the error when I load your snapshot as a snapshot, the bottom screeshot - as a movie. I think I should do something else than using JPCRR =)
TASing is like making a film: only the best takes are shown in the final movie.
Active player (434)
Joined: 2/5/2012
Posts: 1693
Location: Brasil
are the other episodes being worked on?
TAS i'm interested: megaman series: mmbn1 all chips, mmx3 any% psx glitched fighting games with speed goals in general