Jump to content

Tequila

Member
  • Posts

    674
  • Joined

  • Last visited

Posts posted by Tequila

  1. The error is saying that the tile change data isn't beginning on an offset divisible by 4 (called word-aligned, because a word is 4 bytes). This is because (I think) trap data isn't an even number of bytes long. You should be able to fix this by putting ALIGN 4 before your TileChanges label (line 207).

  2. Unfortunately, it seems that Ghast did not receive the final version of the patch, but rather the penultimate version. Most likely my dropbox didn't synch in time. One of the things I fixed in the last version is the Entrap staff's description; I was originally planning an easter egg achievement if you tried to entrap the boss, but didn't have time to implement it.

    Some other things touched upon in the video I want to address:
    - The experience formulas are untouched from vanilla. Therefore, while promoted units will get more exp from fighting other promoted units, they won't get much more for fighting unpromoted units.
    - The lag after moving a character is because there are two AFEV events being run (to display the Ma Sacree Toux/Rob 'Em Blind achievements). Sorry if this is annoying.
    - The 40 turn limit on Speed King was basically a guesstimate; if you're trying to get all achievements in one run, it might be rather difficult without savestates.
    - Provoke does not affect your units at all (I did contemplate the idea, but decided against it because I'm lazy and it's kind of a dick move).

    Here is a link to download the submission if you want to try it yourself. Let me know what you think!

    And in case this is the first time you've heard about my FE Chess hybrid, here is a link to that, too.

  3. Here's a checklist of things you can learn (note, some of these are more difficult than others, and it's not necessarily in order):

    See how far you can get in this list (courtesy of circleseverywhere):
    1. Make Iron Swords have 30 MT
    2. Change lord's base STR to 20
    3. Change lord's name to Fluffy
    4. Change lord's portrait to Moustachioed Villager
    5. Change lord's battle sprite to hot pink
    6. Create a new class with animations
    7. Make a new prologue chapter using events
    8. Insert a new map
    9. Port a map sprite from another FE game
    10. Replace the theme song with the Mario theme
    11. Replace the title screen background with a smiley face
    12. RAM hack lord's STR to 127
    13. Write an ASMC that raises lord's STR to 127

    If you're interested in progressing further, I recommend picking a short project and just jump in. MAFC (Make A Fun Chapter) is a perfect opportunity, although you don't have to submit anything if you don't want to. I'd recommend completing this small project before beginning anything big and ambitious; romhacking is very time-consuming, and a lot of people plan out huge ambitious projects, only to give up within a few days because they didn't realize how much work is involved.

    EA buildfiles are great for projects (of all sizes, but definitely for the big ones), but have a pretty steep learning curve. There's nothing wrong with using FEditor to learn the basics, but it does have a nasty habit of messing with things that it shouldn't (like eating text, randomly screwing up spell animations, and then like). If you use the buildfile method, FEditor can be used as a resource (to look up text/portraits/animations, that kind of thing), but just don't save anything. It's not actively evil, just...misguided.

  4. Uh, I'm not entirely sure why this would occur. Try adding a TEXTSTART before TEXTSHOW, maybe. That's the only difference I can see between your events and vanilla ones.

    Also, a) this is in the wrong section (it'd belong in the Questions forum), and b) there's a thread for event-related woes stickied in the Questions forums.

    EDIT: Didn't see you already found and posted in that topic. Oops.

  5. Checked 0x080000A0 in memory viewer and found exactly what I needed. Fortunately, lua's memory.readbyte(0x080000A0) works as intended with ROM values. You guys are awesome!

    Would you happen to know where I could find raw dissassembly data for FE6-8? There are a couple other memory addresses (such as one that acts as a boolean for when a character's selected or not, found 0x202BEE8 but not sure) that I'd like to find, and don't want to be posting a new question here each time.

    202BEE8 isn't a bool; it's the turn status word for the third deployment slot, of which the first bit is, coincidentally, whether the unit is selected, according to this. Just remove the first number of the address and go to it in your memory viewer.

    This, while slightly inaccurate, gives you a more in-depth explanation than the codebreaker code page; the first 0x48 bytes of the battle struct are essentially identical to the character data described in the codebreaker page.

    I'm not entirely sure what you mean by static disassembly, however.

  6. Lol I actually do theatre in real life so that's a perfect analogy.

    A thought occurred to me: it's possible that the MAKEHACK method of hacking isn't the best way to start learning. Even though I've heard a lot of horror stories about FEditor, it looks at least a little more user-friendly in some ways.

    Oh, it's good enough to start off in. Make a test chapter, get used to events. I just wouldn't recommend using it for a full-blown hack.

  7. This isn't the right place (since what you're asking isn't related to EA), but your assumption is incorrect. There's a movement struct beginning at (FE8) 203A990, as follows according to my notes:

    +29: cursor coordinate x (only when character is selected)
    +2A: cursor coordinate y
    +2B: total movement
    +2C: how long the pathing arrow is at the moment(actually, how many squares you're moving)
    +2D: 203A9BD: x coords of squares being passed through (beginning with the square you're currently on)
    +41: 203A9D1: y coords of squares being passed through (beginning with the square you're currently on)
    +55: 203A9E5: seems to be a counter of how movement cost can be used. The byte before this has maximum movement

    So if you begin at (0,0), 203A9BD will be 0 and 203A9D1 will be 0. If you move 1 square to the right, then 203A9BE will be 1 and 203A9D2 will 0. And so on. The way the data is organized is the reason that the pathing arrow breaks after around 18-19 squares; the last square's x coordinate overwrites the first square's y coordinate.

    I don't know offhand where the FE7 one is, if that's what you're interested in, but it should be nearby and follow more or less the same pattern. Hope this helps!

  8. Also it's imgur... if you're talking about imager then that's probably why it was't working, because imager doesn't exist. I have zero idea how to navigate Nightmare so you'll have to show me.

    Can't comment on Berwick and whatnot, having not played it, but I can explain the con growth, having used it.

    All 3 GBA games have a byte immediately following resistance growth in the class data module that says Con growth (unused).

    17d3180ccbdfd3dfac7f8d9ec2238f8e.png

    In the battle struct, which is where the data for the attacker and defender are stored, bytes 0x73-0x7A are used for stat gains (hp, str, skl, spd, def, res, luk, con). 0x7A is the con growth, and is, in fact, read; since those values are zeroed out before stat gains are calculated, and that byte is never written to, the gain will always be 0. But if you go to the battle struct (2039214 for attacker, 2039294 for defender) and manually add a value, it does actually increase.

    63982039a64e8375dd50b03b0416223c.png

    (This does, in fact, work for all 3 games; I used that byte for the magic growth in my str/mag splits.)

    Hope that helps!

  9. Okay, so this may seem like a stupid question but i'm not sure which prog. i'm supposed to find the 0x0A06D8. I've checked through HxD Multiple times on every search type and even tried finding it manually but i can't find it. Is it in another prog. or am i missing something? Last question i promise! (Probably)

    What is that supposed to be?

  10. Look at how many threads are in the Concepts section. Now look how many active projects there are. How many of those concepts ever got anywhere? Odds are, maybe 1 in 15? 20? 50? I dunno. Point is, as MC said, people will want to see that you're actually interested in doing something before giving you resources, whether that be sprites, animations, assembly, or whatever. There's little incentive to do that for everyone asks if, odds are, the project's not going anywhere.

    If you really want help, make a 3-4 chapter hack and show it off. Can't sprite? There's plenty of open-source ones, or hell, use the vanilla ones as placeholders. Need animations? Make do with the vanilla ones (or use map animations only). Need assembly? I think you get the drift. Making an entire game by yourself is quite difficult, yes. Making an introduction to said game, however, is quite feasible. If you find that that is too hard or time-consuming, odds are that making an entire game will be beyond your scope.

  11. To allow multiple S ranks, write to 7A 68 13 E0 to 29B92. This branches past the loop that checks for previous S ranks.

    To allow unpromoted units to have S ranks (I assume that's what unprompted was supposed to mean?), write C0 46 to 29BCE. This skips a branch when the unit doesn't have the promoted flag set.

×
×
  • Create New...