Jump to content

liaF cipE

Member
  • Posts

    25
  • Joined

  • Last visited

Reputation

10 Good

About liaF cipE

  • Birthday 06/27/1994
  1. What is the probability curve for the randomness in damage calculation? I found that it multiplies damage by a value between .85 and 1 and that it is "random", but is it an even distribution or is it more of a bell curve?
  2. ......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.
  3. 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.
  4. I am trying this in-game, (and not saving when it doesn't work ). 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: 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?
  5. 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: raw hex output from converter and codes: manual hex code that worked: 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: 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)
  6. 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.
  7. 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.
  8. Alright looks good, the hex addresses were what I hoped, so I can actually make the code now. Thanks!
  9. looks great! but, what does 'offset' mean.... E: nvm, it looks like it does not really matter unless I do that offset adder thingy
  10. 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?
  11. 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:
  12. 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)
  13. 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
  14. 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: Don’t know: 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…)
  15. wow, I just realized how stupid this is. If it is any bitwise function, it is probably xor so there are no overlappings (like AND with a 0 in the constant input) Plus xor looks like it works anyway!
×
×
  • Create New...