-
Posts
1135 -
Joined
-
Last visited
-
Days Won
6
Content Type
Profiles
Pokédex
Portal
Technical Documentation
Pages
Tutorials
Forums
Events
Downloads
Gallery
Blogs
Posts posted by codemonkey85
-
-
There is absolutely nothing to be upset about with Bank.
Unless he's just upset that hacks might make it in through Bank.
-
Again, I sincerely appreciate the input. I'll look everything over after work tonight, although if you're planning to continue looking further I might wait until you're satisfied before attempting to merge any changes (development has been on a bit of a hiatus lately anyway).
Also, I'm not totally opposed to the idea of using Qt's SQLite implementation, now that I think of it, if it helps with performance and / or makes it easier to coordinate the backend data with the UI.
-
Wow, a contributor! I very much appreciate your advice. To be honest I used VB.Net for a long time before working on this project, so it is true that I am not used to having to manage memory. I actually have tried to figure out how to free memory, but everything I tried didn't seem to work very well. With that said, it is very exciting to have somebody with Qt experience looking at my source! I will review these patches and make the merges later.
Also, I did know that Qt had its own implementation for SQLite but I've chosen to use the library from SQLite.org so that other people that utilize my library don't necessarily need to use Qt.
-
I'm just saying I can take my copy of X, which I've been playing on my Fire Emblem 3DS, and insert it into my launch 3DS, and resume my game. Likewise, I can take my copy of Y, which I've been playing on my launch 3DS, insert it into my Fire Emblem 3DS, and resume my game.
So you've actually done this?
-
Just so we're all clear, there is no way anybody could possibly ever know the difference between a Pokémon that was created by Pokégen and one that was made by the game - as long as it's done right.
There will be Pokégen Pokémon in the Gen VI ecosystem. This is a fact.
-
Well that wouldn't make it impossible - just really super hard. There have to be developers with debug kits, which means those kits will end up in the hands of enterprising hackers eventually, which is one avenue of exploration. Technically we'll have some control data to look for once we can transfer from Gen V (PIDs and such) so there's that too.
-
But either way, my point is that the code for encrypting / decrypting save files is probably not part of the ROM, whether eShop or cartridge, but rather part of the 3DS firmware itself.
-
Correct me if I'm wrong, but I don't think the decryption is part of the ROM but rather a 3DS system function.
-
As one of the researchers (who doesn't work on Pokegen though...), I would be glad if you posted these save files. As Guested pointed out, they could help with research.
-
So theoretically, you can, on the condition you have a device such as the 'R4i Save Dongle' to inject the said save file into the official game cart. Without that, I don't think it's possible.
Maybe you could also use an AR code?
-
I think some of you might take some interest in the forthcoming update:
There is obviously still a lot of work to be done, but the underlying mechanics have been pretty much worked out - once I build the interface it should be pretty easy to use. You'll be able to choose which columns to display, filter and sort results, etc. Woo!
-
Some minor additions:
- Hidden Power
- Pokerus
- Images for TMs/HMs and other previously missing items
- Box "grid" colors
Also, you can now click one of the box grids to select a box. Plus, when you change a box, the list focuses on the one you switched to, and frames it. Yay?
Oh, plus... some degree of Mac OS compatibility:
- Hidden Power
-
As I said to Lego (via PM), if you think the colors are cool now - just wait until they make it into release. I spent about 20 minutes with my emulator, Snipping Tool, and MS Paint and got the real hex codes for the actual colors used in the game.
-
-
You're gonna want to start here:
NDS: How to Backup/Restore your retail cartridge save file for DS games
-
You said this program was exactly what you were looking for. Have you ever edited a .SAV file before? Are you using a retail cart?
-
Come and get it folks - PKMDS Desktop is now ready for use! Currently editing of Pokémon and changing the current box are the only real features. Importing, exporting, and removing Pokémon is next, probably closely followed by moving Pokémon around in the boxes and party.
NOTE: After thorough (and needlessly arduous) testing with the retail games, I can say that this application is correctly writing data to the save files and updating the checksums as necessary. However, feel free to inform me of any bugs encountered.
Also, you'll notice Ribbons are not yet implemented, there are no contest stats (does anyone care?), and the Misc. tab only contains a read-only PID for now. This application is still in-progress, mind you.
Get it while it's hot - https://www.dropbox.com/s/gt5rgv80rj72ajq/PKMDS%20Desktop%20-%20Qt.zip
-
All righty folks, I finished the origins page. So now I guess most of the basic editing you'd expect is present. Next on my list of goals is importing / exporting / deleting Pokémon, and then moving the Pokémon around in the boxes and party.
I've updated the .exe and the .zip files.
-
I've attached an excel file of which sorted TM and HMs by type, based on the information from bulbapedia, hope it helps
(Kindly rename the .txt to .xlsx)
Very kind of you! But I actually have all that info in the SQLite database I'm using; I just haven't written the queries yet.
Also of potential interest to folks: I uploaded a (semi) working build for Linux (specifically Ubuntu, if that matters?): https://www.dropbox.com/sh/knfycny5t8nh2ih/aTo-8YG8oQ
-
FYI, here are the update links:
The exe file: https://www.dropbox.com/s/94fsbpzhlb1jfcc/PKMDS_QT.exe
An update to the database file: https://www.dropbox.com/s/lilo409wcj2ad1j/veekun-pokedex.sqlite
An update to the image database: https://www.dropbox.com/s/rtp7g052ise4lnv/images.sqlite
But if you don't post the binaries, what if new users only download the .exe file?I'll simply have a link to both the zip and the .exe, and explain that they should start with the zip and download the .exe going forward. Actually, I'd really like to figure out how to get the app to update itself, but one step at a time. :-)
- Therian forme sprites and types not showing
- Kyurem alternate formes types not showing, edit screen formes sprites not displaying
- Blanked out items (which to my understanding are leftover placeholders: 113 - 115, 120 - 133, 426 - 427)
- Items not showing sprites (TMs and HMs at 328 - 425, Data Cards at 505 - 531, TMs at 618 - 620, Key items at 626 - 637)
- In addition to key items, only one Xtransceiver, one Gene Splicer and one Dropped item is shown, when there should be two each.
Xtransceiver @ 621 & 626, Gene Splicer @ 628 & 629, Dropped Item @ 636 & 637
(I'm assuming that only one name is showing, because your list reference is by text.
perhaps you'll like to go by selected_index instead? this way you can have duplicate item names)
- Reveal Glass @ 638 is missing, without placeholder in list.
- Dream ball is not in "ball used" list
(I didn't realize this earlier as the only Pokemon which had Dream ball was Brycenman; I've noticed when I scrolled through the list)
- Fixed.
- Fixed.
-
I'll have to look for these. Not sure if they're missing from the code, the database, the images, or some combination. EDIT: I see what you mean. I'll have to see if Qt supports data bindings like Visual Studio, so I can use the database value instead of the selected index (which is what I currently use) so I don't have to pull in these "blank item slots" to keep everything lined up.
- The TMs and HMs I'll actually have to do "manually" (a couple database calls to get the type of the move in the given machine and then the image for that type), but I haven't gotten around to it yet. The others I'll look into. EDIT: Pretty sure I took care of the key items with a database update.
- That's... odd. I'll check it out. It might be stored that way (incorrectly perhaps) in the database.
-
I'll look for that. EDIT: Fixed with a database update.
- Fixed.
- Therian forme sprites and types not showing
-
I already wrote the code to show the PID as either decimal or hex. :-P The real trick is going to be figuring out how to allow the user to enter only valid data.
I've updated the .zip in my Dropbox. Thanks to a program called 'upx' the binaries are considerably smaller, so I would suggest downloading it once more, then in the future I will post only the updated .exe file (and the databases if I ever update those).
-
Just so you know, I fixed a good portion of the issues you brought to my attention. Thanks again for the input!
Hahah if only Gen 5 has Spiky-Eared Pichu. -sigh- Nintendo, why you take them away!I won't pretend I care all that much about SE Pichu, but I will admit it doesn't make a lot of sense to have just dropped it. What game are you playing, Nintendo?
Perhaps below Species name? I mean, after all, forme is linked to species. It can disappear when the species has no alternate forme.(also, when changing species, the forme bit needs to change to the correct bit)
That's not a bad idea. I'll have to squeeze it in somehow.
I was thinking for simplicity sake, you can start of with a manual PID insertion,and when you time frees up, then you proceed with PID generation?
Actually, the problem isn't so much generation (which I haven't even started thinking about yet), but the value of a PID takes up four bytes, which is just beyond what the number picker can handle. I'm going to have to either subclass it and use uint32 for the value instead of double, or I'm going to have to use a text box and figure out how to restrict entry to numbers.
All in all, it's a beautiful programWell thank you!
-
EDIT: Added bugs to the bug tracker on Github. https://github.com/codemonkey85/PKMDS-G5/issues?labels=bug&page=1&state=open
Wow. You are thorough. I don't mind telling you, I think your input (and that save file) is going to be a tremendous help. Just remember though, this is a very rough application in progress.
Let's see....
Findings (these might be glitches on my end):1. Unown ? did not load (showed Unown A, type became blank)
2. Arceus of other types did not load (Arecus sprites had no change, type blanked)
3. Ability "Teravolt" is missing
4. Genesect other formes did not load
5. Shiny Keldeo Normal Forme did not load
6. Pichu with "extra forme" sprite did not load.
[Example Keldeo in Resolute forme, then one switches to Pichu.
Technically this pichu cannot exist in gameplay (forme bit will need to be corrected at this change).
Aesthetic wise, all other Pokemon image loaded, but Pichu's sprite turned up blank]
- I will look into that.
- I'm pretty sure I already knew I didn't implement that, but now that you have me thinking of it I might as well get it in there now.
- Very odd, I'll check it out.
- See my response to Arceus.
- I'll look at that.
- I was just going to ignore this but I suppose it wouldn't be that hard to implement a fix for Spiky-Ear Pichu. At the very least I could simply show the normal sprite.
Possible functionality errors or not implemented:1. "Origins" are blank
2. Lack of Identifier/tab/selection for "N's Pokemon" or Pokemon with "Pokestar Shine"
3. Ribbons page is blank
4. unable to create/shift Pokemon
5. boxes on the right scroller are empty (I'm not sure if you had anything in mind for that....)
6. Lack of Forme change tab
7. Unable to change PID
- This was my next task, and as a matter of fact I'd already finished it in the VC++ sister project.
- N's Pokémon will go in origins, Pokestar might be totally ignored like the contest stats. Is it really important? I suppose I could add it.
- Ribbons are likely the last thing I'll do, because they will be a nightmare. I have all the assets, just have to do the work.
- Moving Pokémon around in the boxes / party is a top priority, but I have to figure out how to do it in Qt (I'm going to do drag and drop of course). Creating Pokémon is a mite trickier... people might forget the little details, so I am thinking of a way to help make it easier. Or I guess I could just let the user do it the hard way.
- Oh, I have something in mind for that all right.
- Not sure where I want to put this yet.
- Unfortunately this is harder than it should be (because of how big the PID actually is). Gonna have to make a custom control in Qt, I think.
Extra Test: Box 4 Slot 30On my Save file, I've already had a "Brycen-man" in my PC.
Interesting, your program picked up and showed me all the information,
except for:
1. Species and ID
2. Ball used
3. Type
4. Ability
5. Sprite (both in Box and in Edit Menu)
6. Level and experience
Haha, wow. I didn't expect something like that to show up in a SAV file.
I was thinking, do you intend to Null over this kind of data (so that people can't change it, akin to Pokegen), or support it?Well I can't pretend it's not there, can I? What if you have one of these in a box, but it's invisible... what happens if you fill the box with other Pokémon? Do I now erase Brycen-Man? But I also have no intention of supporting such things, especially since they're not a part of the backend database I'm using. I'll have to give this some thought... maybe for cases like this I'll just show a ? and let the user do what they like with that.
- I will look into that.
-
I believe I figured out the problem - a couple of the required DLLs had to be in a subfolder. That seems to have done it for my work computer anyway.
If you would download the new zip and try one more time, I would really appreciate it. :-D
PKMDS Code Library
in Saves - Tools
Posted
Just FYI, I removed the SQLite database files from the Git repository to reduce the amount of bandwidth used when initializing a new environment. The databases can be downloaded from https://www.dropbox.com/sh/2etuv926vyey5ou/jeAXk1qDXc. Of course, they haven't changed since I moved them, so you could just copy them to a local directory yourself.
Actually, now that I'm thinking about it, I'll add the folder path I was using before to the .gitignore so that current local branches won't break after syncing the change.