Users browsing this thread: 1 Guest(s)
Event editing: Invisible NPC like in Narshe?

#1
Posts: 26
Threads: 6
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2020
Reputation: 3
Status
None
Greetings, this is my first time on this forum. I've been a life-long Final Fantasy fan, with 6 being one of my favourites. I've spent the last few days carefully studying most of your documentation and tutorials on event hacking, including the Event Script dump, Event Commands txt, Event bits txt, and the video tutorials. First I'd like to thank all of you for the awesome work you've done with that, it was really helpful to me! Right now, though, I've got a problem on hand that I hope you can help me with.


I'm trying to create an additional dungeon which shall be unlocked after defeating the 8 dragons, and as long as they aren't defeated, the entrance door to that dungeon shall remain locked.


It should be kinda like a mini-version of the Dragon's Den if you want, but without all the extra stuff from the Advance version, since I know from a few other Dragon's Den threads here that it'll be nigh impossible to implement it all due to various limitations. I don't need the additional espers, equipment, enemies, or even a 3-party-dungeon, because that would require replacing other maps as there is only so little room to work with in the maps section, sadly. So I lowered my aspiration to something a little more... realistic. A smaller dungeon with Czar Dragon at the end will be totally sufficient for me. Ok, here's what I did so far:


First I used FF6LE to edit the World of Ruin map a little bit to create a new cave entrance leading to one of the unused maps (it's map 002D, in case that's important). On this map I've created a short corridor leading to a door, and I want this door to remain locked until the condition of defeating all 8 dragons has been fulfilled.


Next, I modified the event that is triggered after defeating the last dragon and gaining Crusader. This event is originally at offset C201D (no header). Since I needed more room, I used a jump with B2 to move the entire Crusader event to some empty space of an expanded ROM, currently at offset 300490, using B2 90 04 26.


Then I inserted two more things at the end of it:
  1. activating an unused event bit (I chose bit 149 like in your site's tutorial). For convenience, I'll just call it the 'Crusader bit' from now on.
  2. adding an additional dialogue to inform the player about the Dragon's Den now being accessible.

My new Crusader event looks like this, with the bold bytes being new:


EB 06 01 00 C0 A0 01 B3 5E 00 4B E1 C5 EA 06 01 00 94 F4 86 58 F6 B0 03 B2 E0 9A 02 92 B1 92 58 F4 92 4B E2 C5 F4 8D 86 45 D2 49 4B 7D C6 3A FE


I tested it, and it worked fine. Alright, so far, so good.


Next, about the locked door at the dungeon's entrance. For this, I took a look at how Narshe handles its locked doors in the World of Ruin. It turns out they use invisible NPCs in the exact same spots as the doors which block your path until Locke is in your party, then they disappear.


I tried to use the Narshe doors event as a blue print for my new custom event. Since I moved the entire Crusader event to empty space, I've got a bit of room in its original place for a B2 jump to my new custom command.


I copied the event from the Narshe doors, but used the 'Crusader bit' check instead of the 'Locke in your party' check, and instead of the party members coming out and standing there, I added some light blue screen flashing, just the same as the one used when Terra meets Tritorch in the World of Balance. Lastly, I also set another unused event bit (bit 14A) at the end to prevent repeated triggers (let's call this one the 'door opening bit'). My custom event currently looks like this:


C0 49 01 00 05 26 C0 4A 81 B3 5E 00 B0 14 50 27 B1 59 08 5C 92 4B 84 06 42 10 D2 4A FE


What this event is supposed to do is: first check if the Crusader bit is clear, if yes branch to this code:


4B 7E 06 FE (a simple dialogue telling the player that the door is sealed by a mysterious force).


Next, it checks if the 'door opening bit' is set (that is, if the door has been opened already), if yes simply branch to the return function.


If the Crusader bit is set but the door opening bit is clear, the rest of the event shall be executed, with the screen flashing, the invisible NPC being removed, and another dialogue box.


Finally, I added an NPC to my custom map right on the door tile via FF6LE, and gave it all the same properties that the Narshe NPCs have.


And this is where I got stuck... my invisible NPC doesn't seem to be working. I can always walk right through it, no matter whether I had already defeated all the dragons or not. I've read somewhere that NPCs first have to be initiated via the map's entrance event, but the strange thing is: the Narshe map doesn't seem to be doing this with its invisible NPCs either. For reference, Narshe's entrance event is shown as 236BD in FF6LE (which is actually C36BD in the hex editor) and looks like this:


D4 A0 B0 1F 51 9F 05 07 B1 B0 02 51 3F 07 07 B1 B0 03 51 3F 06 06 B1 B0 04 51 3F 05 05 B1 FE


All that's going on here is some repeating commands, probably the smoke from the chimneys and the wind blowing, not sure, but there is no NP C initiation here (unless I'm blind?). So... if it's not the missing NPC initiation that's causing my problem, then what else am I missing here?


Also, does my custom event need to be assigned to this new NPC, or can it also be triggered via an event when stepping on the tile before the door? Or are both possible options?


I'm grateful for any help, and sorry for the long post. Oh, and just to let you know, I'm not a programmer, and I know absolutely nothing about assembly, just merely a long-time FF fan. My so far limited knowledge about hacking comes only from reading documentations and a few trial and error attempts, so please keep your answers simple enough for a non-programmer like me to understand.
  Find
Quote  

#2
Posts: 3,966
Threads: 279
Thanks Received: 233
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
I think maybe your NPC is not visible (yes you need an visible invisible NPC lol):

[Image: tFwXy5D.png]

Basically setting its memory bit somewhere before you first enter the cave (not the entrance event though). This should allow to not pass through the NPC and be able to talk to him. $1EE0:0 is default bit so you'd want somethiing else at the end of the range allowed by FF6LE to make sure it is unused. Finally you clear that bit at the end of the event to be able to pass through the NPC after without removing it completely.

If this still fail, try C0 49 81 00 05 26 (check bit set) just for testing purpose and reduce your event to one bit check and a dialogue. But even then you shouldn't be able to pass through the NPC if the good properties are set so I think your problem is with the appearance bit. You event seems ok.
  Find
Quote  

#3
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
I'd think Madsiur called that issue correctly.

The only reason I comment is regarding the "dragon's den" topic. Probably things that have already been theorized and buried in the depths of the forum, so please forgive me for beating a dead horse.

As far as adding espers, I could have swore there was a way to add one new one? Maybe I was just think about the Odin/Raiden thing. Combine them, empty one slot, drop the upgrade reward concept, leaving an empty slot for a new one. Not sure if its possible to add a spell(well make it "active" as learnable only once a quest is completed via code rather than 2 separate espers).

Maps, not counting space which I thought was expandable, slightly, thought there was 1 empty unused map?  Or, dropping a small map by converting it to something like the opera stage handled mostly by code rather than straight map data, then using the map that was replaced as a new dungeon. Or to a lesser extent, reshuffling a map via code (like switches opening passages in the sealed cave, just all done upon entering the map rather than after flipping a switch) to make it appear like a new map, or at least a different map/area.

Equipment, probably not new stuff. Remember it has been done, but not really worth it most likely. Still possible, maybe, not sure if possible along with all the other stuff at the same time.

My biggest point being, has there been recent discussing regarding a type of "dragon's den" on the snes? Lot of things have been worked out since the last brain storm I saw. Okay, maybe it's just moved from impossible to impractical. What your working on is a competent idea, all I'm suggesting is once you get this working, see if it can go farther.


The only true wisdom is knowing you know nothing.
  Find
Quote  

#4
Posts: 26
Threads: 6
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2020
Reputation: 3
Status
None
(02-23-2020, 08:06 PM)madsiur Wrote: I think maybe your NPC is not visible (yes you need an visible invisible NPC lol):

[Image: tFwXy5D.png]

Basically setting its memory bit somewhere before you first enter the cave (not the entrance event though). This should allow to not pass through the NPC and be able to talk to him. $1EE0:0 is default bit so you'd want somethiing else at the end of the range allowed by FF6LE to make sure it is unused. Finally you clear that bit at the end of the event to be able to pass through the NPC after without removing it completely.

If this still fail, try C0 49 81 00 05 26 (check bit set) just for testing purpose and reduce your event to one bit check and a dialogue. But even then you shouldn't be able to pass through the NPC if the good properties are set so I think your problem is with the appearance bit. You event seems ok.

Ah, that's a good tip, I'll try it out immediately. Only problem is, the cave is reachable right after obtaining the airship, so that NPC's memory bit would be needed to be set in the 'get the Falcon' event as the latest possible point in the story, right? Damn, my only test save right now was before defeating the last dragon. Oh well, guess I'll have to replay most of the WoR again in order to properly test it. I'll be using the NPCdata.txt document to check which NPC bits are unused (if a bit is not found in there, is it save to assume that it's really unused? Same question for the ChestData.txt?).


Quote:My biggest point being, has there been recent discussing regarding a type of "dragon's den" on the snes? Lot of things have been worked out since the last brain storm I saw. Okay, maybe it's just moved from impossible to impractical. What your working on is a competent idea, all I'm suggesting is once you get this working, see if it can go farther.

There are a few threads about the Dragon's Den in the depths of this forum, but they are mostly older, and were also mostly trying to implement ALL of it, and the answer to this was pretty much always that this would be a truly herculean task, and likely impossible due to restrictions on item amount, spell amount, enemy amount and such. That's why I have set my goal a little less ambitious, a normal dungeon is fine for me, the enemies and treasure chest contents will be with stuff that already exists in the SNES version, but good stuff which is otherwise hard to come by (e.g. Genji equipment, Mirage Vest, Marvel Shoes, maybe a Snow Muffler or a Megalixir or two). I'll definitely try to make the most of it, and see just how much space I can squeeze out of the maps.

Too bad that map space is so limited, since the rom expansion gave me really a lot of free space that would be more than sufficient. Is there really no way to tell FF6LE to use this free space at the end of the rom for maps?

And one smaller question if you don't mind, how can I have the game show the location's name upon entering? I did set the appropriate message in the 'layers' sheet, see here:

[Image: fa68bd-1582564897.png]


but it doesn't show up in-game. Any ideas why? Thanks again for your help.
  Find
Quote  

#5
Posts: 3,966
Threads: 279
Thanks Received: 233
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(02-24-2020, 01:26 PM)Gestahl Wrote: Ah, that's a good tip, I'll try it out immediately. Only problem is, the cave is reachable right after obtaining the airship, so that NPC's memory bit would be needed to be set in the 'get the Falcon' event as the latest possible point in the story, right?

Yes that is correct.

(02-24-2020, 01:26 PM)Gestahl Wrote: Damn, my only test save right now was before defeating the last dragon. Oh well, guess I'll have to replay most of the WoR again in order to properly test it. I'll be using the NPCdata.txt document to check which NPC bits are unused (if a bit is not found in there, is it save to assume that it's really unused? Same question for the ChestData.txt?).

You could always just set the bit temporary in a current event like a NPC dialogue for testing purpose, it would be faster than replaying most of the WoR. Then after if you know it work, it's 99.9% safe to set the bit in the falcon event without another testing. Treasure chests and NPC bits both have a range near the end of what FF6LE allows that is unused, what I used to do is select the last bit in the editor and go downward for other bits. You method of double checking with Imzogelmo's docs is also good.

(02-24-2020, 01:26 PM)Gestahl Wrote: Too bad that map space is so limited, since the rom expansion gave me really a lot of free space that would be more than sufficient. Is there really no way to tell FF6LE to use this free space at the end of the rom for maps?

You could use FF6LE Rogue CE which allows various expansions including tilemaps.

Edit: For the location name, I thought setting the message on the map like you did was enough to trigger it in-game.
  Find
Quote  

#6
Posts: 26
Threads: 6
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2020
Reputation: 3
Status
None
Thanks for the quick reply, madsiur! Oh, I didn't even know about another version of the level editor, so far I've been using the "normal" FF6LE Rogue. Would this expansion affect any compatibility with FF3usMe? Because I'm pretty sure I'll still need that one in the future.

Hm, I'll try again with the location name, maybe I just didn't save it properly or something. Or maybe some of the unused maps can't display it at all? Just to make sure, are all of the following maps really unused in the game?

2D, 2E, 4F, 63, 76, 7A, C7, DE, DF, E0, E3, E4, E5, E6, 101, 109, 113,11E, 14D, 17B, 183, 184, 193, 19E

They aren't named except for an underscore ____ most of the time, and I also checked that none of them contain any exits or events, so I assumed they were all good to use...
  Find
Quote  

#7
Posts: 3,966
Threads: 279
Thanks Received: 233
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(02-24-2020, 02:36 PM)Gestahl Wrote: Oh, I didn't even know about another version of the level editor, so far I've been using the "normal" FF6LE Rogue. Would this expansion affect any compatibility with FF3usMe? Because I'm pretty sure I'll still need that one in the future.

No it won't affect FF3usME compatibility. None of the things FF6LE can edit can be edited with FF3usME anyway.

(02-24-2020, 02:36 PM)Gestahl Wrote: Or maybe some of the unused maps can't display it at all? Just to make sure, are all of the following maps really unused in the game?

That is a possibility. What is that I remember is not all dummied maps can be used, I think those with an underscore can and the others can't or the opposite. Someone else could probably clarify this better than me..
  Find
Quote  

#8
Posts: 26
Threads: 6
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2020
Reputation: 3
Status
None
(02-24-2020, 01:34 PM)madsiur Wrote:
(02-24-2020, 01:26 PM)Gestahl Wrote: Ah, that's a good tip, I'll try it out immediately. Only problem is, the cave is reachable right after obtaining the airship, so that NPC's memory bit would be needed to be set in the 'get the Falcon' event as the latest possible point in the story, right?

Yes that is correct.

It worked! I've set the NPC's memory bit in one of the Setzer and Daryl flashbacks at the Falcon event, and after setting all dragons' HP temporarily to 1, I breezed through the WoR with a speed button and the Moogle Charm equipped and can now confirm that it works perfectly, after a few slight modifications to my event. You were right, setting a second event bit when opening the door wasn't really needed, but clearing the NPC memory bit was necessary to prevent the NPC from respawning everytime the map is entered again. 

Quote:You could use FF6LE Rogue CE which allows various expansions including tilemaps.

I tried expanding my rom, but I've ran into the following problem (man, I feel stupid for having to ask so many things, lol):

[img][Image: 424ff6-1582663853.png][/img]

All fields except for the tilemap data are greyed out, and when I try to 'Apply Changes', I get the error message: 'Invalid file path'.

I get this even when using a clean vanilla rom which was just expanded using FF3usMe. Any idea what I'm doing wrong? I'm using FF6LE-CE v.0.81.
  Find
Quote  

#9
Posts: 3,966
Threads: 279
Thanks Received: 233
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(02-25-2020, 05:11 PM)Gestahl Wrote: I tried expanding my rom, but I've ran into the following problem (man, I feel stupid for having to ask so many things, lol):

Don't feel stupid, the way I coded this is super inintuitive lol. Once your ROM is expanded, open it in FF6LE and go to the Expansion Window. Choose a folder for the XML file different from the default one and then click "Apply changes". The "Expand maps" button should enable itself and you should be able to expand the data in the banks specified. After expanding maps the "Expand chests" button should enable itself (this is optional and you don't need it to work with expanded maps. You can come back later to expand chests at any moment). Don't forget to save your ROM after or the expansion will not be saved. I should really change how it is done but I've been lazy to do so.. Cover

I should also add that there's no coming back once the expansion is done. Gi Nattak has been using this version for RotDS so there shouldn't be any problem though.
  Find
Quote  

#10
Posts: 26
Threads: 6
Thanks Received: 0
Thanks Given: 0
Joined: Feb 2020
Reputation: 3
Status
None
(02-25-2020, 09:17 PM)madsiur Wrote:
(02-25-2020, 05:11 PM)Gestahl Wrote: I tried expanding my rom, but I've ran into the following problem (man, I feel stupid for having to ask so many things, lol):

Don't feel stupid, the way I coded this is super inintuitive lol. Once your ROM is expanded, open it in FF6LE and go to the Expansion Window. Choose a folder for the XML file different from the default one and then click "Apply changes". The "Expand maps" button should enable itself and you should be able to expand the data in the banks specified. After expanding maps the "Expand chests" button should enable itself (this is optional and you don't need it to work with expanded maps. You can come back later to expand chests at any moment). Don't forget to save your ROM after or the expansion will not be saved. I should really change how it is done but I've been lazy to do so.. Cover

I should also add that there's no coming back once the expansion is done. Gi Nattak has been using this version for RotDS so there shouldn't be any problem though.

Ah, thanks man, now I got it working! Hello 
I've already encountered my custom Czar Dragon int the very next room behind my unsealed door just to see if this new event worked properly too, and after a little bit of tweaking it did. Next steps will be to gradually add more rooms to the dungeon to see how much I can make of it, and finally I'm going to replay the entire game from beginning to end to make sure that nothing else was screwed up accidentally.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite