[FE8] Modern c-skillsystem release

2333

Source code at here

releases:


It is origined from StanHash/FE-CHAX with the main purpose to write EngineHacks in C rather than ASM. The early work mainly focus on how to achieve elf2ea (or say, lyn utilly). With the progress on Decomp and other tools such as ea-dep, a dependence generator, now we may go further with the following goals:

Main features for player:

  1. Up to 7 skills equipable for ally units, player can select skills on prepscreen.

  2. FE-Engage style combo-attack, enable allies participate on attacking.

  3. FE-ThreeHouses style combat-art, achieve higher damage by increasing weapon cost.

  4. Some other cool AOE effects and UI interfaces.

Main features for wizardries

  1. All components are all generated at once via a make command.

  2. Use the same .h headers and symbol list to decomp.

  3. More C-Hacks and less ASM-Hacks.

  4. Useful debug kit port from FEHRR.

  5. A faster SkillTester() design via SkillList.

  6. Better free-space and free-ram-space control

  7. A fixed pointer list to get data location, which will facilitate collaborative development with FEB.

  8. Better battle-system design and battle-hit is expanded to 0x20.

Use FEB to config your skillsys!

Modern c-skillsystem can directly enable users to configure the rom data in FEB via FEB patches.

  1. Download Patches dir from releases
    20240611-155336

  2. Put the Patches dir to <path-to-FEBuilder>\config\patch2\FE8U\

  3. Open FEB, click Tools → Patches
    image

  4. Find “CSKILL_K”
    image

Feel free to use or edit or make games based on that. :slightly_smiling_face:

76 Likes

This is a turning point in the entire romhacking scene. Really good job here, and let´s celebrate this as the big acomplishment that it´s!

6 Likes

As in a unit can attack 20 times? Like how brave/hero weapons let you attack 2/4 times?

I think a move towards a C based skillsystem is for the best, although it will take a while. It’ll also make it easier to have a version for fe6/fe7 once all 3 decomps are far along. Kudos to you!

14 Likes

this is amazing! thanks and congrats, feels this is a new milestone

So does this mean skills can be coded in C now?

1 Like

We always could, although progress on the decomp has made this easier over time. Several skills in the older skillsys are written in C, but most are not.

5 Likes

The total attacker number (actor + target) can reach no more than 20. And it is auto dectected by function CheckBattleHitOverflow()

2 Likes

:bow: :bow: :bowing_man:

2 Likes

Oh it’s my fault that battle hit can reach 0x20 rather than 20

1 Like

Having a play around with this, it’s really impressive work!

I did notice that pressing left to select combat art doesn’t allow you to select Without Art, but pressing right works as expected.

Combo/chain attack could maybe use an indicator similar to the one for battle arts? and sprite doesn’t swap when anims off but I guess that’s just not finished yet.

Also installing worked fine for me on WSL although the dotnet var only worked until I closed the session so might be good to add a note about adding it to ~/.bashrc so it will persist?

Anyway great stuff as always Mokha!

4 Likes

This may be a bug, I may fix it later.

In FE-Engage, according to my understanding, it is an inherent mechanism, just like assassin cannot trigger silencer attack to BOSS in FE8. So I also set it to trigger combo-attacks unconditionally.

Yes, I recommand to put the following variables to ~/.bashrc:

export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

export DEVKITPRO=/opt/devkitpro
export DEVKITARM=${DEVKITPRO}/devkitARM
export DEVKITPPC=${DEVKITPRO}/devkitPPC
export PATH=${DEVKITPRO}/tools/bin:$PATH
2 Likes

Is there currently no way to view what combat arts are available to a unit?

This is honestly really cool. Was able to get everything to work following the instructions just fine, though I did need to update and upgrade apt-get since I was doing this on a fresh install, if you feel it might be worth adding a note about that after wsl is installed.

Later I may write a doc and some patches on combat-art design

I believe he just means there should be some indication that a chain attack is happening during the battle forecast, as is the case in Engage

1 Like

Patches at main

I have built a ./Patches dir, and for now, write some patches about combat-art configuration. You may try on them via FEB.

And @Blademaster now you can try it.

3 Likes

My apologies for not being more clear before, but I mean in game. On the unit menu, other than when you attack, how to you view available combat arts such as wrathful stike and grounder? Do you need to press select on a certain page or?

Now fixed

Yeah, we did not make combat-art select submenu for now. But you can see detailed info for combat-art by R_BUTTON on TargetSelection.

1 Like

Update at 2024.03.19

Now patches for FEB has been updated.

Put Patches dir of repo to <path-to-FEBuilderGBA>\config\patch2\FE8U\, and find “CSKILL_K” you may config data for cskillsys.



9 Likes