Teq's Minor Assembly Shenanigans

He’s saying he’d like to see Teq try. So meta.

1 Like

Yeah, that’s an issue I don’t feel like fixing. It would require a new tile for the speech bubble graphics. Don’t use 1- or 3- line boxes for battle quotes.

Issue fixed with the FE8 Battle Animations by Character hack where the new function wasn’t called on the promotion selection and promotion animation screens. Thanks to @Devisian_Nights for finding it.

EDIT: And another update: If a unit has entries in the table for certain classes but isn’t in one of those classes, it will use the default class entries rather than not showing animations at all.

4 Likes

I think I found a bug in Text engine rework.

Because Text engine rework changes the value in r5 to 3 at 0x6848, tiles that were used for the lower UI on the promotion branch screen were cleared (I think they were misinterpreted as allocated text?)

Before clearing text vs after clearing text:

Fixed. Added the following to the main EA file:

ORG $CCC20; WORD 0x6003800; ORG $CCC0E; BYTE $8E

That should move the box graphics a bit further down.

I also edited DialogueInterpret.asm to not advance the text buffer when reaching the string terminator (0) so as to prevent text from sometimes not terminating. I hope. I didn’t actually test that.

4 Likes

This hack ignores the AI3 value in memory slot 1 and sets the unit’s AI3 to 0x0. In New_CHAI.asm lines 104-106 read:

lsl		r3,r1,#0x8
lsl		r3,#0x18
strb	r3,[r2]			@AI 3

Where r1 holds the AI in form 0x44332211.
r3 will hold 0 regardless of the value in r1. I’m guessing the intention was:

lsl		r3,r1,#0x8
lsr		r3,#0x18
strb	r3,[r2]			@AI 3
1 Like

Good catch. Fixed.

1 Like

I added Snek’s Gendered Text thing to the text engine rework. I figured I’d drop an example implementation here. I put the files I changed here.

3 Likes

I’ve been having some trouble with using convoy partitions alongside the modular save with 200 items.
Here’s my setup:

The first and third partitions work, but for the other three, if I withdraw from the supply, the game will softlock with the withdrawing unit running in place and not ending its turn. If I try this same setup in a new ROM that only had modular save installed, I get the same results, except the game crashes instead of softlocking. I’ve also had some odd results while experimenting with minor changes to the setup. Like if I make the first two convoys 80 items instead of 90, they both work, but the third won’t work if I make it the last 40 items. But if I leave the third as the last 20 items, all three work (with items 160-179 not used outside of the combined convoys). Anyway, I’d appreciate anything you might be able to offer as far as why this isn’t working. Thanks in advance.

ConvoyCombine

I wanted to use the convoy combine asm just for the item merging. It functions just fine, but the palette of the menu element is messed up. This image is a vanilla rom with the convoy combine stuff inserted with event assembler. How could I fix the palette?

Never mind, I found an alternate solution. I switched the incbins and incexts at the end of the event file.

If you’re still having the issue, can you send me a patch please? It’s been quite a while since I did any hacking but I can take a look.

Gamma was able to help me out with the convoy partitions, but I appreciate you getting back to me.

if you’re using this with skill sys on febuilder:

#define gConvoyItemArray 0x203B200 // this is not the vanilla address 
#define _COMBINE_ITEMS_HACK_ // comment this out if you don't want item combining
//#define _CONVOY_PARTITION_SETUP_2_ //uncomment this if you're using setup2, detailed in the Readme

#define ConvoyPartition(start_slot, length, function) "BYTE start_slot length 0 0; POIN function"

ConvoyPartitionTable:
ConvoyPartition(0, 150, 0) // for the party with 150 items, type 0 into ChapterEditor + 0x3D 
ConvoyPartition(150, 50, 0) // for the party with 50 items, type 1 into ChapterEditor + 0x3D 
ConvoyPartition(0, 200, 0) // for the combined party, type 2 into ChapterEditor + 0x3D 
WORD 0 //terminator

4 Likes

Heya.

I wasn’t sure where I should ask this question, but since convoy shenanigans are being discussed right now, I’ll ask here.

Are there are patches out there that make it so a unit’s entire inventory is automatically sent to the convoy upon death like in FE11 and 12? Furthermore, if such a patch exists or can be made, I’d like for it to be compatible with FE6. FE6 for me is a very traditional FE game and definitely encourages ironman style play, but…it’s way too punishing when you lose a bunch of good items in addition to losing a unit you were probably trying to make good. Not to mention that dying while holding a legendary weapon instantly locks you out of the true ending.

Anyway, I, and I know many others, would appreciate it if consideration was put into making a convoy feature like this for GBA.

Yeah there’s a GiveAll / SendAll to convoy on unit death patch. Someone (eg. you) would have to port it from fe8 to fe6. It’s just a matter of replacing the addresses used. If they’re documented it’s easy, but if not, you’d need to find the pointers yourself. This hack is fairly simple so you probably wouldn’t have too much trouble porting it with some #advanced_help assistance.

Hi. I’ve been trying to use slayer rework, but when I change it to be on another class, it doesn’t work at all.

I’m using the version that comes with SkillSys custom build.

Could I perhaps send you the report.zip? They weren’t able to help me in the NGMansion server.

Hey, I want to use this, I can install it but I don’t understand how to use this.
in the file ".event " appears this, that I can’t understand:

How to use:

SETVAL 1 Pointer_To_Animation_Stuff
SETVAL 2 0x00YY00XX
ASMC Fancy_Thief_Animation|1

Example:

SETVAL 1 Thief_Anim|0x8000000
SETVAL 2 0x00100012
ASMC Fancy_Thief_Animation|1
would play the thief animation at [0x12, 0x10]

I would appreciate any help

After #include-ing the relevant files, those are the commands you use in order to use it in a cutscene event that you’re making.

CAM1 [12,14]
LOAD1 0x1 LORD_GRP
ENUN
FADU 15
MOVE 0x10 0x2 [12,16]
ENUN
TEXTSTART
TEXTSHOW 0x90D
MOVE 0x15 0x1 [11,17]
ENUN
TEXTCONT
SETVAL 1 Thief_Anim|0x8000000
SETVAL 2 (11|(19<<16))
ASMC Fancy_Thief_Animation|1
TEXTCONT
TEXTEND
REMA

as an example.

To explain each required command of the 'fancy animations' themselves because I feel like it might help,

SETVAL is an ‘EA raw’ or scripting command. It sets the value of one of the ‘event slots’; which probably have a better name at this point.

ASMC is the same. It passes control from the game engine to some assembly function - known as calling that function.

Pointer_To_Animation_Stuff and Thief_Anim is a label that just tells the event engine where it should look for that particular thing. The |0x08000000 is saying “this is a pointer to information in ROM”, because while the GBA is running the 0th byte of the ROM is actually loaded at the 0x08000000th byte of memory. Hardware stuff, whee!

Both are necessary because without the specified animation, you’d need six different copies of the routine in ROM (inefficient); without the specified coordinate you wouldn’t be able to dynamically set much at all.

I forget say I’m using FEBuilder