Users browsing this thread: 1 Guest(s)
FF6Tools - ROM Editor for OS X

#91
Posts: 167
Threads: 3
Thanks Received: 15
Thanks Given: 100
Joined: May 2013
Reputation: 0
Status
None
(01-18-2019, 11:47 PM)Everything Wrote:
  • Search for "worldGraphics2" and change its "range" to "0xEF7D07-0xEF9D17"
  • Search for "worldLayout2" and change its "range" to "0xEF4A46-0xEF7D07"
I tested this out on an expanded ROM and it worked.

I was able to make it work in the end, thanks.

Also, event based entrances seems to share unintended data like NPCs and probably other stuff.

For example, if I mess with the NPC that sells goods in Phantom Train (map 145) and save it, he will appear in both instances of that map (2 wagons uses that map but have different NPCs, entrances for both instances are events). I modified one of the NPCs in Map 151 so he become a seller as well (just by changing script pointer to CB/AD44) and he appears in both instances of that map when he's not supposed to.

It is a bug with FF6Tools or there's something I'm not doing correctly? I never had to do anything else with FF6LE and ZoneDoctor so I wonder what causes this.



  Find
Quote  

#92
Posts: 105
Threads: 2
Thanks Received: 101
Thanks Given: 9
Joined: Apr 2015
Reputation: 16
Status
None
(01-27-2019, 01:34 PM)Warrax Wrote: Also, event based entrances seems to share unintended data like NPCs and probably other stuff.

For example, if I mess with the NPC that sells goods in Phantom Train (map 145) and save it, he will appear in both instances of that map (2 wagons uses that map but have different NPCs, entrances for both instances are events). I modified one of the NPCs in Map 151 so he become a seller as well (just by changing script pointer to CB/AD44) and he appears in both instances of that map when he's not supposed to.

It is a bug with FF6Tools or there's something I'm not doing correctly? I never had to do anything else with FF6LE and ZoneDoctor so I wonder what causes this.

Interesting, I'm not sure why the same NPC would show up on two different maps. It sounds like it might be a problem with the pointer table. I made some pretty major changes to how pointers are calculated and stored just now and I'm hoping it might solve the problem you're having. It's now live on my GitHub page (I also added the FF5 battle editor).

It will also now prompt you to expand the ROM when needed. For now, it does all of the data relocation automatically, but I might eventually add some options to let you specify where to move stuff to. This will potentially cause compatibility issues with other editors, but it allows you to add as many triggers as you want. You'll need to use the default definition file to get the auto-relocation stuff to work, and I've only added it for FF3us and FF2us so far. Let me know if you find any more bugs!

BTW, I had to make a few changes to the definition file format, so you might notice some issues when opening a previously saved ROM. Let me know if anything gets really screwed up and I can try to help you salvage it.
  Find
Quote  
[-] The following 2 users say Thank You to Everything for this post:
  • Seiken_X (01-29-2019), Warrax (01-29-2019)

#93
Posts: 167
Threads: 3
Thanks Received: 15
Thanks Given: 100
Joined: May 2013
Reputation: 0
Status
None
I restarted from scratch because there was issues with event triggers on previously edited ROMs as expected of the changes you made. I changed straight away the NPC in Ghost Train (NPC located at 16, 8 in map 145) by just moving the NPC elsewhere on the map and when saved, he started to appear in the other wagon again.

From what I can see in the event viewer, the event triggers disable all NPCs that have the NPC 521 switch so it does remove most of them as expected, the seller NPC has the 615 switch so I thought that was the reason why it didn't get removed. If I change the switch of the seller NPC to Switch 521, it either disappear completely in both maps or changes into an NPC that says "look out!" that provoke an encounter (I can't say which one of the 2 it really is for now).



  Find
Quote  

#94
Posts: 105
Threads: 2
Thanks Received: 101
Thanks Given: 9
Joined: Apr 2015
Reputation: 16
Status
None
(02-06-2019, 05:08 PM)Warrax Wrote: I restarted from scratch because there was issues with event triggers on previously edited ROMs as expected of the changes you made. I changed straight away the NPC in Ghost Train (NPC located at 16, 8 in map 145) by just moving the NPC elsewhere on the map and when saved, he started to appear in the other wagon again.

From what I can see in the event viewer, the event triggers disable all NPCs that have the NPC 521 switch so it does remove most of them as expected, the seller NPC has the 615 switch so I thought that was the reason why it didn't get removed.  If I change the switch of the seller NPC to Switch 521, it either disappear completely in both maps or changes into an NPC that says "look out!" that provoke an encounter (I can't say which one of the 2 it really is for now).

I have to admit, before now I hadn't looked closely enough at the phantom train interior maps to realize how they work. I tried to replicate this issue but I'm not sure I quite understand what the problem is. Here's what I did:
  1. Open a vanilla ROM with FF6Tools
  2. Go to map 145
  3. Select the ghost at (16,8) and move him to a different spot on the map (this is the ghost who sells stuff)
  4. Run the ROM in an emulator and look for said ghost (I found him in all 3 train cars)
  5. Run a vanilla ROM in an emulator and look for said ghost (again, I found him in all 3 train cars)
Are you saying he's not supposed to appear in all three train cars? Which ones is he supposed to appear in?

Starting from the right side of the train (and ignoring the caboose), I counted 5 ghosts in the first car, 4 ghosts in the second car, and 6 ghosts in the third car (not counting the one who shows up to block the door). I get the same count in both the modified version and the vanilla version. I believe NPC switches 518, 519, and 521 control which ghosts are visible in each of the first three cars, respectively. So if you want a ghost to appear in only the first car, set him to NPC switch 518.

Like you mentioned, the ghost who sells stuff is NPC switch 615. I dug through the event script, and the only reference to NPC switch 615 is when it gets turned on when you board the train (see CA/AA93). So as far as I can tell, that ghost should always be visible.

One thing I should note, if there is more than one trigger on the same tile, you can cycle through them by clicking on that tile repeatedly. I noticed that there are actually 3 different ghosts at (12,8). You might have realized this already.

I also checked map 151. I made one of the ghosts sell stuff, and he only appeared in one train car. At (8,10) there are actually 2 different ghosts on the same tile which show up on the two different cars. One of them joins your party and the other is a battle. Again, NPC switch 518 is for the first car you enter and NPC switch 519 is for the second car.

I hope that clarifies things a bit. Let me know if there's something specific you're looking to accomplish and I can try to help more. While testing, it might be helpful to change graphics/palette/etc to make a specific ghost easier to identify.
  Find
Quote  
[-] The following 1 user says Thank You to Everything for this post:
  • Warrax (02-06-2019)

#95
Posts: 167
Threads: 3
Thanks Received: 15
Thanks Given: 100
Joined: May 2013
Reputation: 0
Status
None
Well...looks like my memory tricked me, I was sure there was only one instance of that seller in map 145 in vanilla FF3. At first I wanted to get ride of the extra sellers but they are supposed to be there so I won't mess with them anymore.

I added a seller in map 151 again and he only appear in one instance as I wanted, not sure if I was doing something wrong before or if it's because of the changes you did, I was already aware of stacked NPCs so I dunno, I'm glad it's working correctly now, I can finally move on.

My goal is to add a seller in map 151 because there's no more ways to buy goods at this point (unless my memory tricks me again) since rear wagons are gone and you can't return to previous sellers.

Thank you for taking the time to test and clarify and sorry for trouble.

EDIT: I used the expanding ROM feature when prompted after I added a couple of save points. It seems to work by itself but will conflicts if I attempt to create an IPS file and patch it over my hack which is already expanded and have tons of patches applied already so I'll wait until we can choose where data relocation goes. Until then, I'll to stick with non expanded stuff.



  Find
Quote  

#96
Posts: 105
Threads: 2
Thanks Received: 101
Thanks Given: 9
Joined: Apr 2015
Reputation: 16
Status
None
(02-06-2019, 11:22 PM)Warrax Wrote: EDIT: I used the expanding ROM feature when prompted after I added a couple of save points. It seems to work by itself but will conflicts if I attempt to create an IPS file and patch it over my hack which is already expanded and have tons of patches applied already so I'll wait until we can choose where data relocation goes. Until then, I'll to stick with non expanded stuff.

Yeah, it's unfortunately going to be pretty difficult to make every aspect of FF6Tools work with a ROM that has been heavily modified by other means. I probably won't get around to implementing manual relocation for a while.
  Find
Quote  

#97
Posts: 12
Threads: 0
Thanks Received: 3
Thanks Given: 3
Joined: Feb 2019
Reputation: 0
Status
X-Zone
Very impressive work on FF5 side!

If you need help with something for FF5 - don't hesitate to ask! I will answer or try to find an answer Smile

I'm curious about script commands - did you find a good source or you did the research?
  Find
Quote  

#98
Posts: 105
Threads: 2
Thanks Received: 101
Thanks Given: 9
Joined: Apr 2015
Reputation: 16
Status
None
(02-13-2019, 04:35 AM)Squall_FF8 Wrote: Very impressive work on FF5 side!

If you need help with something for FF5 - don't hesitate to ask! I will answer or try to find an answer Smile

I'm curious about script commands - did you find a good source or you did the research?

Thanks!

You're referring to the event script? I mostly figured it out from digging through the assembly code. But there's a lot of commonality with FF4 and FF6 so it's not like I had to start completely from scratch. I posted an event dump text file on RHDN if you're interested: https://www.romhacking.net/forum/index.p...ic=27564.0

Any help would be much appreciated! Especially if you have any info regarding FF5 Advance or enemy A.I. scripts (both are completely uncharted territory for me). Also if you find any bugs please let me know.
  Find
Quote  

#99
Posts: 12
Threads: 0
Thanks Received: 3
Thanks Given: 3
Joined: Feb 2019
Reputation: 0
Status
X-Zone
(02-13-2019, 10:27 PM)Everything Wrote: Thanks!

You're referring to the event script? I mostly figured it out from digging through the assembly code. But there's a lot of commonality with FF4 and FF6 so it's not like I had to start completely from scratch. I posted an event dump text file on RHDN if you're interested: https://www.romhacking.net/forum/index.p...ic=27564.0

Any help would be much appreciated! Especially if you have any info regarding FF5 Advance or enemy A.I. scripts (both are completely uncharted territory for me). Also if you find any bugs please let me know.

Currently I work on the task of script parsing. I started mine based on LightPhoenix research and a help of a friend who did like 30% intensive disassembly and extensive comments of bank C0 (where scripting is held). Similar to you I did write a small program that helped me disassemble things on the fly Smile

I tested my parsing vs yours, mainly to check command length. I did notice that your D3 command has wrong number of arguments.

Since my FF5_Viewer work on both SNES and GBA (although some functionalities work only on one platform) I have accumulated some knowledge on GBA version (despite lacking asm knowledge there). But you have to ask specific questions Smile

AI is deciphered on more then 95%. Unfortunately I can not suggest any source with written documentation on it, because the only source I had was slick. But if you check my Viewer you should see the parsed AI in a structured way combined with the raw numbers (under Monster tab).
  Find
Quote  

Posts: 105
Threads: 2
Thanks Received: 101
Thanks Given: 9
Joined: Apr 2015
Reputation: 16
Status
None
(02-14-2019, 10:20 AM)Squall_FF8 Wrote: Currently I work on the task of script parsing. I started mine based on LightPhoenix research and a help of a friend who did like 30% intensive disassembly and extensive comments of bank C0 (where scripting is held). Similar to you I did write a small program that helped me disassemble things on the fly Smile

I tested my parsing vs yours, mainly to check command length. I did notice that your D3 command has wrong number of arguments.

Since my FF5_Viewer work on both SNES and GBA (although some functionalities work only on one platform) I have accumulated some knowledge on GBA version (despite lacking asm knowledge there). But you have to ask specific questions Smile

AI is deciphered on more then 95%. Unfortunately I can not suggest any source with written documentation on it, because the only source I had was slick. But if you check my Viewer you should see the parsed AI in a structured way combined with the raw numbers (under Monster tab).

How many arguments do you have for command D3? I have 4 bytes total (including the D3). Here's my commented disassembly:

Code:
; [ event command $D3: set object position (absolute) ]

; b1: object index
; b2: ddxxxxxx
;     d: facing direction
;     x: x position
; b3: y position

C0/C5C4: A5 DF        LDA $DF
C0/C5C6: 20 E4 C5     JSR $C5E4       ; remove current object from object layout
C0/C5C9: A5 E0        LDA $E0
C0/C5CB: 29 C0        AND #$C0
C0/C5CD: 4A           LSR
C0/C5CE: 4A           LSR
C0/C5CF: 4A           LSR
C0/C5D0: 4A           LSR
C0/C5D1: 4A           LSR
C0/C5D2: 99 7C 14     STA $147C,Y
C0/C5D5: A5 E0        LDA $E0
C0/C5D7: 29 3F        AND #$3F
C0/C5D9: 99 78 14     STA $1478,Y
C0/C5DC: A5 E1        LDA $E1
C0/C5DE: 99 7A 14     STA $147A,Y
C0/C5E1: 4C 40 A6     JMP $A640       ; 4-byte command

Thanks for the heads up about your FF5_Viewer. I downloaded it a while back but haven't used it much (I don't use windows). The hex view for the monster scripts will be very useful though.

Do you have a ROM map for FF5 Advance by any chance?
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite