Jump to content

StarsMmd

Innovator
  • Posts

    710
  • Joined

  • Days Won

    3

Posts posted by StarsMmd

  1. Hey, do I enter that code as a Gecko Code or an AR Code? I also looked in Cheat Engine and seen a value after the code was enabled constantly being changed back and forth between several other values and 0x38600000 There was one other spot, but it just stayed the same and changed when I worte to it on CE(with an infinite write code it should've been frozen.)

    Yeah sorry I meant it's a gecko code. I have no idea why the value would keep changing though. Are you sure it's the right address because 0x38600000 is a pretty common value.

    edit: oh maybe you need to put in a master code?

  2. This is the part I am having problems with, as I have no idea how to use it; and I fear doing it the wrong way just to mess it up even more (this is why I am asking here and eg. not just Googling it).

    So the original post has a link to the source code. You need to download that code, compile the code and then run the program with the save file in the same folder and the save file should be named "PbrSaveData" unless you change the source code. If that doesn't make sense to you then you can send me the file and I'll try running it and sending the decrypted file back your way if it all works out.

  3. My program was set to copy the base HP that was randomly generated by the program to the current HP 6 seconds after it fainted (so decent enough time was allowed to have it switch out) Even if I was supposed to knock out the trainer, he sends out another pokemon due to the fact the program generates a random pokemon after HP hits zero for one of the two pokemon. If you know where the address is that shows how many pokemon are in a person's party (the Pokeballs above their pokemon), tell me and I'll see if I can'tell use that) And finally, the addresses will probably be very similar, if not the same.

    I see. The easiest way would probably be to look at the 6 memory addresses for the opponents team and count how many of them have data in them. Is that something you could do?

  4. I'm finished with the randomizer! Although, I do need your help a bit. Pokemon HP values and the HP Stat are two different things (Max HP you can have at that level with current EV/IV and then there's the current value) The game just pulls the health value from what the original pokemon's current HP was going to be and simply places it there. If I just write to the address via the program, a battle will last forever. I need a function that immediately changes current HP to Base HP, but only when the pokemon comes out for the first time in battle. I also need the code to disable the shiny glitch. I can easily just have a person run that code in Dolphin along with my program in the background. I'll make sure to credit you 100% in that department.

    To fix the shiny glitch, set the value at RAM address 0x8014416c to 0x38600000. This will make the game calculate all shininess based on a trainer id of 0 and secret id of 0 regardless of the pokemon's OT. If you'd like to put that in as a gecko code it would be : 0414416c 38600000 . The address is from the emulated RAM in dolphin debug mode but I'm not sure exactly how that translates to cheat engine.

    As for the HP, is that your program keeps writing to the memory address? I'd imagine you could keep track of every time the opponent's pokemon has changed and if it's a new pokemon then write to that address once. When you say the battle lasts forever, why exactly doesn't it end?

  5. Pokemon Arena !

    Yup, it's finally here - The Very First Pokemon Stadium Hack!

    ROM Base : Pokemon Stadium ( US )

    Progress - v1.0

    Aim :

    The ultimate Pokémon battle is about to begin...

    At long last, all of your favorite Pokémon are ready to go head-to-head on the N64! Whether you're battling a friend, a Gym Leader or a tournament contestant, you're about to witness some of the most spectacular battle scenes in history! Select a team from a huge stable of "rental" battlers, or use the included N64 Transfer Pack to upload your own team from Pokémon Red, Blue or Yellow! This stadium is packed and ready to rock!

    Features :

    1) All Trainers have different Pokemon !

    2) Trainer Pokemon have different IV's & EV's

    3) Trainer Pokemon have different Move and Levels

    4) No useless Pokemon or Move will be in the game

    5) Type Changes :

    i) Ghost Types are 2 times stronger than Psychic

    ii) Ice Types are 0.5 times stronger than Fire

    iii) Bug Types are 0.5 times stronger than Poison

    6) Rental Pokemon have different Moveset

    7) Gambler Class don't ( almost ) have lucky moves ( i.e, Metronome & other moves )

    8) All One-Hit KO's are Removed ( almost )

    9) No Evasion Moves or Dragon Rage for all Pokemon

    10) Much Harder Battles

    11) Stronger Opponent Pokemon in the Finals

    Future Thoughts :

    - Hack of Pokemon Stadium 2

    Download Link - http://www.mediafire.com/download/8idcsu6vzbp6iww/Pokemon_Arena.ups

    ( Note : You need to be really "EXPERT" in this game )

    Method to Patch Pokemon Stadium ROM :

    1) Get a copy of Pokemon Stadium ( USA Version Only )

    2) Download NUPS

    3) Click on "Apply an UPS Patch to a file"

    4) Click on "Browse" beside "File to Patch" then Select the Pokemon Stadium N64 Rom

    5) Click on "Browse" beside "UPS Patch" then select "Pokemon Arena.ups" file

    6) Click on "Patch"

    7) Enjoy !

    Acknowledgement :

    - StarsMmd : Again, He gave me the idea of Hacking a Pokemon side series Game, without him this Hack wouldn't have

    existed.....

    If You didn't know I also Created the World's First Pokemon Mystery Dungeon Hack, Check it out here if you are interested - https://projectpokemon.org/forums/showthread.php?49701-Pokemon-Mystery-Dungeon-Sky-Rockers-!'

    If You have any problem or just want to talk with me then my Skype ID is "justinrozario13"

    Bugs :

    - Pick Rental Pokemon by name and not sprite

    - Use "Project 64" Emulator Only !

    Wow, looks like you've been really busy!

  6. I have indeed tried using HxD (and currently I am even trying to dig through a save I've downloaded that has all 493 Pokémon because I am too lazy to get a living Dex myself; I've written down one of the Pokemon's number, its moves' numbers and the item's numbers to make things easier). The other person has mentioned decryption code. Is it something I should worry about using in HxD, or is it more or less the order in which PBR stores data? (Being newbie sucks. :S)

    The biggest part will probably be finding out the order in which Pokémon data is stored - like if moves are all in row (probably?), whether they come before an item, what begins the whole block of Pokémon data--is it the Pokémon's index number or something else? And on HxD side: if I am searching for Sandlash, should I try searching for 01C or 1C? After all, this is Generation IV, so moves, items and Pokémon values are obviously stored as (at least) 2 bytes, considering there's more than 256 of each.

    Dolphin's RAM would suggest that at least moves have the same values as in core series. This is what I am assuming for not only moves, but Pokémon and items during my search. This is the only sane way of proceeding here.

    I'd presume that you have to run the save file through the decryption code to get it in a readable format. Otherwise it will just look like a bunch of random values with no real meaning. You have the right idea though. You'd want to look at the decrypted save data and figure out where everything is.

    E.G. First pokemon is at offset 0x100. First 2 bytes is the species, next byte is the level, next byte is it's nature, etc.

    With that information it's easy to write programs to modify that data.

  7. Sorry I haven't been back on in so long. The program is almost complete (I'll be calling this a beta release because I might add some extra little tidbits in the future. What I meant about the two slots of memory was that in the game, there are spots where temporary data is stored (in the RAM) From what I can see, the game checks the battle said person is in, and fills these temporary data slots using the data pulled from the ROM. My program just intercepts those two slots after data has been filled, and fills its own data so the randomized pokemon appear instead. I have the program generating Level 100 Pokemon and having stats anywhere from Nother good EVS and IVS to perfect stats. The program will most likely be finished by tomorrow. However, I might need your help on two things. If you have the function(in Cheat Engine format) that causes the Shiny Glitch, could you please send it to me and tell me how to implement it so I can solve that problem. Also, I've never made ASM codes, but could probably learn if I were guided in the correct direction. From programming in Lua and Java, ASM has started to make more sense. Registers being spots where data is held (kind of like variables), and cmp and jmp kind of acting like program if..then statements. If you wouldn't mind teaching me a bit, I'd be more than happy to learn.

    I can't wait to try it out when it's done! I've never used cheat engine but I'll look into it and see what I can do. I normally use dolphin debug mode to view the ASM code and then locate that code in the game files and edit them in ROM. I can give you the memory address in Dolphin's RAM and what to change it to if that helps.

    Yeah ASM isn't too bad once you get the general idea. There is a really great tutorial on hacking super smash bros ASM which is really useful. The combination of this and general programming knowledge should be enough and you can ask me if you need any help too :).

  8. For question 1:

    The one's that can be encountered after starting the game via continue: I'll take a look at that. I believe it's just called from game data and loaded into two slots of RAM, but I'll have to check that out. Fortunately enough, if theyou weren't, they'don't have little relevance.

    For question 2:

    Nope. Pokemon generated by this will be entirely random.

    I could possibly have an encountered Shadow Pokemon be recoverable after a battle with it by loading it into a table. So far though, I think I just want it all to be random. Even if they don't catch a shadow pokemon, one will eventually come up with the same shadow pokemon data anyways (although it may be a different pokemon) Didn't want things to be too predictable though ;)

    For question 3:

    Didn't know that glitchy was present in :XD:. I just set the game trainer's TID and SID to zero, along with the Pokemon generated in a battle. The PID of generated pokemon is set to 4294967293(should wield a Pokemon that is Shiny, has a Bashful nature, and has 31 IVS in everything except HP, which is 29) I could have the program check if the Shadow Pokemon value suddenly changed to and have it check if it is indeed the same pokemon. If the value suddenly changes, have it freeze the address until all stat changes are over, then unfreeze it. I haven't implemented that yet though.

    1. Basically the other important ones are mt. battle and colosseums. I think that the mt.battle file is only loaded when you're on mt.battle and the colosseum data only when you're in a colosseum. I think when you say 2 slots, you mean how there are 2 copies of the trainer data? In the game files there are 2 copies of each "deck". For example, in story mode there is deck_story.bin and deck_story_EU.bin. I presume the EU one is loaded in the european versions but they're exactly the same data so their purpose is currently unknown to me. However, I know for sure that it has no effect on the US version and the EU one can be ignored. I'm not sure how you can figure out which one is the useless one in RAM but maybe you could find it by trial and error. I've actually deleted all the data in the EU files and the game still runs just the same.

    2. That's okay then. Oh also, the miror b. shadow dragonite even is triggered once you've caught exactly 82 shadow pokemon and visit gateon port. Randomising the shadow pokemon means it could be triggered early and it could mess with some flags but I'm not really sure what might be affected if anything.

    3. Yeah I set the function to calculate with 0 regardless of the trainers' ids so it stays consistent. I think it won't persist through trades but they probably aren't worth trading anyway. did you set the pid to 0xFFFFFFFD because that makes it shiny? You can actually change a value somewhere in one of the ASM routines so that the game just recalculates the pid until it's shiny, allowing the ability, gender and nature to still be random. I can track that down for you if you'd like.

    Oh and I have a symbol map from dolphin saved with all the functions I've found being named for convenience. Remind me to send that to you some time. How good is your ASM? I know a good tutorial for ASM hacking in dolphin and since it's all in RAM you could do some really cool stuff by playing around with the functions.

  9. Is that actually the first hack for explorers of sky? I thought the mystery dungeon hacking scene was pretty far along. That's really impressive.

    I actually haven't played mystery dungeon since mystery dungeon red though and I'll definitely be going back to that series eventually. I'd love to play this once I've finished the originals though :)

    oh, you can try putting it in your signature to help promote it because I think a lot of people would be interested in it.

  10. Tux doesn't appear on the forums very often and I'm not even sure if he's still working on this or even planning on making a program at all. Looking at the RAM probably won't help since the save data will most likely be in a slightly different format. However, the first post has code for decrypting the save file. You could start by creating some save files with known data, decrypt them and see if you can figure out the data formats like how the pokemon are stored. Tux mentioned where to find them but didn't go as far as figuring out which bytes correspond to which values. If you could figure that out then making a program to edit them would be a trivial process.

  11. *EDIT: I found a better way, I found This .bat that uses the wimgt tool and let's you convert multiple files at once ( when you open the .bat it tells you how to use it) without needing to bother with acommand prompt. It works both from and to .png . This needs a small modification in my program though , the format has to be given as a number, this fix will be included with the inserter.

    That sounds extremely useful. Nice find!
    So now I finally beat the game. Overall I liked it and enjoyed most of this ROMhack, but funny enough I actually preferred your unfinished Colosseum hack compared to this one, and it really has to do with the late game portion. In ways, unless the game is extremely tedious, I like to 100% my games or get as close as possible to doing so. The shadow pokemon, there is a very nice and diverse selection but with them hitting ever increasingly harder, the game puts you in a form of a metaphorical corner with the high levels of the shadow pokemon and the high base power of the shadow pokemons moves. When trying to capture them the first go around, unless you are extremely overleveled or have a good amount of your team as shadow pokemon, they will most likely beat you down before you can even capture them. It doesn't help that towards the end of the game, you are capturing legendary after legendary who have very low capture rates, sometimes even multiple legendaries in one battle which means you need to stock up on healing items, which is hard because there is no quick way of actually obtaining lots of money in a short time frame, even with the usage of the amulet coin. So in the end, with the sheer number of legendaries, it can get pretty tedious. This wasn't such a big deal in your unfinished Colosseum hack because every trainer with a shadow pokemon only had one shadow pokemon max, where after OBNS, most trainers will have two and most bosses will have 3 or 4 shadow pokemon so in a completionists eyes, it can be detrimental to ones enjoyment of the game.

    Overall, something needs to be done about the legendaries, whether it's revamping their shadow movesets, increasing their capture rate or even just lessening the amount of shadow pokemon one needs to capture in future updates or whatever. In the Vanilla, one could easily playthrough the game with whoever pokemon they desired, but in the ROMhack, you're in ways forced to use specific pokemon or roll around with 2-4 shadows in your team due to the massive power creep as the game goes on, at least for people who want to capture all the shadows. My complains don't really apply for the people who just want their team of six and then KO all over shadow pokemon. I still liked the game and still enjoyed it, but unless this ROMhack sees massive changes in later updates, it's a ROMhack I can't see myself replaying in the future, unlike Masoleum in which I plan on going back to within 2 years timeframe. Maybe I was expecting too much from this. I understand this is the only one of it's kind and it's very impressive you were even able to accomplish this as if it wasn't for you, we'd never would have had a ROMhack of the gamecube games in the first place so I applaud you for that.

    But, uh, thank you, anyway for what you did.

    Interestingly enough, most people have said that XG was too easy! The aim was to make it more challenging but how hard it is really depends on your play style. I've watched many playthroughs of XG (and :XD: too) and played through many times myself.

    As you mentioned, probably the best way to play XD/XG is to have 1-2 shadow pokemon in your party since they completely wall opposing shadow pokemon. It's precisely because of how easy they are to wall that they've been made monstrously strong in XG.

    I also saw a stream by PinkOnion where he made light work of the game with prankster sleep powder on jumpluff. Paired with a fakeout user it was unstoppable! Shadow jirachi is also really good for the end game shadows.

    It is possible to go through the game without grinding at all if you use the lucky egg and exp share carefully and don't fill your team too quickly but :XD: has Mt.battle in it just for grinding. The starting levels of Mt.Battle are increased so it's really easy to get back on the level curve if you fall behind. There are also colosseum battles and the duel square.

    Another thing to note is that, as with the original :XD:, a lot of the shadow pokemon have increased catch rates so while a lot of the legendaries might look intimidating because you know their real catch rates, they are actually far easier to catch than you'd think.

    Of course, I know the game inside out by now so I know all the little tricks to the game. I'm not sure I agree on a few points like having no way of making easy money. I also disagree that you have to use specific pokemon. I put a lot of effort in to make each pokemon as useful as possible and I've seen all kinds of pokemon in all kinds of playthroughs. In Jetsplit's playthrough his team was constantly changing throughout.

    I've watched PinkOnion tear through XG 3 times in a row so it's refreshing to see that it does have an increased difficulty after all.

    I'm sorry if it wasn't to your liking but hack tools are coming soon so if you ever do come back to XG feel free to tweak the game to your liking :)

  12. Finally getting started bro, also please make a tutorial for GCBanner 'cuz I'm not getting any also can you link me to your repository for quickBMS scripts ?

    I haven't used gcbanner in a while and I'm not sure if I still have a link to the tutorial I used :XD:. I'll see if I can figure it out though. Please do remind me if I forget though.

    The quickBMS scripts are in the first post, I'll move them to the top so they're more obvious :)

  13. So, around the Internet I seen people requesting for a Randomizer for Pokemon :XD:. One is being researched for Pokemon Colosseum, but I thought I'd do something much more practical. Randomizers work by talking a table of values in the game that define what Pokemon spawn and what trainers have. This Modifies actual ROM Data. So, I thought about taking a RAM Approach. The game's pokemon are stored in 2 areas of memory after the values from said events are called. I can modify temporary memory and easily due that. A flaw to Randomizersee is limited customizability and the fact you have to use the program again and again on the game rom to produce a different outcome. By a RAM approach, I'll be making a difficulty scaler and each Pokemon battle should be pretty random.

    I have a feature right now that allows you to make everything shiny and catch it that way, as well as initiating a final boss fight. Best thing is, it'll be something different every millisecond of the day, as long as you have the program idling in the background. It'll even randomize trainer Shadow Pokemon as well (you can encounter anything as a Shadow!) This will be written in Lua and in a standalone Cheat Engine trainer (I already got some functionality down) that modified the Dolphin Process (this inew no way encourages pirating, as you could simply dump the ROM file of an actual copy) So, give me some feedback. What do you all think?

    That sounds like a really cool idea. I have all the code infrastructure to make an :XD: randomiser the ROM way but it just hasn't been a priority. Your method sounds really cool though. I probably know the most about the data formats in :XD: so let me know if you need any help. ;)

    A few questions though:

    1. The trainer pokemon are divided into several different files. One for the main story mode, one for mt. battle, one for colloseums, one for battle mode and some other less relevant ones. I'm pretty sure they aren't all always in RAM and they are loaded and unloaded as necessary. I can't remember for sure though so I could be mistaken. Have you checked yourself to confirm this and more importantly, if that is indeed the case, would that pose a problem or do you think your program could keep track of this?

    2. Are you going to make sure that the shadow pokemon are on required trainer battles? That's how it is in :XD: normally so that you don't have to hunt down random trainers looking for shadow pokemon. If you fail to snag a shadow pokemon would it be randomised again by the next time you encounter it? Also, there is a value I recently found in the shadow pokemon data which I haven't documented yet that determines whether or not the shadow pokemon goes to miror b. For example, the hexagon brothers don't pass their shadows to miror b. because they are rebattled. Although the game only includes 83 shadow pokemon, the data accommodates up to 128. The rest just don't have any data so you'd have to fill it in with some randomised data but that's easy enough. As I think you noticed from your code generator, things fall apart if you reuse shadow ids so it might be best to make sure you don't exceed the limit.

    3. Does your program factor in the notorious "shiny glitch" in colosseum/xd? In :XD: shadow pokemon were never shiny but I ran some tests in my hack and the shiny glitch is definitely in :XD:. Would your program be able to change the pokemon's pid upon purification to have the same ability, gender and nature but with shininess calculated using the player's trainer id? Or, I think an easier and better way would be to change the function that calculated shininess in RAM. I know exactly where to find the function and all you would have to do is change it so it always uses the player's trainer id instead of the shadow pokemon's OT.

    I can't think of anymore potential problems for now but I will be sure to let you know if there's anything else to look out for. Good luck!

  14. Good work dude. Just watched your video and it looks pretty handy! It's nice to see more and more people hacking :XD::)

    I don't know if you've seen this page but this was so useful to me. Pokemon :XD: gecko codes

    Also, here is a pokemon colosseum/xd save editor -save-editor'>PkmGCSaveEditor by @Tux.

    It edits save files while yours creates gecko codes so they achieve the same thing in different ways. Maybe it could help you get ideas. He's included the source code (in c++) and a guide for making legal pokemon in :XD: which may be useful if you ever want to add an option for creating "legal" pokemon for trading.

  15. So, the extractor part is finished, it extracts any texture in GPT1 sections it can find in an FSYS file (you don't have to decompress it before) and saves them as .tpl files. The filenames are in the format [Name of original file]_[GTP1 section]_[Texture header]_[Texture]_[Format].tpl .

    The filename and format are just for your information, the others will be used to put it back in in the reinserting program I'm writing, meaning that you should probably keep the name when converting.

    Here's the Link.

    Of course, this is all just an option, I don't really see what you'd need to modify move textures for, but if you want you have the option.

    This looks clean :)

    One question though. Which programs are good for editing tpls?

  16. I am currently trying to find the ASM routine that loads in model data to maybe find out how it uses the pointers, I already know where it loads it into memory, it loads the complete file if I'm correct , but I can't get the memory breaks in the debugfast version to work.

    I tried both Dolphin 3 and 4 and neither seems to break when it edits a memory adress at which I set a breakpoint ( yes, I did set it to read/write).

    Do you know of this issue and any way to fix it ?

    *EDIT: I tried getting a texture from a move file and I'm wondering whether this texture is usually this squeezed or I did something wrong :Link ( This is from the megahorn file)

    these battle effect textures all seem to be somewhat squeezed, ithink I'm doing something wrong but I don't know what.

    *EDIT: Nevermind, I solved the second one This looks a lot better

    I don't have any clue where that routine could be located, sorry :(. I've never been able to get memory break points to work either. I tried compiling it myself and downloading a precompiled .exe. Maybe dolphin 5?

    Pretty cool that you go textures from the moves!

  17. I still have the Report though, showing Carvanha as "Snag Failed."

    For one thing, the Realgam Tower seems to have some strange bug in the room that causes the screen (at least on the emulator) to go widescreen, as in the screen just shortens in height for some undisclosed reason. It's when I go down the steps and walk around. Cause menus or boxes to pop up, and boom it's okay again for that brief moment. Even while going through, say, your Pokemon screen.

    Best I can do is that I think the game was tricked into thinking she was in a single battle and you were in a double battle, since it shifts back to single if that side has no more Pokemon to send out (the mon jumps to the middle of their field).

    There's also a weird bug in that no matter who else I target for something like Clefairy's Heal Pulse, it never affected anyone but itself. Target the enemy? Clefairy regained health. Guessing that's lumped in there with all the "engine is incapable of replicating" stuff.

    ...and literally just now, while grinding my mons a little, a Forretress used Thunder Wave on my Volt Absorbing Jolteon and somehow got through to paralyze it. That's like...literally-just-happened territory. :P

    And also off the top of my head, Wobbuffet should not be allowed to use Protect! :P

    That's pretty much it though on my petty niggles. I hate sounding negative when I still like it, but y'know...constructive. :)

    1. If the report says that carvanha had it's snag failed and not that sneasel was failed then that probably means it worked fine. If you reach the point where miror b. starts appearing then it will probably show up :)

    2. I haven't experienced that bug myself but it could be to do with the settings you're using in the emulator? I probably wouldn't be able to do anything about that though. If you try loading up your save in vanilla :XD: you could see if it happens in that as well or if it's particular to XG.

    3. Yeah I've seen that bug many times. It's a very situational one though. If one of the shadow pokemon uses a move like shadow burst or shadow smash twice so it's had 2 rounds of stat drops, the AI opts to switch that pokemon out. However, if you snag that pokemon on the turn it was supposed to switch out and the trainer had 3 pokemon at that point then they won't send out the third. This is because the game had already selected the 3rd pokemon to switch in on that shadow pokemon's turn. So when you snag the pokemon the AI doesn't think there are any available pokemon to switch in and since the shadow pokemon was snagged it never gets a turn for the pokemon to be switched in. As a result the pokemon is unable to switch in on that turn and must wait for the other pokemon to be defeated for the next switch-in cue.

    It's a bug in the game's original programming but since that situation never came up in the original (trainers never switched out shadow pokemon) they probably never even considered it. I haven't done anything about it because it's so situational and not game breaking but since I've been hearing it's happened to a lot of people now so maybe I'll change some things around.

    4. Yes, you are correct on that. Heal pulse didn't work as I thought it would in the gen III engine. I've taken it out of later versions as a result.

    5. I just checked on bulbapedia and it turns out that volt absorb only activated on damaging moves in gen III. Status moves only activated it as of gen IV.

    6. Thank you, that will be removed in the next version :)

    Hey Stars. I'm almost at Citadark isle and while watching Jetplit's playthrough I think he mentioned something about giving end game shadow pokemon moves that are more effective against other shadow pokemon. Idk how much this could potentially break the game, but I support this notion! I think it would be more fun if you could do end game and not be able to just wall everything with high level shadows. Admittedly, if this was done it would basically mean you MUST grind to be able to keep up.

    Keep up the great work! <3

    I think I was actually in that stream. I remember responding to that comment but I'll repeat it here. In the recent versions, there is a new shadow move called "shadow bully" which is a shadow equivalent of seismic toss. Since the damage is set to the user's level it does consistent damage, even to other shadow pokemon. I think it works quite well actually although I don't know for sure if the AI is good enough to choose it against other shadow pokemon.

    It still doesn't do that much damage though so I don't know if it's enough. I was considering making shadow moves neutral on shadow pokemon if I could find the code responsible. Or if I found the code for sonic boom's 20 damage, I could up the value to something like 100 and use that on a shadow move.

  18. O_O

    ...you watched my stream...he watched my stream...I...this is...holy crap...I am not worthy...

    Yeah, after losing to Blaine like twice while playing 0.9.1 and realizing you updated a LOT, I started the whole file over again on a newly-patched 0.9.7.

    Thank you very much for watching me, in all seriousness. If I can just contemplate without ever looking AT the data, I'm guessing that the trigger for losing the chance to catch the Pokemon isn't directly linked to the Pokemon itself. Meaning that...like...say I caught a Zigzagoon, it'd trigger all the stuff following including saving my catch and going through the routine of party or PC. The thing is, I think it's some sort of if/then/else kind of thing. If "Pokemon" is caught, then "Pokemon" goes through basic catching protocols after battle. Else, run another protocol involving this placeholder. What I'm trying to get across is, it's not grabbing data correctly and there's some piece in there that still thinks it's a Sneasel. Then again, I'm not the coder; I tried taking C and C++ and scraped through both with....well a C. Insert rimshot here I guess.

    Honestly I'm surprised you were able to do what you did considering switching around battle animation protocols and such. I think someone up above mentioned a thing about certain animations being pause-heavy. First thing to come to mind is my Houndoom's Nasty Plot taking a moment to camera-target himself before boosting.

    Hell, I'd love to suggest certain things to slip into 0.9.8 if possible. Like No Guard (though with this setup you'd just have to give Machamp all-new moves with 100% accuracy and that's not genuine...plus that'd take forever), or Lightningrod being a clone of Flash Fire, or maybe some reacharound that changes Light Ball to boost physical attack as well as special attack.

    Either way...seriously, thank you for keeping up with my streams. Due to personal events, I'm probably not gonna be streaming till the end of the month. Like literally the 31st. But I really do appreciate the attention. And I will gladly play through the whole game again if I have to for this patch to work. It's been a trip.

    You make me blush. :)

    Yeah it's hard to say for sure what the cause could have been. I'll have to see if I can reproduce the bug because I haven't heard of it happening to anyone else. I've played through the game a few times myself and haven't had that happen either. You wouldn't happen to still have the footage would you?

    Yeah nasty plot uses the animation for mean look which has one animation for the pokemon using the move and then another animation for the pokemon being targeted. Since Houndoom is both the user and the target when using nasty plot it gets 2 animations in a row which is why it looks a little funny. This is also the case with moves like roost (feather dance animation) and anything which has an animation which is supposed to target another pokemon. I think drain punch animates twice because it has no draining animation.

    Yeah I considered no guard but it should also make the opponent's move's 100% accurate against the ability holder too so it would be another one of those compromise situations. Also, each of the new abilities is currently replacing an old one and I've already taken out all the feasible ones. I was hoping to change lightningrod so it at least grants immunity to electric moves. The easiest way would be to find the code which checks if a pokemon is a ground type and add a little extra to also check it's ability. However, once again it's a question of figuring out where to put the extra code. Light ball I don't have a clue right now but maybe one day!

    Good luck with everything though and I'll hope to catch your streams when you return to them!

  19. I'm really glad you like it. As I'm sure you can tell I'm a big fan of the game and it was a dream come true for me. I'm really glad I got to share the project with everyone and it's always great to see that I'm not alone!

    Interestingly enough, I actually caught one of your streams a while back although I don't think you could see the chat so I couldn't say hi. ?

    I really have no idea why the first glitch would have happened. As far as my tests have gone that's never happened and nobody else has reported that particular issue so far. Maybe since you lost the battle something went funny. I really wasn't sure how the game would handle additional shadow Pokemon and it really depends on how flexible the original programmers made it. So i crossed my fingers and hoped it worked. It seems to have worked perfectly so far so I'll have to look into it. One question: did you play 0.9.7 on a completely new save file

    As for the other game mechanics as you can tell the game engine just isn't flexible enough. A lot of the programming is very specific so I had to get creative at times or compromise at others. I've actually become pretty comfortable with the assembly programming used in the game and I'm piecing together all the different functions. Over time I will know enough to start making more technical changes. For example, I know exactly where the game makes thunder 100% accurate in rain. I'd like to do the same for hurricane but the only setback is that I can't simply insert the extra code in the middle without breaking the game. So once I figure out how I can put it in (and I have a decent idea) I can do it. I'm always finding little things like that so things will slowly improve over time.

×
×
  • Create New...