Primary Zelda Hacking
April 21, 2014, 10:33:37 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: There is now an official Primary Zelda Hacking Press!
 
  Home Help Search Login Register  
  Show Posts
Pages: 1 ... 5 6 [7] 8 9 ... 15
91  Oracles Hacking / ZOLE Live / Re: Latest Public Build on: May 10, 2011, 06:32:07 PM
 :thumbup1: Thats all I need to say.
92  Oracles Hacking / ZOLE Live / Re: Testing Screenshots on: May 09, 2011, 06:30:39 PM
Regarding your post lin I personally liked our version better without the holes, oh well.
93  Oracles Hacking / Tutorials / Ultimate Guide to ZOLE on: May 07, 2011, 10:25:59 PM
    READ:
    Welcome to the Ultimate ZOLE 4 Basic Tutorial collection, all of which are written by myself (Fatories). Below is a table of contents where you can select which tutorial you would like to view, if you are new to ZOLE 4 I suggest starting from the beginning. More tutorials will be added periodically.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Table of Contents:

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Booting ZOLE 4

    ZOLE 4 as you should already know is a program devoloped by Lin for the hacking of The Legend of Zelda Oracle games. If you are going to hack the oracle games, then there is no better tool than ZOLE (or any for that matter:P). To download ZOLE you will gave to go to the main ZOLE topic which can be found under the ZOLE board, then by clicking the "ZOLE 4 Version X.xx Released!"

    A direct link would be: http://zeldahacking.ulmb.com/index.php?topic=2.0

    You will need a program that allows you to open and extract ".zip" files as that is what ZOLE is contained in. Now a days I believe most operating systems come with one already, however if yours does not then what you can do is go onto Google (I pray to god you know what that is) and search for WinRar. WinRar is a program that will allow you to access .zip files and various other files, for "free". You will also need an Oracles game ROM to use in ZOLE, for that just remember. Google.

    With that out of the way you can now extract the files out of the ZOLE4.zip into whichever spot you would like it. It will have various components in it, however the two main ones you should look for are the ZOLE4.exe and the GBHL.dll. As long as those are there, you have ZOLE ready for the use.

    Run the ZOLE4.exe. A window will pop up with the main ZOLE interface. I will discuss most components individually, so I wont get into what each thing is right now. What we really want is to open our ROM into ZOLE so we can edit it. To do this we will go into the upper left corner click on the "File" menu, then click on "Open Rom". We could also just click the folder with the arrow below the File menu, as well as press Ctrl+O which is the hot key for opening your ROM. After clicking the open ROM button a window will pop up asking you to choose a file, simply go to the directory your ROM is stored in and select it.

    Voila, if all went well you'll see something like this.



    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Editing Maps

    Editing maps is the main part of making a hack. The "map editor" as I will call it, is basically all of the good stuff on the front of ZOLE upon opening.

    In the lower left you've got your tile selector. Here you can select tiles to use in your map. The tile ID is the number found beneath it where it says "Selected Tile" To select a tile you simply left click the tile you want. You can select multiple tiles by left clicking and dragging.

    Above the tile selector we have the Area Information. Here we can change the pallet of the map, the area ID of the map as well as the animation of the tiles for the map. The Area ID is the ID of the map, and determines what tiles are in the tiles selector. Maps with the same Area ID are affected by tile edits and pallet changes. The pallet is exactly what it sounds like, it changes the pallet of the map. The animation will change what animation certain animation tiles are on, you'll probably never edit this.

    To the right of the Area Information you will find the map viewing box which also doubles as the actual map editing box. Here you will be able to tell what map you are on, and edit the map to your liking. To edit a map you will first select a tile from the tile selector, then simply left click where you want it to appear on the map. By right clicking a tile on the map it will set the tile to be selected, and then you can simply left click to use it. Middle clicking (scroll wheel clicking) will fill an area of the map with your selected tile. It will fill every tile that is the same and touches each other directly.
    At the bottom of the screen you can see the X and Y values of the tile your mouse is currently hovered over.

    Above the map editing box you have a drop down list with a list of all the map groups in the game, named for convenience. This will allow you to go from say the over world maps to the level 1 maps, for editing.

    To the right of the map editing box we have the mini map of the map group you are currently in. Here you can easily see which maps are where, and select them for editing by simply left clicking a map. You could also enter the physical map value in the box above it labeled "Map:". To get the map value you'll just have to go to the actual map and then the value will appear in that box.

    You can change what music appears on your selected map by going to the box above the tile selector labeled "Music" under the Map information. A list of values that determine what song plays can be found in the list section of the forums.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Patches

    "What are patches?" Patches are just a "fix" for the game and are completely optional, however they have benefits that you may want to use.

    To get to the list of patches you will have to go up top and click on the "Patches" menu. There will be two more menus, ages and seasons. Ages contains patches only for Oracle of Ages, and seasons contains patches only for Oracle of Seasons. Once you click on a patch, it is applied. Sometimes you may need to click the re-apply ASM patches in order for a patch to work. Here are descriptions of each patch.

    Ages Patches:

    Remove Forest Randomization - Removes the forest randomization caused by the fairies in the present over world.
    16x16 Overworld - Allows the use of all the "X" or blank maps found through out the over world maps (including underwater maps).
    Remove Beginning Locks - This patch removes the lock on the start button, allowing you to access your item menu. It also removes Nayru's kidnap event.
    Crystal Switches in All Dungeons - This allows for those crystal looking switches to be used in every dungeon (the ones generally used for the raising of the red and blue blocks).
    30 Chests per Overworld - This patch is actually applied automatically upon loading your ROM in ZOLE. What it does is adds 30 empty chests, for use, onto map 0 of each overworld (including underwater maps).

    Seasons Patches:

    Remove Beginning Locks - This patch removes the lock on the start button, allowing you to access your item menu. It might remove Din's kidnapping event, I am not sure.
    Remove Wagon - Removes the wagon off the starting area so it's not constantly there throughout your hack.
    Wake Up Without Din - Allows you to actually change your starting map without having to re-add the interaction in which Din comes onto the map and finds you.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Editing Chests

    First off let me get one thing straight. You CANNOT add your own chests into the game. There is a limited number of chests, however its a high number and should serve you fine for whatever hack you are making. Second off, you CANNOT have more then one chest in a room.

    The chest editor can be found up top in the Tools menu, or by clicking the chest icon near the top. It also has a hot key of Ctrl+H.

    To edit a chest you must be on a map with existing chest data, if you want to move chest data over to a different map simply go onto that different map open the chest editor and it will tell you no chest data is on the map, but ask you for a map to swap with. Map 0 of the over worlds contains 30 usable chests to be swapped over to other maps, so should you ever need one, simply go there. You can also use chests off of other maps.

    The YX value in the chest editor is the actual location the chest will appear. You enter its coordinates in here, in YX form. You can find the coordinates by hovering over what tile you want your chest to be on, then looking at the bottom of the window where it says "X:" and "Y:".

    Example: If you want a chest to appear at X:3 and Y:4 in the YX value box you would put 43.

    The "ID" Value is the actual item that will be contained within the chest. There is no ID list as there is a lot of values so you will have to search for certain item values yourself sometimes, don't be afraid to experiment. Although there is not list of ID values, there are certain lists containing values for things such as all the weapons and ruppees. Make sure to check out the list section.

    WARNING - Sometimes the game will freeze when you put a item in it and open the chest, this is generally because whatever item it is was never meant to be obtained by chest, an example being the level 1 sword. The program ZOCF (Zelda Oracles Chest Fixer) can be used to prevent this from happening, allowing you to place those items within the chest. There is a separate tutorial for ZOCF which can be found here:

    http://zeldahacking.ulmb.com/index.php?topic=11.0

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Changing the Start Position

    By default you are set to "spawn" on map 8A whenever you start a new save in Oracle of Ages, but what if we want to change that? Well it's easily doable with the Start Editor. The start editor can be found in the tools menu, or by pressing Ctrl+T or by just clicking the Link icon on the toolbar up top.

    There are 3 values you'll need to fill out, the map you want to start on, what map group you want to start on and the position you want link to fall onto.

    The starting map is the first box, and the value that goes in here is simply the value of the map you want. You can find the value by going to that map and looking at the upper right corner where it says "Map: x" and just copying that value.

    The map group box is the map group your starting map is found on, you can find this value by looking at the bottom of ZOLE where it says "Real Map Group: X" There are 7 map groups, and you can start in any one of them.

    The last value is separated into two boxes, these are the exact position you want link to fall on. The left box is the X and the right box is the Y. Now you should already know how to find the X, and Y of a tile however what about the exact X and Y? Well with exact X and Y the values range from x0 to xF (x being any of the regular values show at the bottom of ZOLE). You will find that x8 and y8 is the center of a tile, so you will most likely use those values, however you may want to experiment.

    Example: If I want link to start in the first room of level 1, I would set the starting map to "24", the group to "4" and if I wanted link to fall at the center of the position X: 3 and Y:5, i would then set the first (left) bottom box to 38 and the second (right) bottom box to 58.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    The Palette Editor

    The palette editor is exactly what it sounds like. It edits the palettes of the tiles. To get to the palette editor you can go to the tools menu and select it, or press Ctrl+P or just click the little colourful square on the toolbar.

    At the top right of the palette editor you have two boxes, one for preexisting palettes and on for changing the area ID that the palette editor will edit. Beside that, on the left, you will see a 7x4 arrangement of colour rectangles. Each colour can be changed individually to allow the user to make their own palette. By left click a colour, a box will pop up where you can choose colours off of a list or you can make your own custom colours via the "Define Custom Colors" button. Each colour rectangle will change a part of the tiles, you will have to experiment as to what box changes where.

    When you are finished simply click the OK button, afterwards you will be prompted to clear cached images, if you select yes all the tiles and maps will be reloaded and you will be able to see what changes you have made. If you select no your changes will still be there, you just won't see them until you update the minimap or reload your ROM.[/list]

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    The Tileset Editor

    So you know how to edit maps, change area ids and palettes and you even know how to edit palettes. Well what the heck is left to teach on map editing? Thats right, editing the tiles appearance itself. First lets get one thing out of the way, you cannot edit a tiles collision properties, only a tiles appearance meaning, you can make the water tile look like land, but it will still be water.

    Now how do we go about editing tiles? With the tileset editor of course. This can be accessed in the tools menu, or by pressing Ctrl+L or by just clicking on the dirt tile on the toolbar. Once clicked a rather large window will open containing the tileset of the map you are currently on, (found on the left side, it's really big you can't miss it) the tiles, (top right box, most likely looks like a mess, with some noticeable tiles in it) the editor itself, (right below the tiles) and the save, cancel buttons.

    Lets start with the actual tiles (top right). To select a tile you simply left click a tile. You can right click and drag to copy a tile on top of another tile. Above the tile selector you will see palettes that you can edit your tile in, if you've edited a palette before hand it will be in there somewhere. Down below the tile editor you can you can see a "zoomed" version of the tile you have selected (left side) and the 4 colours you can edit with (right side). By left clicking one of the four colours you will select it. You can then left click a pixel on the zoomed in tile to edit the pixel. By right clicking a colour on the zoomed in tile you will select it for use with the left click.

    *One thing to note is that you cannot recover edited tiles once you click the save button so do be careful.

    **Another thing to note is that to make sure you get the most out of tile editing and spend the least time possible, you should make sure that if your planned tile uses some parts that are reversed (horizontally, vertically or both) that you should just select the tile and check the corresponding flip boxes. Your edited tile will not change but when you place it onto the tileset it will have the transformations applied.

    After you have edited a tile you simply make sure its selected then go onto the tileset box (on the left) and left click to place the tile. If you ever want to quickly access a tile in the editor but can't find it because it's too messy you can right click on it in the tileset and you will select it automatically, palette and all. Make sure to save your changes, and you are done.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Miniboss (Dungeon) Portals

    This tool is really self-explainitory and has no difficulty whatsoever. When you open the tool you will see three boxes and you will only have to fill in two of them. The first one is the level you are changing the portal for. The next two boxes are just the maps that the portal will take you to and from. Change the values to that of the maps you want (found in the upper right corner).

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Gale Seed Warp Editor

    When you open up this editor you will see a small recreation of the present overworld for ages. The black squares are the locations of all the mystical seed trees (locations you can warp to). You can switch from the present to the past by clicking the past circle underneath the map.

    The index value is just to distinguish the different warps. By clicking the up/down arrows you will scroll through all the warps. You will see that the currently selected warp is surrounded by a red square.

    The map value is the map the warp is located on. By changing it you will change the map you will actually end up warping to. You can see your changes in the model map above.

    The dest. YX value is the position your character will land on after warping to that map in YX form.

    The unknown value is well, unknown. I haven't really used the editor so I do not know but if you do feel free to tell me so I can alter this tutorial.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    94  Oracles Hacking / Tools / Re: Gameboy Pointer Grabber on: May 06, 2011, 02:36:56 AM
    I'm sure some people will find this tool to be useful, not so sure myself. Although... it should entertain me for hours :thumbup1:
    95  Oracles Hacking / Tutorials / Re: ZOLE - Warp Editing Tutorial on: May 05, 2011, 09:37:33 PM
    Edited some information regarding destination groups and side warp maps. Somehow I missed a large piece of juicy information, that somehow I didn't even know. -facepalm-
    96  Oracles Hacking / Opinions and Experiments / MOVED: Custom Event #3 - Lava Solidifying on: May 04, 2011, 08:20:50 PM
    This topic has been moved to Show Off.

    http://zeldahacking.ulmb.com/index.php?topic=183.0

    A ZOSE script might as well be in the ZOSE script show off section... not that there was one when this topic was made :p
    97  Oracles Hacking / Opinions and Experiments / MOVED: Custom Event on: May 04, 2011, 08:17:53 PM
    This topic has been moved to Show Off.

    http://zeldahacking.ulmb.com/index.php?topic=145.0

    A ZOSE script might as well be in the ZOSE script show off section... not that there was one when this topic was made :p
    98  Oracles Hacking / Discussion / Re: The Power of RAM Editing - Custom Bosses via Regular Enemies on: May 04, 2011, 08:10:40 PM
    I've actually added some stuff to the list and corrected some errors, as the values were missing, not that anybody other than my handsome self would have noticed.

    Also a note about those hoping to use "DxA4" in there script I'll tell you right now the description is misleading of sorts. What happens is if you set DxA4 to anything under and including 80 (7th bit) the enemy basically becomes a ghost in the sense you can see them, they do their normal movement patterns and what not, but you cannot interact with them. You walk right over top of them. If set above 80 it basically becomes the regular enemy again, full interaction nothing changed at all (at least that I could tell).
    99  Oracles Hacking / ZOLE Live / Re: Testers Needed on: May 03, 2011, 12:50:24 AM
    As you may know, ZOLE Live is making great progress, and I honestly can't do the entire thing alone. Sure I can connect to localhost, but networking is too fast that way and unreliable. For example, when testing with Fatories, bugs appeared that weren't there locally.

    I don't even think this post is necessary, but hey Im here to test whenever, you know im on 90% of the time so yeah.
    100  Oracles Hacking / Tutorials / Creating your first script in ZOSE - 1.05 on: May 01, 2011, 03:31:16 PM
    Welcome to a beginners guide on using ZOSE (Zelda Oracles Script Editor). In this guide I will be covering the basic skeleton of your script, and getting your script started. I will not be teaching you how to make any scripts. Should you wish to look of a script for help, there are examples all over the forum for you to feed off of, just be careful and make sure they are for 1.05.

    To work with ZOSE we first need to open ZOSE, and there are two ways to go about doing this. There is the most obvious way that I hope to god you'd know how to do, and that is to just run the ZOSE.exe that comes with ZOLE. The other, recommended way of loading ZOSE is by launching it via the launch feature in ZOLE itself. By launching it inside ZOLE it prevents data you dont want to be overwritten, from being overwritten.

    Explanation: If you open your ROM in ZOSE then open it in ZOLE, or vise-versa, the programs will only load the data once. What this means is if you go into ZOLE, edit some overworld tiles, then go into ZOSE and make a script, compile it, once you go into game all the changes made into ZOLE will have been overwritten because they were not in the ROM at the time you loaded it into ZOSE.

    Once you have ZOSE open you'll see the main ZOSE interface, which is where you will write all of your script. If you didn't open ZOSE by launching it via ZOLE, then you will need to load your ROM by going file, open ROM (Ctrl+O). If you launched ZOSE with ZOLE then your ROM will have already been loaded into ZOSE.

    Before we can write our script, we will need to find some free space in the ROM, and to do this we will have to go to the upper left corner and click on the file menu and click the find free space button (Ctrl+F). You should have a screen similar to this one pop up:



    Just leave the values the same (both boxes at 100) and click search. A bunch of values will have popped up, they are free space in the ROM that we can use for our script. Go ahead and select a value, for this demonstration I've went ahead and just chosen 17DDB. Once you select a value and click the ok button, you will be taken back to the main interface but this time a line of code will have appeared: writelocation (x), where (x) is the value you chose.

    All thats left for us to do now is define our interaction value. With scripts your interaction will always be 72xx, and to set the xx and make our interaction unique and placeable in ZOLE we will use this line of code: setinteraction72 (xx), where (xx) is the value you want. The value can range from 00-FF. So if you wanted to the interaction to be 7201 you would type: setinteraction72 1 (you could also type setinteraction72 01, it does not matter).

    You should now have the start of your script finished, and it should look something like this:



    With that you are now ready to write your actual script. Your actual script comes right after the setinteraction72 line.

    When you are finished your script, go to "build" and then "compile". (Found up top) Then go into ZOLE (make sure to reload your ROM if you didn't use the launch feature in ZOLE) and on the map you want your script, create a type 2 Interaction with the ID 72xx, the last two digits depending on what you set it to in your script. (7201 in my example) Go play the game, test your script and fix any issues you may have.

    To view your script after you've closed ZOSE or have started a new script, simply go to the decompile menu then click on Decompile 72 Interaction. A window will pop up asking for the ID. The Id is the last two digits of the 72xx you set for your script. So if you wanted to view 7201, you'd enter 1 in the box.

    Check the ZOSE Documentation for an extensive list of memory addresses, commands, etc.

    I will now go over some basic commands to help get you started in making your first simple script, whether it's something that spawns enemies onto the map or just a script that changes some tiles.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    The "checkspecialflag" command, checks to see if the roomflag 80 (7th bit) has been set. If it has been set then it will halt the scripts progress. This is helpful when you don't want a script to always run when you enter the room, but rather just run one time.

    The "setroomflag" command, sets the specified roomflag for the room the script is in. It has one argument and that is the roomflag value. You would most likely use this at the end of your script to set the roomflag 80 so that the checkspecialflag command will halt your script. The final line of code would look like setroomflag 80.

    The "spawnenemy" command, allows you to spawn an enemy into your room. It has 4 arguments which are the enemies ID1, and ID2 as well as the Y position and the X position you want it to spawn at. To get the enemy IDs go to the enemy list in the list section on the forums and find the enemy you want to use. (3001 - Blue Tektite in my case) Now take first 2 digits and use it as the ID1, and then the last two digits as ID2. Mine would look like " spawnenemy 30 1 (Y) (X)"  The last two values are just the Y, and X positions you want the enemy to spawn at. In the end you'll probably have something that looks like this: spawnenemy 30 1 58 78.

    The "checkenemycount" command, checks to see if there are 0 enemies in the room. If the room does not have 0 enemies then the script will stop until it does. This is useful for when you would want to spawn a chest after all enemies are defeated.

    The "settilepos" command, will set a tile to a different, specified tile. It has 2 arguments, the YX position of the tile you are setting and the tile valie that you want it to change to. If I wanted to change the tile at X: 6 and Y: 5 to a chest, I would then have this line of code: settilepos 56 F0, because F0 is the chest tile vale and 56 is the YX position I wanted to set it at. To find the tile values, just hover over the tile you want in ZOLE and look towards the bottom, it says the value.

    The "setcoords" command, sets the coordinates of the actual script interaction (72xx). This is useful because some commands such as the createpuff command activate where the interaction is located. It has 2 arguments which are the Y position and the X position. The final line of code would look something like: setcoords 58 38, where 58 is the Y and 38 is the X.

    The "playsound or setmusic" commands, play a sound/music depending on what value you choose. Check out the sound/music lists to learn the values.

    The "checkmemory command, will check a specified memory address (check the ZOSE documentation for a list of addresses) and check to see its value. If the value matches the script will continue, if it doesn't match the script will stop until it matches. It has 2 arguments, the memory address and the value. An example would be: checkmemory D00B 58. This example would check to see if Link's Y position matched, if it did then it would continue on with the script, if it didn't the script would wait until it did.

    The "setmemory" command, will set a memory addresses value. It has 2 arguments, the address and the value. An example would be: setmemory C6AA 40, which would heal Link back to full hearts.

    These are just a few commands you will be using while making your script, make sure to check the ZOSE documentation for more commands, memory addresses and good stuff. I hope this small tutorial helped you get started on your way to becoming a scripter, thanks for reading.
    101  Oracles Hacking / Show Off / Lost Woods In Ages on: May 01, 2011, 04:19:13 AM
    As the title suggests I made a version of the lost woods with ZOSE, but in oracle of ages.

    A video can be seen here:

    http://www.youtube.com/watch?v=o-krjT7Mtlc
    As the lazy loser I am, I shall not share the scripts involved in this handsome creation. Enjoy the video though Tongue
    102  Oracles Hacking / Help / Re: Oh Lordy halp me. on: April 28, 2011, 12:07:04 AM
    spawncommon 20 2 68 78
    setroomflag 80
    forceend

    setroomflag 80lepos 51 6D
    spawncommon 20 2 68 78
    setroomflag 80

    Just like that brohemoth, and heck by doing that you might just completely get rid of some of that extra pile of shit, that is if my previous experiences have taught me anything.
    103  Oracles Hacking / Help / Re: New Sign Feature on: April 15, 2011, 08:54:45 PM
    You have to use the actual sign tile in the tileset, and it has to be placed exactly where you put the sign in the sign editor.
    104  Oracles Hacking / Lists / Re: Helpful ZOTE Values on: April 12, 2011, 07:27:31 PM
    Wouldn't mind learning how to edit sign posts. I'm not sure how Jigglysaint's values apply o-o

    You use the sign editor in ZOLE, then just edit the sign text in ZOTE.
    105  Oracles Hacking / Tools / Re: Zelda Oracles Text Editor on: April 06, 2011, 01:40:41 AM
    So...if I were to edit text and forgot to turn off Auto-Reference...is there any way to restore the original text?  :001_unsure:

    I'm afraid not.
    Pages: 1 ... 5 6 [7] 8 9 ... 15
    Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!