Vesly's ASM

New Game Config Menu

mGBA_6sbIwwDXJ1

So I took what Sme & Circles had done and made the text, number of options, and the flags to set to be entirely in the .event file instead of in the C file. I removed the description at the bottom but made it up to 8 options on screen instead of just the 3. I have not added support for scrolling or multiple pages, but I did make it much easier to configure now at least.

It takes over difficulty selection, so it makes these two patches do nothing:

This way I can set a few specific global flags based on what the player chooses at the start of the game.
mGBA_NMChySxzUV-ezgif.com-resize

Credits for this also goes to Sme and Circles.

15 Likes

Number Entry

Allows the player to chose a number. Returns the result to memory slot C. You can choose the initial, min, and the max values in slots 1, 2, and 3. Slots 4, 5, and 6 are for text IDs of the title and up to 3 lines of explanation on the top and the bottom. If you put 0 in these slots, text will not appear.

You can set whatever BG you want to - here I set the black BG 0x35.
mGBA_GYsO6kgoID

I hope someone finds a cool use for this! :slight_smile:

17 Likes

Question to the wizard on deck. You still interested in skill ideas, or is the shop closed for buissness?

I’m not looking for skill ideas right now, sorry.

1 Like

Fair enough…thank you for the reply

Modular Inventory Expansion

They said it was impossible, but they were wrong.

This hack allows units to hold up to 10 items by scrolling through them. Theoretically more is possible, but I couldn’t find the ram space for it. Please note that this takes over your EMS configuration - by default it supports 200 convoy and 62 player units, but if you use a custom EMS, you’ll need to reconfigure it.

https://i.imgur.com/D9hfaYX.gif

14 Likes

So is this an elaborate April Fools joke? Or did you post the wrong gif by accident?

I wouldn’t exactly call it elaborate - I didn’t fake a screenshot or actually make anything :sweat_smile:
Apologies to anyone that I got their hopes up.

3 Likes

WOW,thank you so much! I made a small game in my project,“Input Password”,when I first saw you hack,I exclaimed, “That’s it!”

1 Like

Thanks for the stuff you’ve released! I used a lot of it for my own projects, whether in it’s entirety or as a base to build off of.

I wanted to report some issues that I ran into and how I fixed them

ExtendWeaponDescBox

Release1_4

If the game needs to display text during the unit selection process, the objective text in the lower left gets covered a gray rectangle, even after the text prompt disappears (no, that’s not me censoring it haha). The vanilla text is also two lines long, so it’s not due to the new text that I replaced it with. I was able to solve this by adding a double proc exception checking loop after the initial single proc exception checking loop. I tried to solve it with just the single proc exception loop, but I ran into issues during other parts of preparations.

In Installer.event, I added:

#define gProc_PrepScreenPickUnitsMenu $A18E8C
#define gProc_BG3HSlide $A006E4 
...
InitItemDescVramDoubleProcExceptionsList:
//if both procs are active, don't allocate additional vram
POIN gProc_PrepScreenPickUnitsMenu gProc_BG3HSlide
WORD 0 //Terminator

In InitItemDescVram.asm, I added/changed the following

.set InitItemDescVramDoubleProcExceptionsList, ProcExceptionsList+4 @new
...
beq BeginSecondLoop @previously beq BreakLoop on line 48
...
@The rest of this is new; it goes between b Exit2 on line 52 and BreakLoop: on line 54
BeginSecondLoop:
ldr r4, InitItemDescVramDoubleProcExceptionsList

SecondLoop:
ldr r0, [r4]
cmp r0, #0
beq BreakLoop
blh ProcFind
cmp r0, #0
beq NextEntry_SecondLoop

ldr r0, [r4,#4]
cmp r0, #0
beq NextEntry_SecondLoop
blh ProcFind
cmp r0, #0
bne Exit2

NextEntry_SecondLoop:
add r4, #8
b SecondLoop
NumberEntry

NumberEntryBugs

I think the issues came up because of a problem with correctly distinguishing when a line/text has ended. In the context I used it in, NumberEntry is called through using a staff during gameplay. The problem wasn’t this severe at first, but after I inserted my dialogue for the chapter, it displayed like this. I don’t know C, so I made changes directly to the .lyn.event. Not sure how useful it’ll be, but I’ll still leave them here. This all replaced what was previously on line 15. When I was in the process of making changes, I broke that line up to make it easier for me to see what I was actually changing (and also revert if I did something wrong).

WORD $8000D29 $203DDE4 $203DDE0 $80D1685 $80053E9 $2024CC0 $30004B8 $2022F7A $80D74A9 $8001FAD $8004B89 $8002E95 $80D01FD $46DEB5F0 $464E4657 $B5E04645 $B0874BAB $F0000004 $48AAFA35 $D1002C00 $21E13F $F0004BA8 $4680FA2D $2B004643 $4BA6D05D $46994642 $62D3685B $68D1464A $D906428B $18D30FDA $428B105B $4642D8FA $2B0062D3 $E7FEDA00 $6892464A $D2014293 $62DA4643 $23302200 $4D994641 $F00054CA $4C98FA0B $F0002000 $2100FA06 $4B974896 $FA00F000 $20014B96 $F0009305 $F000F9FB $2000F9FB $F9F7F000 $20004B92 $F9F2F000 $695C464B $D12B2C00 $2B00699B $464BD14F $28006918 $E0DDD000 $23004C8B $21092202 $4D8A0020 $F9E0F000 $9D052001 $F9DCF000 $204643 $21036ADA $30104B85 $F9D2F000 $F0002001 $4640F9D1 $F0004B82 $B007F9CB $46BBBCF0 $46A946B2 $BCF046A0 $4700BC01 $4B7D0020 $F9BEF000 $24007803 $D00B2B00

//WORD $2B013401 $7843D003 $2B013001 $3D8FB $3001785B 
WORD $3401 $78430000 $2B013001 $3D8FB $3001781B

WORD $D1F32B00 $695B464B $D1002B00 $9302E0BD $22082300 $93009301 $33040021 $F7FF2000 $464BFD97 $2B00699B $9302D009 $22082300 $93009301 $20032103 $F7FF330E $464BFD89 $28006958 $4B63D017 $F98AF000 $17803 $D0102B00 $4E614D60 $28E006 $F983F000 $780B0001 $D0062B00 $D1F62B01 $3101784B $2B003508 $464BD1F8 $28006998 $E089D100 $F0004B54 $7803F96D $2B000001 $4D54D010 $E0064E52 $F0000028 $1F966 $2B00780B $2B01D006 $784BD1F6 $35083101 $D1F82B00 $D0162C00 $469B4B4B $26884B4B $469A2500 $764F45 $6819465B $19890038 $F0003501 $3680F94E $42A53708 $2001DBF4 $F0009B05 $464BF93F $28006998 $E74ED100 $F0004B39 $7803F937 $D1002B00 $2200E747 $32010017 

//WORD $D0032B01 $30017843 $D8FB2B01 $785B0003
WORD $0 $30017843 $D8FB2B01 $781B0003

WORD $2B003001 $4B33D1F2 $4B33469B $240025E4 $4E2F469A $465B00AD $306819 $F0001949 $3580F91E $36080023 $429F3401 $2001D1F3 $F0009B05 $464BF90D $28006918 $E721D100 $F0004B20 $4B25F905 $F0000004 $2307F901 $17C23008 $181B4013 $940110DB $22049300 $20002300 $4C1F491E $F8F3F000 $2103E70A $F0004B1D $4680F8ED $464BE6BE $2B00699B $E74AD000 $D18D2C00 $46C0E6F7 $804E885
2 Likes

Did those edits to number entry fix your issue?

Yes, it looks like this with the edits:
NumberEntryCorrect
(I didn’t want a background, so I’m also not sure why the glitched version made the background black)

2 Likes

MakeStolenItemDroppable

mGBA_mfxVlTr5Vt

mGBA_eEDJlLxsyJ

mGBA_kEQl7S6N25

21 Likes

Just tested it with enemy thieves and it worked like a charm.
Thanks again Vesly wtg! :star:

5 Likes

ReplaceText

Since @knabepicer made this cool hack, I decided to take a crack at replacing all instances of text, including in conversations. You can require a flag to be on or limit it to a specific chapter ID. I want this for my self randomizers, so this release is for fe6/fe7/fe8.
mGBA_U1wkiIwgnT

This gets expensive, so I recommend you do not replace more than about 100 strings of text, or else the game will start to noticeably lag a little.

Installation

Please note that if you’re using the old core.exe, the String("text") macro will not work properly.
use colorzcore

Latest colorzcore can be found here: Releases · StanHash/ColorzCore · GitHub

FE6 users should uncomment this line:
//#inctbl "FE6TR" "fe6_tr.tbl"

9 Likes