Linguica Posted June 14, 2015 http://doomwiki.org/wiki/External_control_driver http://www.doomworld.com/idgames/?id=utils/misc/ctrlapi.zip https://www.dropbox.com/s/6y1vmbbvddk32o7/sr50.zip?dl=0 1 Quote Share this post Link to post
Memfis Posted June 14, 2015 This is a great find, thank you! Feels good to know that all these TAS demos are "legit" after all. 0 Quote Share this post Link to post
abyrvalg Posted June 14, 2015 Checkmate atheists! This is just amazing, thank you for this research. While we're at it, are there any caveats to this approach? You've already mentioned that one could have turbo tics without the -turbo command, but what about the other side of the spectrum, - is there anything we can't do that otherwise can be done with mouse/keyboard/joystick? Also, it seems like none of the "official" drivers allow for SR50 on turns, this can only be achieved by modyfing the ini (or creating your own), thus creating your own homebrew driver, is that correct? In that case from a complete purist's perspective it'll probably be still reasonable to be against SR50 TRXXX tics in the regular TAS runs, and create a separate category for the API-TASes and allow turbo and sr127 on turns within that category. 0 Quote Share this post Link to post
Linguica Posted June 14, 2015 jongo said:is there anything we can't do that otherwise can be done with mouse/keyboard/joystick? I can't think of anything - the game uses the ticcmd_t structure to define the input data for each tic, and the external control API lets you pass arbitrary data to the ticcmd_t structure, which logically includes any and all "legal" configurations. I do understand the dilemma this presents. The external control API was a real, purposely built part of the original game, with at least one actual driver released for it. It seems somewhat ridiculous to disallow it as a control scheme for demo recording - what, Wingman Warriors are banned? But at the same time, it has zero sanity checking on the data passed to the game that way, and lets you ludicrously do GF127/SR127, which is, oh, a mere 359% of normal running speed. You couldn't even say "well, allow anything that doesn't result in a %s is turbo message", because the game only checks the forward component for that, so you would end up with demos with GF50/SR127, which would be just awful. Another way would be to say, "well, we'll allow the exact input supported by the default Wingman Warrior driver", which would result in GF100/SR100 with full control: GF50/SR50 via keyboard / mouse, plus GF50/SR50 from the Wingman Warrior, plus turning control from the Wingman Warrior. (Has anyone ever done this IRL? I feel like SOMEONE must have noticed that you could haul ass with one hand on the joystick and the other hand on the keyboard.) 1 Quote Share this post Link to post
Linguica Posted June 14, 2015 And while this was sitting in the post preview window I went and did a little research and found out that, oh hey, there were in fact other devices that used this external control API. Like, say, there was this thing: Called the Assassin 3D, it was basically a souped-up trackball. It was unique in that you plugged your joystick into the Assassin 3D and then plugged that into your computer, and the Assassin 3D's software integrated the joystick commands along with the trackball commands. The year after its release the company licensed out the technology to MadCatz, which came out with the MadCatz Panther, which was basically a rebranded Assassin3D; and the MadCatz Panther XL, which was the same trackball integrated into a complete joystick / trackball device, and which used the same drivers: "Well that's all well and good" you say, "but how do you know it used the external control API?" Well I don't KNOW it, but I downloaded the original DOS drivers, and this gives me a pretty good clue: Also, amazingly, the original(?) website with information about setting up the controller for Doom is still active: http://www.vsavoldi.com/fpweb/info/doom2.htm And even more amazing, there's actually a page of Doom 2 demos too! Something happened with the LMPs and they're all weirdly corrupted, but they seem to play back fine for the first ten or twenty seconds. And what do you know, here is a demo dating from 1997, with SR50 and turns: 1 Quote Share this post Link to post
abyrvalg Posted June 14, 2015 lol, it keeps getting better, i wish i had one of those now >:D 0 Quote Share this post Link to post
Maes Posted June 14, 2015 In the end, hardcore Doomers will only use a helicopter cockpit -with complete analog and independent roll (strafe), pitch (fw/back but also look up/down), collective/throttle (speed) and yaw (turn) controls ☺ Of course with the external control API. 0 Quote Share this post Link to post
Jonathan Posted June 14, 2015 Well, Compet-n movement rules always forbade anything not possible with a standard mouse+keyboard setup. As the relevant section says: The player cannot have GF>50 and GB>50 tic. The player cannot have SL>50 or SR>50 tic. The player cannot have SL>40 or SR>40 tic if turning (TL>0 or TR>0). And this was enforced by checking of suspicious demos with LMPC and other bespoke tools, I believe. Now, this was probably intended more at catching people manipulating demo files via LMPC or hacked .exes, but it wouldn't surprise me if Adam Hegyi etc. were also aware of the possibility for some obscure controllers to produce unusual movement. 0 Quote Share this post Link to post
fraggle Posted June 14, 2015 Linguica said:I went and did a little research and found out that, oh hey, there were in fact other devices that used this external control API. Like, say, there was this thing: ... And even more amazing, there's actually a page of Doom 2 demos too Woah, amazing. I knew about the Wingman Warrior but I didn't realise there were others. I wonder if there was documentation of some kind provided to manufacturers. I wonder how many other devices out there made use of it. 0 Quote Share this post Link to post
VGA Posted June 14, 2015 http://www.vsavoldi.com/a3dradio/index.html Ha! Watch that video01 at the bottom, people using this device in a Quake Lan 0 Quote Share this post Link to post
Linguica Posted June 14, 2015 fraggle said:I wonder if there was documentation of some kind provided to manufacturers. Well, I think we can assume there must have been *some* sort of guidance, otherwise they wouldn't even know it existed, much less how to properly invoke it / pass conforming data. 0 Quote Share this post Link to post
fraggle Posted June 14, 2015 It might have just been a header file. I'm wondering if they bothered with anything more formal. Anyway, I updated the wiki. 0 Quote Share this post Link to post
Blastfrog Posted June 14, 2015 jongo said:Checkmate atheists!Eh? What on earth does atheism have to do with any of this? 0 Quote Share this post Link to post
VGA Posted June 14, 2015 Sodaholic said:Eh? What on earth does atheism have to do with any of this? It's a meme. It's misused in this case I believe. It usually fits in after something supposedly unexplainable has been mentioned. :-D 0 Quote Share this post Link to post
Maes Posted June 14, 2015 Jonathan said:it wouldn't surprise me if Adam Hegyi etc. were also aware of the possibility for some obscure controllers to produce unusual movement. Even if it is possible to have such "unusual" input combinations -even assuming that you connect some sort of devilish controller that allows the player to do 180 turns on a dime with no loss of momentum -what tells us that anybody will actually be capable of meaningful performance, with this increased freedom, in a real-time scenario? Even assuming that it is, a new speedrunning category should be created -Real-Time Unrestricted, where the use of the external control API will be allowed, under the condition that all inputs must be real-time, and not pre-programmed, not even as controller macros or shortcuts, except for those that generate a single gametic event. E.g. you may have a controller with a key that does a 180 turn in one gametic, but not one that executes a sequence of different gametic actions with just one player command at the controller. Of course, once you allow a new Compet-N league for "super" controllers that are considered potentially game-breaking, it would make sense to make special leagues for "sub" controllers that are considered handicapping, too. E.g. a pure "vanilla gamepad" or "vanilla joystick" leage, a pure "keyboard league", a pure "single mouse league" (no movement keys mapped to keyboard) and then we'll really be able to see what the different performance caps between input methods are -if such caps really exist. 0 Quote Share this post Link to post
Foxpup Posted June 15, 2015 Linguica said:(Has anyone ever done this IRL? I feel like SOMEONE must have noticed that you could haul ass with one hand on the joystick and the other hand on the keyboard.) I've heard rumours that trick joystick use will trigger the turbo message without -turbo, but I always thought it was an Urban Legend of Zelda, or else cheaters trying to shift blame away from themselves. 0 Quote Share this post Link to post
abyrvalg Posted June 15, 2015 VGA said:It's a meme. It's misused in this case I believe. It usually fits in after something supposedly unexplainable has been mentioned. :-D Yeah, purposefully misused because i found it funny and fitting well enough due to recent tasvideos-related discussions. 0 Quote Share this post Link to post
Jonathan Posted June 15, 2015 Maes said:Even if it is possible to have such "unusual" input combinations -even assuming that you connect some sort of devilish controller that allows the player to do 180 turns on a dime with no loss of momentum -what tells us that anybody will actually be capable of meaningful performance, with this increased freedom, in a real-time scenario? Even assuming that it is, a new speedrunning category should be created -Real-Time Unrestricted, where the use of the external control API will be allowed, under the condition that all inputs must be real-time, and not pre-programmed, not even as controller macros or shortcuts, except for those that generate a single gametic event. E.g. you may have a controller with a key that does a 180 turn in one gametic, but not one that executes a sequence of different gametic actions with just one player command at the controller. Of course, once you allow a new Compet-N league for "super" controllers that are considered potentially game-breaking, it would make sense to make special leagues for "sub" controllers that are considered handicapping, too. E.g. a pure "vanilla gamepad" or "vanilla joystick" leage, a pure "keyboard league", a pure "single mouse league" (no movement keys mapped to keyboard) and then we'll really be able to see what the different performance caps between input methods are -if such caps really exist. Funnily enough, "spinning utilities"āTSRs that use simulated mouse input to instantly turn 180 degreesāsuch as Doom Mouse Spinner explicitly *are* allowed by the Compet-n rules. I always found this a little strange given how purist the Compet-n admins were otherwise. Maybe it was an attempt to level the playing field a bit for keyboard-only players, or just a legacy of the fact that such TSRs were already around and popular when Compet-n started. As for the utility of using weird controllers competitively, if the history of speedrunning has taught us anything, it's that players can master just about any technique if it confers an advantage. If players can learn how to induce memory corruption in console games in order to skip to the end screen, or master the baroque jumping techniques possible in later id tech engines, then manipulating two controllers to achieve a 100% speed boost is surely doable. The per-controller speedrunning categories you suggest might be theoretically interesting, but let's face it, there probably wouldn't have been enough competitive interest to sustain them in the nineties, and there certainly isn't now. I did always think a "keyboard only" category would have been nice. Skilled keyboard control had a beauty all of its own, but became something of a lost art after WASD+mouse rose to dominate FPS play, but a league per controller would be overkill, and I suspect the relative results of each would be easily predictable ahead of time. 1 Quote Share this post Link to post
Linguica Posted June 26, 2015 If anyone wants a Wingman Warrior to test this out with, here's one http://www.ebay.com/itm/John-Romero-endorsed-WingMan-Warrior-Excellent-condition-Collectors-Item-/271912967145 0 Quote Share this post Link to post
illYay1337 Posted June 26, 2015 Can someone explain what you guys are talking about? I can't even find SR50 on google. I read about the external input drivers so that part makes sense. Is this some way to do computer assisted speed runs or something? 0 Quote Share this post Link to post
Linguica Posted June 26, 2015 potnop said:Can someone explain what you guys are talking about? I can't even find SR50 on google. I read about the external input drivers so that part makes sense. Is this some way to do computer assisted speed runs or something? http://doomwiki.org/wiki/SR-50_automation has a good explanation. 0 Quote Share this post Link to post
Jon Posted June 26, 2015 Linguica said:http://doomwiki.org/wiki/SR-50_automation has a good explanation. "Last modified 10 years ago" I'm having a lot of trouble with this passage of time thing. Looks like there might be more to be said on sr50! 0 Quote Share this post Link to post
Deleted_Account Posted June 26, 2015 I once tried SR50, I ended up going through the neighbors fence and destroyed their Japanese rock garden. They still have not forgiven me. 2 Quote Share this post Link to post
illYay1337 Posted June 26, 2015 Linguica said:http://doomwiki.org/wiki/SR-50_automation has a good explanation. Ah thanks, I thought SR50 somewhat reminded me of strafe running, I just couldn't remember exactly. 0 Quote Share this post Link to post
Linguica Posted April 3, 2017 On 6/14/2015 at 1:13 AM, Linguica said: The year after its release the company licensed out the technology to MadCatz, which came out with the MadCatz Panther, which was basically a rebranded Assassin3D; and the MadCatz Panther XL, which was the same trackball integrated into a complete joystick / trackball device A Sad Day: MadCatz has filed for bankruptcy :( 0 Quote Share this post Link to post
Nine Inch Heels Posted April 3, 2017 17 minutes ago, Linguica said: A Sad Day: MadCatz has filed for bankruptcy :( Shit... I liked their stuff... Got a mouse from them and a nice arcade stick with the good ol' sanwa parts built in. I kinda hope "someone" buys the remains of madcatz though. 0 Quote Share this post Link to post
PanterD2S Posted May 18, 2017 Quote Can someone explain what you guys are talking about? I can't even find SR50 on google. google ..sweet^^ - waybackmachine needed at least I guess but yeah took me quite some time now to get back into whats it all about, but the doomwiki link above really helped me. SR50 Automation vs Straferunning -Ā where SR50 already neither being intended and best be "awkward to activate". Ā Ā Someone pls check - i really did all that lmpĀ“s SR40 only?Ā and today all is on "automatic SR50" by construction?? omg 8) Ā Ā Quote Looks like there might be more to be said on sr50! Quote I did always think a "keyboard only" category Ok then, I want a SR40 category and back my points all those kids stole with that poor excuse "we use steam and this new PRBoom build now, we cant even change that" :DĀ ...and maybe have to revalue my too harsh commentary here Ā Ā 0 Quote Share this post Link to post
TimeOfDeath666 Posted May 18, 2017 SR50 Automation vs Straferunning - where SR50 already neither being intended and best be "awkward to activate". sr50 doesn't have to be awkward to activate. In vanilla, you can go into the config file (just like you would to turn on autorun) and set forward/strafe direction/turn direction/'strafe on' to the same key and you can sr50 with one key press. Someone pls check - i really did all that lmpĀ“s SR40 only? and today all is on "automatic SR50" by construction?? omg 8) If you never pressed 'strafe on' then you never used sr50. The "automatic sr50" you're talking about is that prboom+ added a change that adds a turn direction when you press 'strafe on' while strafe running. So instead of strafe running + pressing 'strafe on' and dragging the mouse (or pressing another key to turn) like in vanilla, now you don't have to drag the mouse anymore. What makes this different from vanilla is that prboom+ lets you strafe run in both directions without the extra key-press. In vanilla, binding a turn direction to "strafe on" lets you sr50 in one direction without dragging the mouse, but you still have to drag the mouse for the other direction. If you bind a turn direction to "strafe on" in pr+ 2514 you can revert back to the vanilla behavior. Ok then, I want a SR40 category and back my points all those kids stole with that poor excuse "we use steam and this new PRBoom build now, we cant even change that" :D ...and maybe have to revalue my too harsh commentary here Some people do try for sr40-only demos, you could try searching "sr40" in the demos forum. 1 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.