Jump to content

[GEN 3] Mystery Event/Gift Research


Guest

Recommended Posts

Pokemon Ruby and Saphire didn't used Mystery Gift system. They used different system called "Mystery Event". The most of Mystery Events required e-Reader and e-Cards (like EON TICKET Event). Unlike Mystery Gifts, Mystery Events were distributed with a link cable, not with Wireless Adapter.

E-Reader Mystery Event distribution can be also emulated. :redface:

[video=youtube;zSrLvgGbB2Y]video

Here's a video I found. It shows how to emulate EON TICKET distribution. I hope this helped.

I know. In fact, link cable was the only way to communicate with GBA in 2002\2003. But if we can emulate the strange cartridge then it's all done! (for RS I mean)

I remember something like that in the other GBA screen, but i'm not sure. In addition, my cartridge received 100 eon tickets that I had to

distribute with other players in the records center, not only one.

I have to watch that video.

Thanks.

Link to comment
Share on other sites

I know. In fact, link cable was the only way to communicate with GBA in 2002\2003. But if we can emulate the strange cartridge then it's all done! (for RS I mean)

I remember something like that in the other GBA screen, but i'm not sure. In addition, my cartridge received 100 eon tickets that I had to

distribute with other players in the records center, not only one.

I have to watch that video.

Thanks.

For the Eon Ticket, I'd say our best bet is to make e-Reader dot codes for the Japanese, Spanish, French, German and Italian games (said dot codes could even be coded for the English e-Reader).

Link to comment
Share on other sites

For the Eon Ticket, I'd say our best bet is to make e-Reader dot codes for the Japanese, Spanish, French, German and Italian games (said dot codes could even be coded for the English e-Reader).

Actually it's not hard to get the Eon Ticket dot code working for other languages. There are 3 or 4 bytes that have to be changed in the decompressed file.

The only problem is the Japanese language. You have to translate the file because none-Japanese characters will crash the e-Reader.

Maybe hatschky's disassembly of the e-Cards helps in the translation process if anyone wants to try. https://github.com/hatschky/pokecarde

Link to comment
Share on other sites

I know. In fact, link cable was the only way to communicate with GBA in 2002\2003. But if we can emulate the strange cartridge then it's all done! (for RS I mean)

I remember something like that in the other GBA screen, but i'm not sure. In addition, my cartridge received 100 eon tickets that I had to

distribute with other players in the records center, not only one.

I have to watch that video.

Thanks.

There's a problem with emulating that strange cartridge. Because that is a GBA cartridge, and we already have GBA emulators lol. What we actually need is a ROM file of that cartridge. We could easly just link our games with that ROM file and get 100 EON TICKETS. But that is another impossible thing, dcuz there is no ROM file like that :frown:

Link to comment
Share on other sites

Actually it's not hard to get the Eon Ticket dot code working for other languages. There are 3 or 4 bytes that have to be changed in the decompressed file.

The only problem is the Japanese language. You have to translate the file because none-Japanese characters will crash the e-Reader.

Maybe hatschky's disassembly of the e-Cards helps in the translation process if anyone wants to try. https://github.com/hatschky/pokecarde

Multi-language dot codes SHOULD be possible, if you make them completely from scratch. For example, Prof. 9's custom Mega Man Battle Network dot codes scan on English e-Readers yet they're able to send data to both English AND Japanese games (while the Battle Network 6 dot codes will send data to the Japanese versions ONLY).

Link to comment
Share on other sites

I've been reading the thread, a dump/inject tools seems easy, given we have the WC3 files. I'll test with the ones I already have and release when it works. It'd be command line for easy GC/Wii porting.

After that might come an editor. The checksum routine for the WCs is posted in asm in this thread, I will try to at least code a tool that allows validating an edited WC3.

What I'm really interested is in official events, for which a dumper/injector is enough.

About the RS eon ticket, I forgot mentioning that I used my spanish save in the usa rom to get the ticket, then after receiving it I mixed records with my emerald as a way to obtain the ticket (which is the only known way for european emerald). What is curious is that when I went to receive the eon ticket with my spanish save, this time using the spanish rom, the text for the eon ticket event was in english. That means there's some kind of script that was injected in the RS eon ticket distributions. I'll look into that too, see if we can get the official RS eon ticket distributions. The problem would be actually checking how many eon tickets remain to be distributed...

Dr. Matt, your RS save with eon ticket is one that can send eon tickets via mixing records right? If that's the case, the script for the event might still be in the save.

ps: morpheo also has some codes for RS eon ticket, will check them later.

edit: first post is missing the EUR MASTER and DMA codes (I think the EUR english rom is the same as the USA rom, explaining why it works with usa e-reader)

France

POKEMON RUBIS

Master Code

F57C7BCB ADC632B9

90A6E9C3 2D8D03E3

POKEMON SAPHIRE

Master Code

F57C7BCB ADC632B9

A43FB15C 1E8ECF5D

POKEMON EMERAUDE

Master Code

D8BAE4D9 4864DCE5

A7308156 808311D9

Anti DMA

A57E2EDE A5AFF3E4

1C7B3231 B494738C

POKEMON ROUGEFEU

Master Code

D8BAE4D9 4864DCE5

0B40BD4C 6F70EA2C

Anti DMA

115D14A2 58B9B5BF

78DA95DF 44018CB4

POKEMON VERTFEUILLE

Master Code

D8BAE4D9 4864DCE5

FB41D9B3 3A1BF27D

Anti DMA

115D14A2 58B9B5BF

78DA95DF 44018CB4

Italy

POKEMON RUBINO

Master Code

33E6A427 056936FC

93A1C658 8DD5F1D0

POKEMON ZAFFIRO

Master Code

33E6A427 056936FC

F5288E7B 33220035

POKEMON SMERALDO

Master Code

D8BAE4D9 4864DCE5

6FF77D3F 15E9225C

Anti DMA

B2809E31 3CEF5320

1C7B3231 B494738C

POKEMON ROSSOFUOCO

Master Code

DFC87987 BBA21C13

8378FDD4 5ABC5853

Anti DMA

1C83801E D2A043BF

78DA95DF 44018CB4

POKEMON VERDEFOGLIA

Master Code

DFC87987 BBA21C13

518E0AB2 E182C852

Anti DMA

1C83801E D2A043BF

78DA95DF 44018CB4

Germany

POKEMON RUBIN

Master Code

5E263E14 AD8EF97D

851B05E0 594B5D88

POKEMON SAPHIR

Master Code

5E263E14 AD8EF97D

41C1BF4B 17EE5233

POKEMON SMARAGD

Master Code

D8BAE4D9 4864DCE5

DD5F41DA 90B02762

Anti DMA

B2809E31 3CEF5320

1C7B3231 B494738C

POKEMON FEUERROTE

Master Code

DFC87987 BBA21C13

CEBF8DCD FD0A2E01

Anti DMA

A269812A 7C8BB4D9

78DA95DF 44018CB4

POKEMON BLATTGRUNE

Master Code

DFC87987 BBA21C13

66A64C7D C1365507

Anti DMA

A269812A 7C8BB4D9

78DA95DF 44018CB4

Spain

POKEMON RUBÍ

Master Code

33E6A427 056936FC

E87BA897 4FFD3634

POKEMON ZAFIRO

Master Code

33E6A427 056936FC

B02EF1DB D06782F2

POKEMON ESMERALDA

Master Code

D8BAE4D9 4864DCE5

BB26EE7E 4AF89D9E

Anti DMA

A57E2EDE A5AFF3E4

1C7B3231 B494738C

POKEMON ROJOFUEGO

Master Code

D8BAE4D9 4864DCE5

4879A617 AE7683D9

Anti DMA

61181D0E ABC43CBE

78DA95DF 44018CB4

POKEMON VERDEHOJA

Master Code

D8BAE4D9 4864DCE5

CB89E5ED 0ADBAF91

Anti DMA

61181D0E ABC43CBE

78DA95DF 44018CB4

Link to comment
Share on other sites

I've been reading the thread, a dump/inject tools seems easy, given we have the WC3 files. I'll test with the ones I already have and release when it works. It'd be command line for easy GC/Wii porting.

After that might come an editor. The checksum routine for the WCs is posted in asm in this thread, I will try to at least code a tool that allows validating an edited WC3.

What I'm really interested is in official events, for which a dumper/injector is enough.

About the RS eon ticket, I forgot mentioning that I used my spanish save in the usa rom to get the ticket, then after receiving it I mixed records with my emerald as a way to obtain the ticket (which is the only known way for european emerald). What is curious is that when I went to receive the eon ticket with my spanish save, this time using the spanish rom, the text for the eon ticket event was in english. That means there's some kind of script that was injected in the RS eon ticket distributions. I'll look into that too, see if we can get the official RS eon ticket distributions. The problem would be actually checking how many eon tickets remain to be distributed...

Dr. Matt, your RS save with eon ticket is one that can send eon tickets via mixing records right? If that's the case, the script for the event might still be in the save.

ps: morpheo also has some codes for RS eon ticket, will check them later.

edit: first post is missing the EUR MASTER and DMA codes (I think the EUR english rom is the same as the USA rom, explaining why it works with usa e-reader)

France

POKEMON RUBIS

Master Code

F57C7BCB ADC632B9

90A6E9C3 2D8D03E3

POKEMON SAPHIRE

Master Code

F57C7BCB ADC632B9

A43FB15C 1E8ECF5D

POKEMON EMERAUDE

Master Code

D8BAE4D9 4864DCE5

A7308156 808311D9

Anti DMA

A57E2EDE A5AFF3E4

1C7B3231 B494738C

POKEMON ROUGEFEU

Master Code

D8BAE4D9 4864DCE5

0B40BD4C 6F70EA2C

Anti DMA

115D14A2 58B9B5BF

78DA95DF 44018CB4

POKEMON VERTFEUILLE

Master Code

D8BAE4D9 4864DCE5

FB41D9B3 3A1BF27D

Anti DMA

115D14A2 58B9B5BF

78DA95DF 44018CB4

Italy

POKEMON RUBINO

Master Code

33E6A427 056936FC

93A1C658 8DD5F1D0

POKEMON ZAFFIRO

Master Code

33E6A427 056936FC

F5288E7B 33220035

POKEMON SMERALDO

Master Code

D8BAE4D9 4864DCE5

6FF77D3F 15E9225C

Anti DMA

B2809E31 3CEF5320

1C7B3231 B494738C

POKEMON ROSSOFUOCO

Master Code

DFC87987 BBA21C13

8378FDD4 5ABC5853

Anti DMA

1C83801E D2A043BF

78DA95DF 44018CB4

POKEMON VERDEFOGLIA

Master Code

DFC87987 BBA21C13

518E0AB2 E182C852

Anti DMA

1C83801E D2A043BF

78DA95DF 44018CB4

Germany

POKEMON RUBIN

Master Code

5E263E14 AD8EF97D

851B05E0 594B5D88

POKEMON SAPHIR

Master Code

5E263E14 AD8EF97D

41C1BF4B 17EE5233

POKEMON SMARAGD

Master Code

D8BAE4D9 4864DCE5

DD5F41DA 90B02762

Anti DMA

B2809E31 3CEF5320

1C7B3231 B494738C

POKEMON FEUERROTE

Master Code

DFC87987 BBA21C13

CEBF8DCD FD0A2E01

Anti DMA

A269812A 7C8BB4D9

78DA95DF 44018CB4

POKEMON BLATTGRUNE

Master Code

DFC87987 BBA21C13

66A64C7D C1365507

Anti DMA

A269812A 7C8BB4D9

78DA95DF 44018CB4

Spain

POKEMON RUBÍ

Master Code

33E6A427 056936FC

E87BA897 4FFD3634

POKEMON ZAFIRO

Master Code

33E6A427 056936FC

B02EF1DB D06782F2

POKEMON ESMERALDA

Master Code

D8BAE4D9 4864DCE5

BB26EE7E 4AF89D9E

Anti DMA

A57E2EDE A5AFF3E4

1C7B3231 B494738C

POKEMON ROJOFUEGO

Master Code

D8BAE4D9 4864DCE5

4879A617 AE7683D9

Anti DMA

61181D0E ABC43CBE

78DA95DF 44018CB4

POKEMON VERDEHOJA

Master Code

D8BAE4D9 4864DCE5

CB89E5ED 0ADBAF91

Anti DMA

61181D0E ABC43CBE

78DA95DF 44018CB4

Good luck with your tool. Can't wait 'til you finish it.

Link to comment
Share on other sites

@suloku

These are all the offsets used by the Mystery Gift and Mystery Event features.

Section 0
RS	0x498 - 0x553	e-Card Trainer
E	0xBEC - 0xCA7	e-Card Trainer
FRLG	0x4A0 - 0x55B	e-Card Trainer

Section 4
RS 	0x2E0 - 0x80F	e-Card Berry
RS	0x810 - 0xBFB	Mystery Event Script
RS	0xBFC - 0xC03	Record Mixing Item

E	0x360 - 0x51F	Wonder News
E	0x520 - 0x66F	Wondercard
E	0x860 - 0xC4B	Deliveryman Script
E	0x854 - 0xC93	Mystery Event Script
E	0xC94 - 0xC9B	Record Mixing Item

FRLG	0x2A0 - 0x45F	Wonder News
FRLG	0x460 - 0x5AF	Wondercard
FRLG	0x79C - 0xB87	Deliveryman Script

Record Mixing Items Structure

0x00	32 bit checksum of 0x04 - 0x07
0x04	Amount
0x05	Distribution counter
0x06	Itemindex

The Eon Ticket script from the US e-Card has laready been posted somewhere in this thread.

I currently can't find that post, but this is it.

Unfortunately there's a killscript command at the end, so once you received your Eon Ticket the script is gone.

//---------------
#org 0x61
setvirtualaddress 0x2000061
checkitem 0x113 0x1
compare LASTRESULT 0x1
virtualgotoif 0x1 0x20000BF
checkpcitem 0x113 0x1
compare LASTRESULT 0x1
virtualgotoif 0x1 0x20000BF
checkflag 0xCE
virtualgotoif 0x1 0x20000BF
lock
faceplayer
virtualmsgbox 0x20000C9 //"DAD["][player]! Good to see you!\n..."
waitmsg
waitkeypress
checkitemroom 0x113 0x1
compare LASTRESULT 0x0
virtualgotoif 0x1 0x20000C0
giveitem 0x113 0x1 MSG_OBTAIN
setflag 0x853
virtualmsgbox 0x2000104 //"DAD["]It appears to be a ferry TIC..."
waitmsg
waitkeypress
release
killscript

//---------------
#org 0xBF
killscript

//---------------
#org 0xC0
virtualmsgbox 0x2000183 //"DAD["][player]' the KEY ITEMS POCK..."
waitmsg
waitkeypress
release
end


//---------
// Strings
//---------
#org 0xC9
= DAD["][player]! Good to see you!\nThere's a letter here for you,[player].

#org 0x104
= DAD["]It appears to be a ferry TICKET.\nbut I've never seen one like it before.\lYou should visit LILYCOVE and ask\nabout it there.

#org 0x183
= DAD["][player]' the KEY ITEMS POCKET in\nyour BAG is full.\pMove some key items for safekeeping\nin your PC' then come see me.

Link to comment
Share on other sites

Dr. Matt, your RS save with eon ticket is one that can send eon tickets via mixing records right? If that's the case, the script for the event might still be in the save.

Sure. As I said, I distributed a few in 2003. I sent one via mixing records to my spanish emerald also, I don't remeber english text in that game during the process.

Link to comment
Share on other sites

What I'm really interested is in official events, for which a dumper/injector is enough.

I will send these later to you.

But the problem is that we might never be able to collect all of them and with those I dumped alone we're not able to support all of the game versions.

And even if we have all of them, we couldn't support all of the games. That's why the scripts I posted are so important.

So I think an Wonder Card Editor should be on top of the list... I can give you the alpha version of lostaddicts's tool if needed.

It's not working yet and just UI, but it can give you a feeling about what we would like to have for a Tool.

You can also see pictures of it in the Thread...

The official Wonder Cards we already have you can see on the list in the first post... A lot of them are still missing like the UK, the French and the Spanish Aurora Tickets for example.

We have an UK one that was downloaded by gldsun on Emerald but the FireRed one would have been more important so it's a pity we don't have this one...

Btw. one thing I always forgot to ask you guys...

I think there's a chance that we might be able to get the french Aurora Ticket.

As you can see in this video, he has one downloaded on his french LeafGreen version.

It would be cool if someone could ask gldsun if he could dump a save file for us.

Sure. As I said, I distributed a few in 2003. I sent one via mixing records to my spanish emerald also, I don't remeber english text in that game during the process.

In Ruby & Sapphire the very first receiver (who received it at an Event or via e-Card Reader) gets the Ticket from the father in Petalburg City.

Just like BlackShark already mentioned the Scripts gets terminated by a killscript command at the end of the Script when the text ends.

So after saving the game 2 times the Script is lost forever...

The "Mixing Record"-feature works differently, there's a counter for it and everyone you mix records with (when you're the 1st Player) receives one after mixing records.

This works as long as the counter falls to 0.

Link to comment
Share on other sites

I will send these later to you.

But the problem is that we might never be able to collect all of them and with those I dumped alone we're not able to support all of the game versions.

And even if we have all of them, we couldn't support all of the games. That's why the scripts I posted are so important.

So I think an Wonder Card Editor should be on top of the list... I can give you the alpha version of lostaddicts's tool if needed.

You want the editor to recreate the missing WCs, that's something that can be done with an hex editor (there are not that many missing WCs) using another WC from the same region, and of course we would have to think something that identifies them as recreated (probably changing the ID/background color is more than enough). Recreating the official cards via hex editing is way quicker than a full editor, and with full editor I mean something that can give you any item, any pokemon, trainer card, berries... etc.

That's why my priority would be a way to dump/inject and preserve official events, then comes all the non-released stuff imho. Also, I don't know java (which would be great do to multi-platform), so an editor would be done in c#.

In fact, since BlackShark already posted the offsets, the dumper/injector is trivial. I'll add support for all those.

WC3 file structure will be WC+Deliverymanscript (.wc3)

mistery event structure will be script+item (.me3)

wc news (.wcn)

still thinking extensions for e-trainer card and e-berry.

EDIT: @BlackShark, Mistery event script in emerald is bigger (84 bytes), any reason for that or just nintendo things? I'm still reading the thread.

Link to comment
Share on other sites

You want the editor to recreate the missing WCs, that's something that can be done with an hex editor (there are not that many missing WCs) using another WC from the same region, and of course we would have to think something that identifies them as recreated (probably changing the ID/background color is more than enough). Recreating the official cards via hex editing is way quicker than a full editor, and with full editor I mean something that can give you any item, any pokemon, trainer card, berries... etc.

That's why my priority would be a way to dump/inject and preserve official events, then comes all the non-released stuff imho. Also, I don't know java (which would be great do to multi-platform), so an editor would be done in c#.

In fact, since BlackShark already posted the offsets, the dumper/injector is trivial. I'll add support for all those.

WC3 file structure will be WC+Deliverymanscript (.wc3)

mistery event structure will be script+item (.me3)

wc news (.wcn)

still thinking extensions for e-trainer card and e-berry.

Well the problem is that the missing Wonder Cards can't be reconstructed as easy as you think!

Especially not if you want to build them based on the Scripts from the official ones...

Because what you might don't know yet is that every Official Event has some Trash Bytes under the Script which is in the 1000 bytes who're calculated with the checksum routine.

So these Trash Bytes are very important indicator to determine a real Mystery Gift Event from a hacked one and if we wanted to make a real and legit one we would have to keep it in mind.

I already tried to reconstruct the missing Events with the Trash Bytes from the other ones.

Just for the record... In the European Wonder Cards you can find the Scripts for the other languages in the Trash Bytes...

So I thought I could do a bit patchwork and get the other ones this way, it was just for fun and to see if it might work...

I hoped that this way I could recreate the missing Wonder Cards we don't have yet, but there are just too many holes...

As you can see on the list, only have the German and the Italian European Mystery Gift Events from FR & LG...

We have an English one downloaded on Emerald as mentioned but it was useless for this purpose...

I think the order the data was stored on the distribution device and written to the save file was this...

English - French - Italian - German - Spanish

So in theory... if we had the English Aurora Ticket on FR & LG we could reconstruct the French one.

Because we already know the Wonder Card text:

[ATTACH=CONFIG]13191[/ATTACH]

And since we have dumped the Italian one we know how the Trash Bytes after the Script should look like.

All we would have to do is filling the space after the French Script till the size reaches 1000 bytes.

So technically I think it could be possible to reconstruct this missing Mystery Gift Event.

But since we don't have the English Mystery Gift Event it's impossible to do this.

I hope what I tried to explain was understandable...

I think it's better to make an Tool that uses the Scripts we already have completed, which I uploaded here.

A Tool that can load and write files and inject Events to save files...

Including an Wonder Card Text Editor to edit the Event ID, Color, Text additionally can change the Pokémon Icon.

And of course it should calculate and add the checksum automatically.

Except this it doesn't has to edit anything, but you could add more features littly by little if you want to.

Btw. I like your idea with the filename extensions!

We (lostaddict and I) already had something like this in mind but haven't made decisions yet!

So I would leave it to you to decide how we should name them.

EDIT: I updated the list in the first post! Now it's easier to understand what's still missing.

Also I added the Master and DMA codes. Thanks suloku.

edit 2:

I added a picture of the French Aurora Ticket Wonder Card.

Edited by ajxpkm
Link to comment
Share on other sites

EDIT: @BlackShark, Mistery event script in emerald is bigger (84 bytes), any reason for that or just nintendo things? I'm still reading the thread.

I don't know the reason. I just read that somewhere, but I can't recall where that was. I'll search it.

still thinking extensions for e-trainer card and e-berry.

Maybe .ect for e-Card Trainers and .ecb for e-Card Berries? Or since they are Mystery Events .met and meb?

By the way, I already dumped all the data for Trainers and Berries from the saves. They currently have the .bin extension, but once you decided for an extension I can rename and upload them.

Link to comment
Share on other sites

Well... I have HUGE news!

I was finally able to collect the officially distributed Spanish Aurora Ticket.

Ori-Ticket.png

Actually, I have this one since 2 days or so in my collection.

But first I was a bit sceptical if it's really a legit one and of course I will also explain why...

The reason everyone might be able to understand is that the text looks a bit different than those of the other ones.

Besides there are a few spanish hacks out there with similar text, so that's why this was suspicious to me.

This for example are two obvious hacks:

http://www.3djuegos.com/comunidad-foros/tema/15597728/0/si-alguien-quere-conseguir-a-keldeo-genesect-lugia/

Obvious because you can see Pokémon Icons on the Cards + the Mystic Ticket was never distributed in Spain anyway...

Well, now it gets more technical...

I checked the Trash Bytes (most important indicator) and what did I saw?

The famous 0 and 1 Trash Bytes! Those we already know from some of the Japanese and US Mystery Gift Events.

To me it was obvious that I can put this one to the list of hacked Wonder Cards.

(Same as the golden Wonder Card btw. which I already received and checked a while ago... of course... IT WAS A HACK TOO...)

So I thought my work on this one was already done, but then I had some thoughts today after I made my last post...

Remember what I said?

Yeah... the order of Trash Bytes...

ENGLISH - FRENCH - GERMAN - ITALIAN - SPANISH

Then I thought... wait a minute...

We have the Italian one!!!

So what did I do? Back to research...

I compared the Trash Bytes of the Italian save file with the Spanish one...

And to my surprise... this is what I saw...

Auro_Ita_Spa.jpg

On the left you see the Italian Aurora Ticket Script and on the right you see the Spanish Aurora Ticket Script.

What I marked in blue on both is the Spanish Script, which is part of the Trash Bytes in the Italian one.

As you can see the data MATCHES!

Which means that the Spanish Aurora Ticket I received must be legit. :) At least it's highly unlikely that it's not considering all the details.

Because another reason that underscores this is the thing I noticed today that the Spanish language is the last on the distribution device.

This also explains why there are only 0s and 1s (+ the AURO String) are being left as Trash Bytes in the official Spanish Mystery Gift Event.

Ori-Ticket.png.dcbdbde5a48bc48fc97fd786d

Link to comment
Share on other sites

@ajxpkm I think we can trust Dr. Matt on the legitimacy of this one. He claims to have sent his cart to nintendo, and given the fact he has participated in event compilations before I really doubt he would (after all these years) provide a fake wondercard.

Also, on my side, injecting/dumping is working fine for FR/LG and Emerald, but the offsets BlackShark provided were wrong for emerald and had to look for them.

I really need to verify the boundaries of the wc and script.

wc is 336 bytes WITH checksum? I've read a post claiming it to be 332. That leaves the wc icon outside the WC and the checksum. The wondercard works fine, but the icon is part of the wc data in my opinion, leaving it out doesn't make sense to me. Alternatively I can extend the wc to include the icon (348 bytes WITH checksum).

I guess I'll run some tests to verify the boundaries myself, but seems like the icon is outside the wc checksum, but if the icon is left outside the checksum, the question would be: is anything else left outside the checksum? I guess deleting the WC data and comparing might help, luckily we have legit saves for emerald and FR/LG.

BTW, even without the icon, the injected WC3 works fine, so the WC3 needs to change to include at least the icon.

I guess I could check taka's legit tools too, see what they inject to the save and see if I'm missing something. Anyone has jap savefiles that never used mistery event?

EDIT: also, any tutorial about the japanesse tools?

ps: works too with morfeo's wondercards if anyone was wondering.

ps2: after injecting/dumping wc3 is clear, I'll get to the other files (trainer/berry/mistery event)

edit: ps3. as curiosity, the event works even if the mistery gift option isn't enabled.

Link to comment
Share on other sites

I want to say sorry that I was so sceptical. But the fact that I have seen so many hacked Spanish Wonder Cards made me become very leery about them.

And at this point big thanks to Dr.Matt who's the originator of the save file.

To answer your question regarding Emerald...

I can't check it now but if I remember it correctly the offset location in (US) Emerald starts at 0x56C.

Now about the Wonder Card Structure.

It's work that has been already done but literally lost because it was lostaddicts job.

I think it's good if we're documenting everything from now and I will make an Index and add links in the first post later.

Let's try to get things together...

As you already figured it out, the Pokémon Icon is not part of the checksum validation.

That's why we can edit it even without changing the checksum.

Possibly it was planned to be used but then they scrapped it and just used the Default Icon (0xFFFF which is the question mark) and now it's still there as a leftover.

Interesting to notice is also the fact that if you use the "Sharing-Feature", the Icon is ALWAYS transferred/activated as 0xFFFF on the receiver's save file regardless if the person who sends the WC has another Icon.

Wonder News Data Structure

Offset     Contents                          Size

0x0        Checksum                           2 Bytes
0x4        Header                             1 Byte
0x6        Sharing Functionality              1 Byte
0x7        Color Theme                        1 Byte
0x8        Text (Header)                     40 Bytes
0x30       Text Line 1                       40 Bytes
0x58       Text Line 2                       40 Bytes
0x80       Text Line 3                       40 Bytes
0xA8       Text Line 4                       40 Bytes
0xD0       Text Line 5                       40 Bytes
0xF8       Text Line 6                       40 Bytes
0x120      Text Line 7                       40 Bytes
0x148      Text Line 8                       40 Bytes
0x170      Text Line 9                       40 Bytes
0x198      Text Line 10                      40 Bytes



Notes:


Checksum:
Computed with the data between 0x4 and 0x1C0. (444 Bytes)

Sharing Functionality:
0x00 = OFF
0x01 = ON

Color Theme:
Yellow 0x00
Crystal 0x01
Red 0x02
Green 0x03
Blue 0x04
Brown 0x05
Gold 0x06
Silver 0x07

Wonder Card Data Structure

Offset     Contents                          Size

0x0        Checksum                           2 Bytes
0x4        Wonder Card ID                     4 Bytes
0xC        Color Theme + Sharing-Feature      1 Byte
0x18       Text (Header 1)                   40 Bytes
0x40       Text (Header 2)                   40 Bytes
0x5E       Text (Center)                     40 Bytes
0xFE       Text (Footer 1)                   40 Bytes
0x126      Text (Footer 2)                   40 Bytes
0x15A      Pokémon Icon                       2 Bytes


Notes:

Checksum:
Computed with the data between 0x4 and 0x150. (322 Bytes)



Known Wonder Card IDs:

Aurora Ticket: E803FFFF
Mystic Ticket: E903FFFF
Old Sea Map:   EA03FFFF



Available Color Themes

Yellow 0x00
Crystal 0x04
Red 0x08
Green 0x0C
Blue 0x10
Brown 0x14
Gold 0x18
Silver 0x1C

Add + 0x80 to the value to make Wonder Card shareable.  

[ATTACH=CONFIG]13214[/ATTACH][ATTACH=CONFIG]13209[/ATTACH][ATTACH=CONFIG]13212[/ATTACH][ATTACH=CONFIG]13211[/ATTACH][ATTACH=CONFIG]13207[/ATTACH][ATTACH=CONFIG]13208[/ATTACH][ATTACH=CONFIG]13210[/ATTACH][ATTACH=CONFIG]13213[/ATTACH]

Mystery Gift Script Data Structure

0x0        Checksum                           2 Bytes
0x4        Header                               4 Bytes
0x5        Space for the Script             996 Bytes

Notes:

Computed with the data between 0x4 and 0x3EB. (1000 Bytes) 

This is for the west versions only for now, I will do the same for the japanese versions later.

I did this quickly so if there's an error somewhere or someone has any suggestions let me know.

The color theme names were picked by me and are not official, it's just what I thought they constitute.

I still have to test the limits regarding the text...

Will do that when I have more time.

Edited by ajxpkm
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...