- bacteria wrote:
- Comes under the banner of clever to work out and do, but pretty pointless when done. There is no gameplay left or balance of character, or challenge, IMO; so technically nice but practically, just ruins a game!
Sorry guess I should have mentioned that this's just a SIDE project from a much more serious project. I've been constantly improving on a very serious sf2 hack. While working on the serious hack I discovered ways to make things completely unbalanced as well. The sillyness version is something I'm only working on in my spare time just for the sake of hilarity.
- AWESOMECAT wrote:
- What is even going ON...
How is this accomplished?
What's going in is blanka is shooting a crudload of fireballs when doing his spin attack. Here's how it's accomplished....
I've been working on a custom arcade hack of sf2 that's based on the m5 bootleg arcade hack. Building this has been a slow process as I've been using no tools and nothing but hex editors to work on this stuff. Everything has been accomplished through manual hex editing. The m5 / m6 hacks are actually street fighter 2 champion edition world 920313 roms that have been hacked to insanity and split in an interleaved pattern. From poking around the programming in hex values and comparing the hacked arcade rom code to the original I've learned a lot about how the programming works. I've literally been reverse engineering the programming of the sf2 arcade roms through nothing but hex editing and I got better at it than I ever expected to. You can change basic physics such as how quickly you move when either just walking or doing moves by changing 1 or 2 hex values. Diagonal movement speed is adjusted by changing two hex values one representing horizontal speed the other vertical. Finding which hex values to change is 100% trial and error which is easier to locate if there's a 920313 hack that already has these values changed, but it's a painstaking process that takes a long time. Applying other changes such as not having to hold down a button for two seconds to pull off a move required changing two hex values in a row. Changing just one hex value would cause the game to crash. Of course I've been documenting all the hex areas of code that I want to be able to change in a text file so I can always go back if I ever want to change it again. This's important because it takes a really long time even to find one hex value I'm looking for.
More recently I've discovered something interesting about how the programming works. I noticed that more complicated bits of code that add new hacked functions to the game or functions such as something simple like calling a sound effect actually call programming from another rom area. These function "calls" are grouped into strings of 8 hex values. Changing only half of the values or some of them causes the game to crash, the programming for the entire rom is based on these "call" functions. I noticed in the 22 rom dump that in the unhacked rom the second half of the 22 rom is empty but in the bootleg hacks the second half of the 22 rom is filled with data. I'm 99% sure that the added data in the 22 roms is the new hacked functions that're being called as running the game without the added data in the 22 file won't work. Calling functions from the unhacked version doesn't necessarily give you the effect you always want...but luckily the bootleggers added functions that you can call at virtually any time and they always work. I found code that calls the following:
1: 2 fast moving hadoukens with the sfx of a heavy punch / kick.
2: A yoga flame with zangiefs spinning move sfx
3: A single speed selectable sonic boom that plays the chun li spin kick sfx.
I doubt I could ever add my own functions or alter the programming of these added functions as everything is programmed in hex. But luckily calling these three functions is quite easy. All I need to do is find a function call that happens when a certain move is performed and replace that call with one of the calls of one of these three custom functions. However as I mentioned earlier the programming will call a function for something even as simple as playing a sound effect. I learned how to locate function calls based on three hex values in the middle of the call code that's always the same. So for example if you have a move where the character is spinning it will call a spinning sound effect at about the speed that the character spins at. All you do is replace the spin sound effect function call with the function call of shooting two fast hadoukens, and next thing you know you're shooting pairs of hadoukens at the speed of a machine gun until the super move is done executing.
Without the taiwanese bootleg hacks of the game I wouldn't have been able to do probably any of this stuff as these hacks helped me pinpoint hex values that effect certain things. Also these hacks added custom code that lets me call fireballs which is quite handy to have.