Is there a standalone version of the skill animation that shows the skill name?
It seems that item index may be failed to indentify in Promotion-Rework patch, I have fixed this bug, also updated to download link to git repo.
Map Anime Effect: Gravity
A DIY map anime, just like Debuff-Status-Clear-Routine.
Just include MapAnimesInstaller.event
, then call for function void StartMapAnim_Gravity(struct Unit* unit, ProcPtr proc)
, then it will start a child blocking proc to show anime effect.
Due to the default of the program, the target character exists in the current screen, so there is no effect of moving the camera. If not, you can either move the camera over before calling the function, or delete the comment on line 41 in Gravity/Gravity.c
:
// PROC_CALL_2( ProcGravity_MoveCamera ),
Replace “a” or “an” to space
For now, replace “a” patch is just delete the character, this patch has rewrite function void PrependArticleToString(char *str, const char *insert_str, s8 c)
so that we can replace “a” to a space.
Just include RemoveA.lyn.event
and then you will make it. Don’t forget define your own FreeSpace
since this is just a C-generated file.
This is also supported for UTF8 Characters such as Chinese and Japanese texts.
Decomp-based C-Hack Template
This is a simple example of building the Buildfile based on Proj.FE8U-Decomp outputs (or say c-hacks, CHAX).
The Wizardry
folder includes some functions based on decomp, you can directly copy the decompiled function into it and modify it again.
The repo’s readme documentation details how to compile. I think this may be a beginner-friendly tutorial-type template.
I also use this template to test some new functions, so I recommend it to you.
Change Weapon During Target-Select
A interesting rework on SelectTargetProc
so that we can change weapon during target-selection.
Now Up & Down
botton will change the target, meanwhile Left & Right
button could make you change another weapon to attack. If you don’t have any other weapons to attack current target, then the Left & Right button will function as vanilla to try change target.
- Note
This patch does not consider Weapon-Range Rework. If you have already worked on Weapon Range such as apply ProperRangeGetter or WeaponRangeRework, you need rewrite the following functions in the fileSrc/NewTargetSelect.c
: IsItemCoveringRange and GetItemReachBits.
I think this routine could be extended to add blinks in other places
//for FE8U
PUSH
ORG 0x05EA8
BYTE 0x00 0x00 0x00 0x00
ORG 0x1E0CC //HandleNewItemGetFromDrop
BYTE 0x00
ORG 0x22BB2 //?
BYTE 0x00
ORG 0x22C08 //AttackCommandEffect_DrawFace
BYTE 0x00
ORG 0x2326E //PlayOrDanceCommandEffect
BYTE 0x00
ORG 0x23324 //ItemCommandEffect
BYTE 0x00
ORG 0x23582 //ItemMenu
BYTE 0x00
ORG 0x2361A //?
BYTE 0x00
ORG 0x23B06 //StaffCommandEffect
BYTE 0x00
ORG 0x2999E //HammerneTargetSelection_OnSelect
BYTE 0x00
ORG 0x2D802 //TradeMenu 1
BYTE 0x00
ORG 0x2D80A //TradeMenu 2
BYTE 0x00
POP
//for FE8J
PUSH
ORG 0x05DAC
BYTE 0x00 0x00 0x00 0x00
ORG 0x1DD28
BYTE 0x00
ORG 0x22B7A
BYTE 0x00
ORG 0x22BD0
BYTE 0x00
ORG 0x23236
BYTE 0x00
ORG 0x232EC
BYTE 0x00
ORG 0x23546
BYTE 0x00
ORG 0x235DE
BYTE 0x00
ORG 0x23ACA
BYTE 0x00
ORG 0x2992A
BYTE 0x00
ORG 0x2D73A
BYTE 0x00
ORG 0x2D742
BYTE 0x00
POP
fe8_hacks_sundries/wizardry/ts_rework at main · MokhaLeee/fe8_hacks_sundries (github.com)
I have updated patch “change weapon during target-select” so that now we can properly handle with un-breakable weapon. Also a CHAX repo has been established for costum usage.
Sorry, I don’t quite understand how exactly you edit the text here to set the extended promotions. Is there a tutorial I could follow?
Download Here
Unit Debuff Banim Flashing Rework
A patch that allows you to customize the debuff flashing effect on unit during battle.
Usage:
Include file EfxStatusUnitRework.event and define your own debuff flashing effect in EfxUnitDebuffPalConfigTable
, which you may define the flash R/G/B color and the flashing speed.
The R/G/B effect is recommended ranging from 0 to 0x10, the higher value may result in a more pronounced flashing.
The speed range from 0 to 3, in which 0 will not change the color, 1 is the slow speed, 2 is the vanilla, and 3 may flash fast.
This patch is not conflict to any existing patch since the unit debuff index is not directly caught from unit struct, so don’t worry.
Working in process on skill-activation in FE7J
Banim Command Expansion
Download here
Working on some simple effect to expand banim command.
-
C0E
Call for a fake hit (flashing BG) the same as C51, but withred
color and hold a longer duration (C51 holds 5 frams but C0E holds 16 frams) -
C0F
Call for a fake hit (flashing BG) the same as C51, but withblack
color and hold a longer duration (C51 holds 5 frams but C0F holds 16 frams)
-
C16
Freeze the anim until the DemoKing has been summoned in background
It is welcome if any guys have any ideas on adding new command for banim script. I may try to make it if possible.
Bnaim-cmd
-
C17
Remove the summoned DK by C16
See also at Mokha’s Hacks Sundries - Resources / Assets - Fire Emblem Universe (feuniverse.us)
Bnaim-cmd
-
C53 (CallDuma):
Freeze the anim until the dragon-Duma has been summoned in background. You must call forC54
(orC17
orC55
) to remove it.
-
C54 (RemoveDuma):
Freeze the anim to remove the summoned Duma byC53
-
C55 (RemoveDumaNonBlocking) :
The same asC54
, but will not freeze the anim.
Some note on banim ekrgauge
0805160C: display left hp bar number
08051688: display right hp bar number
08051746: display left top hp bar
080517AC: display left down hp bar
08051878: display right top hp bar
080518D8: display left down hp bar
0805191C: Hit/Dmg/Crt number LEFT
08051946: Hit/Dmg/Crt text LEFT
0805197C: Hit/Dmg/Crt number RIGHT
080519A2: Hit/Dmg/Crt text RIGHT
* HP bar position
080514FC: handle hp bar (one line) y pos
0805172A: handle hp bar (two line) top y pos LEFT
08051770: handle hp bar (two line) bottom y pos LEFT
0805185C: handle hp bar (two line) top y pos RIGHT
080518A2: handle hp bar (two line) bottom y pos RIGHT
* proc definition
Proc_Ekrgauge:
+3A: base yPos
ClassChg Expansion
Download here
a rework of Old promotion expansion, enable unit promote to no more than 6 classes.
1. Custom Usage
1.1. Vanilla table
Vanilla table of 2 selectable classes has been retained. You can also config on old table to diy branched promotion classes.
1.2. Expansion
At the same time, there are two list for promotion expansion:
-
gPromoJidLutExpa
A0x100 * 4
linear table according to class index.
You can config 4 additional class to promote.You can also config this table by FEBuilder’s patch, ./patches/PATCH_ClassChgExpandList.txt -
gClassChgExpaMods
A table for promotion with higher degrees of freedom. A unit can promote toClassChgExpaMod::jid_promo
if:
- The configed class index is matched
- The configed character index is matched
- The configed item is used for promotion
- The configed event flag is set
You can config this table by FEBuilder’s patch, ./patches/PATCH_ClassChgExpandModulearList.txt
1.3. Trainees
As for auto-promotion for trainee class, there is also a reworked table for configuration. gpTraineesRe
, with two element jid
and level
.
You can also config this table by FEBuilder’s patch, ./patches/PATCH_ClassChgExpandTrainee.txt
Custom Build
If you want to modify on source code, please refer to CHAX template, note that the C-Lib use the ver.2023.07.31.
You can also write your own jid-getter function and add the function to the list gGetClasschgListFuncs.
/**
* r0: unit struct
* r1: protion item
* r2: out buffer
* r3: length of the out-buffer, DO NOT overflow!
*
* return: amount of the classes to promote
*/
typedef int (* GetClasschgListFunc_t)(struct Unit * unit, u16 item, u8 * out, int len);
extern const GetClasschgListFunc_t gGetClasschgListFuncs[];
Note that this patch has been embedded to the latest version of SkillSystem, you can directly use the FEB patches without installing for skillsys users.
SaveDataExpansion
Download here
If you take a look in sram layout of FE8U and EMS format, you may find there are a lot of space unused in SRAM form 0x0E00691C.
This patch is working on expanding free space in SRAM to such memory by such method:
- Remove the multi-arena entry.
- Remove the extra-map entry (although it is indeed unused in Vanilla)
- Re-alloc others to the tail of SRAM.
Now such SRAM space is free to use for expansion:
0x0E00691C - 0x0E007DEC
This patch is not in conflict to the expanded-moduler-save patch.
I use that area of SRAM for my unit expansion hack that I released recently, just so you know.
Yeah, it is your work that remind me on digging in such memory. Have you reloced the memory from 0x0E007190
to 0x0E007400
? If not, maybe you could refer to this patch.