CirclePete Posted March 15, 2018 Posted March 15, 2018 (edited) [[NOTE : The way I decided to write this post is kind of a "story". I don't really know what is common knowledge about this topic, but as it starts from scratch, it might be accessible for someone who is new to the game structure, like I was a few days ago. Of course, if someone wants to suggest me interlocutors who have greater knowledge, I'd be glad to discuss with them and may be join a team of "analysts". My English is far from perfect, but I can also write tutorials or submit wiki entries to peer review.]] Hi, I am a newcomer in this modding community (I've bought the game last week). I don't know how to build 3D-models and I wouldn't be able to code a modding tool (at least not with a GUI), but I like puzzles. I'm not pretending that I am good at solving them, I just love the challenge it gives me. So the first mystery that tickled my curiosity is how does ring announcements work. I mean how does the game maps a superstar, a title, a weight to the corresponding sound in a .pck file. The answer probably lies in the ./pac/audio/ folder and its .pac containers. Most .pac files comes in different versions: the "Master version", which is the game as originally released and for which files have no suffix, and dlc versions with a suffix _p?? (where ?? is a number). For example: _p10 NXT Generation Pack _p30 Enduring Icons Pack May be it will be easier at some point to to focus on the sounds from these patches as they include fewer superstars (5 each). [What you are about to read is a work in progress. Please be indulgent. I will update it with my own findings and, hopefully, suggestions from some of you. I will also reformat it to make it easier to read, when the amount of content will be bigger.] My first interesting finding was in sound[_p10/_p30].def files. As I understand it, this extension type contains information about how the game maps the .pac files to a virtual unpacked (repacked?) tree structure D:\Perforcework\WWE\WWE18\GameData\Master\... D:\Perforcework\WWE\WWE18\GameData\Patch10\... etc. In particular, sound[_p10/_p30].def deals with the sound scripts. cd D:\perforcework\WWE\WWE18\GameData\Master\Audio\Common\SFX 100 _SFX_Script.pac cd D:\perforcework\WWE\WWE18\GameData\Patch10\Audio\Common\RingAnnouncer 200 _RA_Script.pac cd D:\perforcework\WWE\WWE18\GameData\Master\Audio\Common\Commentary 300 _Comm_Script.pac cd D:\perforcework\WWE\WWE18\GameData\Master\Audio\Common\CrowdChants 400 _Chants_Script.pac cd D:\perforcework\WWE\WWE18\GameData\Master\Audio\Common\Crowds 600 _Crowds_Script.pac cd D:\perforcework\WWE\WWE18\GameData\Patch10\Audio\Common\Project 777 _update.pac Let's now convert the numbers in hexadecimal: 100 64 200 C8 300 12C 400 190 600 258 777 309 The corresponding sound[_p10/_p30].pac files are all the same size (it seems that most files inside these containers don't depend on version: just few of them have been updated) and are arranged this way: It seems encouraging: the secrets of Jojo's ring announcements might be in this 00C8 (ie 200) .pac subcontainer. Let's extract it. There are 18 files inside, each with a different 4-character extension, but all starting by ra (Ring Announcement?). Here's the list. 000A.rade 000B.raag 000C.raea 000D.rasg 000E.rase 0014.rash 0015.rass 0016.racf 0017.raht 0018.rabt 0019.rasn 001A.rast 001B.ramt 001C.ratt 001D.rabn 001E.rarp 001F.racl 0020.racn Now it's time to open these files with an hex editor. And I found some pattern in the their 16-byte header. Let's use 000A.rade as an example The first 4 bytes (00-03) are the extension, here .RADE. My guess is that RA stands for ring announcement, and that DE might also mean something; The next 4 bytes (04-07) seem to always be 31 30 30 31; The 4 bytes from 08 to 0B are the hex value of the file length after the header. Here, 30 06 converts to 6*256 + 3*16 + 0 = 1584. Indeed, the file is 1584 + 16 (for the header) = 1600 bytes long; The last 4 bytes (0C-0F) are the hex value of the number of entries. Here there are 6*16 +3 = 99 entries. This means that the length, in bytes, of each entry is 1584/99 = 16. The first entry is in the orange rectangle. My goal is to understand what these entries code for. So now, let's analyze each of these 18 files separately. My current guess is that they are thematic. One file might be for custom nicknames, one for superstars' names, another for weights, origins, titles, etc... Everything that Jojo says. *** 000A.rade *** number of entries: 99 length of an entry: 16 bytes structure of an entry: 4-byte ID, 8 null bytes, last 4 bytes are either 00 00 00 00, or 01 00 00 00, or 02 00 00 00. *** 000B.raag *** number of entries: 368 length of an entry: 4 bytes structure of an entry: [placeholder] *** 000C.raea *** number of entries: 99 length of an entry: 32 structure of an entry: [placeholder] *** 000D.rasg *** number of entries: 42? length of an entry: not constant: 42 8bytes entries, then 99 4-bytes entries structure of an entry: [placeholder] *** 000E.rase *** number of entries: 42 length of an entry: 4 structure of an entry: all null! *** 0014.rash *** number of entries: 11 length of an entry: 116 structure of an entry: [placeholder] *** 0015.rass *** number of entries: 263 length of an entry: 8 structure of an entry: 4 bytes for a superstar slot (from 64 00 00 00, aka the Rock, to CC 02 00 00, aka Ruby Riott), then 4 bytes which are probably a reference to a sound file my guess: superstars announced names bytes 00-03 (Name) bytes 04-07 dec conversion 64 00 00 00 (The Rock) 04 1C 89 CC 64 00 00 00 (The Rock) 04 1C 89 CC ... ... ... ... 16 01 00 00 (Drew McIntyre)_p10 78 37 B3 A5 2 779 985 784 ... ... ... ... 60 02 00 00 (Elias)_p10 7E 37 B3 A5 2 779 985 790 ... ... ... ... C8 02 00 00 (TJP) 64 A7 DA E0 C9 02 00 00 (Jack Gallagher) 96 E3 25 8B CA 02 00 00 (Aleister Black)_p10 7A 37 B3 A5 2 779 985 786 CB 02 00 00 (Lars Sullivan)_p10 7F 37 B3 A5 2 779 985 791 CC 02 00 00 (Ruby Riott)_p10 73 37 B3 A5 2 779 985 779 *** 0016.racf *** number of entries: 1470 length of an entry: 8 structure of an entry: [placeholder] my guess: custom superstars first names? *** 0017.raht *** number of entries: 668 length of an entry: 8 structure of an entry: [placeholder] *** 0018.rabt *** number of entries: 195 length of an entry: 12 structure of an entry: [placeholder] *** 0019.rasn *** number of entries: 228 length of an entry: 8 structure of an entry: [placeholder] *** 001A.rast *** number of entries: 164 length of an entry: 8 structure of an entry: all null! *** 001B.ramt *** number of entries: 121 length of an entry: 4 structure of an entry: [placeholder] *** 001C.ratt *** number of entries: 422 length of an entry: 8 structure of an entry: [placeholder] *** 001D.rabn *** number of entries: 87 length of an entry: 12 structure of an entry: [placeholder] *** 001E.rarp *** number of entries: 64 length of an entry: 2 structure of an entry: [placeholder] *** 001F.racl *** number of entries: 1470 length of an entry: 8 remark: apart from the extension, it's the same file as 0016.racf my guess: custom superstars last names? *** 0020.racn *** number of entries: 1470 length of an entry: 8 remark: apart from the extension, it's the same file as 0016.racf my guess: custom superstars nicknames? Edited March 15, 2018 by CirclePete 1 Quote
TheVisitorX Posted March 15, 2018 Posted March 15, 2018 (edited) Thanks for this post! Great, that someone else wants to deal with that topic! Unfortunately, much of it is still a mystery and not many have bothered to solve it yet. Many of your observations coincide with mine. As you've already determined, 15.rass is responsible for the assignments from slots to announcements. And it is correct, the other 4 bytes are a reference to an ID, namely the ID in one of the * .bnk files. They point to a random container / sequence container, which also holds the wem files. That means, if you add an entry for a modded character slot and point that to an already existing id, the announcement will play during character selection, but unfortunately it does not work during entrance. The problem is that the whole mapping happens through events. Each character has its own soundbank, which also contains the announcements. The banks are loaded during gameplay and the slot is used to play certain sound sequences. Nobody really knows how that all happens. Also, we do not know yet how the game matches the ids exactly. If you feel like having time to get more involved with the topic, check out the structure of the * .bnk files. You can find more information here: http://wiki.xentax.com/index.php/Wwise_SoundBank_(*.bnk) What I can tell you is that the ids in the moveset are a combination. The first is the music ID (usually a connection to the slot), the others indicate whether it is a soundtrack in the menu or in the game and then there are variations of a single song, presumably for alternate attires, where: %MusicID% _%VARIATION%_%MUSICMODE% I think you're right, the pac files in the audio folder will have the main task. But there are others. In the folder pac / root the startup_audio for example. However, many of these are duplicates, where no one really knows what the game actually uses. You can also find a lot of possible event names in the sound.pac. Something like: Stop_All_Audio Play_MUS_%MUSICID%_%VARIATION%_%MUSICMODE% And a lot of entrance specific events. Edited March 15, 2018 by TheVisitorX 1 Quote
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.