• 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
62

Profile posts Latest activity Postings About

  • Thank you. So far I haven't tried to write mesh data to .nsbmd files directly because I use a combination of plugins and tools from Nintendo. However, I do plan to make that process with tools by myself in the future, so it's an issue I'll face soon :)
    Hey, great to see you in the scene, but I have a problem with the R&D you posted. So I applied it, and everything works cool on a clean fr rom, but when I enter oaks lab(In a clean fr rom) the text bugs out like crazy, and the game freezes. Is it because the player isn't named? How could the player be named outside of the intro? ( I actually have an idea on how to achieve it but I wanted your thoughts first)
    Hey knizz, 's been a long time, no? I need your help now. I know you have much experience in OAM fields, and i need to know something. As the OAM memory is refreshed every frame, i can't "runtime" edit it to create an OAM. What i need to know (firered) is: Is there any routine like "Create OAM" or something? And if not, how could i go edit the OAM position? Is there a routine that changes its coordinates or something?
    Also, if it helps, i know that this is all related to the "unknown_structure" you documented in your DB!

    Best regards, Sonic1!
    I'm just trying to please ;-)

    Tell me what to do with the credits and i'll do it, no problem, don't mean to hang anyone out or anything like that, just don't want to step on anyone's toes ;-) so when I saw your post I thought I had done just that, so I wanted to rectify it, but might have done it the wrong way, sorry if this is the case.
    Yeah, i just arrived from my finalist-trip and downloaded your db. But i checked the routines get/set_pokemon_data... What exactly did you do? Srry xD

    Also: As i've told you before, i'm making a emerald ida database. When i was checking somethings, i've come across a problem. You see, when there is, for example, ldrb r0, [r0, #1], i can successfully convert it in LDRB R0, [R1,#npc_state.field1]. Now, in this case, LDRB R0, [R1], instead of appearing LDRB R0, [R1,#npc_state.bitfield_DX], it just appears LDRB R0, [R1,#npc_state] in my IDA database. This is very annoying, as i can't figure out what is the first field of some structures just by sheer looking. Could you help me on this issue, please?
    Wow, so i would just do
    ...
    ldr r3, number
    mov r4, #15
    ldr r0, #16
    lsr r1, r3, #4
    and r4, r3
    ....
    ??

    Sorry if this isn't what you're talkin about, but i don't know C#. My 'system' is actually a group of routines that decode letters in usable codes in a rom, and i only have 0x49 usable letters.

    And sorry if i misunderstood anything, my formula is a*b+c = z
    Multiply first two and add the third. (lets say 0x196. 1st byte 0x28, 2nd byte 0xA, 3rd byte 0x6. 0x196 = 0x28 * 0xA + 0x6.)

    If it isn't this one, you can always explain me that one.
    Thanks :)
    Hey knizz! Today i'm here to ask for help (again, you must be like this -.-').

    But its rather more maths than ASM this time.

    My problem is the following: I have a system where a byte max value can only be 0x49.
    I want to get values in a range of 0-0x500 (HEX). To do it, i must use 3 bytes: Multiply first two and add the third. (lets say 0x196. 1st byte 0x28, 2nd byte 0xA, 3rd byte 0x6. 0x196 = 0x28 * 0xA + 0x6.)

    Now what i want is a routine that given a value of that range, automatically finds the 1, 2 and 3 bytes needed for the final result using the formula above.
    I'm not asking you to make the routine, but help me with the conditions/logic (like, i know that if the value i want is 0, then i just need one of the 2 bytes be 0 and the 3rd be 0 too, becaus X*0 = 0 + 0 = 0)
    My problem is that there are thousands of ways to do it, and thats what is confusing me.

    Many thanks!
    Hey knizz! Hope you're doing good! Today i'm here just to tell you that i found a function that might interest you (or not). Its a debug function, probably leftovers.
    Try putting 08009640 + 1 in one of the callbacks 1,2 or 3 while in the FireRed intro (the nidorino fight, the titlescreen or something). Its a function thats probably for the AGB print or something.

    First, thanks for the explanation! What i didn't know was the part of growing from higher to lower! Must be because of LIFO system, or something like that!

    But you know, IDA makes a stack analysis, right? But in the larger functions, there are things like arg_X and var_XX. Whats really the difference between those? Because as you said, they are all arguments right? E.g:
    Spoiler:
    Hi there knizz!
    I'm sorry, but i just saw your doubt with 02024029... That offset is the number of pokemon you have in party at the moment (special 0x83 uses it, it is actually named count_pokemon in your IDA database).
    Hope it helped.

    Hey, do you know a tutorial that helps in learning how to use the stack properly? I'd like to learn more about the stack, as some routines use it...

    Thanks! :D
    I haven't been doing anything with ROMs in a very long time, actually. But based on your name, the description I noted for the offset in my list, and the information about type-9 trainer battles, I suspect it may be related to Oak's tutorial narration somehow. Perhaps it's the number of Pokemon you must defeat, or the number of foes the tutorial system expects you to face?
    Hey, no worries, its all right! ^^ I'll do it myself, i'm fairly certain that you're busy with your own things in real life.
    Just explain me something: What are the Dp01, dp00, dp02, etc in your database? I know that dp01s are the battle scripts. I'm just interested in knowing what they mean, and i'm not taking your time anymore!

    Also, i understand the callbacks system. The more important callbacks are 1,2 and 3, right? I was fascinated with the callback3 function arguments. How would i put a function in the callback and put it in use? I know that there's a function "add_to_callback3_list", and i'm fairly certain that i must use this one, but to put it in use, how would i do it? You can explain this very lightely, as i like to experiment new things and i will not take your time anymore!

    Thanks! And thanks for your database and your time! :D
    Wow, many thanks for the database (uses 6.1 version of IDA, isn't it? Glad i got it) and for taking your time to help me!

    ~Sonic1
    What? But look at this:
    Spoiler:
    I got most of it, and i already made some progress. I managed to change the flags associated with the player, by changing the oam_thingy structure. Question is, now that i managed to change the flags, i want to research some other things. The effect i'm looking for is the semi-transparency of the FOG/MIST. But thats not an NPC. So how can i lookup the OAM properties of the fog so i can get a similar effect on NPC's?
    Hey, knizz thanks for the last explanation!
    I've come with another doubt today, more complex, related to OAM, that only you seem to research that area around these parts.

    How can i apply a property to a specified OAM? I'm trying to apply alpha blending to an oam.

    Thanks in advance
    Hey knizz. Hope your life's going well!

    Since i've been studying asm, I've seen some routines which had, for example,
    "SUB SP, SP, #0xC" in the start and "ADD SP,SP, #0xC" in the end.

    And I've never understood why they allocate the stack more or less.
    Could you perhaps explain it to me if you know, please?
    Or what's their purpose on doing this?
    Thanks

    With Best regards,
    Sonic1
  • Loading…
  • Loading…
  • Loading…
Back
Top