Jump to content

liaF cipE

Member
  • Posts

    25
  • Joined

  • Last visited

Posts posted by liaF cipE

  1. you know what? i just tried the backlight code on my ds with an ards. it's an ar code handler hack too. it doesn't work. i'm wondering if, when they updated the ar firmware, they changed where in ram the ar code handler sits to accomodate the new dtcm(and stacks) the ds sdk now uses so that the ar would stay well out of range of any nintendo code. that would explain it perfectly. and it means that that ar hack isn't usable any more. that code i had you test should work 100% of the time, but it doesn't. that explains it perfectly. and really screws this over.

    ......crap :( I guess I can use manual values or something but that really kills this. hopefully someone will be able to find the new addresses or something to get asm codes to work in the future, but for now this seems doomed. Thanks for the help though.

  2. try this to test:

    94000130 FFFB0000
    023FE074 012FFF11
    E0000000 00000020
    E92D0003 E59F000C
    E59F100C E5801000
    E8BD0003 E12FFF1E
    0223CDCC 01111111
    023FE074 E3520003
    D2000000 00000000
    

    get in-game and hit select, then look at your money and it should have changed.

    it has to be on a real ards, though. the ardsi might have the address of the code handler changed, i'm not sure. i can't get my ar to work at the moment, or i would try it. if the ardsi's code handler address changed, then there ar hack to execute e-codes wouldn't work on them.

    also, asm to ards doesn't require a bin file. just type the assembly in and hit compile.

    Still didn't work :(

    I am using an ardsi, so that might be the problem. Weird though, considering all other codes have worked thus far.

    Also, for asm to ards, I put the code in the box and hit the asm to ards button, and it gives me an error that it can't find the file source.bin. After I use the one program to make a .bin from the asm source file, rename it to source and put it with asm to ards, putting in the code and hitting the button works just fine.

  3. where are you trying this? desmume?

    e:

    here:

    .text

    .org 0

    .arm

    _start:

    push {r1,r12}

    ldr r1, =0x4EBAA14D

    ldr r12, =0x2234A40

    str r1, [r12]

    ldr r1, =0xB4E89F82

    str r1, [r12, #0x4]

    ldr r1, =0x0E6C13CE

    str r1, [r12, #0x8]

    ldr r1, =0xAA1A10A6

    str r1, [r12, #0xC]

    pop {r1,r12}

    bx lr

    .pool

    no need for that extra space in the literal pool.

    I am trying this in-game, (and not saving when it doesn't work xD). The weird thing is that the normal hex code works perfectly fine (consistantly too, so its not like my game got screwed up or something), whereas the asembler version doesn't, and they should be doing the exact same thing...... IDK, I'll try the edit and see if it works.

    edit: Still doesn't work.... code:

    94000130 fff30000

    023fe074 012fff11

    e0000000 00000044

    e92d1002 e59f1024

    e59fc024 e58c1000

    e59f1020 e58c1004

    e59f101c e58c1008

    e59f1018 e58c100c

    e8bd1002 e12fff1e

    4ebaa14d 02234a40

    b4e89f82 0e6c13ce

    aa1a10a6 00000000

    023fe074 e3520003

    d2000000 00000000

    To get the code, I am using the Kenobi ASM to ARDS with the ARM ASM kit that creates the .bin file ASM to ARDS requires. (I also have the arm7 fixa and extractor, but I don't think they are really used here.) Do I need something else to get it to work?

  4. During debugging the code seemed to do nothing, so I tried a simple code in assembler and in the raw hex code, but the assembler version did not work, as in it seemed to nothing.

    Assembler source:

    .text

    .org 0

    .arm

    _start:

    push {r1,r12}

    ldr r12, =0x2234A40

    ldr r1, =0x4EBAA14D

    str r1, [r12]

    ldr r12, =0x2234A44

    ldr r1, =0xB4E89F82

    str r1, [r12]

    ldr r12, =0x2234A48

    ldr r1, =0x0E6C13CE

    str r1, [r12]

    ldr r12, =0x2234A4C

    ldr r1, =0xAA1A10A6

    str r1, [r12]

    pop {r1,r12}

    bx lr

    .pool

    raw hex output from converter and codes:

    023FE074 012FFF11

    E0000000 0000005C

    E92D1002 E59FC030

    E59F1030 E58C1000

    E59FC02C E59F102C

    E58C1000 E59FC028

    E59F1028 E58C1000

    E59FC024 E59F1024

    E58C1000 E8BD1002

    E12FFF1E 02234A40

    4EBAA14D 02234A44

    B4E89F82 02234A48

    0E6C13CE 02234A4C

    AA1A10A6 00000000

    023FE074 E3520003

    codes:

    94000130 FFFB0000

    023FE074 012FFF11

    E0000000 0000005C

    E92D1002 E59FC030

    E59F1030 E58C1000

    E59FC02C E59F102C

    E58C1000 E59FC028

    E59F1028 E58C1000

    E59FC024 E59F1024

    E58C1000 E8BD1002

    E12FFF1E 02234A40

    4EBAA14D 02234A44

    B4E89F82 02234A48

    0E6C13CE 02234A4C

    AA1A10A6 00000000

    023FE074 E3520003

    94000130 FFFB0000

    023FE074 012FFF11

    E0000000 0000005C

    E92D1002 E59FC030

    E59F1030 E58C1000

    E59FC02C E59F102C

    E58C1000 E59FC028

    E59F1028 E58C1000

    E59FC024 E59F1024

    E58C1000 E8BD1002

    E12FFF1E 02234A40

    4EBAA14D 02234A44

    B4E89F82 02234A48

    0E6C13CE 02234A4C

    AA1A10A6 E12FFF1E

    (the same 2 above with d2000000 00000000, the first one with 00000000 E12FFF1E at the end, as well as other weirder tries that aren't really worth mentioning)

    manual hex code that worked:

    94000130 fffB0000

    02234a40 4ebaa14d

    02234a44 b4e89f82

    02234a48 0e6c13ce

    02234a4c aa1a10a6

    d2000000 00000000

    So, what is the issue with the assembler code, and if there isn't one, what in general do I do to the raw hex output to get a working code? Yeah, I know it is supposed to be

    "94000130 FFFB0000(run on hitting select, can be changed to whatever)

    023FE074 012FFF11

    E0000000 0000XXXX(the Xs here are the number of bytes being run in total, 4 per word)

    AAAAAAAA BBBBBBBB

    CCCCCCCC DDDDDDDD

    EEEEEEEE FFFFFFFF

    GGGGGGGG E12FFF1E"

    but the code had 023FE074 012FFF11 built in, and I tried to put in E12FFF1E at the end, but it didn't work.......

    edit: I also tried this:

    94000130 fffb0000

    023fe074 012fff11

    e0000000 0000005c

    e92d1002 e59fc030

    e59f1030 e58c1000

    e59fc02c e59f102c

    e58c1000 e59fc028

    e59f1028 e58c1000

    e59fc024 e59f1024

    e58c1000 e8bd1002

    e12fff1e 00000000 (or 00000000 E12FFF1E)

    02234a40 4ebaa14d

    02234a44 b4e89f82

    02234a48 0e6c13ce

    02234a4c aa1a10a6

    023fe074 e3520003 (or d2000000 00000000)

    note: If someone is about to go test the ar code for themselves, a lvl 100 pokemon with the PID of 1739113929 needs to be the 1st pokemon in the party, and the code should make every stat 0 for said pokemon. (I made the poke I tested with in Pokegen, so I know 100% that it has that PID)

  5. Not surprisingly, no one knows. I figured this was a long shot esp. since these are pretty obsurce things, and B/W did not come out that long ago so people probably would not have gotten there yet.

    At this point, if anyone can give me any advice on how I could find these hex values--like with a simulator or something--that would be appreciated.

    edit: apparently the move reflect type can be used to change to a dual type, so whatever variable is there could be utilized to alter the type of a pokemon to any type.

  6. Considering the moves autotomize, conversion, conversion 2, and soak, and the ability color change there should be some sort of in-battle variables for manipulating type and weight.

    If someone knows the hex addresses/action replay codes to change these values and what to put in please post them, but I have a couple questions about them (aside from the obvious of do they exsist)

    -Can in-battle type hold a dual type as a value? It always gets set to a single type by the natural mechanics, so I am not sure. It would make more sense if it was initiallized with the species type of the pokemon to keep the algrorithms consistent, but for all I know the variable could only matter if the type has been changed, causing the in-battle type to override species type.

    -Does the weight value hold the final weight of the pokemon, or does it just hold the "stage" or whatever it is to get the current value of weight?

    -Assuming type can hold a single or dual type, and weight holds the final weight, how would the hex value for each be calculated?

    Why does this matter? Well, after the base stats moves, and ability, type and weight the only things left that really matter for each pokemon species. By being able to simulate all of these factors, an entirely new pokemon species can be simulated in game, allowing people to define their own pokemon. (As long as it does not need non-exsistent moves/abilities/types...)

    Yes, weight is not crucial, but it does come into play in some cases, it would be nice to make sure the right weight (if needed) is available.

  7. you would need to decrypt and re-encrypt the data on the fly. using the ar. in assembly. i can see this turning into a mess. i still don;t understand exactly what you're trying to do?

    Basically I want to read nature, ivs, and evs, perform a calculation, then output the values into the stats via assembler. The AR codes I have plug in the encrypted value for either 2 or 4 (or 1 if I'm right) values in the 1st party pokemon data. If I can get the hex address for where those codes write to and read/write there, I can have the code get the values into variables, perform the decrypting algorithm, do the calc/logic with those values, then reencrypt the values to put into the stats.

    Since PID is constant for ALL pokemon that get the code, I won't have block shuffling issues, and since the stats are encrypted via the PID I won't have issues with check sum changing. (plus I can read the check sum and PID as they are in the codes I can use)

    So it might be somewhat annoying, but it should be quite doable. The only issue is getting the hex address so I can get assembler to read/write to where the line writes.

    Am I right that it is the 1st 8 hex digits of a line that only writes in values?

  8. Alright, this is the only real important thing: By adapting the pokegen code with the encryption algorithm

    I can get AR codes to change the values in the pokemon data, calculate the encrypted value, as well as unencrypt a value and know what value is what. (In say a pokegen code)

    So, how can I transfer the AR code into what assembler needs to read at write to the place the code edits? :confused:

  9. I just looked back @ a testing code, and it turns out that 12234A44 was max HP, not attack. In fact, I noticed that all of the endings are 2 away from each other, and (when fixed) the ording will probably be consistant with the pkm structure, as there too are the stats offset 2 away from eachother, with the ordering of current hp, max hp, atk, ... (I will probably double check this). If so, then I might be able to adapt those codes and the ones I isolated from pokegen that changed 2 stats (weirdly enough with the later stat first so AAAAHHHH where A is for atk and H is for max Hp. Current hp was in the first 4 digits in its line, further being consistent) to obtain general codes to fix any offset value in the file.

    If this is the case, how could recycle the code so I can get the hex addresses it writes to for the assembler code?

    Edit: It turns out that execpt the 1st and last line, the 1st 8 hex digits go in order, adding 4 each time from 0x022349B4 to 0x02234A8C, or a difference of 0xD8, which hits all the pkm offsets execpt the 4 at the end in the trash bites section. (actually, the last code hits the next 4 offsets in the pkm code, so it does get all of them)

  10. everything you want to change is encrypted. since you're proficient with java/c++, your best bet is to read about how the encryption works(i think there's a wiki article) and write an app to decrypt the pkm and the re-encrypt it so you know what values you want to change to what. however, if you want to somehow reuse an ar code that does this, that's a much different vastly more challenging story. is this something just for you or something you're making for a lot of people to use? if it's the former, doing so might be a bit easier. we can just cut out the encryption.

    e: well, you would need to use the cut encryption on a new game or edit all your pokes to not be encrypted. if everything isn't encrypted with the 4th gen rng, but the game tries to decrypt with it, Bad Things™ will happen. srsly.

    This code is going to be used on just my game (although keeping the option open to spread to other games would be nice, it can be dropped if need be), and the only pokes it will apply to are ones made from Pokegen in the first place so I can get the pkm file and I can have PID (and location stuff, trainer stuff etc) remain constant. (even though the PID will disagree with the stats)

    Is the .pkm file structure the same as the wiki says it is here: http://projectpokemon.org/wiki/Pokemon_NDS_Structure#Encryption ?

    Also, pokegen says it can "ignore save file checksum". Would that actually change anything about the pokemon's code (maybe make this easier?), and if so would it still work in-game? I don't care if it would be illegal, but it still needs to not break the game :).

    For the action replay codes I mentioned for stats (the 2nd half is 0000XXXX), I know they change the desired stat (I assume the encrypted value) to XXXX, and I can calculate XXXX to give me the right number in the stat. Am I right that the first half is the hex address, or is it something completely different? If it is different, would decrypting the .pkm file tell me what the right hex address is so I can use it in assembler?

    e: at the link above, it says the stats (and level, I should probably recheck pokegen (although exp using the other stuff :() are encrypted via the PID, which might explain why I could isolate the lines that changed each stat in the pokegen code. Perhaps the ignore checksum stuff in pokegen would allow me to isolate a line that gives the check sum, and what lines give the other values I want. However, I do not know if I am right about the hex address thing in the first place....

    Also in X[n+1] = (0x41C64E6D * X[n] + 0x6073) from the link, are * and + bitwise operators?

    e2: nvm, the ignore checksum does not seem to change anything in the AR code.... (confirmed by Codr)

    e3: better link: http://www.projectpokemon.org/wiki/Pokemon_Black/White_NDS_Structure although it does lack some info, it is for B/W :)

  11. As is probably evident by now, I really do not know a lot about what I am doing, mainly because my programming experience is with stuff like C++ and Java…

    Yes, I do know basics like what hexadecimal is, AR codes are CPU instructions, etc. But I lack on some of the more advanced stuff and notations, and I am not sure of exactly where I stand in terms of how much I know.

    For example, I don’t really know what

    00013 022349D4 d h 0 Slot1 PID(W)

    means, or how I can change that to give the hex address/1st chunk in an AR code line

    (Is it 022349D4? Does that number need to be changed somehow?)

    As such, here is a list of what (I think) I know, and what I need:

    Know:

    -The main portion of the code will be from assembler, which will read and write values from hex addresses on the cart’s RAM, dictated by setting the Hex address for a value as the absolute address in the assembler code

    -The assembler code will also read and write values on to the AR itself, (like R1 and stuff) which should have the right value when used with a complier designed for the AR.

    (I’m not entirely sure about this bit, and I suspect I will have to temporarily store values somewhere on the game’s ram, like the output of a sum that I need to modify more before it goes into another spot on the cart) (If anyone knows a good assembler compilier for the AR/BW, I would be glad to know :))

    -I am using this nice code from Bond697 to run the assembler code on the AR:

    94000130 FFFB0000(run on hitting select, can be changed to whatever)

    023FE074 012FFF11

    E0000000 0000XXXX(the Xs here are the number of bytes being run in total, 4 per word)

    AAAAAAAA BBBBBBBB

    CCCCCCCC DDDDDDDD

    EEEEEEEE FFFFFFFF

    GGGGGGGG E12FFF1E

    Which runs the code from the AR memory, so there are no issues with storing the function somewhere

    -Lines in the AR code that change a value at a hex address like 12234A44 0000XXXX change the value at the hex address 12234A44 to 0000XXXX, so I can have 12234A44 as the absolute address in assembler and have the assembler code read and write to the same place as the AR code.

    (I’m not 100% on this. If the 12234A44 value needs to be modified to give the hex address, please tell me what the formula/algorithm is to transfer from 12234A44 to the proper hex address)

    -How to write to the values of the 1st pokemon in the party for current and max HP, Atk, Spl Atk, Def, Spl Def, and Speed, which is done by inputing the number I want xored with the value for 0 (got it from pokegen) at the following hex addresses I got from Delta Blast Burn (in AR code form):

    12234A42 current hp (lucky guess on my part)

    12234A44 atk.

    12234A46 (max) hp

    12234A48 def.

    12234A4A sp. atk.

    12234A4C speed

    12234A4E spl def

    -(I will be fine with the writing of the assembler code and the algorithm of the code once I have the info I need. I don’t know all the syntax off the top of my head, but I know where to get any help I’ll need with the stuff pertaining only to assembler)

    Don’t know:

    Note: If some sort of short hand notation/formula is used as an answer, that’s great, but please also include how I go from the short hand/formula to the thing I need, like the hex address.

    Also, a resource where I can get the information from is fine as an answer.

    (As you may see, I need a lot of hex addresses. I thought I could use pokegen, which worked fine for the stats, but for most of the values I wanted changing one of them altered the same 30 lines of AR code each time, so I had no idea how to isolate each individual variable. Ie: happiness, nature, ivs and evs all changed the exact same 30 lines... :confused:)

    -The hex address (read) of the nature value for the 1st party pokemon, and how to transform the raw number into something more usable. (Is it the encryption thing with the PRNG?) (I found something that says it is the 41h value, but I have no idea what to do with that)

    (I think the fixed numbers should look like this:

    0x00Hardy

    0x01Lonely

    0x02Brave

    0x03Adamant

    0x04Naughty

    0x05Bold

    0x06Docile

    0x07Relaxed

    0x08Impish

    0x09Lax

    0x0ATimid

    0x0BHasty

    0x0CSerious

    0x0DJolly

    0x0ENaive

    0x0FModest

    0x10Mild

    0x11Quiet

    0x12Bashful

    0x13Rash

    0x14Calm

    0x15Gentle

    0x16Sassy

    0x17Careful

    0x18Quirky

    )

    -The hex address (write) for the happiness value of the 1st pokemon in the party, and how to change the value I want before it is written to that address.

    -The hex addresses (read) for the iv’s and ev’s of the 1st pokemon in the party, and how to transform the value to give the proper number. (ie 31 or 252, not 0x8F72 or something like that) (Does this use the encryption?)

    (I also found stuff here: http://www.projectpokemon.org/wiki/Pokemon_NDS_Structure#Unencrypted_bytes

    but I do not know what to do with those to get the 1st party pokemon hex addresses)

    - The hex address (read) for level, how to tranform the value into the actual level, etc..

    If it helps, the code will only be used on pokemon made in Pokegen, so things like location and PID will be constant. The code just needs to be flexible wrt level, iv, ev, and nature.

    I thank whoever helps me in advance. (Especially since it will probably be the same people, and I’m sure they are starting to get annoyed by now…)

  12. Formulae for calculating stats are at http://www.serebii.net/games/stats.shtml

    Also, if you want codes that only edit one stat try:

    12234A44 0000XXXX atk.

    12234A46 0000XXXX hp

    12234A48 0000XXXX def.

    12234A4A 0000XXXX sp. atk.

    12234A4C 0000XXXX speed

    12234A4E 0000XXXX spl def

    I already knew the stat formula, and I wanted to know how pokegen translated manually setting a stat as 423 for example, to the hex code, as it was no where near linear. In one case, incrementing a stat by one made delta Hex = +1, -3, +1, +5 and so on, (0 was F82) yet the 3rd hex digit to the left went down when it was supposed to go up O.o Then, not all stats even followed that pattern... So I thought it could be some weird bitwise operator or something.

    Anyway, that is kind of moot now, assuming you put the hex equivalent of the number desired in for the X's... Thanks for the help! :)

    Edit: realized I needed the 02234A40 value for hp to be right, the hp code does not change current hp(though 12234a42 does xD), and those codes gave me REALLY weird values(always with a "?"), even for small numbers like 100 (64 in hex), and despite the same input they all were different O.o

    .... they do work with the values pokegen gives :), but how are they even calculated in the first place? ex: 1 for max hp -> 9F83, 2 for max hp -> 9F81

    how are THOSE values determined?? How would one translate X where 0<=x<=FFFF(65535 in dec) to the right hex code such that when the hex equivalent of X is put into the code the stat returns X?

  13. this is in the wrong place.

    the spots you're trying to edit are the pokemon(pkm files) in memory:

    00013 022349D4 d h 0 Slot1 PID(W)

    00014 02234AB0 d h 0 Slot2 PID(W)

    00015 02234B8C d h 0 Slot3 PID(W)

    00016 02234C68 d h 0 Slot4 PID(W)

    00017 02234D44 d h 0 Slot5 PID(W)

    00018 02234E20 d h 0 Slot6 PID(W)

    (from my ram watch file)

    the pid is right at the beginning of the pkm. are the numbers you found the current hp/atk/etc or the ivs, or the evs? i'm pretty sure they're unencrypted at that point, so that shouldn;t be a problem.

    I changed the Stat number (under the Stats section, with the manual stat box checked), which cooresponds to the actual stat the pokemon has.

    I was looking into how the pokegen programs generates those values, so I could set HP=386 for example, and know, given a certain PID (and species?) what the X's in 02234A40 XXXXXXXX should be edited to in the code. I used pokegen to make a pokemon in the pc, put it in my party and used

    94000130 FFFB0000

    02234A44 XXXXXXXX

    D2000000 00000000

    which changed the hp stat to what it was from the pokegen code with the exact same pokemon, only the HP stat was set to the value from the pokegen code. (I don't remember what the x's were...)

    I found that:

    02234A40 is changed by hp, but it doesn't really seem to matter as the other one worked on its own....

    02234A44 value is changed by the hp(changes the last 4 digits) and atk(first 4 digits)

    02234A48 value is changed by def(last 4) and speed(first 4)

    02234A4C value is changed by splatk(last 4) and spl def(first 4)

    As the earlier code, using only one line of pokegen code, changes the 02234A44 value which, in this case, changed the HP stat (as I only changed the relavent digits), changing those hex values appropriately would manually set the stats to how I want. (I know the PID as the pokemon being edited are made with pokegen in the first place)

    The problem is, I don't have a good formula for how pokegen gets those values, so I put this thread here to learn how pokegen comes up with those values.

    Edit: techincally the stat values from pokegen only effect the last 3 digits in their range, not all 4 (ie "first four means" xXXXxxxx while "last four" means xxxxxXXX)

  14. I was looking into the manually set stats for a code I'm trying to make,

    (I want to change them based on a formula, and they will only be used where both species and PID (and the capture/met stuff) are constant)

    I found the hex values affected by the values I set, and they seemed to be calculated in an unusual way...

    Thus far, I have found ineligant ways to calculate some of them to edit an individual stat, but it seems like they are calculated with some sort of bitwise operator.... Only I have no idea what exact formula it is...

    So, my question is how the hex values pertaining to the manual editing of stats are calculated?

    If it helps, here are all the values that differed in the pokegen codes between two pokemon where the only difference was what their stats were set to:

    02234A40 XXXXXXXX (has to do with hp somehow, but the next one seemed to work by itself...)

    02234A44 XXXXXXXX (early digits changed by atk. later ones by hp.)

    02234A48 XXXXXXXX (later digits changed by def. early by splAtk?)

    02234A4C XXXXXXXX (early by speed? later by spl def?)

  15. It is clear I should include some specifics, so here they are:

    -The goal of the code is to manually set the stats (like in pokegen) of the first pokemon in the party to specific values, based on formulas similar- but not identical- to the current stat formulas, but using my own base stat. (but, unlike pokegen, I could have change things about the pokemon and it would still work, and work on different variations of the simulated pokemon without requiring multiple codes)

    -Like most AR codes, this code will run when a button is pressed (the whole 94000130 FFFB0000 thing or whatever) so it won't, say, overwrite the stats of a pokemon I don't want it to, yet allow it to be used on any pokemon that I put in the lead spot, and can fix the stats after a battle or level up recalculates them.

    -in calculating the stats, it needs to know nature, level, ev, iv, my defined base stat, the normal stat, and any other values I use (such as a multiplier I will use in calculating attaks to acount for a non-exsistant power boost) (I should be able to get these via pokegen)

    -I don't need the function to be saved in the memory (ie, the code will re-do it everytime), as it will just be multiple one-time uses, and I will probably use the same space multiple times to calculate all 6 stats.

    For the nature, I just realized I could run a neutral nature calc on the stat, then based on whether that number is lower or higher that the actual stat, apply the appropriate multiplier in my formula.

    IDK, I should be able to use the static hooking or something.

    Let me know if there is anything else, and thanks for the help! :smile:

  16. you would need to do it in assembly and write it into the ram using the ar. you would also need to find a place to hook the routine and make sure you don;t wreck any registers.

    e: something like...

    push {r0, r1}

    ldr r0, [a]

    ldr r1,

    add r0, r0, r1

    lsr r0, #0x1

    add r0, r0, #0x7

    ldr r1, [c]

    mul r0, r0, r1

    str r0, [d]

    pop {r0, r1}

    bx lr

    that's really simplistic, though, and doesn't account for the work of finding an open area that won;t be written over, finding a hook spot, etc.

    This is a bit more complicating than I thought, but I think I see what you're saying:

    - Have the bulk of the code be made in assembler (execpt for the first and last lines) and compile based on absolute addresses, and program in the absolute addresses for the variables, the hex to be overwritten, and where the function goes based on the hex values in-game.

    - Have said code compute the formula, and overwrite a hex value with the results.

    - Use somewhere that won't mess anything up or be overwritten to store the function and hook spot.

    I can get all the help I need with the assembler part, but I still have a couple questions:

    Can you give me any help or direct me to a resource to help with finding the right open area and hook spot?

    With regards to natures of pokemon, how specifically are natures factored in the calculation of a stat?

    Ie: Are there mulitpliers stored for each stat that get changed based on the nature, are there values which coorespond to which stat gets the + and - that natures like modest and quiet would share one of as they boost the same stat, are stats calculated from the natures with if statements, etc?

    Where would be a good place to get the hex values for whatever natures use to change stats (if they are not done with if statements), the lvl of a pokemon, ivs, evs, ect? (for the 1st pokemon in the party)Could I use pokegen to get the correct values?

    Thanks!

  17. I know ARs are capable of setting one hex value to another hex value or a predefined constant (like the wild pokemon modifier and such), but can they set a hex value to the result of a formula?

    For example, it would calculate the result of ((A+B/2)+7)*C (where A, B and C are in-game hex values), and set hex value D equal to that number.

    I have not seen any AR codes that do this (or at least they aren't obvious about it) so I have no idea whether it is even possible..... :confused:

    Any help would be appreciated. Thank you!

×
×
  • Create New...