Kirb's subpar asm


#1

Supply Check By ID Table
Download: https://www.dropbox.com/s/hf4eky79hk9o8jl/Supply%20Hack.rar?dl=0

Skip Chapter
Download: https://www.dropbox.com/s/7bglelc61cnchc7/Skip%20Chapter.rar?dl=0

FE4 Dance(WIP)
Download: https://www.dropbox.com/s/wwejy49wuqj9tnu/FE4%20Dance.rar?dl=0

https://www.youtube.com/watch?v=A2be9dWvd_4 Showcases them


#2

I guess i can post tool updates here, I finished the functions to rip text for FE9Editor.


#3


Modular lord split option

EA Installer: https://www.dropbox.com/s/3n9evh5tag0v2sn/MLS.rar?dl=0

How to use:
First off, you need to set the value of slot 0x9 to be a pointer to the data of the load split options:
SVAL 0x9 (SplitData+0x08000000)
then call the lord split asmc:
ASMC 0x864CD

What to put in SplitData:
SplitData:
BYTE 6 5 18 0 // first byte is x position, then y, then width, then height(height doesnt matter.)
WORD 1 //iirc, box mode?
POIN MenuTable //important part, we’re gonna get to it later
WORD 0 0 0 0 0 0 // routines to handle r/b presses

What to put in MenuTable:
#define MenuCommand(apsString, aprUsability, aprEffect) “POIN (apsString); WORD 0 0; POIN (aprUsability); WORD 0; POIN (aprEffect); WORD 0 0 0”
#define MenuCommandEnd “WORD 0 0 0 0 0 0 0 0 0”
MenuTable:
MenuCommand(PointerToString, UsabilityAsm+1, EffectAsm+1)
//add as many as you want
MenuCommandEnd

PointerToString: Points to a string of text that will be the name of the command. example:
PointerToString:
String(Go with ephraim to bad boat maps)
BYTE 0 // ends the text

UsabilityAsm: runs the asm pointed to here, if it returns true, the option will show, else it wont. 0x04F448 will always show the option.

EffectAsm: asm that will be ran when you choose the option.

Alright, I think that’s it. please tell me if i forgot anything.

How it works:
ORG 0x0864FC
BL(GetSplitOffset)

I ORG’d at the part of the lord split routine that loads the pointer to the route split option, and replaced that with a call to my function which loads the pointer in slot 0x9:

.thumb
.org 0x00
ldr r0, Slot9
ldr r0, [r0]
mov r1, r4
bx lr

.align 2, 0
Slot9:
.long 0x030004DC

It wasn’t really hard to make, but i thought it’d be nice if i shared it with you guys.


#4

#5


#6


Somewhat of a str mag split; uses res but you get the idea
was done by jumping from 0x2AB50(loads the str stat from the battle struct) to my routine, where i checked if byte 0x50 of the battle struct was superior to 3, aka if the weapon type of the equipped weapon is a magic one, and if yes move 0x18 into r0 instead of 0x14.


#7


Magic swords are a go


#8

Making FE7 skip lyn mode when you start a new game:
#define LynMode 1
#define EliwoodMode 2
#define HectorMode 3
ORG 0x9E9FC
BYTE $00 $20 $70 $47 //Always skip mode select, even when game completed
ORG 0xA06D0
BYTE EliwoodMode $25 //Always load the mode byte into r5 instead of moving r2 into r5
Credits to doesn’t for finding the routine at $9E9FC for mode select.


#9

Mag as res
Download: https://cdn.discordapp.com/attachments/181220193345732608/383716618943070228/Str_as_res.rar
Apply StrenghtAsRes.txt to your rom with ea(and change the defined freespace in the first line if needed)


#10

Making MNC2 Work for all chapters

So originally, this fix existed:
//Allows MNC2 To jump to any chapter ID.
ORG 0xBD070
SHORT 0xE0B8

It worked fine, but there was one problem, namely with the Chapter name as text hack by circleseverywhere,(Not sure if it glitches out in vanilla gbafe, though, but why wouldnt you be using that hack is the question, then) In that some chapters,(namely, at least in resonance: chapter 4, 6, 10, 13, 17) the chapter name didn’t show up at all. so, since I fixed it for resonance, I thought I’d share the fix here.

//Allows MNC2 To jump to any chapter ID.
ORG 0xBD070
SHORT 0xE0B8
//Fixes the world map chapter ID being loaded instead of the actual chapter ID.
ORG 0x897B2
SHORT 0 0
//Fixes the game considering some chapters postgame.
ORG 0x897C4
SHORT 0x200E 0x5620 //mov r0, #0x0E; ldsb r0, [r4, r0]


#11

Debug-o-matic
This is a very simple thing I made for fun on my free time, allows you to edit unit stats/inventory, but it is very barebone. I made it to be simple to use, not feature-full.

How to use:
Select: Switch pages
Start: Switch factions(players/enemies)
L/R: Change unit index
Up/Down: Scroll up and down on the list
Left/Right: Edit values
A: Write to ram
B: back out of menu

How to apply: use event assembler to apply the Debug-o-matic.event file to your rom.

I hope this will be useful for stuff like balancing chapters and other things.


#12

So I’m using the fixes here to try and fix the names for some of those chapters, but after applying these fixes I still find that the prep screens for the chapters listed say “Ex. Map” instead of their actual chapter numbers. I asked around and Peerless believes that it’s related to these fixes. Do you have any further idea on how to fix the prep screen saying Ex Map on these chapters?