**MAKING CUSTOM SWORDS AND/OR ITEMS**Â A Tutorial by Jason777 For those of you who thought this was going to be a lot more time-consuming than display list porting, boy are you wrong! This takes about 3 minutes at the least! **I will be doing this on the OoT Debug ROM** Before you begin this tutorial you must meet these assumptions:
^^ Ok, if you meet all of the above continue.... So, you have created a really epic (BUT LOW-POLY) sword and you want use it in-game for OoT (and MM), this tutorial will teach just how it’s done! Here is the usage for obj2area's counterpart, wotf.py, which is used to create F3DEX2 display lists from wavefront OBJ
We will be using the options -s, -b, -a, -o. We will not be using -sa, -st. Option -sa is for more specific scaling dealing with XYZ and option -st is for texture scaling. Alright, so on to creating the batch (BAT) file! -- Open up Notepad or something of similar use -- The length of Biggoron's Sword in millimeters is around 6300 (I use the millimeters template, sorry ) so use that measurement to fix your scale. The bank of most models is 06- there is a list of bank values you could use following this paragraph. The address we want to begin writing data is 0x37800 since that is the end of Adult link's ZOBJ file. The ouput can be anything we want like "custom_sword.bin". At the end of BAT file we have the name of the file that we want to convert. Here is a list of bank values you could use:
In the end our BAT file should look like this:
EXPLANATION:
Save As--> WOTF.bat Alright now place your OBJ, MTL, and texture folder all into the folder that holds wotf.py and obj2area. Run WOTF.bat and wotf.py will open to make the conversion. When wotf.py is finished it will give you this "Display List: XXXXXX", jot down whatever the "XXXXXX" is because we will need that for later. Now, open up the newly made BIN file in a hex editor. Go To 0x37800 (or whatever you put in the BAT file for option -a) and copy everything from there to the very end of the file since that is the actual data. Then, Open up object_link_boy.zobj (the adult link ZOBJ) and go to 0x37800 (Which is the very end of the file). PASTE INSERT (not PASTE WRITE) the data you copied from the BIN file at then end. You are finished inserting the data into adult Link so that way if you go into UoT and you open up the ZOBJ, you will find your custom weapon as the very last display list. It is time that we replaced one of the already existing swords (or another weapon if you want) with our sword. Go to 0x238C8 (Display list start) in the ZOBJ to replace the high-poly Biggoron's Sword. When you are at 0x238C8 you should see an E7 command:
What we are going to be modifying is the data right after that 8th byte. We are going to be placing a DE command to append display lists to that one. Here is the format for the DE command we will be placing:
After typing that DE command, we are going to want to place another DE command right after it so that way Link's hand is attached to it when he draws it. Here is the format for the DE command we will be placing:
Next, we want to place a DF command (marks the end of a display list) right after that last DE command so that way the Biggoron Sword doesn't load up along with your model and Link's fist. Here is how we would write a DF command:
Here is an example of how the start of the display list to the high-poly Biggoron Sword should look like after you are done modifying it (wotf.py provided me with a display list offset start of 0x391EC):
^^ If it looks exactly like that except with a different XX XX XX value then you're doing it right. Alright, we're done modifying the adult link ZOBJ; you can save. Be sure to save the file as something else and name it something you can remember like "custom_sword.zobj". Now, we are on the final step- inserting the new adult Link ZOBJ at free space in the ROM and then changing its original entry in the file table to its new location. Okay, open up the full Debug OoT ROM in the hex editor. Copy your entire modified ZOBJ and PASTE WRITE it at free space in the ROM (use 0x35CE040 if you don't know where else) and write down it's ending offset because we need it for the next step. Scroll all the way to the very beginning of the ROM now (I get an error when trying to search sometimes if I don't do this). Next, you will want to search for adult link's original offsets. Type this and search:
We want is the second result NOT the first. The second result should look like this (which is the start and end offsets combined):
We want to change that to whatever the start and end offsets of you modified ZOBJ is. Here is an example of how it’s done. Let's say it starts at 0x35CE040 and ends at 0x38DF071, here’s how I would overwrite the original ones:
^^ If it fits those 8 bytes correctly than you're finished! Save your ROM and test out your new Weapon!! Of course if you model is extremely detailed and it doesn't load then... BUMMERÂ **OPTIONAL EPICNESS** You have done everything that is absolutely necessary to make custom weapons, BUT here is how to really make it look LEGIT once you get the hang of itÂ
Okay! You have completed the tutorial! Is the tutorial easily understood? Do I need to give download links? Do you need me to post pictures? If you have any questions and/or comments feel free to post them. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ***INSTED TUTORIALÂ By Sylux102 This is pretty straight forward but I decided to make a tut so others wouldn't repeat my mistakes. Required Items: InstEd (duh) Any MIDI editor (I'm on windows and use mixcraft but any will do) Data table of song numbers (found in song replacement tutorial) Step 1: Open InstEd. Also open the ROM you are going to edit. Step 2: Prepare an MIDI to be used. Instruments don't matter. Neither does length, but make sure it's loopable (if you want looping) and make sure there is only one note played at any given time on the same track (ie no chords, split those up into different tracks) Step 3: Go back to InstEd and make a new instrument set. This is done using what the program first displays. The table on the left is for the instrument number, and the expandable tree on the left is for selecting the actual instrument. So click in any of the slots on the right (on my pc they say "none") and then find and select an instrument from the left. That slot on the right should now display the instrument you selected (ie on mine it goes from "none" to "violin") Step 4: Save the set as a binary file in an easy to access place (desktop etc). It should show up as xx.zset, where xx is the filename you gave it. Step 5: Find the MIDI converter (somewhere next to file option should be a drop down with this utility in it) open your MIDI and click convert. This will create .txt files from the MiDI tracks. Step 6: Open each .txt file (except control.txt) and add the line "instr XX" in the first section (ie before big empty space) where XX is the number of the instrument in the zset you created. This is the instrument used for that track. Step 7: Go to the same menu you found the converter in and there should be more options. One is "insert instrument set to ROM" or something similar. Open that and then open your ROM and your zset. Where it says "0x03" or something like that is the instrument set from OoT you will replace. Spinouts site has a list for those sets. Change it to the one that the song you are replacing uses. Then click insert. Step 8: Almost the same process a above, except open the MIDI inserted and open your ROM and control.txt (created by the midi converter). Where it says "2" you change to the song you want to replace. Click insert and you're done. Simply recalculate CRC with GZRT or something like that and test! But wait! I want to replace the lost woods song, and the code is 3E! InstEd says "3E is an invalid integer"! How do I do this? For all songs it is easier to take a little extra time to type in "0x".before the code. So the "2" would change to "0x3E" to replace lost woods. DO NOT TYPE A DECIMAL NUMBER! IT WILL CRASH YOUR ROM ON LOAD! ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DISABLING THE DEBUG CONTROLS FOR OOT DEBUG ROM HACKS By Xenon Thanks goes out to duuthbuskut for finding this. Make file 1 into a normal file: 1. go to B20434 in ROM and write 00000000 over the four bytes there. 2. go to BDF648 and change 15C0001B to 1000001B. 3. go to B20488 and write 10000002 Disable noclip (when you press L+dpad-right) go to C1EC04 and change 11E00080 to 10000080. Disable map select go to B3D954 and write 10000009 Disable debug camera 1. go to AD0AA0 and change 3B2E0001 to 00007021 (fixes controls). 2. go to AD0AEC and change 11200022 to 10000022. Disable item debug (L at start menu) go to BEEC20 and change 24190001 to 24190000. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ HOW TO PORT MUSIC FROM MM TO OOT By GANONdork123 Since the tutorials are scarce for this topic I will make a tutorial myself. First off, download this zip archive and extract it somewhere:Â Download DO NOT EXTRACT TO THE DESKTOP!!!!! Once extracted run the run.bat file. this will dump all the songs from MM. To make things simple, lets port Termina Field's theme. the file for it is "seq_0a_0202.zseq" You can now just insert the sequence via InstEd. There is a tutorial for it on Maco. Termina field uses the same Instrument set as Hyrule Field so it should work fine. I do not know how to dump Instrument sets yet. if you want to port a different theme, refer to this
|
OLD MACO DOCUMENTATION FOR ZELDA OOT DEBUG ROM HACKING.
Subpages (1):Zelda OOT .zobj Listing (Part of MACO Documentation)