• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
Spherical Ice
Reaction score
3,333

Profile posts Latest activity Postings About

  • Hey I don't have time to properly rate your map, but I think it's pretty good - only problem I think is with the shallow(er) water tiles, which look a bit awkward in some bits. ie the edge sections have dark water edges, right next to the lighter area.

    Also the shallow walking water in the top section connects a big awkwardly, but I'm not sure if there is a better way to be honest :3
    Where did you find that sexy Snorlax OW in your hack? I've been looking for something like that to use in my hack for a long time. :3
    That's AMAZING. You must be
    LIVESTREAM?!
    Dat skit cray.
    skit was changed from something else, I should probably say. You don't listen to Kanye do you?
    I didn't go anywhere. I'm still right here, sat at my computer. Because you haven't done anything about it. I said BRING IT.
    That's the origin of my username, don't wear it out!
    Nope, too long. It was too long, right from the start, and... and we'll take it, and we'll work on it, and we'll get right back to you. ;)

    Spherical Rice.
    I see...

    The requisite tiles DO exist in the tileset you're using, yes? When you mouseover the block palette in AdvanceMap, you can see the hex ID of that block in the tileset (lower-left corner of the window: "Block: $number"). For each tile hex number referred to in my script, does your tileset have a number for that block?

    My random guess right now is that you're using my routine but with a tileset lacking the requisite blocks. My routine MIGHT be trying to change one tile into another, but the "target" tile doesn't exist in your tileset. You should only need the tile hex numbers referred to by the "CANVAS" labels at the bottom of my code.

    If that doesn't work, add JPAN's hack if you haven't already. I have no idea if he touched anything to do with maps, tile loading, tile changing, or CmdA6; if he did, it would've affected the code I developed, and if that happened and you're not using his hack, it'd explain why your code's dead.
    My best guess, then, is that there is something wrong with the ASM routine you wrote.

    Based on the use of "faceplayer", I'm assuming that your script runs when talking to an OW or signpost, rather than running when you step on a tile. If that's a correct assumption, then the fact that the routine only freezes when you step on a tile (as opposed to freezing the instant CmdA6 activates it) means that the issue occurs when your routine detects that the player has moved.

    Focus on the general part of your routine that does something if the player's position has changed. The problem is probably somewhere inside of there, and a debugger might help you to narrow it down. My best guess is that your routine ends up not returning, or not returning properly (unshift the stack pointer and pop the registers prior to returning, and in that order).

    All of this, of course, is assuming that you're not doing anything particularly out-of-the-box with your routine. (For example, trying to call a script from inside of your CmdA6 ASM routine could cause a freeze even if the routine itself works perfectly -- the new script would cause the old one to terminate before "release" is run, leaving the OWs locked forever.)
    'Kay. I'm assuming that you read my post here. If you haven't, do so; it contains most of the information you'll need. To summarize:

    There are eight "slots" for CmdA6 walking routines -- that is, eight pointers in a table starting at 0x083A7310. So you need to replace one of those pointers with a pointer to your ASM. Then, with script, you call "cmda6" passing it the slot number for your code. This will get the game to run your code on every frame (overworld only -- not in menus).

    Word of advice: don't replace Slot 0. You can't ever really turn off the CmdA6 functionality; you can only activate a slot that points to a no-op routine. (Only one slot can be active at a time; enabling one disables all others.) All but three of the slots point to the same no-op routine, and of those slots, I think Slot 0 is the one Nintendo uses to disable their own CmdA6 routines.

    If seven routines isn't enough for your purposes (and given the huge potential of CmdA6, it might not be if you really get creative!)... Well, I don't think I ever gave specific details on how, but I have extended the CmdA6 table to 255 slots (not including Slot 0 as a no-op), so it's definitely possible. I'm 99% sure that there is only one pointer in the entire game that points to this table, so it's just a matter of creating a new table elsewhere in the ROM and changing that single pointer.
    Sorry for the late reply, I don't check here as often as I used to...

    Gimme a sec to look up my thread. I think I have an idea of what you haven't done, but I gotta get my reference so I can help you out
    Delete the yourhackname.gba.spr and the yourhackname.gba.pal in the same folder as your ROM.
    Then navigate to about the place where you inserted the hack and look around there.
    I have the 89 on my name because it's been there for ten years from the very first forum I ever joined, where just "Triforce" on it's own was already taken.
    Yeah, that's what i first thought. No problem though ;)
    Well, about that, i think i have done it before, in emerald, but it was 5 months ago. I'll try to find the routine that does the animation, and when i find something, i'll pop you back!

    Sonic1
  • Loading…
  • Loading…
  • Loading…
Back
Top