Go Back   The PokéCommunity Forums > Members List

For all updates, view the main page.

knizz knizz is offline

Visitor Messages

Showing Visitor Messages 21 to 30 of 72
  1. sonic1
    April 7th, 2012 12:13 PM
    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?
  2. sonic1
    March 24th, 2012 05:42 PM
    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.
  3. sonic1
    March 21st, 2012 03:28 PM
    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!
  4. sonic1
    March 10th, 2012 05:08 AM
    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.

  5. sonic1
    February 22nd, 2012 04:56 AM
    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:
    0803DA54 @ =============== S U B R O U T I N E =======================================
    0803DA54 make_pokemon: @ CODE XREF: sub_080112E0+16Ap
    0803DA54 @ sub_080112E0+1F4p ...
    0803DA54 var_34 = -0x34
    0803DA54 var_30 = -0x30
    0803DA54 var_2C = -0x2C
    0803DA54 var_28 = -0x28
    0803DA54 var_24 = -0x24
    0803DA54 var_20 = -0x20
    0803DA54 var_1C = -0x1C
    0803DA54 arg_0 = 0
    0803DA54 arg_4 = 4
    0803DA54 arg_8 = 8
    0803DA54 arg_C = 0xC
    0803DA54 PUSH {R4-R7,LR}
    0803DA56 MOV R7, R8
    0803DA58 PUSH {R7}
    0803DA5A SUB SP, SP, #0x1C
    0803DA5C MOV R8, R0
    0803DA5E MOVS R6, R1
    0803DA60 LDR R4, [SP,#0x34+arg_0]
    0803DA62 LDR R7, [SP,#0x34+arg_4]
    0803DA64 LDR R5, [SP,#0x34+arg_8]
    0803DA66 LSLS R6, R6, #0x10
    0803DA68 LSRS R6, R6, #0x10
    0803DA6A ADD R0, SP, #0x34+var_24
    0803DA6C STRB R2, [R0].......

    Also, what emulator do you use to keep track of the stack? I use no$gba debug, because of this thing right on the down-right side of the window:

  6. sonic1
    February 21st, 2012 02:14 PM
    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
  7. DavidJCobb
    February 5th, 2012 05:17 PM
    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?
  8. Black Charizard.
    January 22nd, 2012 10:55 AM
    Black Charizard.
    Hi Knizz, You got some time to help me with the over large doors in dp maps xD.
  9. sonic1
    January 5th, 2012 01:49 PM
    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
  10. sonic1
    December 24th, 2011 05:07 AM
    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!



Total Posts
Activity by Forum
Visitor Messages
General Information
  • Last Activity: 2 Weeks Ago 05:15 PM
  • Join Date: August 19th, 2007
  • Referrals: 0


Showing Friends 1 to 14 of 14


Emblem Showcase - 1 Total
PC Veteran
These old folks have been around for far too long but we love them anyway.
Awarded: July 27th, 2011 01:59 PM

All times are UTC -8. The time now is 04:11 PM.