Has this idea been tinkered with before? I was thinking of a cool concept for a couple of new units, that have are average across the board. But If you give them a speed ‘Afa’s Drops’ their growth pulls toward speed. Likewise if you give them a Defense ‘afa’s drops’ it goes towards that. etc.
That was my idea for a couple of new units in bloodlines. But I have no ASM knowledge nor do i know if someone tried it before. If it’s a sinch, would anyone want to tinker with the idea?
I can’t imagine it would be too difficult. Maybe copying and pasting the current afa’s routine and then editing offsets. I considered this myself actually.
yeah, in general. to emulate an item’s effectiveness, is it pasting their routine in free space and pointing it?
It don’t work that way for Afa’s Drops I’m afraid! They work by setting a bit in the character’s unit data (specifically the state bitfield at 0xC); during level-up, the game checks for that bit being set, and if so, adds 5% to every growth. You can only set that bit once.
Making held items or similar to modify growths is fine, but I don’t know if there are any free status bits to use for multiple Afa’s Drops.
held items to modify growths would work!
edit: oh maybe not
Would it be possible to modify the routine to immediately add to the character’s growths, rather than setting a bit and checking upon level-up? Or would that unnecessarily complicate things?
Character growths are stored in the ROM - they aren’t defined in unit data explicitly, so directly modifying a unit’s growths wouldn’t really work sadly.
Well then, would it be possible to expand that bit so it can take values other than 0 or 1? Say, 0 = nothing, 1 = hp, 2 = str, 3 = hp+str, etc. Or is there not enough room for that?
AFAIK, past the 0e009000 (save file) and near the end of 020xxxxx (read the GBAtek), there are enough room.
What we need to check is:
- Save/load/suspend/resume process (make sure that that part is processed correctly, before/after character saving/loading process is enough).
- Maturity check (IIRC, only one routine). In addition to check the character’s maturity, check the bonus for the character.
- Item routine.
I have no clue what you’re talking about, sorry xD
if you can find a bit in character data to store, you can just subtract 5 (?) from the random number pulled for each growth for an equivalent effect
Is there going to be a problem if the RN rolled is less than 4?
it shouldn’t, but you can check for that (if it’s negative it’s zero)
If the number of ‘Afa’s Drops’ you can get in the game is limited, no need to modify the character status. Find free space(4 bytes*(the number of ‘Afa’s Drops’ in the game)) in RAM to store the character ID for each kind of ‘Afa’s Drops’, and check the character ID with IDs there during LVUP to find out whether he has used any kind of ‘Afa’s Drops’, if so, which kind, if not, continue. The most important thing is to backup and reload the ‘Afa’s Drops’ table when S/L.
Exactly this. Also the most difficult part.