Jump to content

Bond697

Former Staff
  • Posts

    1358
  • Joined

  • Last visited

Everything posted by Bond697

  1. you MUST use blz both ways. you can leave it uncompressed, but you have to change the overlay table to account for it. you also can't add anything without repointing basically the entire table. every address in the overlay must be accessible from where it originally was or you need to go through looking for every branch to or load from an affected area and fix them.
  2. i have a good idea for natures that i will implement next week. it's something that kazo can even add into bwte to make for adjustable natures. it'll be the first user-implementable hack for gen 5.
  3. oh, i'm not sure actually. kazo may have thought that nature was editable. it's 100% definitely not, though: RAM_ARM9:02030EC8 loc_2030EC8 ; CODE XREF: setTrainerPkmStats+62j RAM_ARM9:02030EC8 ; setTrainerPkmStats+66j RAM_ARM9:02030EC8 28 1C MOVS R0, R5 ; pPkm RAM_ARM9:02030ECA 00 21 MOVS R1, #0 ; field RAM_ARM9:02030ECC 00 22 MOVS R2, #0 ; data RAM_ARM9:02030ECE EB F7 29 FF BL getPkmStat ; pid RAM_ARM9:02030ED2 00 12 ASRS R0, R0, #8 RAM_ARM9:02030ED4 19 21 MOVS R1, #0x19 ; denom RAM_ARM9:02030ED6 5C F0 D8 EB BLX divmodSigned ; make nature RAM_ARM9:02030EDA 09 06 LSLS R1, R1, #0x18 RAM_ARM9:02030EDC 28 1C MOVS R0, R5 RAM_ARM9:02030EDE 09 0E LSRS R1, R1, #0x18 RAM_ARM9:02030EE0 EC F7 94 FB BL setNatureResetStats ; set nature see where it says "getPkmStat"? the field argument before it is 0, which is the pid. so it gets the pid, does a bit of math, and does %0x19(note the "divmod" right afterward) which is 25 in decimal.
  4. yeah, for trainer pokes the pid is random and then they do pid % 25 to get the nature(like in gen 3/4). trainer ai will eventually be editable. that said, it's pretty huge for 1 person to figure out so it'll be awhile for that one. there's quite a few commands aside from the main logic. i might eventually take a stab at making the trainers smarter at some point in the future. the best you can do at the moment is copy from other trainers of the same type. (1 for a normal path trainer, 7 for event trainer, 87 for friendly doubles, etc)
  5. the pids(and thus, natures) are randomly generated. i don't think you were understanding me. you don't need to "mod" any move. when the game is creating the trainer's pokes from the provided data, if any of them have frustration their happiness is set to 0 automatically. otherwise it's 255. just give the poke you want to have frustration/return the move you want and the rest is taken care of. also, are you using an old version of the tool? it's not "unknown" anymore. he finished the tool after i posted that. you should download the latest ones. that unknown is actually "strength". take the value and multiply by 31 then divide by 255 and you get the iv number to use for all 6 ivs. i think they did that to make it more difficult to modify. they could easily have made it a 0-31 value, but instead added some very needless complexity. ex. unkown is set to 255: 255 * 31 / 255 = 31 so you can see why it's kind of a waste. i found the thread this was from on smogon. all of that is just based on observation without actually knowing how any of it works or looking at any of the code behind the decisions. i'd wager it's wrong just as often as it is right, or worse.
  6. also, since we're talking about it, at the end of every turn the game does damage calcs for every move it has to see what the best move would be the next turn. if it didn't use frustration/return when it could have that's because it thought it found a "better" move given its other moves and options after the damage calc.
  7. http://projectpokemon.org/forums/showthread.php?24589-B2W2-General-ROM-Info&p=161021&viewfull=1#post161021 yeah, it's accounted for and works fine.
  8. what's the secret id code? i've never heard of any such thing as there's no reason to make a code like that that would leave any kind of permanent mark. if there is such a code, whoever made it did a terrible job and really seriously did something they shouldn't have. the iv checker replaces calls to parse the pkm file for stats with calls for the ivs. it's actually really simple stuff and isn't overwriting anything that would impact the game, so no it won't affect anything. no "viewer" codes like that should affect the game in any way aside from maybe overwriting your money which you can just fix with the ar. the only way you could permanently affect your game would be to overwrite some data that is saved to your save game. all the code is loaded fresh from the rom every time from the arm7/9 and overlays so nothing can be permanently broken.
  9. Bond697

    -

    go ahead.
  10. "then finally legitly imported into a White 2 Rom." what are you using to import?
  11. Bond697

    -

    it's actually really easy to do. starting at 0x2638 in the save, highlight 136(0x88 in hex) bytes and copy them out of your hex editor and into a new file in the hex editor and save it as a pkm file. you can open and view the files in pokegen and view their catch/met date.(that one will be a quilava) note the pattern at the beginning of the pkm: 4 bytes, 2 zero-ed bytes, and 2 bytes again. you can go down from there copying 0x88 bytes at a time and making pkm files out of it. just ignore the 0x1C bytes between pkms. see the picture: the highlight is the first pkm. the red boxes are the second and so forth. e: here: http://hack.thundaga.com/box_pkms.7z i wrote a dumper for the files instead because there are so many. here's the source for anyone interested: http://pastebin.com/TYHMkHtR
  12. just to illustrate what i'm talking about, this an average script command from the main script system: http://pastebin.com/xTCkfREx now this is an average command from the move command script system: http://pastebin.com/ghirndHT that makes the problem pretty obvious. all of those "scriptRead32" calls are for arguments. and that number of arguments is pretty average.
  13. all of those check for types as part of the move. as for the move effects, pretty much all of that stuff is possible. we would need a serious understanding of all the commands and all their arguments to pull it off though. the problem is what i was saying above. the commands are extremely complex- some have their own large subsystems, some commands actually start new script environments that run new commands, and they all have tons of arguments that are really hard to figure out/follow through the code.
  14. yeah, i know. i prefer it laid out with the instructions on top of eachother.
  15. i was bored so i made a code to view frames on your ds: 0200574C F958F3FA 123FFA00 00004904 123FFA02 0000680A 123FFA04 00003201 123FFA06 00004B05 123FFA08 0000600A 123FFA0A 0000601A 123FFA0C 00004802 123FFA0E 00006944 123FFA10 00004770 123FFA12 000046C0 023FFA14 023FFA20 023FFA18 0209DA98 023FFA1C 02226724 D2000000 00000000 the code: it overwrites your cash, but that doesn't matter since you're using an ards anyway. the code for viewing the seed on the trainer card is already made and with a little work you can use that to set the seed. also, the code starts counting from the beginning, so you will have to add your starting frame in if you use it. that's really easy though.
  16. there's no reason to yet. it's literally a picking the right option in a dropdown box.
  17. 520191F8 42112001 120191FC 0000D100 94000130 FFFA0000 120191FC 000046C0 D2000000 00000000 hold A + select as you enter an area it re-enables all the events in the area. you might have to fight hugh again. just don't pick up any tms a second time.
  18. use the event reenabler code.
  19. Anything of yours that was deleted was done so because it was off topic, posting the same thing multiple times, or making ridiculous requests. If a requested code wasn't made then either no one thought it was worth making, it was made somewhere else already so no one bothered, or it was inappropriate(this being an example of inappropriate: click). No one owes you their time to make anything. You should know better after that last ridiculous thread.
  20. if you want something really interesting to play around with, some of the move script stuff seems to play with some code that's actually situated in vram. gamefreak actually has code hidden in vram starting at 0x6898020.
  21. i was talking to codr about it and he last built pokegen with visual studio 2010 for 3.1.10. i'm using visual studio 2012 with the winXP setting on and i'd imagine that vs2012 builds using.. something that an older cpu like that can't support. i spent a bit of time looking and i didn't see anything in it about older cpus or different instruction sets that looked like they might fix the problem.
  22. i didn't realize this was being discussed. i spent a few minutes looking into it awhile back. probably in november, i think. it's another scripting environment essentially equivalent to the one used for the main script system, just cut down in size. instead of a 256-word stack, it's 16. instead of 64 global variables, there are 8. there are quite a few less commands, though the commands themselves are even more complex than in the main system and some use a LOT of arguments(i count more than a dozen command arguments in one of the commands). the secondary narc is loaded as part of one of the commands and some math is done to jump into a decided-upon file in that narc. afterward, the environment jumps back to where it was. there's a lot of fixed point math and vector-specific math, so it looks like the commands operate more directly and are more hardcoded than the main environment. quite a few of the commands have their own subsystems, their own memory blocks/filename allocations, and most of them are built on 10 or more script arguments. while the commands in the main script system are used together and strewn into long, complex scripts, these are used sparingly and are long and extremely complex on their own. fyi: the first value is actually the number of scripts in the file. after that, the header is really pretty obvious.
  23. i'm not supporting something that old. that's almost definitely the problem. Athlon XP 1500+ 1333 MHz 256 KB 266 MT/s 10x 1.75 V 60.0 W October 9, 2001 AX1500DMT3C the error code isn't just for SSE stuff, it's for any unsupported instruction. there's a slight chance there's ram problems causing unsupported instructions(especially if the ram is also 12 years old), but it's most likely the incredibly old age of your cpu.
  24. i need a little bit of your computer's configuration. cpu type, memory amount. just the basics.
  25. then post the dump file. it's impossible to even guess what could be happening otherwise.
×
×
  • Create New...