Jump to content
ajxpk

[GEN 3] Mystery Event/Gift Research

Recommended Posts

I think it's not even necessary, since I found a "Go to" command to the text yesterday.

So it's very likely that the Event can be activated by a simple flag similar like in Emerald! :biggrin:

I'm just a bit too busy in the moment and since I lack of good tools for reading scripts it takes a bit time for me, it would be good if someone else could check the address I posted yesterday.

I'm very curious to see what the full script says before "05". Here is the Offset for the English Ruby Version (I guess it was 1.2) 0x1DF854. I dunno when I can get back to research but when I can I will continue my work on it, promised! And before we start to make custom scripts I think it's better to look if there is an easier way, so why taking the text if there's maybe a way to activate the already programed script?

I have check the offset you found... This is the largest chunk of code i could extract. Doesn't seem relevant though:

'---------------
#org 0x1DF843
call 0x3000F28
checksound
loadpointer 0x0 0x70780003
checkitem 0xB500 0x1C02
goto 0x81C5049

'---------------
#org 0x1C5049
virtualloadpointer 0xF0BEBB

Share this post


Link to post
Share on other sites

Thanks.

This is weird, seems to have not much to do with the "go to" I found... well, I will research later if I can find more...

Edit:

I finally was able to check things out myself. Damn, looks like a deadend... sorry guys.

And I already searched if something leads to 0x1DF843 but well... it doesn't looks good.

O.K. since it looks like we have to puzzle everything together and the "DAD: [player], the KEY ITEMS POCKET in your BAG is full..."-string isn't there anyway, how about just using this string?

'---------------
#org 0x1A0CE2
= Too bad!\nThe BAG is full...

Edited by ajxpkm

Share this post


Link to post
Share on other sites

I think that is better instead of trying to puzzle everything together, just to modify the existing e-reader script and add the translations.

Does anyone know if we need to inject anything else in the sav file except from the script in order to enable the event? I have transfer the EON ticket to a clean sav file using the e-reader rom, but when i'm trying to inject the script to another save manually, the event is not working...

I guess i have to compare the sav files before and after the transfer of the ticket from the e-reader rom...

Share this post


Link to post
Share on other sites

Yeah, but this is what I meant with puzzle, the point is as I said before... the text is incomplete. The string when the "KEY ITEMS POCKET" is full is missing and nowhere to find. I offered a solution for this above, it's not the best way, but I see no other way right now. Another thing is that it looks like at the beginning of the script there is a checksum, but I'm not sure. Haven't messed with these scripts yet. Actually everything you need from the checkitem, giveitem script (Eon Ticket) in Petalburg to the script to the activation for the event in Lilycove and all that stuff is in the chunk right above the text. The other stuff at the end is just for mixing records. It should be all there. Can you tell me which part doesn't work?

If not you can also use the Ruby & Sapphire Ticket Tool from Takasan.

It has the script for the Japanese Ruby & Sapphire versions. You could compare the scripts if you like.

I already dumped 2 of these Eon Ticket Events together with BlackShark's dump we have 3, I would send them to you, but I can't access my PC right now.

Edit:

I have sent you a mail!

Edited by ajxpkm

Share this post


Link to post
Share on other sites

OK... Still nothing...

When using e-reader to download the EON ticket on my sav file everything is OK, but when I'm trying to inject it manually the event is not working. Definitely something is wrong here... I'm pretty sure we are missing the flag that enables the event... E-Reader must be changing and something else for sure...

PS: I'm using the same sav file on both cases.

Share this post


Link to post
Share on other sites

I feel stupid right now... I was injecting it in Game Save A... My current Game Save was B :mad:

By the way the section where you inject the script is not always the same. It changes from sav to sav. Currently i'm working with 2 different sav files. In first one is in section 0 while in second one is at section 3.

The correct section can be identified by a specific byte sequence's (like the wonder cards)

Share this post


Link to post
Share on other sites
Sure there is a way to make this possible, by making full customized scripts and translating them to dot codes so that the e-Reader can read them. But I will not work on this personally. There are not many people who have e-Readers and I think there's a lot of work to do for this. The e-Reader is awesome, but I don't even own one myself to be honest, so I couldn't even test if it works.

That's understandable. The reason I'm so focused on the e-Reader is because it's the only distribution device we have for Gen 3 that's not a GameCube disc (plus the use it has in other games).

Edited by Invader TAK

Share this post


Link to post
Share on other sites

Almost there guys :)

Today I spend some time testing the tool and fixing some minor bugs. Also I worked on exception handling and error messages...

Functionality implemented so far:

* Design of the wonder cards.

* Import/Export wonder cards.

* Inject wonder cards in FireRed/LeafGreen and Emerald games.

* Support of Altering Cave and Ticket Events (Aurora, Mystic and Old Sea Map).

* Multi-language support (English, German, French, Italian, Spanish).

TO-DO:

* Add Japanese Language Support

* Gift Egg/Pokemon support

* Trainer Battle Event support

* Maybe add EON Ticket Support for Sapphire/Ruby.

PS: I think i have overcome the issue with the version of the rom. The solution is simple... Instead of executing the script from the rom I have change it to run it from the ram. To do this I had to change the prefix of the addresses in the script from 8 to 2 (ex. 0x8000000 --> 0x2000000). I have test it and seems to work. Need to test it with all the versions though...

Share this post


Link to post
Share on other sites

Btw. I had this idea about what we called "Event Type", I think this is nothing else then what we named "Wonder Card ID" for the Wonder Cards of the later Gens. You can try the other Wonder Card Editors out there like this one here to see what I mean...

The ID stored as hexadecimal could be also a decimal value but it's not too important maybe. Unfortunately regarding the 3rd Gen Cards, there were not many Wonder Cards distributed, so we don't know the actual purpose of them and how to actually read them, but maybe it's nothing special. The Wonder Card IDs seem to have no effect and seem to be purely based for identification, so maybe it's not too interesting for you guys, but I still thought it's important to mention this. Also we should try to figure out what's the maximum number for an ID for lostaddict's Editor.

The only thing that is really interesting to me, is that they are always the same for each type of distribution, regardless of date or which country for example. Which is why we called them Event Type so far...

Would be very interesting to compare the Egg Present Wonder Cards, but at this point I have to say... after talking with some collectors my hope that we ever will get one of these in our hands is very low. Same goes for the other missing Cards.

Share this post


Link to post
Share on other sites

I need to add one more validation to my injection code which is if the mystery event is enable or not in the game. I know where the questionnaire phrase info is but it's not the correct way to do this since the user can change the phrase anytime after enabled the mystery gift... Most probably is just a flag, but i need to find the location...

So does anyone know where this information is in the sav file? Any help on this is welcome :)

Share this post


Link to post
Share on other sites

In Ruby/Sapphire it's in Section 2 (the one with 02 at 0xFF4) bit 4 at offset 0x3A9.

I have no idea about Emerald and FRLG but it seems flags are encrypted there or they are using something else...

EDIT:

Here's an ASM routine that checks if Mystery Gift/Event is enabled in Emerald http://www.pokecommunity.com/showthread.php?t=224212

It should be flag 0x8AC and 0x8DB, but still need to find the save offset.

Edited by BlackShark

Share this post


Link to post
Share on other sites

Found both for Emerald! Same section as in RS.

Mystery Events is bit 4 at 0x405

Mystery Gift is bit 3 at 0x40B

It's not encrypted, I don't know what I did wrong yesterday.

EDIT:

FRLG should be at 0x67 bit 1. Again same section as RS.

Edited by BlackShark

Share this post


Link to post
Share on other sites

@lostaddict: If you want to support the Eon Ticket in Emerald you can check out this post right here. Earlier I posted some codes I created and the RAM offsets, everything is there from activating the event + for record mixing. :)

The activation flag you can find at 0x02026ABE in the japanese version and 0x02026E1A in the localised versions. You can also build in a modifier for how many times the ticket can be shared.

This value you can find at RAM address 0x020291BD in the japanese and 0x02029519 in all the other versions.

Share this post


Link to post
Share on other sites

@BlackShark: Many thanks! This has save me a lot of time. I have check and i can confirm that this is the flag.

After the implementation of this final validation i can consider the injection implementation as closed :)

@BlackShark: I'm still not sure if i want to add e-reader support to the tool right now, but i will definitely keep this info to my notes for a later reference...

Share this post


Link to post
Share on other sites
@ajxpkm: I'm still not sure if i want to add e-reader support to the tool right now, but i will definitely keep this info to my notes for a later reference...

An all-in-one Gen 3 event tool with support for all six languages would be amazing. But for now, I think e-Reader should have its own tool.

Edited by Invader TAK

Share this post


Link to post
Share on other sites

Hey guys,

Today i have add the last 2 validations for the injection:

1. It checks if mystery gift is enabled. If not then no injection is allowed.

2. It checks if wonder card already exist. If exists then it asks for confirmation before overwrite it.

I have check this both with Emerald and LeafGreen/FireRed and works OK.

Next step is to add Japanese Language support...

Share this post


Link to post
Share on other sites
Hey guys,

Today i have add the last 2 validations for the injection:

1. It checks if mystery gift is enabled. If not then no injection is allowed.

2. It checks if wonder card already exist. If exists then it asks for confirmation before overwrite it.

I have check this both with Emerald and LeafGreen/FireRed and works OK.

Next step is to add Japanese Language support...

Will the tool support editing what the Delivery Man says? Since we can't use the password system for the Trainer Event, I want to change the text to something that'll make more sense, like this:

Thank you for using the MYSTERY
GIFT System.

A TRAINER has arrived in the SEVII
ISLANDS looking for you.

We hope you will enjoy
battling the visiting TRAINER.

You may invite other TRAINERS by
downloading other BATTLE WONDER CARDS.

Share this post


Link to post
Share on other sites

We don't want to change the scripts and leave them just as we found them before.

To activate the original scripts is the main purpose of this. BTW. lostaddict learned that the 2F Pokémon Center guy only mentions the password for the survey at the PokéMart when no Trainer data is stored on the save file. However if there is a Trainer Data on the save file a similar text as you posted will automatically appears in this case. As if a Trainer was downloaded. This is why he actually had the idea to add an Trainer Editor to his tool, because it's a solution for solving the issue that this event is incomplete. :smile: I admit that it's not the best way maybe, but it's doing the job and is close to what if been like with the original distribution, which is what we want. And as I mentioned a few times before, I don't want to release my own customized hacks as Morfeo for example did. This is something I wanted to make completely different in this project. It's all about the original stuff, at least in the first place. We might think about more editor features in the future. Like Pokémon Eggs with 2 Special Moves and other stuff.

When lostaddict is done with his tool we can brainstorm about where we go next.

Also, please keep in mind that we want to support all the languages.

So we would have to do a lot of translation work if we make customized texts ect.

You can read about what lostaddict found here:

http://projectpokemon.org/forums/showthread.php?46883-GEN-3-Mystery-Gift-Research&p=208514&viewfull=1#post208514

Share this post


Link to post
Share on other sites
We don't want to change the scripts and leave them just as we found them before.

To activate the original scripts is the main purpose of this. BTW. lostaddict learned that the 2F Pokémon Center guy only mentions the password for the survey at the PokéMart when no Trainer data is stored on the save file. However if there is a Trainer Data on the save file a similar text as you posted will automatically appears in this case. As if a Trainer was downloaded. This is why he actually had the idea to add an Trainer Editor to his tool, because it's a solution for solving the issue that this event is incomplete. :smile: I admit that it's not the best way maybe, but it's doing the job and is close to what if been like with the original distribution, which is what we want. And as I mentioned a few times before, I don't want to release my own customized hacks as Morfeo for example did. This is something I wanted to make completely different in this project. It's all about the original stuff, at least in the first place. We might think about more editor features in the future. Like Pokémon Eggs with 2 Special Moves and other stuff.

When lostaddict is done with his tool we can brainstorm about where we go next.

Also, please keep in mind that we want to support all the languages.

So we would have to do a lot of translation work if we make customized texts ect.

You can read about what lostaddict found here:

http://projectpokemon.org/forums/showthread.php?46883-GEN-3-Mystery-Gift-Research&p=208514&viewfull=1#post208514

Good to know. I just don't want anyone I share Trainer Wonder Cards with to be confused at the mention of passwords that are useless. In fact, I normally don't care about unused events, but I'm making an exception for these Trainer Wonder Cards since they're the same as the e-Reader Trainers for R/S (IE, a "for fun" thing that won't affect anything major).

Share this post


Link to post
Share on other sites

I didn't have much time lately, but i did some progress on Japanese language support.

Import/Export wonder card functionality is now available for Japanese as well :)

Import_JAP.png

Share this post


Link to post
Share on other sites

Since nothing else is going on, I'll repost the updated tutorial for Takasan's Japanese tools since it's been long enough. Just to note, the R/S tool ONLY injects the Eon Ticket.

1. Get AppLocale if you're not on Japanese Windows and point it to the location of the tool you want to use. You will NEED this for the Japanese text to show up properly.

2. Go on someplace like Bulbapedia to get the Japanese name for the ticket you want then select it. If you just replaced your R/S/E battery and want to reset your clock, click the box to make a checkmark appear.

3. Drag your Japanese save over the window. It will generate a .dat file matching your save's name.

4. Change the file extension to .sav and load it onto your cart or emulator.

Share this post


Link to post
Share on other sites

hello guys, i just stumbled across this website and i am really stunned of the great work you did! now since i am not that technically talented, could some one please repeat all the necessary steps i need to get a Wonder Card for the Old Sea Map on my japanese emerald rom? I tried to use the tools mentioned in the first post but both say "Not enough system ressources" ("Nicht genügend Systemressourcen, um den angeforderten Dienst auszuführen" - since my windows 7 is german) and my Avira pops up. Only the "PARPokeEE" opens in a window with strange characters displayed, I tried to download AppLocale but it stays the same... Are these tools the ones which @lostaddict uses?

please help me guys :smile:

Share this post


Link to post
Share on other sites

@Invader TAK:

Thanks. Might be helpful for everyone who wants to mess with Takasan's Tool.

hello guys, i just stumbled across this website and i am really stunned of the great work you did! now since i am not that technically talented, could some one please repeat all the necessary steps i need to get a Wonder Card for the Old Sea Map on my japanese emerald rom? I tried to use the tools mentioned in the first post but both say "Not enough system ressources" ("Nicht genügend Systemressourcen, um den angeforderten Dienst auszuführen" - since my windows 7 is german) and my Avira pops up. Only the "PARPokeEE" opens in a window with strange characters displayed, I tried to download AppLocale but it stays the same... Are these tools the ones which @Invader TAK uses?

please help me guys :smile:

No, lostaddict he's working on his own tool. But doen't worry, it's just a matter of time until it's released.

UPDATE:

I'm so sorry. I was tied up with a lot of things recently and there was not much new to tell that's why I haven't posted anything since a while. No progress in the meanwhile.

But now I finally have some new information which are not big but still interesting.

I received some infomations from a trustable source (someone who worked for Nintendo) that the US Aurora Ticket device was NOT compatible with Emerald! And after thinking of it, it makes a lot sense because Emerald wasn't released at the time. So this must have been the case with the Japanese Emerald version as well. The European distribution device however was compatible with Emerald and even with the US versions just as we know. So only a European Aurora Ticket on a US Emerald cartdridge is a "legit" one. The reason why this works is because the American Versions were identical to the European (UK) versions.

Since I believe the European distribution devices weren't compatible with the Japanese versions, there should be no legit way to receive an Aurora Ticket on a Japanese Emerald version. Of course I can't proof this since I don't own a device so you can take this information carefully at this point, but I can tell you that I'm about 99% sure because the US Aurora Ticket device and the Japanese FR & LG versions aren't compatible as well which I do can confirm thanks to all of the save files I received. A few of these save file were from someone who owns such a device and tried to connect it to a Japanese version which didn't worked.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...