Vesly's ASM / C

I’ve been busy lately, but quick explanation of portrait processing for buildfiles that I setup recently:

https://github.com/Veslyquix/SRR_FEGBA/blob/main/gfx/Portraits/ProcessPortraits.cmd

Needs python in your command line environment, but fixes filenames and processes all portraits in a folder. Uses the standard portrait formatter by Colorz, but then uses Mintx’s code to detect eye/mouth frame positions and generates an installer for you.

I did this because I was too lazy to manually write out the 6954 lines in the generated installer. I also used a makefile for this. Hopefully someone finds this setup useful.

5 Likes

UI

mGBA_e8hG67G7Og

When flags 0xAA, 0xAB, or 0xAC are on, use one of three alternate UIs.

None - Vanilla style

1 - Stephano style

2 - Hypergammaspaces style

3 - Pikmin style

Battle

None - Vanilla style

1 - Sokaballa style

2 - Hypergammaspaces style

3 - Fenreir style

I started working on this at the start of december…

Credits:
Vesly, Hypergammaspaces, Sokaballa, Pikmin1211, Stephano, Fenreir, Eretein

28 Likes

ported this to fe6/fe7

3 Likes

BGOnlyDisplayInConvos

When you press the Select button during a conversation, textboxes are hidden and portraits are made transparent to a configurable amount.

Before pressing select:

25% transparency:

50% transparency:

75% transparency:

100% transparency:

21 Likes

Question: Would you be able to add the ability to play sounds for this patch? It would add a lot more flare to this functionality. And would work well when used for Staves.

It already does that. (And it always has, though I’m not sure how often the feature is used.)

Break1_Small_Anim: 
BYTE 2 0; SHORT 0; POIN small_break1_000_Data small_break1_000_pal

The short 0 is the bgm/sfx id to play. If 0, it does nothing.

1 Like

Thank you! I didn’t realize

OK. After testing a bit, I figured out how to make it work with the FEBuilder patch menu:

It wasn’t immediately obvious. But you just gotta add the sound effect ID on the same line as a frame, like this:

Leaving this here, so that others can learn about it.

2 Likes

Danger Bones

Enemies are itching for battle. Their bloodlust is insatiable. Their bones rattle with anticipation.

mGBA_EG1QRxqAUO

When you are choosing a tile within an enemy’s range, they’ll shake and / or change palette, depending on your config.

Note:

  • This changes the speed of the unit shake bitflag, and sets/unsets it automatically.

and / or

  • This changes light runes to use player palette, edits the 4th palette, and sets/unsets the unit 4th palette bitflag automatically.

I’ve chosen flag 0x128 as the default flag that can be set if you want to disable this hack ingame with a yes/no.

In order to eliminate lag, I’ve accepted the limitation that enemies are not aware that they’ll have greater range if you move during your action:

Myrmidon would have a new attack range and be able to get you if you move 1 tile down.

Through the magic of procs, I’ve gotten the lag to be imperceptible (to humans) vast majority of the time, as it buffers while you’re moving your cursor (after you act). Enjoy.

18 Likes

This is the best name for a QoL hack I’ve seen, hands down.

4 Likes

Could you please change it so it overwrites the Sepia Palette instead of the Light Rune Palette?

Light Runes are arguably a very versatile feature of GBA, and breaking it would discourage people from using this hack, if they are already using Light Runes. While the Sepia palette for cutscenes is very underutilized, and can be easily replicated with a patch.

Just a consideration :pray:

4 Likes

I’ve been meaning to sort out something better for light runes, so I’ve gone ahead and made them use the player palette if you’re using the OVERWRITE_LIGHTRUNE_PAL config.

This is what it looks like with Topazlight’s graphic
Fourth_Allegiance_Light_Rune_Topazlight-stand

mGBA_5S5dOHXUDq

This looks fine to me, but some people may prefer to just disable palette changing in danger bones. They still shake, at least.

@topazlight is it alright with you if I include this in the danger bones installer?

9 Likes

Go ahead! It’s effectively just a palette reordering of the vanilla Light Rune sprites, but I appreciate you asking!

5 Likes

Will this be made part of the self randomizers? Seeing how a randomized run is being used to demonstrate it.

1 Like

I added it into my fe8 self randomizer already. I am considering porting the code to fe6/7 as well.

Edit: I’ve now ported danger bones to fe6 and fe7 (and added them into those self randos). :partying_face:

1 Like

I rewrote the prevent trade patch to fix some issues with it. The original was by Circles, and I previously had edited it to use a list of items instead of the valuable bitflag.

  • It now prevents sending items to supply when your inventory is full and you get an item drop.
  • GiveAll now works with convoy size above 100.
  • Your own untradable items can now be reordered in your inventory while trading.

It’s written in C and they all call the one CanItemBeTraded, so it’s much easier to write your own conditions now. For example, you could have an item unable to be exchanged only when a flag is on if you wrote a few lines of code.

To use this:

  • in febuilder → patches → prevent trade installer: click uninstall. Close the patches window.
  • download the prevent trade folder from my asm repo
  • in febuilder → advanced editors → insert ea: choose Installer.event in the folder you downloaded, and click insert
  • In febuilder → patches → prevent trade list: edit the list as desired

Enjoy.

3 Likes

I added a buffer overflow check to PutSprite, which was possible to overflow in the supply and crash the game sometimes when displaying the full 5 lines. I recommend reinstalling ExtendWepDescBox now to prevent the possibility of a crash. Shoutout to @Huichelaar for helping me with solving this.

8 Likes