This’ll be my topic for my ASM shenanigans.
Text wall ahead.
Modular Minimug Box Mod
If you’ve checked this thread before, you probably know that most of my work involves a single box. This mod is no different. It aims to allow for (nearly) full customization of the minimug box. This is done through three stages: setup, static calculations, and dynamic calculations.
The setup stage controls, well, setting up the box. It clears space for the box, writes its tilemap, and determines its palette. Afterwards, it moves to the other stages.
Editing the tilemap is very easy. The file
\Setup\MMBTilemap.event contains the tilemap itself. Adding additional rows is currently not possible, but you are free to add up to 18d columns. The example above has the following file:
Max Width MMB Tilemap File
MMBTilemap: //Remember that this starts on the bottom //row and works its way up. #define MMBWidth 18 //Remember, this is the number of tiles wide. Each tile is 2 bytes #define MMBHeight 06 MMBTilemapStart: BYTE MMBWidth-1 MMBHeight-1 BYTE $1A $00 $1B $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1C $00 $1D $00 $1E $00 $1F $00 BYTE $0B $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $50 $00 $52 $00 $54 $00 $56 $00 $57 $00 BYTE $0B $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $50 $00 $52 $00 $54 $00 $55 $00 BYTE $0B $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $50 $00 $52 $00 $53 $00 BYTE $17 $00 $18 $00 $19 $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $0E $00 $50 $00 $51 $00 BYTE $10 $00 $11 $00 $12 $00 $13 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $03 $00 $04 $00 $05 $00 MMBTilemapEnd:
Static calculations don’t need to be updated every frame. They include background tiles, minimugs, text, and a few other things.
It should be noted, however, that your static calculations need to include everything from your dynamic calculations. Otherwise, your dynamic things, like numbers, will not appear until a few frames after the box is done moving.
Dynamic calculations are updated every frame, allowing for things like sprites to be drawn. This allows for parts to be aligned to a pixel grid, rather than a tile grid.
Putting it All Together
I realize that I’ve just made a long version of the vanilla box. Let’s spice it up a bit, shall we?
The ‘modular’ part of this mod makes it easy to deck the box out with whatever you’d like.
That Modular Part I Mentioned
'Wan’s box looks really complicated, but it’s assembled from a bunch of easy-to-use macros.
'Wanbox Static/Dynamic Calculations
DrawMinimug(0,0) HPWithStatus(0,4) ELabels(3,1) ShowInventory(0x38,0x18) Prepstats AttackGetter(0x27,0x09) DefenseGetter(0x27,0x11) ResistanceGetter(0x27,0x19) HitGetter(0x1D,0x09) AvoidGetter(0x1D,0x11) CritGetter(0x64,0x09) ASGetter(0x81,0x09)
These macros follow a predictable set of rules, with x and y coordinates usually being their parameters. There’s a file called
\Modules\ModuleSetup.txt that gives some hints on a macro’s parameters.
ASM Details on Macros
The macros consist of the following:
mov r0, #XX mov r1, #YY @@ Other optional parameters ldr r4, Routine bl Goto_r4 b NextMacro nop @@ nop until aligned 4 Routine: .long Calculation+1 NextMacro:
If you’re interested in writing your own routines, read the file marked
README.txt. It explains the standard inputs and register usage. Also, in the
Modules folder there are numberous
.asm files with comments, if you’re interested in calling their routines.
Updates, changes, etc.
[1/24/2017]Initial Release! Contents:
- Calculation framework
- Tilemap framework
- 6 Character Modules
- 3 Number Modules
- Macros for these modules
- Macros for getting various stats
- Known issues:
- Sliding numbers may display random numbers
- Sliding box may shrink when exiting screen
- Names do not write properly past the default box width
Equipped item Preview [FE8]:
This mod widens the minimug box while also adding some things to control what’s on it and how they look. It also display’s a unit’s inventory and droppable items. Here’s an example from my project:
And here’s the section of FE Direct #1 about it:
If you want my notes on the minimug box without downloading the rest of it, you can do so here:
Here’s some doc, if you’re interested:
Here’s a goofy project for writing thumb code in EA:
Thumblib is a set of language raws for use with the
Everything Event Assembler and a set of macros to make using it easier. Throw ‘Thumb.txt’ into your language raws folder and #include thumblib.event to use it.
Suggestions, macros, gripes, etc. should be posted here.
Custom Map Sprite Palette [FE7/8]:
Currently undergoing major revisions, I’d avoid using this for now.
Currently the FE7 version works better than the FE8 one. Use EA to assemble “FE# CMSP Installer.txt” where # is either 7 or 8. Instructions are included within the installer.
Purple Eirika is kind of subtle, but it works. A few issues: It overrides the link arena. All characters using custom palettes will keep the palette in the arena. Conversely, it does not work on the world map, so Eirika, for instance, would still be her usual blue.
This list will probably be updated often with fixes and new stuff. If you want a different style of installation (.dmp, .asm source, something without thumblib, etc) ask.