ff3:ff3us:tutorial:events

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ff3:ff3us:tutorial:events [2017/10/01 00:30]
lockirby2 Added Addresses
ff3:ff3us:tutorial:events [2019/02/12 12:30] (current)
Line 1: Line 1:
-===== Introduction ===== +{{:ff3:ff3us:tutorial:events:event-tutorial.png}}
-This tutorial will focus on giving you the knowledge that you will need in order to create your own in-game cutscenes (called "events").  Events can do a multitude of things, including animating characters on screen, giving the player items, changing a character's sprite/palette, and more!  Any time a dialogue box displays, or an NPC moves along a fixed path, there are events at work.  This tutorial will focus only on events that occur outside of battle.+
  
-You don't need to be a programmer to understand how to make your own events.  More or less, you'll just be giving the game a sequence of commands, which the game will follow when the event happens.  Once you understand the process, all you'll need to do is string together the correct event commands to get the desired effect.  By the end of this tutorial, you will have learned: +==== Lockirby's Tutorials ==== 
- +  - [[ff3:ff3us:tutorial:events:background|Background Knowledge]] 
-  - What tools are available to help you +  - [[ff3:ff3us:tutorial:events:basic|Our First Event]] 
-  - How to make events "happen" +  - [[ff3:ff3us:tutorial:events:action|Action Queues]] 
-  - How to modify events in the game ROM +  - [[ff3:ff3us:tutorial:events:branch|Branching and Event Bits]] 
-  - How to understand the event commands +  - [[ff3:ff3us:tutorial:events:misc|Miscellaneous Info]]
- +
-===== Tools ===== +
-==== Event Editors ==== +
-While there are comprehensive editors for other parts of the game, such as sprites and monster stats, there is no silver bullet for event editing.  One event editor that exists is called "ZoneDoctor", which is a modified version of FF6LE (the map editor for FF6).  However, ZoneDoctor is considered to be fairly unstable, so it is risky to use.  It is also somewhat limiting compared to editing events manually.  If you are aware of ZoneDoctor's quirks and don't need the extra power, it might be worth using, as it can help to visualize the events that you are creating.  Otherwise, it is probably better to avoid it.  If you do want to download it, it is available {{ff3:ff3us:util:maps:zonedoctorce-0.2.2.zip|here}}. +
- +
-There is another editor that can be used to create events, packaged with Everything's {{ff3:ff3us:util:ff6tools:ff6tools_v0.5.app.zip|FF6Tools}}.  This editor is only compatible with macOS, so you will only be able to use it if you have a Mac computer or install a virtual machine.  For the moment, this guide will focus on editing events manually.  More information about FF6Tools may be added at a later date.  That being said, some concepts learned here should be useful regardless of whether the events are created manually or through FF6Tools. +
- +
-==== Manual Editing ==== +
-In order to do some manual event editing, several tools will be of use to you: +
- +
-  * {{ff3:ff3us:util:ff3usme:ff3usme6.8.0.zip|FF3usME}}: You've probably seen this one around the wiki a few times already, and with good reason!  This editor can do a lot.  Of particular note is its ability to edit dialogue, but it can also provide useful data for various IDs.  For example, you may look up a monster formation ID if you want to force an enemy encounter upon the party, or you may need the ID of an Esper to give the party a specific Magicite. +
-  * {{ff3:ff3us:util:ff6lece:ff6le-ce-0.8.1.zip|FF6LE Rogue CE}}: The main purpose of this tool is to allow you to edit maps.  That's out of the scope of event editing, but this tool is helpful for other reasons.  Like FF3usME, the LE is a great source of information on various IDs.  It also allows you to place NPCs and set entrance events (to be discussed below). +
-  * {{ff3:ff3us:doc:game:command_list.zip|Event Commands Document}}: This document is a list of all the event commands and how to use them.  Examples of how to use the commands are provided, which should hopefully make it easy to use unfamiliar commands once you have learned the basics. +
-  * {{ff3:ff3us:doc:game:ff6_snes_event_bits.zip|Event Bits Document}}: A list of event bits.  Once you know how to read/use it, it will be fairly straightforward. +
-  * {{ff3:ff3us:doc:game:event-script.zip|Event Script Dump}}: The holy grail of event hacking.  This document provides a way to peruse through any event in the game in a human readable format.  Don't leave home without it! +
-  * {{rh:util:hex:hxd_1.7.7.0.zip|HxD}}: This is a hex editor.  It will allow you to modify the game directly.  HxD is recommended over WindHex because it offers a sane way to copy-paste chunks of game data. +
- +
-===== Headers ===== +
-Before we begin anything else, let's talk about the number one thing that trips up the unaware.  A header is a chunk of $200 bytes that appears at the beginning of some SNES ROMs.  The keyword here is //some//; if you download a random FF6 ROM (whether it's version 1.0 or 1.1), it may or may not have a header.  You need to determine if the ROM is headered or not before you begin.  Open the ROM in HxD.  The ROM should look similar to one of {{ :ff3:ff3us:tutorial:events:unheadered_-vs._headered.png?linkonly |these images}}. +
- +
-As you can see, the first $200 bytes of the ROM on the right are all zeros; this unnecessary data is the header.  Functionally, the two ROMs are identical.  The only reason why the header matters is that it pushes all the data forward by $200 bytes.  This means that the game's data won't be where you expect it to be.  This problem could technically be remedied with some simple math, but it's easier to simply use a ROM without a header.  You should either continue searching for ROMs until you find one without a header or remove the header by <doing X, I forget the best way to do this> As an aside, I also recommend using version 1.0 for hacking. +
- +
-===== Addresses ===== +
-If you open up the event script, you'll probably notice some values at the left side, such as CA/0000.  These are addresses.  Addresses are a way to uniquely identify any particular byte in the ROM.  Every byte in the ROM has its own unique address.  If we have looked in the event dump and found an event that we want to edit, we can use the address to find that event in the ROM data as well.  Take a look at CA/0010.  We see that the byte at CA/0010 is 4B.  4B happens to be the command that displays some dialogue.  The event dump also tells us that the dialogue that would be displayed is "Found <N> GP!" So this event is called by the game whenever you receive GP from a chest! +
- +
-Let's say that we want to modify this event.  That would be strange, but we'll pretend that's our goal for the sake of the example.  The first step would be to find the event in the game data.  Unfortunately, CA/0010 is not the address we need to search for in HxD.  <I don't know much about Hi-ROM offsets, so it's hard to give an explanation here>  Therefore, we need to search for the address A0010 instead.  You can go to an address in HxD by clicking on Search > Goto, or using the Ctrl-G keyboard shortcut.  Once we have reached A0010, we can see that the byte here is indeed 4B, so we are in the right place: +
- +
-{{:ff3:ff3us:tutorial:events:address.png|}} +
- +
-Therefore, if we wanted to modify the game so that something other than a dialogue box occurs when the party receives Gil, this is the area we would have to modify.+
  • ff3/ff3us/tutorial/events.1506817842.txt.gz
  • Last modified: 5 years ago
  • (external edit)