I hope you get that B Button dash worked out. You might have noticed I got a little side tracked in testing out 1.2 further but I will get back to it.
No problem. It's going to be a little while before I submit it to the RHDN database anyway, since I want to see if I can get the expanded magic menu working in-battle. One issue though is that the battle menu code is located in PRG bank 0xC (0x30010 - 0x3400F).
There doesn't appear to be a decent sized free space chunk in there large enough to hold a branching menu routine
actually nvm, I think 0x31628 should do... Hopefully I can get it worked out by this weekend, but no guarantees.
I did get the B-Button dash working again, this time I inserted the routine at x3F760 (which I'm pretty sure is free space). Not sure if it's worth doing another release just to add it back in though, but nonetheless it will be back for the next release.
Guys, I don't think the expanded magic menu is going to be possible, the only reason being lack of free space for the new routine
nvm, realized that I could use bank 0xF since it's always swapped in. I've begun writing a routine and so far it automatically adjusts the X-coordinates, but there's not enough space in the allotted region (at 0x31628) to finish my routine to adjust the Y-coordinates.
For anyone curious, here's my routine so far:
Put 20 18 96 at 0x31CA9
At at 0x31628:
//These simply "restore" the original bytes, required so that the non-magic menus don't break
8D 47 02 //STA $0247
85 56 //STA $56
A6 5D //LDX $005D
E0 04 //CPX $04
D0 20 //BNE $9649 (0c:9649/31659) //If we're not in the magic menu, then branch back to the old routine
//Check horizontal position
A5 53 //LDA $0053
C9 00//POS_1 //CMP #$00
F0 09 //BEQ to 0 horizontal position adjust
C9 01//POS_2 //CMP #$01
F0 0e //BEQ to 1 horizontal position adjust
//IF THE X POSITION IS 3 OR 4, THEN YOU SHOULD REACH THIS CODE:
E9 02 //SBC #$02 //subtract 2 to get correct horizontal index
4C 25 96 //Jump to Pos 1
//0 HORIZONTAL POSITION ADJUST
8D 47 02
8D 4F 02
//1 HORIZONTAL POSITION ADJUST
8D 47 02
8D 4F 02
//PLAN FOR Y-COORDINATE UPDATE:
-Check selected magic index
-if its "1st" or "2nd" horizontally, move vertically one tile up
...which leaves us with only 10 bytes left in the only free space region found in bank 0xC.
The only way I see this getting resolved is through bank swapping, which I'm not sure how that works. Would it be possible to swap a bank mid-routine and swap it back after you do whatever you need to do?
Turns out bank 0xF has some decent free space, and since it's always swapped in it's readily usable. I have a semi-working new magic menu routine, but it's not perfect yet. I got the cursor at the correct positions, but cycling through is kind of a weird order (due to reducing 4 columns to 2), but that shouldn't be too hard to fix.