This user has been trying a similar concept using only Vanilla code. You could ask them.
May I suggest also adding a âgetting hitâ animation? A few frames where the unit would react to getting attacked. Similar to when dodging.
I know that is currently a feature of the Tactile engine, as seen below:
(Image from @dancer_Aâs Tactile tutorial)
Hey, sorry. It seems that the link for standalone Battle Forcast Hit-Counts is down. I tried to find it in both your Hack Soundries Github, and also your C Skill System Github, but I canât find it anywhere. Would you be able to post it again?
okay, will be updated this weekend
HeyMokha. I wanted to ask⌠Would you ever consider doing a Custom Triangle Attacks patch? The Vanilla Triangle Attack code is very limited in itâs scope. And even though itâs editable, it only allows for a limited model size
I have a few ideas:
1: Change Background to black. Simple, like with Draco Zombies in vanilla, or Manaketes in FE6. Nothing more.
2: Change Background to the wavy Fire BG like FE7 Fire Dragon.
3: Make Battle Platform dissapear (Only for unit in which the animation calls it)
4: Make Unitâs own sprite fade to black palette. (And another to shift back)
5: Make âNO DAMAGEâ sound unable to appear for the animation (Requesting this because you canât make CSA for Staves without âNO DAMAGEâ appearing.
6: Make Unitâs own sprite fade out (Slowly dissapear)
7: Make enemy sprite fade out
8: Make enemy sprite fade back in
(The latter 3 allow for potential battle animations for Rewarp, Warp, Rescue, and Aum)
EDIT: Also, I was trying to install Banim Command Expansion, but it didnât work. I just keep getting errors. Am I missing an important step?
Errors
62 errors encountered:
File: data.event, Line: 2: File EkrDragonDuma/Monster_015.img.bin not found.
File: data.event, Line: 4: File EkrDragonDuma/Monster_015.map.bin not found.
File: data.event, Line: 6: File EkrDragonDuma/Monster_015.pal.bin not found.
File: data.event, Line: 9: File EkrDragonDuma/Monster_014.img.bin not found.
File: data.event, Line: 11: File EkrDragonDuma/Monster_014.map.bin not found.
File: data.event, Line: 13: File EkrDragonDuma/Monster_014.pal.bin not found.
File: data.event, Line: 16: File EkrDragonDuma/Monster_013.img.bin not found.
File: data.event, Line: 18: File EkrDragonDuma/Monster_013.map.bin not found.
File: data.event, Line: 20: File EkrDragonDuma/Monster_013.pal.bin not found.
File: data.event, Line: 23: File EkrDragonDuma/Monster_012.img.bin not found.
File: data.event, Line: 25: File EkrDragonDuma/Monster_012.map.bin not found.
File: data.event, Line: 27: File EkrDragonDuma/Monster_012.pal.bin not found.
File: data.event, Line: 30: File EkrDragonDuma/Monster_011.img.bin not found.
File: data.event, Line: 32: File EkrDragonDuma/Monster_011.map.bin not found.
File: data.event, Line: 34: File EkrDragonDuma/Monster_011.pal.bin not found.
File: data.event, Line: 37: File EkrDragonDuma/Monster_010.img.bin not found.
File: data.event, Line: 39: File EkrDragonDuma/Monster_010.map.bin not found.
File: data.event, Line: 41: File EkrDragonDuma/Monster_010.pal.bin not found.
File: data.event, Line: 44: File EkrDragonDuma/Monster_009.img.bin not found.
File: data.event, Line: 46: File EkrDragonDuma/Monster_009.map.bin not found.
File: data.event, Line: 48: File EkrDragonDuma/Monster_009.pal.bin not found.
File: data.event, Line: 51: File EkrDragonDuma/Monster_008.img.bin not found.
File: data.event, Line: 53: File EkrDragonDuma/Monster_008.map.bin not found.
File: data.event, Line: 55: File EkrDragonDuma/Monster_008.pal.bin not found.
File: data.event, Line: 58: File EkrDragonDuma/Monster_007.img.bin not found.
File: data.event, Line: 60: File EkrDragonDuma/Monster_007.map.bin not found.
File: data.event, Line: 62: File EkrDragonDuma/Monster_007.pal.bin not found.
File: data.event, Line: 65: File EkrDragonDuma/Monster_006.img.bin not found.
File: data.event, Line: 67: File EkrDragonDuma/Monster_006.map.bin not found.
File: data.event, Line: 69: File EkrDragonDuma/Monster_006.pal.bin not found.
File: data.event, Line: 72: File EkrDragonDuma/Monster_005.img.bin not found.
File: data.event, Line: 74: File EkrDragonDuma/Monster_005.map.bin not found.
File: data.event, Line: 76: File EkrDragonDuma/Monster_005.pal.bin not found.
File: data.event, Line: 79: File EkrDragonDuma/Monster_004.img.bin not found.
File: data.event, Line: 81: File EkrDragonDuma/Monster_004.map.bin not found.
File: data.event, Line: 83: File EkrDragonDuma/Monster_004.pal.bin not found.
File: data.event, Line: 86: File EkrDragonDuma/Monster_003.img.bin not found.
File: data.event, Line: 88: File EkrDragonDuma/Monster_003.map.bin not found.
File: data.event, Line: 90: File EkrDragonDuma/Monster_003.pal.bin not found.
File: data.event, Line: 93: File EkrDragonDuma/Monster_002.img.bin not found.
File: data.event, Line: 95: File EkrDragonDuma/Monster_002.map.bin not found.
File: data.event, Line: 97: File EkrDragonDuma/Monster_002.pal.bin not found.
File: data.event, Line: 100: File EkrDragonDuma/Monster_001.img.bin not found.
File: data.event, Line: 102: File EkrDragonDuma/Monster_001.map.bin not found.
File: data.event, Line: 104: File EkrDragonDuma/Monster_001.pal.bin not found.
File: BanimCmdExpansion.event, Line: 11: File source/Utils.lyn.event not found.
File: BanimCmdExpansion.event, Line: 12: File source/UtilsASM.lyn.event not found.
File: BanimCmdExpansion.event, Line: 13: File source/BanimCmdHooksASM.lyn.event not found.
File: BanimCmdExpansion.event, Line: 14: File source/FakeHitRed.lyn.event not found.
File: BanimCmdExpansion.event, Line: 15: File source/FakeHitBlack.lyn.event not found.
File: BanimCmdExpansion.event, Line: 16: File source/EfxCallDK.lyn.event not found.
File: BanimCmdExpansion.event, Line: 17: File source/EfxRemoveDK.lyn.event not found.
File: BanimCmdExpansion.event, Line: 18: File source/EfxCallDoma.lyn.event not found.
File: BanimCmdExpansion.event, Line: 19: File source/EfxRemoveDoma.lyn.event not found.
File: BanimCmdExpansion.event, Line: 20: File source/EraseDispUp.lyn.event not found.
File BanimCmdExpansion.event, Line 24, Column 2: Symbol C0E_Hook isnât in scope
File BanimCmdExpansion.event, Line 25, Column 2: Symbol C0F_Hook isnât in scope
File BanimCmdExpansion.event, Line 26, Column 2: Symbol C16_Hook isnât in scope
File BanimCmdExpansion.event, Line 27, Column 2: Symbol C17_Hook isnât in scope
File BanimCmdExpansion.event, Line 28, Column 2: Symbol C53_Hook isnât in scope
File BanimCmdExpansion.event, Line 29, Column 2: Symbol C54_Hook isnât in scope
File BanimCmdExpansion.event, Line 30, Column 2: Symbol C55_Hook isnât in scope
No data written to output.
I will consider these commission requests. But please note that commissioned work requires compensation. Kindly consider what you can offer in returnâyou may refer to the content I have previously posted.
They need to be compiled before installation.
What does this mean? How would I do it
I asked Jester, and he said that the missing bin and lyn files need to be commited to the github
Well, my exact wording was that it was unfair to expect your average Joe to know you need to compile, how to do it and what tools to use, not that you couldnât. The README is very sparse on whatâs required after all.
You can use the make file for the lyns in the old master skill system (not sure if your custom build is set up for it) SkillSystem_FE8/EngineHacks/Necessary/CalcLoops/CanUnitDoubleCalcLoop/Makefile at 57843926f2c58a13f96ccdfb8c903c31ada7d35b ¡ FireEmblemUniverse/SkillSystem_FE8 ¡ GitHub
And then as I mentioned before on Discord, use PNG2DMP and rename the created DMP files to BINs.
it is just the same as cskillsysďźyou can refer to cskillsys to compile.
You know, you could just upload the bins and lyns and make everyoneâs life easier?
We both know I love cskillsys, but it does introduce a technical hurdle for people not familiar with make files and linux in general.
There has been offered the buildfile with compiled products published in each version of release. Users who wish to perform customizations but lack the technical expertise can directly use the files from the release.
The build logic of CHAX is entirely different from that of asm. The latter operates like applying patches, with its compilation process confined to its own directory. In contrast, the former compiles all source files across the entire project. When multiple people submit their changes, and their compiled outputs conflict with each other, thatâs when youâll be crying.
The current compilation process is not difficult. We only require essential components. There is no project management framework, no board support package dependency, no Yocto, no CMake. Only the most fundamental Makefiles, C, and EA. If a developer cannot even overcome this basic barrier, they are better off staying as a FEB player rather than a developer.
There has been offered the buildfile with compiled products published in each version of release.
I never disputed this, but that wasnât what we were discussing. You asked Alice to look at the Cskillsys build file as a reference for how to compile lyns and bins. My point is youâre asking a lot out of someone who only wants to get one unrelated hack working.
The current compilation process is not difficult.
It might not seem like a lot of setup to you, but youâre very experienced in C development.
Iâm aware the point of the hack is to allow custom modification of the userâs own banims (in which case knowing how to compile it would indeed be a requirement), but for simply checking the hack out I donât think itâs a lot to ask to provide the user a means to see it in action before they decide if they want to dive into the guts of the code?
But thatâs just my two cents. You seem to be entrenched in your opinion, fair enough I suppose.
Ran into an issue; not sure if this is the same issue, but I think I figured out the cause if it has not yet been found.
When copying the list of class IDs into r13, the code calculates the offset into the promotion list table with lsl r6,r6,0x2 instead of lsl 0x3. In FEBuilder, the module has 0x8 bytes allocated per class; I probably also assumed this structure back then. The result is that the data from a lower ID class was being read instead.
Not sure where in the code this routine is located, but this is the relevant routine. Red is the problem line that I changed to lsl 0x3. I think the âadd r2,r13,0x4â a couple lines down should also be âadd r2,r13,0x8â since there are six classes to copy, not four. There is another add r13 later down the code that should probably also be updated to add 0x8.
Despite this, the default trainees (or at least Ross, in my testing) still seem to have some issues. A custom trainee outside the vanilla Ross/Amelia/Ewan managed to auto-promote without issue, but when it was time for Ross to promote, the game automatically promoted him to an invalid class without providing any options.
EDIT:
The trainee auto-promotion seems to work on no$GBA debugger while it seems to break on VisualBoyAdvance. Not exactly sure why that is the case. After running the promotion check-related code, I get invalid read error from routine 8005738 from attempting to read from address 0x00(+0x40); it seems that it is possible that there is supposed to be some address/pointer at 0x3004980 that the game is supposed to read from for the input into the above routine, though I am not exactly sure if this is related to your promotion code or an unrelated issue. (Promoting using an item seems to otherwise work fine.)
Does this issue also happens if you installed the patch to vanilla base rom rather than your hacked one?
Yes; I just tested on a clean ROM, and the issue persists.
It seemed to work fine if I had played a chapter or few beforehand, but when attempting to allow the auto-promotion when just booting the game and entering the preparations screen, the invalid promotion occurred. The game fails to load the promotion menu and sets the class pointer to 0x00 in unit RAM data.
Though I installed from FEBuilder; not sure if that version is older and any such issues have already been fixed.
EDIT:
Actually, it seems to workâŚmostly. The table reference seems a bit off though. The code seems to allocate 0x4 bytes per class, meaning FEBuilder entry for class 0x1E is referenced for class ID 0x3D (Journeyman_t0) (0x3D*0x4 â 0xF4; 0xF4/0x8 â 0x1E, Ranger_f), though it starts reading from +0x4 instead of at the start of that entry. So the code is reading 4 class IDs from (Mokha_promotion_table+0x4) plus 2 class IDs from the vanilla table plus any special cases for the final list.

