The most difficult thing to spot would be the anti-crossup blocking trick that someone mentioned earlier,
[quote]
this works on both sides if i understand how it works. whether right overwrites left is irrelevant, both sides are technically being registered, and auto block will still happen.
You realize they ported this to XBox 360 and had to rewrite the input coding right? So really it would have been super easy to work this out when they did that. I don’t know exactly how they ported it but regardless they could easily put a front end on it to handle the input with a patch, it would be the easiest things to patch between all the bugs.
^-- You learn never to make assumptions about simplicity in code. You seem to be asking for the theoretical translation layer to keep track of joystick input/state, which may or may not be a state that that layer is able to keep track of cleanly. I’d think this would be fixable but require a small to medium amount of work. You really do learn that “easy fixes” are usually not actually “easy fixes”. =\
There’s an old joke about a developer giving a company he used to work for a $100,000 bill for three minutes of work to fix one line of code in a large program. Cost to fix bug: $1000. Knowing where and how to fix it: $99,000.
I recall most of the code is ported from Dreamcast according to Sirlin’s blog. Considering that most of SF2 was/is written in assembler, I can’t imagine them actually porting the code to 360 and PS3 as both systems have vastly different architectures and APIs. However, seeing as both systems are based on the PowerPC instruction set my guess is that they wrote emulation layers against the native APIs for each machine and are likely running the modified DC assembly code on top of it. Note that this is all just speculation on my part.
In any event, porting code is never an easy task, and any changes to actual “engine” code is relatively high-risk with respect to introducing new bugs and such when compared to things like changing hitboxes, damage, etc.)
Well when you know your bug is located in something that runs everytime your game loop cycles and the fix is basically to put something along the lines of if left = true and right = true right = false in the right spot it shouldn’t be to hard considering. I mean if someone who wasn’t familiar with the code patched it it would still be the easiest thing to patch under those circumstances.
As to your story I knew of someone who’s dissertation for a Master’s in some computer science related degree was a program modification that consisted of less then 10 lines of code. Of course it took them almost 3 months of work to track down where and how to modify the code.