Max number of standing map sprites?

I am confirmed that someone has transcended the limitation without a great effort so maybe you can have a try?

I am having some trouble understanding exactly what you are trying to say so I will do my best to answer what I think you are asking.

There is currently no solution for this issue.

I lack the skills to solve it, so I’m just reporting it to warn people it currently exists.

if the issue is what i think it is it’s probably trivial to fix

Oh cool. If you/someone else come up with one I’ll be happy to test it out.

I just suggested you to have a try because I heared that it is not too difficult to solve from someone before. Eh, no other meanings.

I have not check all possibilities of it, but if the last bit isn’t used, we just need to change 7F into FF in these address.

26706 2678A 2680C 26C68 27250 27B96 27C82 27D30 27DF0 27E84 27F5A 2804C

2 Likes

Setting all those addresses from 7F to FF at least fixes the loading problem that occasionally popped up, but animations don’t play(so it only loads one of the three standing frames and sticks with that one frame). Also anything beyond entry 0xD0 seemed to load either the top part of the… next map sprite a unit on the same team had? The entries at 0xE0 or higher just loaded the whole map sprite of said team unit.

By all possibilities do you mean that some of those offsets may not have to be changed to 0xFF?

I did a survey just now and found the reason of the limitation:

As I guessed, there is an and operation to remove the highest bit here. Replace the operation “mov r1,7fh and r1,r0” with “mov r1,r0 nop”.

@Blademaster: Found the problem. Changing 26A52 to 2000 fix the animation problem (IMO, that’s the problem. The point is to make r1 = 1 to execute the animation).
@MisakaMikoto: What ROM is it? AFAIK, 25C48 is 00 28 1E D1 (FE8 US)

1 Like

The rom I researched is FE7(J).

@Icecube I’ve edited all of those to FF and wrote 2000 at 26A52, but it still isn’t working.
I’m using the standing sprite 0x88, and it just loads a… shadow, I think?

Do you mind sending me a patch and the save file?

Sure. This may take some hours though, I’m not at home now.

I tested according to my discovery and found that even if I broke the limitation there was a glich like what @Blademaster said, and then I found that: the highest bit of index is not useless as you imagined. In fact, it determines whether the animation can play: 1-cannot, 0-can. I know it may sound absurd but you can do a simple test to find it out yourself. To conclude, the highest bit is a control bit, while the least 7 bits are index bits.

@Icecube Nevermind, it works now!
I’ve double checked it and it seems I had missed one of the offsets before, since I was in a hurry.
Huge thanks, icecube!

I confirm that this fixes the problem in FE8.

@AlfredKamon: Glad it works.
@MisakaMikoto: Are you sure that you’ve found all filters? I don’t know about FE7(J), but in FE7(US), I found that

24D76 24DFC 25258 257BC 260EA 261D6 26284 26344 263D8 264B4

should be changed into FF and

24ED4

should be changed into 2000 (mov r0,0x00).

IMO it’s safe to edit it because the Standing Sprite ID has not been changed since the last read.

I just double checked to make sure I had all the values set properly, and from what I can tell, any value over 0xB0 still doesn’t have it’s animation play. 0x80-0xAF do work.

Though 0xAF is still 175(well, index 175 for 176 total due to 0x00) animations so I guess that isn’t really a problem worth worrying about regardless, so this could just be left as is?

I tested in FE7(US) but it still cannot play the animation normally:

BTW I toggled breakpoint at all those addresses and found:
Return from character status sheet or Press Start on the unit on the map: 080257BC
Return from battle animation: 08024DFC->08024ED4->080257BC

What are the rest addresses for?(In fact, I only found the 080257BC(= 08025C48 in jp rom) before because I toggled breakpoint for the address in the staning sprite pointer table from which the game needs to load data. I am pretty curious how you found those all >_<)

What’s more, what is the original data at 08C99B00 for? Do I need to repoint the table to be safe?

look at these wizards go at it

1 Like

And in three days they’ll post something like “ok so just go to address 0328EF and change 01 to 02 and that’ll remove the limitation alright guys class closed”