• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
June 18, 2025, 02:59:53 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Map Menu to access different Events

Started by sunyatasattva, November 11, 2010, 02:27:24 am

sunyatasattva

Hello to everyone,

It's the first time I post, but I have been a long time follower of the project, though I just recently decided to start hacking into the code. As probably most of you do, I think that FFT is one of the best games ever made gameplay-wise, I have been a long time fan of it: so, thanks to everyone for this amazing job.

Anyhow, enough chitty-chat, here's my question: would it be possible to add a menu on either a specific point of the world map, or wherever, to access a serie of different events; like it would be with the Deep Dungeon or the Colliery mines. It would certainly be interesting to use story-wise, but right now I'm interest in a debug sort of feature, where I could just test my events; the world debug feature is neat for testing units and maps, but not for testing events as far as I know.

Ok, that's it for now. I actually have tons of questions right now, but I don't want to be the usual noob spammer of the help section of the forum, so I will save them for later ;).

Thanks a lot guys.

Pride

This isn't possible because the way events are called. The best way is to use a save and load up from there. This page: http://fantasyanime.com/finalfantasy/ff ... _saves.htm Has nearly all the saves you could need. The only ones that are missing are the side quest.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

sunyatasattva

Thanks for the reply, that was the way I was doing it right now.
So it's not possible to mimic something like the Deep Dungeon menu in another spot on the map, or to mess around with how the events are called from the world map? I mean, how does the game know when to trigger an event on a red spot on the map, or how to trigger an event before moving (like the Balbanes' death event upon moving from Gariland)? I guess those are controlled by the ATTACK.OUT conditionals?

Thanks for the link, though, very useful.

Pride

The red dots are triggered from the world map conditions which is found here: http://www.ffhacktics.com/forum/viewtop ... map+events

Basically all of the story events are called from x6E00 aaaa with aaaa increasing one value each time you visit a red dot. So in the Event Magic City Gariland, there is a command that reads Zero(x6E00) Add(x6E00,x0001) the World Map conditions read this command (with a few other things) to trigger the event. I can explain it in greater detail if need be after you check out the link I provided for you.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

sunyatasattva

Great, thanks. I have fiddled around with ATTACK.OUT Event conditionals thanks to Zodiac's great spreadsheet, though the hex editing has given me some headache, and I have not always managed to make it work how I wished to -- actually, I do have a side question about that, can I ask it here, or should I open a new thread?

I've read all the topic you linked; I was wondering, doesn't the instruction ZERO(x6E00) actually reset that variable to zero? Doesn't calling ZERO(x6E00), and ADD(x6E00,x0001) put always the value on 0001? Wouldn't I need to skip the ZERO and just use the ADD to increase the value by one on the event?
Sorry, I'm rather new to this, and sometimes it's very confusing.

Can we do an example?
So, this is the first line of Gariland World Map Events:

0100 6D00 0000 0100 6E00 0100 1D00 0000

So, the 0100 6E00 0100 checks that the storyline variable has a value of 0100 right? So, I'm guessing that the 0100 6D00 0000 is also a boolean check of 6D00 with the value of 0000, though I don't understand what it refers to (I see no clue in http://ffhacktics.com/instructions.php?id=BE). Also, I have no clue of what 1D00 0000 does. Besides, where is the actual event called?
In the event conditionals, event calling would usually be preceded by 1900, if I recall correctly -- and it appears to be so also in the example in this post: http://www.ffhacktics.com/forum/viewtop ... 647#p69647 though LastingDawn probably didn't know this at that time.

EDIT: Ok, while I was skimming through the spreadsheet I found that the actual instruction I was looking for is actually the last one which reads:

0100 6E00 0100 1900 0D00 0200

Or, in laymen words -- please correct me if I'm wrong:
Check (0100) if the storyline progression (6E00) is 0100, then run the script (1900) of Balbanes Death (0D00) on Exit (0200 - as Kaije assumes).
Does it matter that the first script is actually the last one in the order? This has bugged me while modifying Event conditionals.

Pride

You will ALWAYS have to use Zero before the add command. It resets the value so (x6E00,x0001) or other variables are not always running. The way the game calls the events, it stops them from being ran multiple times.

Heh, you found the line that I have no idea what it is asking; I'm not certain with either of those variables mean either. I've checked (x006D) through the events before and couldn't find any matches. Regardless, the event won't run with that boolean active anyways. And 1D00 0000 is telling the map to do something but, again, I'm not certain what it is. That command, also, only appears at Magic City Gariland and no where else. You'll notice that in several of the map instructions that there are several integers that don't appear on that integers page (the one you linked) but will be used in events to stop some events from being ran. Such as the Event Conditions commands in Attack.OUT use 0100 7D00 0000 and while x007D doesn't appear on the integers page, it does appear in events to stop it from running more then once.

Edit:

To your question, I'm not sure. Whenever I am reassigning the events, I tend to follow what the game has already set a precedent for. So, I tend to do Map Instructions, then the event call last. I doubt the actual placement matters though but I have never tested it.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

sunyatasattva

Can you go a little more in depth on the Zero thing? It was probably because of that that one of my events kept running in an infinite loop. Why is that so?

Now World Events are a little more clear. Can you give me insight on this? If I was, for example, to change all the World event lines for Gariland into something like:

0100 6E00 xxxx 1900 yyyy 0200

Where xxxx is an increasing number, and yyyy is always a different event, would I basically be able to call several events before even going out from Gariland (assuming I increase x6E00 by 1 at the end of each event), or would it go in some sort of buggy loop?

So, how does the Deep Dungeon menu system has not yet been unveiled?


Also, I'm having some problems with the Attack.OUT calling the World Map. Let's say I have a simple 1600 1900 1700, and on the script x017 I've edited the Attack.OUT editor to "Go to the World Map" on Event End; for some reason it still calls the event x018, which has the "Go to the World Map" set, and works. I'm kinda puzzled.

Hey, by the way, thanks for all your time, I really appreciate your help.

Pride

Well the Zero resets the value x006E, now if it isn't reset the event will continue to be called because the conditions are always met. For example 0100 E600 xxxx 190 yyyy 0200, now if xxxx is always active then what is stopping the event to be called again? This is why Zero is always used for it.

If you go back and change the Zero, Add commands in the game and the Gariland command then, yes, your idea will work but it does seem to be more work then just using the memory cards. Its up to you though.

And I was actually wrong, the Deep Dungeon menu can be altered but I don't know how to do it. Zodiac has a tournament hack that calls the maps from the deep dungeon. But I didn't realize it until I was watching some of the 1.3 tournament videos earlier today. =P Sorry about the mistake. I'm certain if I looked closer at Deep Dungeon I could do it but I haven't yet. I'm still relatively new to editing the World Map commands as well.

Attack.OUT editor is actually numbered incorrectly. It begins at 000 when it should start at 001. So if you're trying to call event 17 from the world map, that would be 18 in the Attack.OUT. I'm almost certain that this is your error.

And you're welcome ^_^
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

sunyatasattva

Mmm... I'm not sure I quite get it. I mean, it makes sense to Zero the variable After the event, so the conditions aren't met more than once; but to Zero it Before adding the value, then the value keeps staying there anyways, making the event called again.

QuoteIf you go back and change the Zero, Add commands in the game and the Gariland command then, yes, your idea will work but it does seem to be more work then just using the memory cards. Its up to you though.

Yea, you're indeed right; as a matter of fact I was just wondering if I had understood well, wasn't thinking of using it for my purposes.

As for the menu... I guess I will wait whistling around in the hopes that Zodiac would explain that to me ;). I could try to figure it out, but I have no idea of how any of the menus works, so I don't know where to look.

QuoteAttack.OUT editor is actually numbered incorrectly. It begins at 000 when it should start at 001. So if you're trying to call event 17 from the world map, that would be 18 in the Attack.OUT. I'm almost certain that this is your error.

Actually it should be 16 in the Attack.OUT editor, right? Anyhow, I checked it, and you're right; I haven't tested it yet, but I'm quite sure that was the problem indeed, so no needs to check for now.

Pride

The zero does come after the end of an event, not before.

For example you see 0100 6e00 0200 1900 1E00 0100 on the world map instructions, when you go to that location, it will start the event x001E, and at the conclusion of that event sequence (be it cut scenes or a battle), you'll see Zero(x006E) which resets the variable, then it will be followed by Add(x006E, x0003) so now when it goes the the world map, event x001E won't be triggered again because the conditions are no longer met and now the world map instructions 0100  6e00 0300 1900 2100 0100 will be met.  I hope this cleared it up for you.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

sunyatasattva