Sme’s ASM and Miscellany

2020 sucks, they said.
2020 has no upsides, they said.
Sme proved them wrong :sunglasses:

2 Likes

Now Fire Emblem is not anymore a turn by turn game.
Is the future tactical RPG game, no random encounters but still, some RPG biased.

1 Like

2020 sucks
2020 only has one upside

2 Likes

Wasn’t sure if you saw this on discord:

How does one disable free movement mode?
With skillsystems, I can do it with mnc2. But on vanilla, this doesn’t work.

If you have debuffs installed, free movement mode will be automatically turned off between chapters. Otherwise, you’ll need to turn it off manually.

You note this, but I haven’t been able to get the disable free movement function to work at all. How do I use it? Or did you mean that there’s another way to disable free movement mode that involves refreshing debuffs?

unknown-56

When I call the asmc to end free movement mode it just crashes the game. Am I doing it wrong?

this should’ve been fixed in the most recent update

note that not using at least EMS will not save the free movement state through suspend

It would’ve been the latest version / whatever the download link was on Oct 22nd at like 6 pm.

[ASM] Character-Based Promotions (FE8)

Makes the class a character promotes to be based on their current class and set per-character, rather than per-class. With this, you can make individual units of the same class more interesting by controlling what class they can each promote to.

M06Gf8mK8Y

Download

To install, just #include CharBasedPromos.event. Uses a list in the installer for character, base class, and promoted class combinations, if one isn’t found it will attempt to show the split promo screen instead. Note that this specific behavior adds the caveat that any class that would normally only promote to a single class needs to have an entry on the character-based promo list or the game will hang (in vanilla, this is just the two lord classes and the default settings give the needed entries to make them work). This is built from split promo items, and as such is not compatible with that hack.

26 Likes

Great work!

Now we only need a way to set certain promotion methods to not reset level for a true modular promotion system.

1 Like

YOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
i was literally wondering where this was a week ago, lfg

1 Like

I seem to be missing some files. l see your Free Movement coding wants to include ProcDefinitions.txt, but that file doesn’t seem to be mentioned on this site anywhere, and Google sure doesn’t know what l’m looking for. l can’t even find out where any new EA extensions are because that big skill patch shows up instead. Can anyone point me to where ProcDefinitions.txt is hiding?

I found it here:

Ah, a separate GitHub fork? l was using an 11.1.3 version from crazycolors. Appreciate it.

Well…it’s saying it compiled, but all l get is a corrupted ROM. l even tried copying over some of the EXEs from the GitHub. l hope l don’t need that whole folder, 'cause GitHub doesn’t seem to want me to download a group of files unless it’s the entire project. And, l’m sure l included it correctly because that’s how l knew l was missing a file to begin with.

Huh… The game boots if l only include the shop ASMC and then fix the header with FEBuilder. That doesn’t sound right, though. ls this not for US region?

This is hype and I want to add it to pokemblem. I want to make all NPCs as traps to simply display their map sprites and let you talk to them without having to worry about running out of classes to display unique map sprites with.

Could this:

  • Make a trap that uses its map sprite based on the ID you input. I think this makes more sense than making 40 duplicate traps that only differ in graphics. But if it is difficult to do, then duplicate traps should work.
  • Call an event of your choosing

I think basically copying and slightly modifying dragon veins is what I want to do, though I am a bit intimidated by it all.

If it isn’t too difficult, I’d also like to make the following:

  • Pokeball traps (golden) that give an item when interacted with, but then disappear. I have been using global flags for rare items so that they don’t respawn. But red pokeballs do respawn when you reenter the area. Basically chest traps that you stand beside instead of on top. And if their completion flag is on, to not display the sprite. This sounds daunting to me.

  • Attackable trees that you can only attack if a specific global flag is on. (And a rock smash version of this as well.)

  • maybe a strength boulder as well but idk how I’d really do this and I guess I can deal with this much later down the line

If you can offer any assistance & advice it’d be most appreciated! Thanks for always helping out, Sme! :slightly_smiling_face:

3 Likes

There is already an example of a trap included that changes its map sprite based on a given value (Tellius Torches), which can be referenced for conditionally changing the map sprite displayed. In the same vein (hehe), heal tiles conditionally don’t show a map sprite at all, which can be referenced for

There is (was?) a plan to make the conditional map sprite things a modular loop rather than the current hardcoded implementation but I wouldn’t bank on that being a thing in the near future

This is just how dragon veins work, and the actually calling the event part is handled entirely through the menu command; all you’d need to do is define the trap for that to use, no asm required (for the trap rework part, at least).

This is again something that’s going to be done entirely from a menu command, referencing doors would be a good start; you’ll want a target selection thing, so you’ll have to set that up as well.

Trap Rework already lets you do modular breakable terrain, make a terrain type for each and edit the function that validates terrain types for creating breakable terrain to only create for that specific terrain type if a specific flag is set.

1 Like
Summary

it took me a while to do this simple thing Discord_632qIy0xeO

ZUoD5bnQkT

(yes… not just your ordinary dragon vein copy, but an ADJACENT dragon vein copy that looks like a torch right now)

If I add like 40 traps, how would I make them all refer to the same code sans the TrapID?

Ideally I’d like to make a larger table with more options to suit pokemon traps like pokeballs and such. I think I can do some of the table stuff myself but it’ll probably take a while.

Ideal Table?

Eg.
BYTE Completion Flag (0x00 = always)
BYTE Global Flag required (0x00 = any)
BYTE Usability On same tile 0x01 / Adjacent tile only 0x02 / Any tile

SHORT TextID to Display on hover (0x00 = None)
BYTE SpriteID to Show (0x00 = Default, which is a blank sprite)

BYTE ItemID to give to active (0x00 = N/A)
SHORT Gold to give to active (0x00 = N/A)

BYTE NewTrapID (deletes self and becomes new trap) (0x00 = no change. 0xFF = delete self. anything else becomes that trap ID)
WORD EventEngine address (0x00 and 0x01 = no event called)

I would love some more help with making this, but also I am very grateful that you have made this to begin with. I don’t think I’d be able to do any of this cool hacking without the foundation of skillsys & the community tools. This stuff is cool! I can’t wait to actually use these things in my project. :slightly_smiling_face:

Edit:

TAF2S04hmc

this might not look like much, but this trap:

  • has a completion flag
  • hides the sprite and becomes unusable if said completion flag is on (so even if I spawn the trap, nothing will happen, making it easier to use)
  • gives an item based on the ID I input
  • calls an event from a table (or no event in this case)

basically chests that you stand beside instead of on top… yes all that work to re-make chests
image
none of this would have been possible without Sme’s hack so all credits to her

It could certainly be better but I think this is good enough, I can probably do many things with just calling the event engine anyway

thanks for making the cool hack

also how do I make this macro work?
SetImpassableTrap(RedPokeballItemID)
I don’t want players walking through most of my traps

edit:
I finally did it. I am stupid. it seems to work fine at the start of the TerrainHealLoop

original

ORG $02e470
jumpToHack(TrapRework_NewUpdateAllLightRunes)

What I needed to do:

ORG $59A2B4 //MapMain "call new child proc TerrainHealLoop"
		POIN TerrainHealLoopMyVersion 
		
		
	POP

ALIGN 4
TerrainHealLoopMyVersion:
PROC_CALL_ROUTINE(TrapRework_NewUpdateAllLightRunes+1)	
PROC_CALL_ROUTINE($8035E21) 
PROC_LABEL(0)
PROC_CALL_ROUTINE($8035E51)
PROC_CALL_ROUTINE($8035ED9)
PROC_YIELD

PROC_CALL_ROUTINE($8035EFD)
PROC_YIELD

PROC_CALL_ROUTINE($8035F41)

PROC_LABEL(1)
PROC_CALL_ROUTINE($8035F6D)
PROC_GOTO(0)
PROC_END

Yes, it was exactly as you told me to copy except I needed to add +1 to TrapRework_NewUpdateAllLightRunes. Your laguz bars code I copied does not have the +1 for whatever reason and I was too stupid to figure that on my own for quite a while.

fml I am so done :pensive:

6 Likes

Hey, I’ve been trying to insert the MSS.event file and I keep getting these errors.
File: ModularStatScreen.event, Line: 18: File Display Growths Options/Display Growths Options.txt not found.
File: ModularStatScreen.event, Line: 108: File asm/rtext_page4.dmp not found.
File: ModularStatScreen.event, Line: 118: File asm/mss_page1_skills.dmp not found.
File: ModularStatScreen.event, Line: 136: File asm/mss_page2_original.dmp not found.
File: ModularStatScreen.event, Line: 140: File asm/mss_page3_original.dmp not found.
File: ModularStatScreen.event, Line: 152: File asm/pagenamegraphic.dmp not found.
File: ModularStatScreen.event, Line: 164: File asm/palettecycler.dmp not found.
File: ModularStatScreen.event, Line: 168: File asm/Button Branch.dmp not found.
File: ModularStatScreen.event, Line: 176: File asm/Growth Getters/Get_Hp_Growth.dmp not found.
File: ModularStatScreen.event, Line: 181: File asm/Growth Getters/Get_Str_Growth.dmp not found.
File: ModularStatScreen.event, Line: 186: File asm/Growth Getters/Get_Skl_Growth.dmp not found.
File: ModularStatScreen.event, Line: 191: File asm/Growth Getters/Get_Spd_Growth.dmp not found.
File: ModularStatScreen.event, Line: 196: File asm/Growth Getters/Get_Def_Growth.dmp not found.
File: ModularStatScreen.event, Line: 201: File asm/Growth Getters/Get_Res_Growth.dmp not found.
File: ModularStatScreen.event, Line: 206: File asm/Growth Getters/Get_Luk_Growth.dmp not found.
File: ModularStatScreen.event, Line: 222: File asm/Load Page.dmp not found.
File: ModularStatScreen.event, Line: 227: File asm/Store Page.dmp not found.
File: ModularStatScreen.event, Line: 232: File asm/Check Rescue Arrows.dmp not found.
File: ModularStatScreen.event, Line: 238: File asm/Get_Palette_Index.dmp not found.
File: ModularStatScreen.event, Line: 243: File asm/HP Name Color.dmp not found.
File: ModularStatScreen.event, Line: 251: File asm/Write_Growths_To_Battle_Struct.dmp not found.
File: ModularStatScreen.event, Line: 263: File asm/Enemy_Autolevel.dmp not found.
File: ModularStatScreen.event, Line: 268: File asm/New_Unit_Exp.dmp not found.
File: ModularStatScreen.event, Line: 273: File Display Growths Options/Growth Colors Table.txt not found.
File: ModularStatScreen.event, Line: 277: File Display Growths Options/New Palette.txt not found.
File ModularStatScreen.event, Line 284, Column 8: Didn’t reach end, currently at LeftParenthesis(()

Do you know how I could fix this?

Hi Sme
I wanted to report a bug that I encountered using Free Movement ASM, in particular with the shop call command ASMC MakeShopASMC.
In practice some times, not very often, it seems that at the time of the call it does softlock the game
(it is as if it couldn’t take in input the commands that the player provides)

Gif

https://www.dropbox.com/s/kh0r6cbx9iv2brt/testfrezzeshop.gif?dl=0

The problem is that this happens completely randomly, even though it seems like restarting the chapter in progress, it seems to fix it.

just to make sure, this is the event I use to call the code:

Events code
SVAL s2 Ch0xArmory|IsPointer
SVAL 0x3 0x0
ASMC MakeShopASMC
NoFade
ENDA

(I don’t think there are mistakes…but I hope I’m wrong?)

Hope you can check it out, thanks a lot in advance

[EA] New EA GUI

A new GUI for Event Assembler for use with ColorzCore.

image

Download

To use just place it in the same folder as ColorzCore and run it. Note you can’t disassemble using this, as ColorzCore does not currently support disassembly. As always, please let me know if you find any issues with this.

11 Likes

What a throwback. I haven’t seen anything like this since 2016.

2 Likes

yes i have an issue
this is evil

4 Likes