Kuribo64
Views: 19,850,550 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
03-28-24 11:41 AM
Guest:

0 users reading [Tutorial] SWAR Entry Address DECODED! (SWAR is a lie) | 1 bot

Main - General SM64DS hacking - [Tutorial] SWAR Entry Address DECODED! (SWAR is a lie) Hide post layouts | New reply


Gota7
Posted on 10-05-17 12:41 AM Link | #90004
Introduction

As some of you may have known, I have been poking around the symb.bin and info.bin.

I wanted to know, what exactly IS the SWAR entry address, and how do I know which one to use? As it doesn't seem to match up with the .swars at all...

So using skawo's thread, I located the table that he was pointing too, and compared the info with a text dump with a tool I made.



My results?

That it is not an SWAR entry address. It is an offset to a group.


So, What does this mean?

This means that you can find the correct addresses!
This will be a feature in a sound editor I'm working on (Nitro Studio), but for now you can use my tools to find the correct group offset.


Finding Your Group

You can rather get my clean dump of the symb.bin here, or you can do it yourself.

To do it yourself you need to get symb.bin from an extracted sdat you have lying around.
You are also going to need to download the latest SymbTool.exe I have lying around in here.
You need to put the exe in the same place as your symb.bin and make a batch file with the command "SymbTool.exe symb.bin symb.txt" (without quotations), and it should freshly extract an symb dump for you!

Now in the text file, you want to look for the line that says ":GROUP" (no quotes).
You will see a bunch of names.
The first entry on the list is group ID 0.
Now using your guessing skills and bad Japanese, you should be able to find a name that corresponds to the group of swavs that you want.
Count with the first of the group list being 0, all the way up to the name that you picked, and that will be your GROUP address or "Swar address".

Ex: "NCS_GRP_CASTLE" is group ID 3.

And if you look in the group names, "NCS_GRP_BOMBHEI_OTHER" is entry 6, which corresponds perfectly for map BOMBHEI.




Groups Info Explained (Kind of)

I hope that rather I, or someone else takes time to really look at how these things tick because currently I'm kind of confused.

However, I know this much about the groups:

* Each group contains "entries".
* Each entry has a type, and an nEntry.
* The type says the type of file, 1026 being a wave, 1792 being an sseq, 2051 being a seqArc, and 1537 being a bank. Except, there tends to be some types I don't know such as 1280 and 513.
* The nEntry corresponds to the entry number relative to the file's type?
* In SM64DS, the majority of groups have entries of waves, which actually makes perfect sense.




Editing/Creating Groups

With being to know somewhat about groups, you can actually try and edit them. I've never tried it, but for experimenting you can always create a new group.


* Editing Groups:
Similar to dumping an symb.bin's data to a text, you do the same with the info.bin. Except, you need to use my InfoTool found here to do this.

After you get an info.txt you will notice there is a bunch of stuff.
You also need to symb.txt in order toknow what you are doing.
Find the group address you want in the symb.txt file like I described above, and in info.txt search for "~G#" (Without quotations, and replace # with the group address.
Every thing under the ~G# is going to be the entries (1 per line) until the next ~G# or :PLAYER2.
Now you can see all those entries I was talking about.

Here you can add, move, change entries, and just experiment.
To Recompile your info.bin you need to put in the batch file "InfoTool.exe info.txt newInfo.bin", and it will compile all the info for you.

Replace the info.bin in your extracted sdat, and compile using kiwi to make a new sdat with you're revisions.


* Adding groups

If you really want to mess around, you can try adding a group.

To add a group, first add a filename to the list of groups in symb.txt, it can be any crazy name you want.

You then need to compile the txt to a bin by using "SymbToo.exe symb.txt newSymb.bin".

Find the last ~ in the info.bin file, and before :PLAYER2 add ~G# with # being the number after the ~ above. In this new group you can do whatever you want for the sake of testing how to make things work ingame. Knock yourself out. Just don't forget to recompile the info and symb files.


Other Notes

Since SymbTool can't read the placeholders yet, it will make your new symb.bin in the sdat incompatible with Ds Sound Studio if you recompiled an symb for whatever reason. It will still work perfectly ingame and in VGMTrans, except with some file names mixed up.

I HIGHLY don't recommend changing or editing the groups if you have no idea what your doing. This can make some songs just not work ingame.


If you need me to explain parts of this informational post better, please ask.






Join the SM64DS Hacking Discord: https://discord.gg/PhpA9Wt


Main - General SM64DS hacking - [Tutorial] SWAR Entry Address DECODED! (SWAR is a lie) Hide post layouts | New reply

Page rendered in 0.031 seconds. (2048KB of memory used)
MySQL - queries: 26, rows: 196/196, time: 0.013 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.