Jump to content

Getch'ur ASM Hax


Crimson Red
 Share

Recommended Posts

  • Replies 80
  • Created
  • Last Reply

Top Posters In This Topic

1. FE10 style movement hinderance - Which is basically -2 move for mounted units while they are indoors(or just indoor maps in general)

The latter style is possible, i.e. -2 move for mounted units while on an indoor map. Doing it on a tile-per-tile basis is a bit harder because say I'm traveling from grass to the indoors, bottom to top, on the bottom side you have 8 move and on the top you have 6, it'd just be too difficult to code something that essentially says "if you traverse over any indoor tile, your move goes down to 6, but if not it stays at 8"...

If you want me to do the actually possible one, let me know. I checked already.

Also I won't be fulfilling anymore requests until I finish these two though you're free to ask for stuff I guess.

P.S. idk about the HP cap it's gay and I don't feel like messing with it sorry, the only thing I could do would be to add 16 (or 17?) HP to all units by default or something, so it would store the HP as 64 but it would act as 80HP in-game... this means no unit could have less than 16 HP or something though, and it'd be a super annoying hack so I'd probably like double my hourly rate lol

(also it's a terrible solution that will get me scorned by good programming souls etc.)

Link to comment
Share on other sites

It'd probably work fine; 16 HP isn't an unbalanced minimum is it? The issue is you could probably do the hack much easier and without any limitations if you simply removed all of the HP limiting code. You'd effectively be charging more for no good reason which is pretty unethical.

Of course, if I'm wrong and the save data allows extra bits for HP for enemies only then you would have to do something similar to FEA's stat hack anyway. It would only take a short time to check how many bits you have to work with. You will need 7.

Link to comment
Share on other sites

Yes, the issue is the amount of bits stored. The issue isn't the HP limiting code but rather the fact that it won't save one of the bits, resulting in an... appropriate loss of HP. But if I change it to not need to store that bit, it might work--sort of like your stat hack where it changes the formula but the same # of bits is stored (IIRC 5).

2^6 = 64, including 0 = 63; <- max value, 64 = "subtracts" the 64 or rather it's not storing that bit and the rest of the bits are 0 making the final set of bits... equal to 0. but if 0 displays/functions as 16 we can effectively get 80HP.

Also keep in mind I'm not a great ASM hacker so I only think of doing things that I'm capable of doing. And I'm not holding myself to any ethics here, if people feel they're being cheated they just don't ask for anything, it's that simple. I'm not pretending to have/advertising awesome ASM skills, I'm only offering my skills. :P

EDIT: P.S. I saw your name next to a cheat code for Metroid Prime Trilogy today (for the record I didn't like any of the cheats and ended up not using them--I was hoping there'd be something to one-shot weaker enemies so I could speed run MP, but there wasn't).

Edited by Blazer
Link to comment
Share on other sites

So the game stores more than 6 bits for enemies but not for allies? That's stupid.

The stat hack's system of fixing this would offer lossless compression (i.e. no compromises necessary).

It may even be as simple as including the byte before the 5 the stat hack works on normally to include HP.

I could swear modern version of FEditor do this already...

Edit: It seems the loop counter is indeed only accounting for 5 bytes instead of 6 (by which to include HP). You very likely COULD simply add 1 to the loop counter and subtract 1 from the offsets used to change the beginning addresses to that of the units' HPs.

This would likely work and take all of a few minutes (seconds to change the code, minutes to implement it), but you would be using my code as a base. Which is copylefted. So no money is allowed to be made from its use.

Edit: Here's a good start

https://dl.dropboxusercontent.com/u/336940/Software/Hextator%27s%20Doc/Media/Games/Reverse%20Engineering/Console/NGBA/Fire%20Emblem/Apps/FEditor%20Adv/asm/FE7/Stat%20Hack/C%20Version%20Extension/folDIR.html

Edit: Are you guys SURE HP can't normally be > 63? It seems fine to me.

Edit: Okay now that I actually look at the RAM you would need to subtract and then re-add base HP to both the current and maximum HP if the same number of bits is used for storing both (likely) and they are too few. It doesn't look like this is even an issue, but if it is then simply editing the stat hack's constants won't help. You'd need to add a bit of new code, and that constitutes pay-worthy labour.

I do suggest KoT actually tries the HP thing again and confirms whether there's even a problem though. I don't see any after suspending and resuming with a stock ROM.

Edited by Solais
Link to comment
Share on other sites

Blazer, would something like this be possible? For FE8.

a) Always set the autocursor to "On" on certain chapters. (meaning that it works like if it was turned on even when it should be off... Only in specific chapters).

b) If (a) is not possible, always enable the autocursor (meaning that the player can't switch it off) for all chapters, and change the "Autocursor" options in the menu with something else.

c) Make a conditional ASM so that two characters get an A support through events ONLY if they have 3+ support "slots" free.

(a) and (b) would be needed in order to cope with the main problem of chapter 5x, whose cursor glitches if it's set to Off when the main lord (who is supposed to be Ephraim) isn't on the map. Maybe there's another way around? I also thought about an ASM hack that specifically sets a certain character as the main character/lord of that chapter. Would that be possible/easier?

Actually I don't understand that much about ASM hacks, so I wanted to know if these ideas would be doable. I'm not commissioning anything right now, I just want some information.

Edited by Alfred Kamon
Link to comment
Share on other sites

b) If (a) is not possible, always enable the autocursor (meaning that the player can't switch it off) for all chapters, and change the "Autocursor" options in the menu with something else.

This sounds like it would actually be harder, but they're both trivial hacks.

c) Make a conditional ASM

Utter abuse of grammar and semantics. No wait, abuse implies they were present. Physically painful to read either way.

whose cursor glitches if it's set to Off when the main lord

Can't you just press L? Admittedly it is tacky to expect users to know to try that or even know that it's possible. The L button actually does something though.

I also thought about an ASM hack that specifically sets a certain character as the main character/lord of that chapter. Would that be possible/easier?

Possible, sure, but not easier.

Actually I don't understand that much about ASM hacks

I maintain that anyone who types "ASM" instead of "assembly" doesn't understand much about assembly hacks. I also would dare to claim that the reason so few sophisticated programmers call it ASM is because it is insensible and vulgar.

Here are some things I dislike about it:

  • It is not a proper abbreviation. It is some letters of a word that is brief to begin with made capital for no reason other than obscurity. Now everyone has an extra (useless) keyword they must use when searching text data which many search engines would reject due to its vague length.
  • Really? You can't just type out "assembly"?
  • There are specific assemblers called XASM for several other letters in place of the X. Assembly is not a specific language or a specific utility. It is a type of language, like "high level". Using something that appears as a proper noun to refer to it obfuscates this.
  • It certainly doesn't roll off the tongue, in the mouth or in the mind. It also is not a cute pun on the fact that many assembly opcodes' mnemonics are in the form of 3 letter acronyms that are often stylized with capitalization. It is, however, a cute pun that ARM cores have a Thumb mode. Note that ARM actually stands for something - Advanced RISC Machine. RISC does too: Reduced Instruction Set Computing. Notice how these are proper acronyms and do not misleadingly appear to be like "ASM" does.
  • The people that call assembly "ASM" in forums like these are the same ones who misuse terms in general, making their posts incredibly hard to decipher to the point of, yes, causing physical pain. (There's these things called head aches, you see)
Edited by Solais
Link to comment
Share on other sites

Uh... the fact that I know little to nothing about assembly hacks also means that I can't properly talk about them.

Thanks for the lesson, I'll call them "assembly hacks" from now on.

Can't you just press L? Admittedly it is tacky to expect users to know to try that or even know that it's possible. The L button actually does something though.

Hm, if I recall correctly, L doesn't do the job. You have to open the menu, select Units or Status and then get redirected to one of the units on the map.

In any case I don't want the player to go through that, and it would make the hack look glitchy as well, so...

Link to comment
Share on other sites

^

Try saving in a chapter with battle preps and restarting, that may or may not work.

Technicalities aside

a) Always set the autocursor to "On" on certain chapters. (meaning that it works like if it was turned on even when it should be off... Only in specific chapters).

Possible but I already coded a... well, hardcoded solution for the autocursor problem for TLP. I can make it temporarily autocursor on whoever you want... except it's FE8, so I'd have to do some research on free space first. But once I get that done it shouldn't be too hard. How it works is it pretty much autocursors the first player unit in the data but I came up with a gimmicky solution to make it appear (even in the status screen) that it's autocursoring on someone else. I'd expect 1-2 hours for this though.

c) Make a conditional ASM so that two characters get an A support through events ONLY if they have 3+ support "slots" free.

lol it doesn't work quite like "conditional events" but this should be possible. I just need to add up the current support values for each and make sure neither is greater than some value that would denote "not having 3 or more available support slots" (given that support levels increase in intervals). And then change the support levels after. The hardest part will probably be making the pop-up that says "Support level increased" appear, because I have no idea how that works in FE8... but even then it shouldn't be impossible. Definitely a harder hack though, I'd expect 2-3 hours of work.

Link to comment
Share on other sites

would it be possible for you to add a binary option for item data (one of the unused 'weapon abilities') that will prevent the item from being traded (along with possibly a popup text to explain why it's untradeable but that's optional)

even though I should still be working on my main hack this would be useful for an idea I have for a future FE7 hack

Edited by Lorena
Link to comment
Share on other sites

I... have no idea, because by default all items are tradeable, so idk how I'd do a check for not tradeable. Well, I guess I could just try to code something in whenever an item is normally selected for trading, but it'd be kinda tough.

So I guess it'd be possible but it'd be a long/hard hack.

Link to comment
Share on other sites

I... have no idea, because by default all items are tradeable, so idk how I'd do a check for not tradeable. Well, I guess I could just try to code something in whenever an item is normally selected for trading, but it'd be kinda tough.

So I guess it'd be possible but it'd be a long/hard hack.

would there be a way to work something from the tutorial events that prevent trading certain items? or is that too different from what would be possible

don't mean to ask too many questions

Link to comment
Share on other sites

It'd probably be easier to just not list items that can't be traded and disable the option to trade with someone with no tradeable items.

This is pointless if you won't accept an alternative (and you shouldn't, because settling for compromises is what stagnates things).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...