Jump to content
Grovyle91

Pokémon Mystery Gift Editor (v1.4.3) (now with B/W support!)

Recommended Posts

Thanks!

Haha, yeah... I have 3 years BSc and 2 years MSc (provided I can make it in time and I decide to do MSc :P).

Anyway, I found the source, and as I assumed, the code is a mess. I don't know if you know some programming terms, but in that time I was like "inheritance, what is that?", "unit testing?! wtf are you talking about?", "documentation? meh..." and so on. And I think Microsoft deprecated a feature in .NET 4.0 I used in WPF (the one that's supposed to make some texts glow with a white color so it's easier to read against the dark green background).

I don't know what issues there are at the moment, but I think I haven't fixed the Gen IV save files problems in the newest version (and probably other problems as well). And now I definitely don't remember where the problem lies anymore.

So... I'm thinking of making a new project and importing the original code while refactoring it, which would probably solve a lot of bugs (but may introduce some new ones as well). I saw that I still have some very old files which the newest versions don't use anymore (yay for primitive version control...).

I would like to know if the Gen IV parts are working as intended (apart from the saving problem). Clearly the Gen V parts are not, since the research was still in its early stages in that time. But I don't know what the latest R&Ds are. And I need to refresh my knowledge about this subject again before adding new features.

And I think I'm going to strip out some features. E.g. the context menu registering feature was nice, but was anyone actually using it? It required an install, but I think more people like having this program portable. This means I can focus on more important features.

And as for other developers, I'd love to 'recruit' them :). Because as I said, I'm thinking of releasing the source on GitHub, so others can do pull requests and such. Also, an issue tracker is a must...

The one thing I definitely need help with later on (or others working on) is the AR part. I don't get it why it's that popular. Maybe it's me not using it, or the country I live in where it's not that popular, or maybe it's something else entirely.

Right... I'll try to get a working base from my old source code. When I'm done, I'll try releasing it on GitHub and see how it goes. Which may take some time though. In the meantime, I'll try to keep you up to date. And if there are some devs out there willing to contribute, please don't hesitate to reply or PM me! I'm more willing to continue the development if there are some other devs as well. But please do note, I've decided to stay with C# and WPF for the moment. The GUI is just too awesome, plus, I hope I can use it as a base instead of redesigning it, which will save me some time.

So, thanks again for your reply. And I feel I need to thank all of the people here who helped maintaining this thread and helping others while I was away. I haven't read all the posts, nor will I because most of them are outdated, but it definitely gives me the feeling this subject of Pokémon is not dead yet (I'm actually surprised the forum is still active, although not as active as it was back in 2010/2011 I think). So yeah, thanks all!

Share this post


Link to post
Share on other sites

It's nice to see an old face around here again.

While it's been a while, it's too bad you weren't around a little longer. There are some major flaws with the program for BW support because of newer Wonder Cards especially. There's also one minor bug with G4 that isn't really much of a major problem. Hopefully they can be fixed one day. While PokeGen added this feature a year ago, there were still some flaws that I've encountered that matched problems that were in the "Wonder Card Map" on the Wiki at one point some time ago (IVs). I've stopped using this program and that one, I've been resorting to other programs just to be safe when saving Wonder Cards.

Main Program:

Tabs:

Sometimes the program won't open the Card loaded in the tab, and you will have to re-close the tab and reload the Wonder Card.

Generation 4:

Wonder Card image transparency:

Not accurate with the way the games have the transparency with the background image of Wonder Cards.

Generation 5:

Card type / Zero-out prompt:

It would be nice if this was more in-depth with information based on newer Wonder Cards. There have been a lot of changes with these since the last update for this program. And this caused a major flaw down the road with zeroing out values. You can definitely get rid of this, since they use all different values for this address now. I also think that the Card information if it's a Pokemon type should always be displayed. And some of the new addresses for things like Shiny checks should be added in the program.

Mixed up IVs:

Certain IVs are mixed up I believe, I forget which specific ones. Again, the wiki information wasn't right, and PokeGen had this problem too in it's infancy with which ones were really set for a certain amount too. These things happen though with mix ups and it's completely understandable. I've only seen it when saving a Card based on an Event when a specific IV was set for 31.

Saving Cards with set IVs:

Several people, including myself at one point had this issue. Sometimes when the program saves the Card. It doesn't save the way the IVs were set when originally loaded into the program. I'm not sure when this instance occurs, but it can happen.

This is about it unless someone else has found anymore problems. I would definitely try to make it in such a way where you can save the card without modifying the data for the Card. People have enjoyed this program in the past, and I really think some people want to use a program that only does Wonder Card injection and exportation.

I'm sure you can think of other features for the program. Wonder Card images would be nice for G5. Cards are different these days though, and have preset text for Cards. Instead, made-up text is displayed when you acquire a Wonder Card now. So maybe something can be done with that and different sprite data when acquiring a Card. Other than B2W2 support, this is the only thing I can think of for a new feature.

Share this post


Link to post
Share on other sites

It's good to see that this program has a future. Pokegen added minimal Wonder Card support, but to be honest it looks like it was thrown together just to say that Wonder Card support was added (just felt like attaching a screenshot).

I hope you get the source code up soon. With other developers, it could become even better.

PokegenVsPMGE..zip

PokegenVsPMGE..zip

Share this post


Link to post
Share on other sites
but to be honest it looks like it was thrown together just to say that Wonder Card support was added

Funny how you didn't have that comment in the past.

It was thrown together with the idea that editing cards is completely pointless except for idiots. So if you think PokeGen is missing something......... hmm.

Share this post


Link to post
Share on other sites
Funny how you didn't have that comment in the past.

It was thrown together with the idea that editing cards is completely pointless except for idiots. So if you think PokeGen is missing something......... hmm.

Grovyle91's looks way more polished, mainly because you're just using a text box, but also because his displays like it would in-game. Users like that in an editor. One of the reasons users love Pokegen for storage and Pokemon editing.

Pokegen would be more impressive if it featured wondercard editing, making it more of a complete editor. Users like a complete editor. That sense of control and convenience. It's what made Pokesav for Diamond and Pearl. I'm sure you can make Pokegen a complete editor sure if you have time (but who has time anymore, am I right?)

Share this post


Link to post
Share on other sites

That's your opinion, it's your choice to implement it or not. But please do not say it's "pointless except for idiots", because it makes me an idiot then... And I'm definitely not, thank you very much.

The main reason why I created this program, is that there wasn't a good wondercard importer/exporter yet. There was Pokesav, which mainly corrupted the files when a character wasn't supported. There was a command line importer/exporter, which many people don't like. There was... nothing else really.

I'm not going to argue with you about the editing feature. However, I have to agree with evandixon regarding Pokegen's GUI. It does look like it's been "thrown in together inside a textbox just to support mystery gifts". From what I've seen of main GUI, it could've been better. Even if you don't want to support card editing, at least sort some things out. Don't format everything to one string and put it in a textbox. It easy to code it, but it negatively influences the usability for the users. Tell me, if you look at e.g. YouTube's search interface, imagine it does not provide thumbnails, styling, etc. whatsoever and it's one block text containing your search results, would you like it that way? I don't. When everything is divided into a recognizable layout, you can go directly to what you're interested in and skip the rest. People want to use the software as fast and efficient as possible these days. Which clearly does not apply when everything is one block text, because you have to read everything in order to find what you're looking for.

Now I cannot say PMGE is a good example, because it isn't. It does have everything divided into smaller parts, but the interface is way too advanced for most users. In order to simplify it, you need to design it in a way that it's (mostly) recognizable for the users or leave things out, otherwise it might lead to poor design.

Anyway, that's just the impression of fellow developer. I know designing a good GUI can be hard (sometimes nearly impossible even), that's why we have a course dedicated to it. The main problem is that developers are designing graphical interfaces in their point of view, not the user's point of view. It may make sense to you, but it might not to someone else who has to use it.

Edit: Thanks Nigoli for your bug reports, I'll take those into account later. Currently I'm trying to refactor everything only while maintaining all current important features. So when I release it on GitHub for the first time, new features won't be added yet (like Gen V stuff). Then I'll slowly make progress fixing and/or implementing them.

Edited by Grovyle91

Share this post


Link to post
Share on other sites
That's your opinion

Ok, please, enlighten me as to what editing a card provides to someone. (Excluding the very rare case where someone is trying to modify a distribution cartridge, because, you know, there are so many people doing this.)

As for the stuff regarding the UI, I have no interest in discussing any of this. My comment before wasn't about whether or not it looks good or bad. It was about the fact that it could be done the way it is because editing isn't necessary or useful, except to people who don't know what they're doing. (You know, idiots.) Also, PokeGen's design should make it pretty obvious that I was never catering to the masses that're so stupid that they don't even understand how Windows works after using it for years. They deserve to have a hard time.

Share this post


Link to post
Share on other sites
Ok, please, enlighten me as to what editing a card provides to someone. (Excluding the very rare case where someone is trying to modify a distribution cartridge, because, you know, there are so many people doing this.)

As for the stuff regarding the UI, I have no interest in discussing any of this. My comment before wasn't about whether or not it looks good or bad. It was about the fact that it could be done the way it is because editing isn't necessary or useful, except to people who don't know what they're doing. (You know, idiots.) Also, PokeGen's design should make it pretty obvious that I was never catering to the masses that're so stupid that they don't even understand how Windows works after using it for years. They deserve to have a hard time.

Alright. Calm down. Let's not pollute Grovyle91's thread with negative thoughts. (I'm not going to let this conversation continue this way much longer.)

The better question is: why not? Sometimes it is cool to create your own wondercard to give to friends, just because you can.

Share this post


Link to post
Share on other sites
enlighten me as to what editing a card provides to someone. (Excluding the very rare case where someone is trying to modify a distribution cartridge, because, you know, there are so many people doing this.
Certainly helped me get pictures I needed faster for Event / Gallery stuff when I didn't have the actual data, and it's the only instance where I'd do something like that. Bugs that had to be corrected or not. I don't have to fumble around with a Hex Editor this way for screenshot purposes. I agree with you in a sense, not many people are doing this sort of thing, and it probably has prevented any "modified" Cards from happening 2012 when the feature was implemented onward. evandixon had a point, since DP Pokesav we've had this kind of feature. And it's a real shame that people try to modify actual WCs like that. I was thinking maybe have a lock feature via checkbox on PGME, just as another precaution for people not to blindly edit something. But I'm sure certain kinds of people will want to do this for the wrong reason. Especially if they'd share it outside of what they're doing privately.

But one example I can think of is correcting the dates on a Wonder Card. If the date is a blank one or one before the Event on a Generation 5 Card, it will be acquired on the card date for the Pokemon. Hence not being legal, and an extra step to "modify" Pokemon data.

My previous post still stands with what I think. People have enjoyed this program in the past, and I really think some people want to use a program that only does Wonder Card injection and exportation and having nothing else modified on a save. Nothing personal.

I'll take those into account later. Currently I'm trying to refactor everything only while maintaining all current important features. So when I release it on GitHub for the first time, new features won't be added yet (like Gen V stuff). Then I'll slowly make progress fixing and/or implementing them.
Let me know, I might not be a programmer. But I definitely can bug test more further, especially for future revisions.

Share this post


Link to post
Share on other sites
Ok, please, enlighten me as to what editing a card provides to someone. (Excluding the very rare case where someone is trying to modify a distribution cartridge, because, you know, there are so many people doing this.)

Oh now you mention it, distribution cards, I have used them in the past. It was for a friend of mine who didn't have the ability to edit saves, but still wanted some events.

But as I already said, I won't argue with you about this feature. Why I added this feature? It helps learning something about a subject. In my case, hex editing saves and programming in C#/WPF. It nice when you have a goal, instead of doing something without one.

As for the stuff regarding the UI, I have no interest in discussing any of this. My comment before wasn't about whether or not it looks good or bad. It was about the fact that it could be done the way it is because editing isn't necessary or useful, except to people who don't know what they're doing. (You know, idiots.) Also, PokeGen's design should make it pretty obvious that I was never catering to the masses that're so stupid that they don't even understand how Windows works after using it for years. They deserve to have a hard time.

I just tried to express my first impressions about Pokegen in a neutral way; explaining why people can have the feeling it's been thrown in together. If you don't appreciate constructive criticism, the error is not on my part. However, if it wasn't clear for you I tried to be neutral, I failed and therefore I'm sorry. Let's close this matter and move on. I didn't come back just to argue about something.

Certainly helped me get pictures I needed faster for Event / Gallery stuff when I didn't have the actual data, and it's the only instance where I'd do something like that. Bugs that had to be corrected or not. I don't have to fumble around with a Hex Editor this way for screenshot purposes. I agree with you in a sense, not many people are doing this sort of thing, and it probably has prevented any "modified" Cards from happening 2012 when the feature was implemented onward. evandixon had a point, since DP Pokesav we've had this kind of feature. And it's a real shame that people try to modify actual WCs like that. I was thinking maybe have a lock feature via checkbox on PGME, just as another precaution for people not to blindly edit something. But I'm sure certain kinds of people will want to do this for the wrong reason. Especially if they'd share it outside of what they're doing privately.

But one example I can think of is correcting the dates on a Wonder Card. If the date is a blank one or one before the Event on a Generation 5 Card, it will be acquired on the card date for the Pokemon. Hence not being legal, and an extra step to "modify" Pokemon data.

My previous post still stands with what I think. People have enjoyed this program in the past, and I really think some people want to use a program that only does Wonder Card injection and exportation and having nothing else modified on a save. Nothing personal.

It did help to quickly check if cards were legal or not. And hiding or locking the advanced stuff in order to prevent it from being edited accidentally, that's a good point as well. Then again, I based it mostly on Pokesav's design, which isn't that great or straightforward. But I'll change that.

Let me know, I might not be a programmer. But I definitely can bug test more further, especially for future revisions.

Aww... I was hoping to find one :P are you a designer then? I need a new icon and I'm bad at drawing stuff (be it on paper or digitally)...

Anyway, thanks again for your post. It's nice to know that you can help testing later :)

Btw... I want to remake my GTS querier program for releasing it to the public as well. It's not a custom GTS server (too many exist already), but mainly a checker/querier for the official server. This way you're able to tell if a Pokémon on the GTS is legal or not. But I'm not too sure if this will cause a massive start of GTS hacks (if not already). Because the transmission is not encrypted, everyone can make a application that's pretending to be the game. This way, you can practically tell the server to post/retrieve/trade/etc... Then again, the protocol is lying around somewhere until someone picks it up and do stuff with it.

It depends how much time I have and if there are people that will actually use it.

The GTS itself is still being used. I just tried it again, and I got a result from last week. You can also see that this Charizard here has been cheated in through Action Replay codes... Something you can't see in-game until you trade it. Which is a shame really...

Share this post


Link to post
Share on other sites
Are you a designer then? I need a new icon and I'm bad at drawing stuff (be it on paper or digitally)...

I can help you with that if you still need a designer, since I'm pretty good at drawing! If you want my help PM me! :D

PS: I support PMGE and I'd be really glad to see another update! :) BTW, the 5th gen. Pokemon should have their English names in the next update.

Share this post


Link to post
Share on other sites
I can help you with that if you still need a designer, since I'm pretty good at drawing! If you want my help PM me! :D

I sent you a PM.

PS: I support PMGE and I'd be really glad to see another update! :) BTW, the 5th gen. Pokemon should have their English names in the next update.

Haha, yes. The names will definitely be updated (I saw someone has posted something about Scyther being misspelled as Scyter too..., so I'll fix that as well).

I also think it's about time I give you a heads-up. I haven't been able to work on PMGE for the last couple of weeks. But I've made some progress before it that I haven't shared yet.

I'm currently busy redesigning the interface and optimizing the internal code (read: almost rewriting from scratch).

I'd like to know your thoughts about the new user interface: here and here.

As you can see in the first image, the whole interface is different. Now, it only has text, text and text. Most text is clickable though, this way you can edit it. You should notice it in the image as well: when you hover a editable item, it blinks (fade animation), though you cannot see my mouse pointer, it's there I assure you.

The second image shows the text editor for the description of a card.

The reason I changed it to this, is that 1) users won't be flooded with editable items and 2) the interface looks way cleaner now. But now I'm stuck with the Pokémon/item/etc. exporter/importer/editor for the PCDs. Since this a variable part of the card, I cannot simply create one editor for it. So I need to find a solution for this.

Please keep in mind that this is only done for the PCD files currently, since I already had a working code base for reading those. If more people like this interface, I'll extend it to other files later. If not, I'll change it before extending it, but I'd like to know what I need to change.

So, let me hear your thoughts!

Share this post


Link to post
Share on other sites

Not to steer the thread away from the subject at hand, but Grovyle91 - what do you design your apps with again? C#, right?

I'm in a position where I really need to develop a GUI, but I'm using a mix of C and C++, and GUIs are a pain in the neck.

Share this post


Link to post
Share on other sites

Yes, I'm using C# and WPF. One of its benefits is having a nice GUI editor (although WPF XAML isn't easy either).

I've no experience making one in C or C++. I do know about Qt (but haven't worked with it), maybe you can try that (if you haven't already) if you want to keep cross platform capability. Making a GUI in C++ from scratch can be hard, especially if you want it to be cross perform (using various native OS libraries and such).

If you don't care about cross platform, you can also try importing your library from C/C++ into VB.NET/C#. But you need to write a wrapper around your library if it's unmanaged.

Verstuurd van mijn GT-I8160 met Tapatalk

Edited by Grovyle91
Making clear I haven't used Qt myself

Share this post


Link to post
Share on other sites

Yeah, I'm gonna have to do the wrapper thing I think, because my library uses the open source sqlite library, which is C code (cannot be compiled in CLI applications).

I'm caring less and less about cross-platform, although only for GUI purposes; I'd like the core functionality to be platform-agnostic.

Share this post


Link to post
Share on other sites

Ah... yeah, that's difficult.

Although you said you want the core to be platform-agnostic, there's also a possibility to use NuGet within .NET (like Maven in Java). A quick search lead me to this package or this one. Though I can understand if you don't want to switch :), it's just another possibility.

Currently I'm using NuGet in order to import the Extended WPF Toolkit. I recommend it if you ever want to develop a GUI in WPF. But it will take some time in order to get used to it. WinForms is way easier to understand, but has a more limited capability of modifying controls and such.

Share this post


Link to post
Share on other sites

amazing program!! i'm trying to use it for my Pokemon Black and i have 4 wonder cards already, i figured it would be as easy as setting the mystery gift to not used to get it again, however the only one i tried (mighty mewtwo) keeps coming with 2 ribbons, the Premier ribbon which it's supposed to have and the souvenir ribbon which it's not. is there a way to fix this?

really sorry if this has been answered, i couldn't find it and thanks for all your work and help!!

Share this post


Link to post
Share on other sites

Hmm... that's weird indeed. As I'm looking at the editor right now, the values are a bit... outdated and/or invalid... please keep in mind that the last version was released ages ago. I'm still working on a new version.

Anyway, I do not know how the second ribbon gets added. Given the hex data 20 00 at 0x0C - 0x0D, it should only have the Premiere Ribbon (the ribbon data that PMGE gives is not correct, so ignore that).

Did it have that ribbon the first time you got it?

Share this post


Link to post
Share on other sites

it only had the premier ribbon originally, I ended up using pokegen and using new wonder cards because I couldn't get the right ribbons, it would either give me only one wrong one or the premier ribbon plus another random one depending on what numbers i messed with

Share this post


Link to post
Share on other sites

Ah... oh well... glad to see that it worked for you via one way or another.

I'm sure that it'll be fixed when I get the chance to work on (re)writing the B(2)/W(2) support.

As a side note: I think I'm almost satisfied with the new code base. Which means I'll release it on GitHub soon.

Though this does not mean I've a new build ready, it only means I'll start accepting contributions to the source code.

Share this post


Link to post
Share on other sites
Hello,can you update it with Black 2 and White 2 support??? :)

Grovyle91 said he plans on it, but this kind of thing takes time and effort to do. So in the mean time, wait until a magnificent program is updated (well, re-written).

Share this post


Link to post
Share on other sites

Oh, I didn't notice that Grovyle91 was back! So happy! I still use PMGE for BW1 events and to edit BW2 .PGFs (I set the Hometown to B2/W2 so they can be considered legal if I insert them in BW1).

I also made a little guide for an Italian site years ago, I think some of the downloads of v1.4b3 and v1.4.2/.3 are my "fault" :P

It would be awesome if you can unlock the redistribution feature for B/W/B2/W2 Mystery Gifts and if you can add something that prevents the event Pokémon to be caught on a "fateful encounter", so (I think) we can create Wondercards of legit Dream World Pokémon.

Also a bug report: if you set the Hometown to Black, the Pokémon will be considered as caught in White and vice versa.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...