Link to XCOPY 2007 (put the readme through google translate for convenience)
http://www.mediafire.com/file/w1a9rtoblnkxa4o/XXCOPY.zip/file xcopy2009105
https://www.mediafire.com/file/gnnde3uhhajcign/xcopy20090105.zip/file Main advantage of 2009 is it decrypts and rencrypts files. Using it, you could muck with the decrypted files in an external program like HxD or something instead of XCOPY 2007s barebones editor. 2007 is still good for small, quick edits
The Japanese Struct file used in conjunction with Stirling, as well as Stirling itself ( haven't been able to get it to work, but maybe someone else will have more luck. Also made a seperate version)
https://www.mediafire.com/file/zdcpnl8eusf8p1o/Stirling.zip/file (Sincere thank you to JoshiPro for sharing them on the Discord)
Japanese threads discussing 3S Hacking
https://schiphol.5ch.net/test/read.cgi/gameurawaza/1222111620/ https://schiphol.5ch.net/test/read.cgi/gameurawaza/1221048307/ Palmod develpment server invite
https://discord.gg/aXgJWs4 Palmods by Riiya
VIDEO VIDEO VIDEO EDIT:01/11/2020
TVIndustries has been decveloping a method for further customization, making it possible to set Ryus EX Flash and Hadouken Pallete for every available button (LP,MK,etc)
Video example here
https://streamable.com/5orchj To start off small, while trying to dig through 10, i found a bunch of text strings related to various aspects of 3S, including text for what seems to be a Dev Menu of sorts, though whether or not it's still accesible or is even there, i couldn't tell ya. Alongside that, is the initial text as the game loads. This is how zsnsn (author of 4rd strike) was able to change the startup text to 4rd Strike
Addresses
Spoiler, click to toggle visibilty
Dev menu text 0x61995f0 Dev text? 0x6131c380 BG Test text? 0x619E2D0 0x619E390 Test menu text 0x619c038 0x619c0c8 "Thank you for playing" 0x619E6A0 0x619E6B8 Rom/CD Check text 0x61A5398 0x61A53B0 Credits 0X61A63D0 0x61A7DB0 Color DMA Error 0X61B4B60 0X61B4B90 EPROM Error 0X660C0D8 0X660C0F0 Arcade text 0X660C300 0X660C720 Configuration Menu 0X660C930 Font setup? 0X660CF48 Font setup 2? 0X660D2A8
Suupabuu was also kind enough to explain where the headers for each character is, and how they're listed in game
Suupabuus Unitindex note
Spoiler, click to toggle visibilty
UnitNames = new string[]
{
"GILL",
"ALEX",
"RYU",
"YUN",
"DUDLEY",
"NECRO",
"HUGO",
"IBUKI",
"ELENA",
"ORO",
"YANG",
"KEN",
"SEAN",
"URIEN",
"GOUKI",
"SHIN GOUKI",
"CHUN-LI",
"MAKOTO",
"Q",
"TWELVE",
"REMY"
};
thats the order of how units are stored
0x0618B148 are pointers to headers for each character
0x0618B148 + ( unitIndex * 0x6C ) = the pointers for each character
EDIT:01/11/2020
Link to updated document for further info
https://docs.google.com/document/d/1O-8njFL5s4wdrukwwOTNne8K4EIvHLYpymuKAQwF-Ck Might prove interesting, especially if someone wanted to rebrand the game like 4rd did. What is really exciting are these addresses which keep track of various things in 3S. Setting them as watch addresses in Mame or FBA-rr is definitely worth trying
Addresses for Global 3S stuff
Spoiler, click to toggle visibilty
18B180 Address list summary of motion data etc. (1 character 6 lines) 2068C94: Orbital base 2068CFC: Acceleration 2068E6C: Motion data address 18CC7C Stage BGM 19D8D0 Stage background 480FD0 Stage background graphic 5EA5B0 Double jump, triangular jump 5EAC70 Stun gauge 5EACA0 Stun recovery speed 5EAD00 Stan recovery rate from the time 5FB590 affect the gauge increase 5FBD10 gravity of a fall affect the 5FBF94 bending-back affect the 5FE7C4 hit back 5FF0CC combo correction coefficient 5FF588 Blocking Bonus Stage 61381C Special Move Command Data Address List
I've tinkered with setting up a watchtable, and can confirm "Motion data naddress" really means "Anim data header". By using this, it's a simpe thing to find anim addresses for Player 1. After testing it on Sean, i can confirm it works
Link to the watchtable in image to get ya started
http://www.mediafire.com/file/w7w5wrpmzox0uam/sfiii3n+Watchlist.wch/file Now here's where things start getting interesting! After pokiing through the threads, i was able to pin down Alex's ST.HK animation, as well as Ryu landing from a Shoryuken ( found here: Ryu - Land from Shoryuken - Frame 1 time = 62057BC). Innocent at first, but this has been mega useful for figuring stuff out! Basically, 3S checks strings of 24 bytes apiece. I haven't found what everything does as of yet, but there is some stuff worthy of note; The first byte in the sequence is "time" (in ticks) the frame stays on screen for till the next 24 bytes are checked. Bytes 10/11 are the exact frame used. In this example, i set each frame of Alex' startup to 07 AE, and got this
(Frame 1 of this animation is at 61EB224, goto +0x1EB224 in XCOPY)
VIDEO Before that, i messed with every first byte to make sure i understood what they were doing. It is definitely time
VIDEO Pictured here is exactly what i did for visual clarity
Lastly, i found these notes regarding repeating animations. Assumedly used for looping anims like Alex' A.LK, and maybe his Stun Gun Headbutt
Anim Note
Spoiler, click to toggle visibilty
Line skipping 00 31 00 00 00 00 00 0X 00 00 00 00 00 00 00 00 (X line forward) 00 32 00 00 00 00 00 0X 00 00 00 00 00 00 00 00 (X line back) Motion loop 00 0C 00 00 00 00 00 0X 00 00 00 00 00 00 00 00 ↓ 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 It means to repeat the motion between C and 0D X times
EDIT:08/11/2020
Made this basic video on how to edit SF3 animations
VIDEO It seems 3S is neat in the sense sequences of bytes can function as code as well. Notice how at 61EB2FC the structure of the bytes is different? From what i gather, it's a condition to skip to a certain sequence on hit. How it works in full is yet unknown to me