Dragz’s Backstage

Age getter could be interesting for games involving tine skips. If its possible to increase age by events that is.

Your stuff looks cool!

1 Like

Changing a character’s age from events would be impossible since the ages can only be read from and not written to. The best way to do it would be making ages be read from a separate table if a certain global flag is set, and then setting that flag when the timeskip happens.

I’ll make that update at some point once my hack is complete, thank you for bringing it up!

3 Likes

Introducing Forging. This code repurposes a weapon’s durability byte in RAM as its forge count, giving it stat bonuses depending on forge effects in a user-defined table. As a lover of unbreakable weapons, I’ve never felt more vindicated to have a practical application for removing durability.
ezgif-4-77d5ee6d09

Installation and Configuration:

  • Installation is incredibly simple this time around! Just #include Installer.event anywhere in your buildfile, or Insert Installer.event with EA if you’re an FEBuilder user.
  • Within Installer.event are the configuration options. There are two EA tables that you have to fill in: ItemForgeTableEntries and ForgeEffectTable.
  • ItemForgeTableEntries is a table that determines which forging path that item goes down, indexed by item id. Use the macro ItemForgeTableEntry() to avoid having to keep track of the index yourself.
  • ForgeEffectTable is a table that determines the stats boosts of an item per forge level. You can boost (or lower) Might, Hit, Weight, Crit, and even Max Range! Just be aware that every value in the table has to be multiplied by 2 (or 6 in the case of max range), as that’s the easiest way to do increments of 0.5 in the code.
  • Once the tables are set up, make sure to set every forgeable item as unbreakable in the item table. If you try to add a breakable item to the forge table, it will treat the item as being forged the number of times equal to its durability. Which could be fun as a mechanic of like, weapon rusting, but it’s not intended usage of this hack. Normal breakable weapons should otherwise function normally.
  • Alright this is where the fun ends. While the forging architecture is pretty much complete, I don’t even know where to begin creating an interface ingame to allow the player to forge their items in. Currently the only way to forge items ingame is with the SetStatus patch, which is very clunky and not something I’d ever force on a user. My initial idea was to integrate this hack with Sme’s More Shop Types hack, although I’m nowhere near that skill level yet.

I wouldn’t recommend using this hack until the necessary interfacing is complete, which could be anywhere from next week to next decade. But still, I hope you like the architecture of forging! Thank you to the usual wizards for helping me out with this.

Edit: forgot download link, whoops. It’s the same Github as usual: https://github.com/GigaExcalibur/asm/tree/main/Forging

18 Likes

Hey guys, slightly different content I have for you all today. I was sick in bed this past week and didn’t really have the energy for hacking, so I fiddled around with some Pokemon Mystery Dungeon: Explorers of Sky midis, formatting them for GBA insertion.

Included in this first set is:

  • Chasm Cave
  • Ending Theme (main story)
  • One for All, All for One!
  • Random Dungeon 3
  • Sky Peak Prairie
  • Temporal Tower
  • Time Gear

I don’t feel comfortable putting them in the Music Repo, but they are all F2U/F2E. You can find the midis, .s files, and .event files (for buildfile users) all in their respective folders on my regular Github: https://github.com/GigaExcalibur/asm/tree/main/PMD2Midis

That’s all, have a great day!

13 Likes

Introducing Player-Exclusive Class Descriptions. This is a small hack that allows you to set different text ids for a class description depending on whether the unit in question is a player or not a player.

ezgif-4-2fbfee8b93
You’re just gonna have to trust me that these two units have the same class ID.

There’s no real mechanical purpose for this hack, it’s only used for flavor. But as someone who greatly enjoys flavor, I certainly am going to put it to good use.

Installation and configuration are so simple I’m not even going to write a bulleted list. Just #include Installer.event anywhere in your buildfile / Insert it with EA for FEBuilder users, and follow the macro defined in Installer.event to set your player class descriptions. Shouldn’t conflict with anything either, but be aware of any future hacks that change class description.

Download link: https://github.com/GigaExcalibur/asm/tree/main/PlayerClassDescs

Thank you as always!

12 Likes

No major release today, just a collection of miscellaneous inline changes. The battle crit threshold was by popular demand but I didn’t feel right devoting an entire post to just one inline change. So here’s five!

Battle crit threshold
PUSH
ORG 0x02ACC0
BYTE 0xA // battle crit below this number becomes set to 0
POP

Comment should be self-explanatory.

BWL Position
PUSH
ORG 0x870B8
WORD 0x020040F4 // I can't entirely explain it but the last two bytes here determine position
POP

Self-explanatory once again, the default value moves the BWL display down one tile to fit another line of stats there.

Remove prep support room theme
PUSH
ORG 0x951FC
SHORT 0x46C0 0x46C0 // nop out function call to change music
POP

Literally the simplest hack here, this makes it so the prep theme keeps playing when in the Support submenu there.

Stat Screen Map Sprite Y-Pos
#define MapSpriteYPos 0x97 // pixels, not tiles

PUSH
ORG 0x0886EC
BYTE MapSpriteYPos

ORG 0x087CE6
BYTE MapSpriteYPos

ORG 0x087DBC
BYTE MapSpriteYPos

ORG 0x087E34
BYTE MapSpriteYPos

POP

Self-explanatory (wow, there sure were a lot of these). Moves the unit’s moving map sprite in the stat screen down to the defined pixel, mostly useful if expanding the class name. You can see how it looks with the default value in the BWL position image.

Support screen positions
PUSH
// X-Offset of the support partner name in list
ORG 0x87722
SHORT 0x3104

// X-Offset of the support rank in list
ORG 0x87748
SHORT 0x340D
POP

For the first time in this list, not self-explanatory. This changes how far to the right each element of a support line is drawn to the affinity. This is really only useful if you’re doing what I did and split page 3 of the stat screen up into two columns.

These won’t go in the GitHub, so just copy the text from here and paste it wherever.

11 Likes

Introducing Base Theme by Chapter. Another very simple hack, this allows you to customize the theme that plays in the Support / Base Convo menu in the prep screen by chapter.

A gif won’t do anything here so you’re just gonna have to trust me that it works. I called it “Base” theme by chapter because if you’re not using Snek’s base convos there’s no reason to use this. Hell, I’m not even using this myself, a friend requested it for their hack and I figured it was within my skill level. Regardless, there’s no reason not to make this public and if someone else has a use for it, all the better.

The usual simple installation: #include Installer.event in your buildfile, or Insert EA with FEBuilder. Use the defined macro ChaptersWithBaseThemeEntry to set the base theme for that specific chapter, and leaving a chapter out or setting the base theme to 0 will make the prep theme continue playing in the menu. This hack doesn’t require SkillSys and shouldn’t conflict with anything else.

Download link: https://github.com/GigaExcalibur/asm/tree/main/BaseThemeByChapter

That’s all for this time, have a great day as usual!

11 Likes

Introducing… uh. Introducing, uh, Cryptocurrency. This is yet another tiny hack that was requested by a friend of mine for his hack, and I figured I’d oblige.

ezgif-5-0e73981ffe

This hack allows you to define one item id as being “crypto”, meaning its base sell price fluctuates by chapter and every time you enter the shop screen its prices changes by some random variance. There is literally no use for this hack besides being making a joke sellable item, but wizard’s creed and all that.

Installation is simple as usual, #include Installer.event in your buildfile or Insert it with EA for an FEBuilder user. All of the cryptocurrency parameters have labels in the file that exist to be edited on the user end: you can change the crypto item id, the bounds of random variance, and set the base price modifier per chapter with ModifierPerChapterEntry(). This doesn’t require SkillSys and shouldn’t conflict with anything.

Note that due to the way random numbers work in GBAFE, the player can very easily save scum the random variance by moving the cursor back and forth in the shop menu. If for some reason you’re actually using this hack (and care about your economy being balanced, which if you’re using cryptocurrency is unlikely), I recommend skewing the variance below 100% so the player can’t manipulate it as easily.

Download link: https://github.com/GigaExcalibur/asm/tree/main/Cryptocurrency

Anyway that was all for today, I hope you at least enjoyed this implementation of crypto in GBA. Have a great day!

20 Likes

Holy shit. They’ve done it

1 Like

These are all very cool, nice job! Thanks for sharing.

Spoiler

Also holy I need that FE7 scrolling background

3 Likes

The FE7 scrolling background is one of my favorite parts of SkillSys, it’s been available as a configuration option for a few months.

And thank you!

1 Like

It’s not fully complete yet as I still have to do the hardest part: making a menu for forging that will display a unit’s inventory, and highlighting over an item will show how much it costs to forge and how much its stats will increase. Best case scenario I finish that during Thanksgiving week, but as I’ve never done menu stuff before it’s likely I hit a roadblock that stems all progress until I get a wizard to walk me through procs.

But still, thank you for your interest!

3 Likes

Take your time! This is an amazing thing. Hopefully one day it can work with weapons that have durability as well

2 Likes

That actually wouldn’t be too difficult to code, but it would require several concessions. Weapons only store 6 bits for durability in save data (for a maximum of 63 durability), so if I wanted to repurpose that for forge count it would drastically cut down max durability. Even setting aside 2 bits (for a max forge count of 3) would result in weapons only going up to 15 max uses, which isn’t desirable for most people.

The ideal solution, which has been proposed to me, would be to expand save data with EX Modular Save to make items save 8 bits for durability instead of 6. Then ideal split would either be 31 max durability / 7 max forge count or 63 max durability / 3 max forge count.

Making breakable items able to be forged would also require UI changes (probably borrowing what Gaiden Magic does to display HP cost?) but I’d rather not think about further interfacing issues right now.

2 Likes

That is understandable. Maybe you could take advantage of Awakening style durability to reduce the space for forging display. I also a lot of hacks use EX Modular save. I don’t think that would be an issue.

And finally, I think that 63 durability, 3 forges would be ideal. Since that is more accomodating to vanilla durability in most FE games, where iron weapons are 45 uses, and some special items have 50 durability

1 Like

This is easily my most desired feature atm. If you do get around to finishing it, I would surely put it to good use.

1 Like

Thank you for your interest! With so many people wanting it done, the pressure’s on lol.

SkillSystem already expands it to 8 bits because of Skill Scrolls (though the convoy still bitpacks to 6, for some reason). So all you would need to do is to rewrite the convoy save/load functions (which you would have to do anyways if you plan to expand the convoy to 200).

2 Likes

Interesting! It didn’t occur to me that SkillSys would need to expand durability bits to make skill scrolls functional. Even so, I’m hesitant to make EMS/SkillSys a requirement for Forging as none of its other mechanics require integration with it.

Thank you for letting me know, though.

1 Like

Btw skillsys is dependent on ems, not the other way round. So you can release something that requires users to use the ems setup you provide. For example, one that includes 200 convoy without bitpacking, strmag split, and stairs. This might actually be the default used for the febuilder skillsys patch because I remember 7743 copied some stuff I’d colleted for that setup. You’d have to check. Skillsys master does not have expanded convoy / full short per item supply, but it’s on the to do list to at least do the latter part of that.

Even if you have skillsys installed already, you can reinstall ems. If you change addresses / offsets, then it breaks old save files.

Hope this explanation helps a little. I think using a full short per item is reasonable, but it’s up to you ofc.

2 Likes