How to change the stat screen? (FE8)

I want to change the order of the stats displayed in my status screen, specifically moving Spd to where Res currently is, while moving every other stat up a “spot.” While I don’t have any significant prior experience using buildfiles, I’m willing to learn how in order to do this. Is there any place with this information?

current
statscreen

goal (mockup)
statscreen-1.png (1)

You want MSS, then

(This is the version without SkillSys I think)

Note that when it says at 13,3 coords that these are in 8x8 pixel tiles, so 13,3 is really 104x 24y in pixels on the 240x160 pixel gba screen.

Also if you change the location of the stat, you will also need to change the corresponding r-text for examining the stat, as that will not be updated automatically.
R-menu stuff: SkillSystem_FE8/RText.event at master · FireEmblemUniverse/SkillSystem_FE8 · GitHub

I changed my stat screen recently and it was a pain. Nothing difficult, just took a couple hours.
Before:

After:

Gl

3 Likes

okay, i went back to this, and i don’t entirely understand how i’m supposed to apply these changes. i cant change the file just fine, but importing it as asm unserstandably doesn’t work

If you’re using the skillsys buildfile, then MSS will be included as it is in the Root/EngineHacks/Necessary folder.

If you want to use it in febuilder, maybe a custom build would work?
It may also work to edit the asm directly in febuilder. You’d have to find your mss offsets by generating a .sym file by running no$gba through febuilder. (Ctrl+f5)

If you edit it directly, you avoid running a custom build, but you need to keep it all inline (eg. you can’t add lines of code, only edit them), or you need to manually repoint / rehook things.

Ultimately I don’t really recommend it if you’re using febuilder, but it is certainly possible. You’d want to test that it works to your liking in the buildfile first, though.

1 Like

alright, i’ll mess around with it.

You should also have a look at the mss installer.event. That’s what you were supposed to insert, not insert asm directly unless you know the offset and that there was that much space available

1 Like

ah, thanks!

so, edit the page 1 original file, insert the ModularStatScreen.event?

Yes.

  • Edit the .s or .asm file
  • Drag it onto AssembleLyn.bat (you may need to install devkitpro & paste lyn.exe in devkitpro’s directory if you haven’t already)
  • Edit the installer.event as desired (I think it installs multiple pages by default)
  • Use Insert EA with Febuilder to insert the installer
1 Like

AssembleLyn.bat?

1 Like

ok, last thing. how exactly am i supposed to edit this installer event (assuming the installer is the file named ModularStatScreen.event?)

It’s a text file

1 Like

Yeah, im just a bit lost as to what’s important and what isn’t lmao

Idk tbh

I’d try deleting lines 138 - 156 and replacing them with #include msspage1original

There are probably some things that will error that you probably don’t really need so just delete those lines and check that it works the way you want it to

1 Like

it fails at this line (170 after deleting what you said to, 189 before.) it breaks regardless of whether or not lines 136-156 exist.)
image

Delete those lines then

1 Like

image
Is deleting all of these actually a functional solution?

So I’ve spent the past week or so learning about doing stat screen customization, and while I’m using the SkillSystem and StrMag Split version of modular stat screen, basically the same things should apply. I’m gonna go through the whole process again following what I did, which is basically the same thing Vesly’s been telling you, except listed in order as instructions.

You want to make changes in mss_page1_original.s as Vesly pointed out, following the line format of

draw_textID_at 13, 13, 0x4f0 @res
draw_res_bar_at 16, 13

You can reorder it either by swapping around the Y values of each line, or swapping the textID being drawn (ie. 0x4f0 is Res, etc.).

Once you have those swapped, you’re going to need to recompile the mss_page1_original.s file; when you’re installing ModularStatScreen you’ll do so by #include ModularStatScreen.event into your buildfile, and if you check it out you’ll see that it references mss_page1_original.lyn.event. This file is generated using AssembleLynEvent.bat; you want to drag your newly edited mss_page1_original.s and drop it on top of AssembleLynEvent.bat, and it’ll spit out your new mss_page1_original.lyn.event, overwriting your old one.

AssembleLynEvent.bat

@echo off

SET startDir="[paste the name of your filepath here]\devkitARM\bin"
SET as="%startDir%arm-none-eabi-as"
SET LYN="[paste the name of your filepath here]\lyn.exe"

@rem Assemble into an elf
%as% -g -mcpu=arm7tdmi -mthumb-interwork %1 -o “%~n1.elf”

if exist “Definitions.s” (

@rem Assemble definitions into a .elf if exists	
%as% -g -mcpu=arm7tdmi -mthumb-interwork "Definitions.s" -o "Definitions.elf"

@rem Assebmle into a .lyn.event with definitions
%LYN% "%~n1.elf" "Definitions.elf" > "%~n1.lyn.event"

echo y | del "%~dp0Definitions.elf"

) else (
@rem Assemble into a .lyn.event
%LYN% “%~n1.elf” > “%~n1.lyn.event”
)

echo y | del “%~n1.elf”

pause

Then you want to deal with R-text; also included with ModularStatScreen is the RText.event file, which is where you can make changes to this. Scroll down to the sections that have stats that are relevant to you, they look like this:

ST_Spd:
  RMenu(ST_Skl,ST_Luck,ST_Name,ST_Cond,0x66,0x48,0x549)
  //RMenu(upRText,downRText,leftRText,rightRText,xcoord,ycoord,TID)

where you’re going to want to change the first 6 values, so your new RText shows up at the right coordinate and connects to the other RText boxes in the right orientation.

Assuming you did all of that correctly, the file you’re left with should functionally work… as long as you’re using the SkillSystem package, because as you can see there are a lot of inherently interconnected components that you’ll need to turn off or disable or delete or comment out to make ModularStatScreen chug happily on its own.

I’m using a modified version of SkillSystem myself so couldn’t tell you offhand which sections you want to remove, but I’m not sure what your application is; it might be worth just using SkillSystem, going into its Config.event file, and turning everything off. It’s difficult to walk through the specific setup of MSS you’d want to have it run by itself, as most folks have fairly custom versions tailored to their own devices, or just use the one that comes with SkillSystem out of the box.

1 Like

Yeah, I’m not using SkillSys. In that case, would I have to redefine all of the pointers to fit a non-SkillSys statscreen?