Item-Based Branching Promotions w/ Modified Palette Array

Would it be too tall of a task to have an assembly to do two promotion items for a class that individually promote to a completely different class?
No it’s not the same as FE8 in concept since you use one to have a split promotion, where in my case, would use an item to promote to an odd class. Example: Let’s take a very simple theme… Soldier. Promote him with Knight Crest, you get General, but if you promote with say… Royal Seal, you get Dragoon instead.

this is natively implemented in fire shell…

Really? I didn’t find anything like that in the Fire Shell folder.
I guess I didn’t look harder.

I don’t think it’s implemented yet because it’s still incomplete.

We need a revamp of the game’s palette system to allow the designation of which class the palette belongs to, otherwise the battle palettes are gonna look like arse spread across multiple T2 classes (and multiple T1s if someone wants to do trainees).

This thread?

1 Like

Try to jump using r1 , r2, or r3 from 0805322C

00    4B0B    r3 = 09009040 (palette table)
01    6801    ldr r1(r0,0x00)
02    6842    ldr r2(r0,0x04)
03    7909    ldrb r1(r1,0x04)
04    7912    ldrb r2(r2,0x04)
05    7818    ldrb r0(r3,0x00)
06    2800    cmp r0,0x00
07    D00A    beq #19
08    4288    cmp r0,r1
09    D001    beq #12
10    3304    r3 = r3 + 0x04
11    E7F8    b$ #05
12    7858    ldrb r0(r3,0x01)
13    4290    cmp r0,r2
14    D001    beq #17
15    3304    r3 = r3 + 0x04
16    E7F3    b$ #05
17    8858    ldrh r0(r3,0x02)
18    E000    b$ #20
19    2000    r0 = 0x00
20    4B02    r3 = 030014D8
21    8018    strh r0(r3,0x00)
22    3801    r0 = r0 - 0x01
23    4770    bx lr
24    9040    09009040 (palette table)
25    0900    
26    14D8    030014D8
27    0300    

The table is consisted of 4 byte

xx yy zz zz

where xx is character ID, yy is class ID, and zzzz is palette ID though I’m not sure whether the game will accept more than 256 palette.

I made the table similar to the weapon animation table, so it doesn’t have any specific order of character. End the table with 00 in character ID. Reaching the end of the table means that the character will have general palette assigned to him/her/it.

Again, sorry for not being able to post too often.

@Crazycolorz5: Yeah, I’m alive.


No worries, it’s just good to see you’re still around! I was worried that you might’ve melted?

Of course you’d spring out of the shadows with the exact thing needed :slight_smile:

EDIT: Also, I dunno if the engine would support a palette array larger than 0xFF; but if this routine accepts the values, it seems like it’d work? I’ll test it out, but if so that’s pretty awesome in its own right.

Would a patch or raw code be too much to ask? :smiley: :smiley: :smiley:

Then could anyone give us a link to the software to assemble this in a Rom? I been trying to make this work, by just writing the raw code in the offset, but it does not seem to change anything, and the instructions…How do i make it “jump”? And i can say, just writing the raw hex to the rom is not working. Can anyone help me please?

I Finally made it work…Im sorry, but there are a few notes id like to add, for it to work, the reversed bytes of the code must be pasted to offset 0805322C, then, when you make your table it requiries that the pallete ID uses reversed Bytes, so 0100 would be Lyns pallete ID

Guys, Juts cause i learned how to do this, there is a SMALL GIFT, the Nightmare Module with two modules, with two different offsets fot the new pallete table, first one is the original 09009040, and the one alternative is 09223040, choose the one you have free, or you can always chancge the pointer at 53250 :smiley: :smiley: :smiley:

Can’t seem to get your Module to work marlon, both of them keep saying “this module is not compatible with this rom” or something.

EDIT: Fixed it.

Now I’m having a different problem where no matter what I do, it’ll always use the generic palette.

That is werid, wich module are you using and wich code did you used? Original Branched uses the original adress, and the other one uses new free space, when you use this hack, all and any characther that had not been defined would just have a generic pallete, so be sure to use the right pallete and the right class and char

I did not tested the original adress of the code…My bad, but if you ccannot fix it, try using the other code, just expand your rom a lot XDD, and then use the other branched pallete, did you used the branched class patch already?

Edit:I might make a patch with both modules working, but that might take a lot XD

I could seriously go for that right now. Either I go for generic palettes for all units or I got the horribly inefficient route and make a unique animation and class for every character, and have their unique classes promote into their promoted unique classes using the Item-based branched promotions. And trust me, I don’t wanna do that.

So you have not been able to do it? Are you using the right module? You need to define all chars and posible classes that char might have, and also, you need to end your list with a 00 on character ID, try that and see if that helps

I’ve been trying, I know I was using the right module, but no matter what I do, it just uses the generic palettes for everyone. I made Lyn (tutorial) a soldier, and set it to use Wil’s unpromoted palette, for testing purposes. It still uses the generic palettes no matter what I do.

Ok then im making a patch, if you share with me the female warrior you found
Or Send me your a patch of you rom to check whats wrong with it, you still need to share that female warrior animation XD

I got it working, I had Tequila make a patch for me.