Jump to content

GenuineCorruption

Member
  • Posts

    17
  • Joined

  • Last visited

Everything posted by GenuineCorruption

  1. You have to tell DeSmuMe what size the save file is. select the option: *auto (from imported save data size). It should accept it then. They're 512KB files, so you can try selecting that option as well.
  2. Hello. I got a chance last night to read through what you linked me to. It refers only to diamond, pearl and platinum. Will that still work in Black and White? I'm assuming that the offsets mentioned in the code are the offsets where the checksums are stored at? Later tonight I'll be attempting to convert that code and try to figure it out. Thanks again.
  3. That's awsome. I'd like to ask you one quick thing though. Can you give me any pointers that'd help me recalculate save file checksums? I've almost succeeded in editing that scene data, I know you're not familiar with that information however PokeGen is able to fix the checksum after I've edited the data (though it seems I have to edit something in PokeGen before it will react to my saving). Nothing against your program as it's amazing, but I'd like to be able to make event edits with a single program. Can you please give me some information on how to locate the checksum within a save file and what the scheme is for recalculating it? This is an area I'm not familiar with. Thanks.
  4. Hello, and thank you. It's great that you have taken this seriously. I look forward to this release.
  5. Hello. The PokeGen strategy did work, sort of. After editing the byte I can open the save in PokeGen, and tell it to consider it to be from Black and White as it won't inicially recognize it with the byte changed. I'm pretty sure you actually have to edit something before saving it will do anything as it didn't work for me until I did that. Is there any information available on how the checksums work? If possible I'd like to be able to code something to calculate it myself rather than having to rely on an external program. Thanks.
  6. No interest in buying that type of equipment. The only music player I own is a turntable (vinyl record player), because vinyl which is kept in good condition sounds far better than anything else unless you store your music as uncompressed PCM wave which eats up way too much disk space. I wouldn't use such a device for anything else so I can't justify the cost. Furthermore, the phones that are accessible (they read what's on the screen aloud) are the more expensive ones. Besides, my ultimate goal in all of this is to reset all of the key storyline events. Anyway, anyone care to take a look at this? 0x20212 is an important byte with regards to that scene, but I can't reset it. As I suspected it goes from 0 to 3, 0 being you haven't done any of it's events, one means you fought the grunt and got the bike, 2 means you've done the event inside the contest building and 3 means you've also seen the scene with bianca and her father. From there, there is a backup of that same byte at 24000 (relative to the first one). Changing one results in the game reverting to the other. Changing both results in the game deleting the entire save. I managed to hack it in ram, but it didn't entirely work (I got an abrieviated version of some of the scenes) and other portions of the event didn't reset. Anyone have any ideas as to why it won't allow that to be reverted to it's default value? Thanks.
  7. Hello. I definitely agree that to develop a system to reset an entire storyline would be close to impossible with all of the random trainers and collectable item balls. However I think it'd be pretty cool to be able to reset key plot events (important event battles, the event which gives you your starter, even gym leaders would be a start which PokeSav for D/P/PT could edit). I'm pretty determined to reset this bianca/dad/elesa scene for my own reasons (love the music, I want to reset it so I can hear it while on the go as my DS travels wherever I do). I've definitely used tools such as game cheater before, which have you look up a value in a game and type it into the program to seek out a variable through a process of elimination. Such a tool would make it easy to find data such as money, number of X item in bag etc, but their downfall comes when trying to seek out boolean (switch) values. One time a few years back I built a custome script which just had one command to set a switch value to on and then back to off, and Game Cheater could never find it. I'm actually puzzled as to why my method didn't work. Even more puzzling is the fact that the game changes over an entire KB of data within your save file if you simply load it and then save your game, however blacklisting bytes which changed regardless of actions got me down to 86 bytes but none of them reset it. I did figure out a few things about the saves last night which should help, but lead me to a question. The distance between any given byte within the save and it's counterpart in the backup section is 147456 bytes, 147456 divided by 1024 = a perfectly even 144 KB. So finding a value in a hex editor and then navigating to offset 0x24000 (relative to current offset, not from start of file) leads to an identical byte in the other half of the save. So if the main save data is 144 KB long, and the backup is the same, that only accounts for 288 KB out of 512. To me, this suggests 112 KB of extra data at one end of the save and the same at the other. During my tests of before/after saves, results were never found before the 112 KB mark. Likewise, results never populated beyond the 400 KB mark. This makes me wonder what all this data is (unless the save isn't really 512 KB worth of data and so it contains 112 KB of filler at either end? I plan on testing this further with one save at start of game and one with the game completed to see if I'm correct in that the leading and trailing 112 KB don't change.
  8. Hello. I'm attempting to edit an aspect of a black and white save which neither PokeGen nor PokeSav doesn't edit. Since I'm far more familiar with programming than I am with hex editing I designed a small tool to take care of my data analysis for me. After saving a "before" save, performing actions in game which would cause this particular data to change and then saving an "after" save, I tried comparing them only to find that over 1500 bytes had changed. Then I tried opening the before save, walking around and acting in ways which would not change this information, then saving as an after save. Still just as many results. So, I put all results on a "do not show" list, a feature which I had to add to my custome application. Since PokeGen developer Codr informed me that mistery gift data is re-encrypted each time you save, I figured that loading and saving enough times would let me get all mistery gift related bytes blacklisted so my program would no longer display them as mismatched bytes. I kept doing this until virtually nothing came up, and then I completed the event and saved before and after. Result was 86 changed bytes. Not so bad, so I tried resetting all mismatched bytes which weren't on my ignore list to their values as seen in the before file. Loading the after save back into the game, the Nimbasa city Bianca and father scene (Dad tells bianca she needs to come home, Leader Elesa chimes in, Dad finally changes his mind as beautifully sad music plays) should have played upon entering and leaving the musical hall, but it didn't. In fact, none of the related scenes came back on, which were all in uncompleted states on the before save. Once that method didn't work, I scrapped the ignore list entirely and started searching for obvious looking event / state values which had changed (a byte in the before that was 0 which changed to 1 in after, 1 to 0, etc). I also have possible proof that the byte responsible for whether these cutscenes should play might also be responsible for whether or not you'll fight a Team Plasma grunt to save the daycare owner and receive the bike. This comes from the fact that using PokeSav to set your x/y/z position to be past the south entrance of town, then leaving via route 5 doesn't result in you being stopped by Bianca to visit the musical hall (since a legit player couldn't possibly get into town without fighting this guy). Once this fight is won, only then does bianca stop you and you go through all those scenes if you try to leave Nimbasa through it's west gatehouse. With this said, I think this byte has one state for none of it completed, one for battle but not musical event, one for battle, musical event but not father scene (which you have to manually exit the musical hall to trigger), and one for all four events. So I searched for 0 which became 1, 2 or 3, 3 that became 2, 1 or 0, 2 which became 1 or 0 and 1 which became 2 or 3. Several bytes were found but none gave the desired results when reset. Some even corrupted the main part of the save and caused a revert to backup. There must be a simple explanation for why I can't pull this off and why so very many bytes change. Can anyone provide a little insite? Thanks in advance, Jordan. Edit: I guess some cutscenes could be stored in a bitfield, which could make them harder to find. Some general info regarding how cutscene flags are stored in this game would be a big help, if anyone can provide such information. Thanks.
  9. Hello. I have been trying non-stop since we last spoke to reset that event flag I mentioned before with no success. I was just wondering if you could give me a general idea of what event flags in these games tipically look like and how they change. My first effort was to make two saves with neither one having the event completed, do unimportant stuff like walk around and have my custome-made program put all changed bytes on a "do not show" list until finally there were very few bytes showing up. Then I did the event, compared the before and after saves and had all changed bytes that were not on the list reset. That didn't work. Then I tried looking for any obvious flag values which had changed between the before and after. I searched for 0 that became 1, 1 that became 0, 0 that became 3 (because I think it's responsible for earlier events as well like the plasma fight for the bike) and 3 that became 0. Though I've found a few of these types of bytes, changing them results in either no noticeable difference or a corrupted save which reverts to backup on load. Can you please tell me what these types of flags usually look like in black and white? Thanks.
  10. Hello. One other question I have is this: what are the two combo boxes which contain numbers 0 through 15? When Jaws tries to read the lables which correspond to those boxes, it says Pokerus. Do these boxes actually have something to do with that? To me, I'd have thought a pokerus option box would have three options (unexposed, infected and cured). Is this some advanced feature to edit pokerus status or something else?
  11. Hello and thank you. As promiced I've sent in a donation of $50. I have downloaded and experimented with the new product. One suggestion I have, which would again make it hugely easier to use, would be to code those controls to also respond to the applications key when they have focus. This eliminates several steps which are involved in interacting with the controls, and insures that every screen reader will be able to use them. Still this is a huge improvement, thank you so much again for doing this!
  12. I vote other, and by that I mean record editing. At least in 5th gen, as 4th gen is becoming obsolete anyway and Pokesav handled editing badges etc very well in those games only. I'd love to be able to give myself / take away my badges in 5th gen, as well as edit some other key events throughout the main game.
  13. Thank you. I just got up and am excited to try this out. Out of cureosity, will the major release you spoke of support editing records (badges and completion of other in-game events)?
  14. Wow, this is amazing! At least I can still use pokesav to play regular black and white for the next week or so, as I'm not really interested in playing a game that doesn't yet have an english release out anyway. Thank you so much for taking this matter seriously. There are billion dollar software companies who couldn't care less about accessibility. Forgive me, but while I have your attention, may I ask you one last thing? With developer tools and hex editor in hand, I am determined to find some way to modify a black and white save so to reset the father and doughter scene (the one where Bianca meets dad in Nymbasa, he tells her she can't travel with pokemon, Elesa chimes in and he finally changes his mind). I know very little about hex editing, but I wrote a small tool to open the two saves (one with that scene unscene, one with it completed) and tested it byte for byte to see how much had changed. My results were puzzling; over 1000 bytes were changed! How! Why! So my next test (in progress) is to simply open the save before completion of the cutscene, wait a moment and save the game with a different .sav file name, round up all those bytes and place them on a "do not show" list in my program. My hopes are that ruling out bytes which obviously have nothing to do with whether or not the father and doughter scene has occurred, through process of elimination, will lead me to a reasonable number of bytes to experiment with until I finally do reset it's status. Do you *kinda* know where it is in the save, and why I'm coming up with over 1000 changed bytes when the only thing that should change when nothing's done is your play-time? Once I manage to rule out all the junk and find the byte (s) responsible for that scene, I can write myself a tool to reset it on any save (but I want it reset on my mane game). You're probably wondering why this matters to me, so I'll share a little: I love the music there. Though I can go online and listen to it at home, I want it on the go and the DS is perfect for that. I don't buy an IPod as it's the only thing I'd use it for, and so it's worth it to me to fight with these tools until I finally do reset that scene. Can anyone point me in the right direction? Thanks.
  15. Hello. Yes, screen readers do prefer it when an object can receive focus. I`m not sure if Jaws would be able to recognize invisible window text or not, but it is worth a try. Many years ago I wrote a small program with 4 buttons and showed it to a visual friend. I told him to click one of the four buttons and he told me there was only one. I was confused because I knew I could use tab to navigate from button to button, and there were definitely four of them, each with its own working function. He looked at my source code and told me that my controls were stacked like plates, and so only the final control was visible. The code behind them was correct, but there position made three of the four invisible and Jaws could see and use them. Invisible window text may or may not be recognized, I can't say for sure. It'd be perfect if it works. I tried simulated right-clicks on every possible location where Jaws would let me place my mouse pointer in the PokeGen window, however none of them produced context menus. Jaws is skipping over them. If you can make something work you'll save me hundreds of dollars, because my only other option if I ever want to be successful in B2W2 would be to design my own accessible editor. All though that might be a fun and stimulating project, it would involve hiring people to continuously read information to me from the game so I could match my program's output to the actual game's output. This would quickly become more costly than I could manage. Thanks again, Jordan.
  16. Hello Codr, and thank you so much for the prompt reply. It's nice to see you are receptive to this, there are far too many software devs out there who have no interest at all in this kind of thing. You are correct in that the demo of Jaws is limited to 40 minute sessions, at which time you must restart your pc to continue for another 40 minutes. You can download a free alternitive, NVDA (non visual desktop access) if you are interested in researching accessibility. To me, there are a large number of possible solutions. As a person with some experience in software development myself I believe I have a pretty good idea of which ones would be easier and which ones would be more difficult to implement. The first, and most favorable option would be a dropdown box. I can easily access the dropdown box which displays boxes 1 through 24, the number of pokemon in the box and how many are selected. If you added a "party" option to that box, and then included an additional dropdown box which simply listed Pokemon 1, pokemon 2, pokemon 3 etc, this would allow for perfect accessibility. Jaws, and most if not all other screen readers, provide keyboard functions which simulate mouse clicks, you do not have to change the interaction method. For example, my first trip to the items window confused me for a moment. I selected an option (for example, potion 15) and pressed enter on it (often substitutes a mouse click in list boxes and combo boxes). That didn't work, so I then simulated a click on the item name which allowed me to edit it. Simulating a click on the count allowed me to edit the count as well. This is not really an issue as we're used to this practice. I attempted to simulate a click on the options to display party pokemon, however Jaws has no idea of their even existance due to their nature. One other thing I haven't tried is to simulate clicks on every spot which Jaws reports as being a blank space or a numbered graphic as it's possible for this to give results. I can understand that this method of implementing accessibility could be difficult as it would involve changing the interface, however there are other viable alternitives. Another option might be an addition to the file or tools menu, possibly called "load pokemon from save file" or a similar name. This option could bring up a simple dialogue with four controls: a combo box with options Party, and boxes 1 through 24, a subsequent box listing slots 1 through 6 if party is selected or 1 through 30 if a box has been selected, an okay and a cancel button. I would think that this would be an easier option to implement as it doesn't require modifications to the main interface, and to most end users it is tucked away where it won't bug anyone. A third possibility is keyboard shortcuts. For example, holding alt and pressing 1 through 6 might populate data from party slots 1 through 6 respectively, while perhaps control 1 through 0 (where 0 is 10) populates data from slots 1 through 10 in the currently selected box, control alt 1 through 0 might populate slots 11 through 20 and insert 1 through 0 might populate 20 through 30 respectively. I would suspect this to be the most difficult method. Again, I've coded before (in fact I am on my way to college for software development), and I know that creating a lot of keyboard commands is time consuming. My educated guess would be that options 1 or 2 would be easiest to implement (with a preference towards 2 as it requires no changes to the main window), if you are willing to do so. I can say for sure that though the blind trainer population is a small group, TheOnlyPKMnmaster and I are not the only ones, in fact I know two others personally and several others through the internet. A skilled visually impaired player has no disadvantage against a normal seeing person in a competitive battle (though as I've only been playing since gen 4 I haven't learned to recognize all cries and moves as some of my friends have). On behalf of blind trainers the world over, could you please work with us to solve this problem? Please ask if you require any further information. I would be happy to test anything you may come up with. As this software is a lifeline for us I am offerring a $50 donation as a token of my appreciation for your cooperation. Thanks again, Jordan.
  17. Hello. I understand that at first glance this thread may not seem serious, though please hear me out. My name is Jordan, and in spite of complete blindness from birth I've been playing Pokemon since generation four. The wall bumping sounds, grid-based navigation system and unique cries for every pokemon make it a popular choice for us visually impaired as it is a complex series of games which is reasonably easy to play. To read text on my computer, I use a program called Jaws (job access with speech) for windows. It recognizes printed text and converts it to voice using text to speech technology. In D/P/PT / B / W I used pokesav to perform such tasks as viewing locations of items in my bag, discovering the levels of my pokemon and insuring that my pokemon hold the correct items. I have started experimenting with PokeGen so I'll be able to play Black and White 2 which Pokesav won't support. I am pleased to say that for the most part, PokeGen works well for me. I can open a .pkm file and edit it's data no problem. I can access the tools > items menu and edit my bag no problem. Pokegen's one and only real accessibility problem shows itself when I attempt to populate the tabs with data regarding my party pokemon. Jaws cannot detect anything regarding party slots and loading pokemon from said slots. I can assume that the control which performs this function is purely graphical, which would explain why Jaws can't see it as it cannot recognize immages where no standard text is available. If you need more information, I can provide a detailed list of everything Jaws is able to detect within PokeGen. Can you please explain how this task is intended to be performed so I can do some more research? I will also be attempting to populate the tabs with information about box pokemon, though I believe this presents challenges as well. If a simple menu, button or dropdown box was available to perform this task, PokeGen would be entirely accessible to the visually impaired as editing PKM files, items and pokedex is accessible. As Action Replay is difficult to use, I prefer to use NDS adapter plus to transfer my saves to my PC, edit them and then use the adapter to transfer them back to the cart. Any advice would be greatly appreciated. I will definitely be providing as large a donation as I can afford if these issues can be resolved. Thanks, Jordan.
×
×
  • Create New...