FE_Builder_GBA -- If you have any questions, attach report7z

Did you find anything out about the FADU problem with the skill system?

I do not know this yet.

SkillSystems Patch of FE8U is very big.
And since I am based on FE8J, I am not familiar with specific patches of FE8U.

Therefore, I think it will take time to solve the problem.

Hi, I think there is a problem with the "Display all weapon ranks your character has " patch (or maybe I don’t know how to use it properly) on FE8U: I tested it first by giving E rank anima to Eirika (who had only sword rank) wich didn’t display (only physical weapons were there).

Then I thought it could be because sword and anima shared first place in the page so I tried giving here dark and light magic (both at E rank) instead which worked but sword rank didn’t display, only magical ranks.

I hope it’s understandable enough, tell me if you need more details.

EDIIT: Nevermind I asume it may be because we are supposed to use “Display ALL Weapon Ranks” by Kirb instead which works perfectly!

There are two “Display ALL Weapon Ranks”, meaning one does not work well?

Does that mean that
“A” is not work,
“B” is work?

anti-huffman patch can not get the current string,
I decided to get the data directly from the text buffer.

And I decided to highlight the currently displayed line.
Version:20180428.00

Technical information.
FE8U 0202A6AC TextBufferOffset (char*)
FE8J 0202A6A8 TextBufferOffset (char*)
FE7U 0202A5B4 TextBufferOffset (char*)
FE7J 0202A5B0 TextBufferOffset (char*)
FE6 02029404 TextBufferOffset (char*)

FE8J 03000040 Next display with TextBufferOffset Pointer.
FE8U 03000048 Next display with TextBufferOffset Pointer.
FE7U 03000040 Next display with TextBufferOffset Pointer.
FE7J 03000040 Next display with TextBufferOffset Pointer.
FE6 03000038 Next display with TextBufferOffset Pointer.

Exactly, I think A does not work

You need to use patch B for displaying all 8 weapon ranks.

Patch A is for a different use. It’s to ONLY show the weapons your character can use. (It doesn’t work together with Patch B) And you also need to adapt Melee and Magic Fix patch to use it.

If you use the ‘Display all weapon ranks patch by Kirb’, you can still press R to acces the textbubbles, but since there are none for the 4 at the bottom it looks pretty bad.
These edits in the Hex gets rid of the textbubbles.

FIX BY: jjl2357

Paste the below at 0x87852

60 B4 00 26 28 24 04 19 00 25 A1 5D 00 29 0F D0 02 2D 01 DA 01 22 00 E0 03 22 E9 07 00 29 01 D0 09 21 00 E0 01 21 28 1C 33 1C FF F7 84 FF 01 35 01 36 07 2E E9 DD 60 BC 1B E0

Paste the below at 0xA00EB8

00 00 00 00 D4 0E A0 08 D4 0E A0 08 00 00 00 00 18 50 00 00 00 00 00 00 D5 8B 08 08 B8 0E A0 08 F0 0E A0 08 00 00 00 00 00 00 00 00 06 68 E8 06 00 00 00 00 01 8C 08 08 D4 0E A0 08 28 0F A0 08 00 00 00 00 0C 0F A0 08 06 78 42 05 00 00 00 00 00 00 00 00 D4 0E A0 08 28 0F A0 08 F0 0E A0 08 00 00 00 00 26 78 43 05 00 00 00 00 00 00 00 00 F0 0E A0 08 00 00 00 00 00 00 00 00 00 00 00 00 06 88 44 05 00 00 00 00 00 00 00 00 00 00 00 00 60 0F A0 08 B8 0E A0 08 7C 0F A0 08 68 18 00 00 00 00 00 00 95 8B 08 08 44 0F A0 08 B4 0F A0 08 B8 0E A0 08 98 0F A0 08 68 28 01 00 00 00 00 00 95 8B 08 08 00 00 00 00 98 0F A0 08 44 0F A0 08 00 00 00 00 A8 18 02 00 00 00 00 00 95 8B 08 08 7C 0F A0 08 B4 0F A0 08 60 0F A0 08 00 00 00 00 A8 28 03 00 00 00 00 00 95 8B 08 08 B8 0E A0 08 0C 0F A0 08 B8 0E A0 08

And then paste B8 0E A0 08 to 0x889F8

Thanks, then do you know if there is a simple way to unpatch A? Or do I have to find and undo every change manually by comparing to a clean rom?

Version: 20180429.23, I made a patch uninstall function.
However, it may not be reliable, so please take a backup and try.

2 Likes

Sorry, me again.

What commands should I use to replicate this in FE8? (Because I’m porting over a hack).

It’s a condition branch, but I don’t understand how it works in FE8 FeBuilderGba.

https://gyazo.com/1c5ca4ad35725e88a618f2a79a5daa20
https://gyazo.com/6e77fccbfd9260342e2ec7e9e11d4b8e

So if the flag is ON, everything between the 2 takes gyazo’s place, otherwise nothing happens. (It’s a turn event).

I tried it and it seems to be working (at least no error for now), thanks for your wonderful work.

Since fe8 has introduced a memory slot, it is closer to asm.
Please think that the memory slot is like a register.
With fe8, the compare instruction can be executed only for the memory slot.

// jump if the contents of MemorySlotA and MemorySlotB are equal
// If I were going to write a little more easily,.
// BEQ [MemorySlotA], [MemorySlotB]
BEQ MemorySlotA, MemorySlotB 
                         

 // jump if the contents of MemorySlotA and MemorySlotB are not equal
BNE MemorySlotA, MemorySlotB 

You can not compare against immediate values.
Be sure to assign it to the memory slot before comparing.
In FEBuilderGBA, this specification is troublesome, so there are macros to compare by assigning immediate values to appropriate memory slots.

Or use MemorySlot0 always returning 0 to use for judging the bool value.

There are memory slots up to 0x0 - 0xD, but some roles are decided.

MemorySlot0 It must always be zero.
MemorySlotC It is primarily used to receive values.
MemorySlotD Represents the number of queues.(Because it is difficult, I will skip this time.)

To check the flag, use the CHECK_EVENTID command.(In FEbuilderGBA, it is called a flag instead of an EventID, so CHECK_FLAGID may be used.)
Check the state of the flag and write the result to memory slot C.

For example.
If CHECK_EVENTID 0x12, check the result of flag 0x12 and write the result to MemorySlotC.
If flag 0x12 is valid 1 , is invalid 0 , Write it to MemorySlotC.

As a practical example,.
On ch13, there is a part judging Amelia’s survival.
When Amelia dies, flag 0x86 is enabled.

CHECK_EVENTID 0x86 
                   //Acquisition of death of Flag86 Amelia.
                   //The result is assigned to memory slot C.
                   //If she is dead, memory slot C will be 1 because 0x86 is ON.
                   //If she was alive, 0x86 is off, so memory slot C will be 0.
                   //MemorySlotC is 1 == dead, 0 == alive.

BNE MemorySlotC,MemorySlot0 //Then  1
                            //This is a comparison between memory slot C and memory slot 0 which always returns 0.
                            //MemorySlot C is 1 == dead, 0 == alive.
                            //If Amelia is dead, 1 != 00 will be established and the specified label will jump.
                            //If Amelia is alive, processing is continued because 0 != 00 because it is not established.             
                          //Asn's BNE, BEQ must be careful as the direction of flight is opposite to that of C language IF statement.

      //Amelia is alive.
      //will deal with her.

Label 1 //The jump destination when Amelia was dead.

Thank you!
Everything is working perfectly right now.

Translation correction:https://pan.baidu.com/s/1egJhb7MWB2-j4vLOAehgrw

There is a small mistake
This error occurs when selecting a patch

I will fix it next time.
forget to add “|”.

COMBO.zh=禁止0x38 0x28 0x01 0xD0|允许|0x00 0x00 0x00 0x00
↓↓↓
COMBO.zh=禁止|0x38 0x28 0x01 0xD0|允许|0x00 0x00 0x00 0x00

I can not reproduce the error when importing the TMX file with the map editor.
I got some error reports but I can not reproduce it.

Please send me the ups and tmx files.

Author of Descendends of the Crusade 2 0.GBA
Author of Map Editor frest map test.gba

Cooperation of you who sent the error is necessary.

Merged with Version: 20180430.22.

In Version: 20180430.22
The Lint function now also detects errors in map changes (tile changes).

If you specify an incorrect map change,
Lint automatically detects it as an error and reports it.

Replying so I remember this when I get to doing some more hand-translation on the patches section of FEB.

*Edit: @7743, I had a functionality thought that might speed up the unit placer: templates. These would be saved client-side to FEBuilder and not the ROM. Users could then save and name unit templates often used such as “FE8U Monster Gwyllgi” or “FE7U Morph Thief Droppable” for swifter insertion of unique units. Map placement would still have to be done manually, but this would streamline several of the other variables.

Very poor mockup below:

Also thought this idea would really benefit the program! +1


Oh and I have a question again! How can I change the moving map sprite pointer for a class in FEBuilderGBA? I only know how to change the standing one. That’s this one. https://gyazo.com/8c026168edc3c5c8482cadc0cd11ca93

I know how it’s done through other ways, but I kinda want to do basically everything in FEBuilder since it’s becoming such a great program.