• 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.
K
Reaction score
178

Profile posts Latest activity Postings About

  • Alright.

    I dont necessarily have any ideas for the document, I just felt it needed to be rehosted somewhere so everyone can access and add to it, as letting it die would be a crying shame.
    I edited the end command of a script to disable transparency. That should fix most of your problems. You could also take one of the null commands and change it to be a remove transparency command.

    The only bug I encountered is that fog does not work at all because it relies on transparency.
    It's alright I fixed the code up, I took the ips file and used the asm code (they are different) so I can fix it.

    I can make a patch for it if you like, but there will be applymovement glitches, and 0x4 glitches (if you use them with signposts and walk away instead of finishing the script). But the rest, should work. I need sleep now. I'll see you round :)

    Thanks again for your help today!

    I really think we can expand on Davids work!
    if in an asm code you have this:

    ldr r1, palLocation
    ldr r0, pal
    swi 0x11

    where:

    pal: .word 0x08XXXXXX
    palLocation: .word 0x02037798

    with XXXXXX pointing to that palette you sent, you could change the palette in pal0 to that.

    + 0x20 to palLocation for each palette (so to load the palette to pal5, add (0x20 * 4) to 0x02037798).

    then, after "waitmsg", you could add another asm code which reverts the palette back to what it was before.

    just an idea
    Yep it's easy.

    Follow this tut for the transparency asm part: here

    Then insert this code at 0x471DEC
    Spoiler:
    That's great! Could you post the source code / what you did? Was it as simple as just editing the standard scripts?
    Great news,

    I got all textboxes to permanently be see through! It is pretty cool!

    But it requires a complete tradeoff of Pal 15 and 16 to work. ie. you can't use colours in text anymore forever. I had to change preparemsg as well.

    The only thing that doesn't do well is if you leave the box open and call an exclamation mark.

    Then the text box goes funny for a second.

    It's a massive tradeoff but I dont think I'll use it in my hack
    Theoretically, yes. I'm not sure how we'd go about actually doing that, though.

    I wouldn't give up hope, either, because like I said in my most recent VM, you could try and edit the standard script which is called by callstd. I believe you'll find that those scripts use the normalmsg command, so maybe we could edit that (as that IS a command, 0xCB I believe).
    because of this, it may not be as easy as you think to simply "hack" the msgbox command as you'd in fact be editing either:

    1) the loadpointer command, which I really don't think is a safe option because of its use outside of simply displaying text

    or

    2) editing the standard scripts which callstd accesses

    The latter is definitely the safer option, and I think this document by Juan would be very helpful in actually finding where that standard script is located.
    The thing is, the msgbox command is just a loadpointer command with some other things. Here's an example of what msgbox @string1 0x4 would actually look like in a FireRed ROM:

    0F 00 XX XX XX 08 09 04

    Now, 0F is the command ID for "loadpointer" in XSE. The 00 byte tells the command which script bank to access, i.e. script bank 0.

    XX XX XX 08 is just a pointer to the string.

    09 is the callstd function. In older versions of XSE, callstd was called boxset and the msgbox command simply had a pointer to the string and you had to include the boxset command, but HackMew compacted all of this into one command despite it being a few. Either way, callstd is a separate command which calls certain "standard" scripts in game and uses them, as a way to save bytes upon compilation.

    04 simply determines what kind of textbox it is, so therefore which standard script the ROM calls, which is, in this case, the MSG_KEEPOPEN standard script, or standard script 0x4.
    You are completely right, I will fix that and have it ready for v1.2, sorry about that man.

    We don't have an ASM help thread, but why not make one? I say go for it.
    Nah man, thanks for your help.. :)
    I just took some screenshots, you're the one that knows what you're doing xD
    Cool, so just looking at 0x130F4C we must have the index, once it goes to past FF those next bytes must decide somehow. Those bottom bytes are definitely image and palette pointers. So I'll try to figure it out.


    Thanks for the screenshots.


    I know if you edit just the pointers you get a black palette turtwig. I'll try to have something figured out tomorrow.


    Thanks for your help
  • Loading…
  • Loading…
  • Loading…
Back
Top