suloku Posted May 8, 2016 Posted May 8, 2016 I might be coding this, but I'm no experienced coder at all, less in C# and windows forms, so since this is how I did it and it works, I'm not changing it Btw, here's the RS script for regidolls from Morfeo: '--------------- #org 0x4 setvirtualaddress 0x8000004 lock faceplayer virtualmsgbox 0x8000080 '"PAPÁ["][player]! Me alegro de vert..." checkflag 0xFB00 virtualgotoif 0x1 0x8000035 callstd 0x4 giveitem3 0x76 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 setflag 0xFB00 virtualcall 0x8000037 callstd 0x4 checkflag 0xFB01 virtualgotoif 0x1 0x8000055 giveitem3 0x77 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 setflag 0xFB01 giveitem3 0x78 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 clearflag 0xFB00 clearflag 0xFB01 virtualmsgbox 0x800014A '"La nota del paquete dice:\nSi dese..." callstd 0x4 release killscript '--------------- #org 0x35 callstd 0x4 checkflag 0xFB01 virtualgotoif 0x1 0x8000055 giveitem3 0x77 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 setflag 0xFB01 giveitem3 0x78 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 clearflag 0xFB00 clearflag 0xFB01 virtualmsgbox 0x800014A '"La nota del paquete dice:\nSi dese..." callstd 0x4 release killscript '--------------- #org 0x77 virtualmsgbox 0x80001B8 '"¡Que mal! No tienes especio para o..." callstd 0x4 release end '--------------- #org 0x37 checkflag 0xFB01 virtualgotoif 0x1 0x8000055 giveitem3 0x77 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 setflag 0xFB01 giveitem3 0x78 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 clearflag 0xFB00 clearflag 0xFB01 virtualmsgbox 0x800014A '"La nota del paquete dice:\nSi dese..." callstd 0x4 release killscript '--------------- #org 0x55 giveitem3 0x78 compare LASTRESULT 0x0 virtualgotoif 0x1 0x8000077 clearflag 0xFB00 clearflag 0xFB01 virtualmsgbox 0x800014A '"La nota del paquete dice:\nSi dese..." callstd 0x4 release killscript '--------- ' Strings '--------- #org 0x80 = PAPÁ["][player]! Me alegro de verte!\nPero seguro viniste solo porque ya\pte enteraste de que me llegó un\npaquete para ti de parte de MORFEO.\p¡INCREIBLE!, contiene estos POKé DOLL.\n¡Solo míralos!, aquí tienes... #org 0x14A = La nota del paquete dice:\nSi deseas contactar a MORFEO,\ppuedes escribirle a su correo:\n["]pkmnmorfeoœgmail.com" #org 0x1B8 = ¡Que mal! No tienes especio para otro\nPOKé DOLL.\pPrimero haz espacio en tu PC y\ndespués regresa conmigo. From what he did, I've deduced how to create the script and make the pointers relative to the script, so with XSE it will be a piece of cake. Also, it seems morfeo didn't know there's a command to check if the dolls are already in the decoration inventory, as he sets some flags to make sure he gives the 3 dolls instead of doing it the "right" way. Also, the checksum used in mistery event for Emerald is the very same used for wondercards. GF probably implemented it on emerald and used it for ME too. EDIT: Re-reading this: http://forums.glitchcity.info/index.php?topic=7114.0 What I thought to be some kind of header for the script in mistery event, may be the person to whom the script is associated: Offset Len Description $00 1 Map bank $01 1 Map number $02 1 Person event number $03 4 Pointer to script start $07 4 Pointer to script end I may be wrong, but advancemap (an editing tool) may tell us if Norman at petalburg gym has something to do with "33 08 01 01" EDIT 2: After comparing USA save after transfering enigma berry with e-reader: Section 2: 0x41A bit 0 has been set (changed from 0x00 to 0x01) --> maybe this is the flag that triggers norman to give an enigma berry Section 4: 0x2E0 - 0x80F e-Card Berry data inserted. There's no more changes, gonna see if that bit in section 2 really is a flag for enigma berry.
BlackShark Posted May 8, 2016 Posted May 8, 2016 I may be wrong, but advancemap (an editing tool) may tell us if Norman at petalburg gym has something to do with "33 08 01 01"EDIT 2: After comparing USA save after transfering enigma berry with e-reader: Section 2: 0x41A bit 0 has been set (changed from 0x00 to 0x01) --> maybe this is the flag that triggers norman to give an enigma berry Section 4: 0x2E0 - 0x80F e-Card Berry data inserted. There's no more changes, gonna see if that bit in section 2 really is a flag for enigma berry. I'm not sure about the 33 but 08 01 is the map number and the other 01 is the NPC event number. AdvanceMap shows map numbers in the tree on the left while the persons event number is on the right. 0x41A is indeed a flag, but not a bit flag. The e-Reader sets the value to 0x01 everytime you scan in a berry. If you modify this value the e-Reader will overwrite it with 0x01. Seems like it isn't used by anything else. In RS you can set it with these AR codes. Get 1 x Enigma Berry from Norman (Press L or R) ENGLISH 57A0ECFC 32CDF928 50A7B662 26EDAD04 JAPANESE 57A0ECFC 32CDF928 C9C8078C E18C2D7E https://projectpokemon.org/forums/showthread.php?48134-Ruby-Sapphire-e-Reader-Berries-%28EU-US-JP%29-%28ARv3-4%29
suloku Posted May 8, 2016 Posted May 8, 2016 (edited) Thank you very much for the information. Some things about berries: * Region 0xC-0x13 (8 bytes) is 0x00 in the e-card data, but once in the save it has data (unknown meaning) * Region 0xC-0x13 (8 bytes) is interpreted as being 0x00 when the berry checksum is calculated (same method as for RS mistery event). * USA berries work on jap games, but description won't shown. More info on what makes them different is needed, but I've read it has to do with text string lengths, but the other data for the berry might be in the same offsets. Export/import berry has been added (0x41A set to 0x01 when injecting). Berry editor coming. I also need to add handling of the different checksum calculation for mistery event in emerald. Is there any information about what mistery event was used for in JAP Emerald and FRLG? Besides eon ticket on emerald I know nothing. EDIT: http://puu.sh/oL61R/0fd6e7af9e.png http://puu.sh/oL6BM/42a4d0a9a0.png Only the "usage by trainer" field is missing from editor, but it is rather complicated, so I'm leaving it for later.. It'd be great if I could convert png files to berry sprites and vice versa, but it's probably too complicated for me and there's surely some gen 3 sprite editors out there. If I get the file format I could export/import berry sprite from that format. There seems to be some upper/down limits to the berry propierties, as I set all to max and the berry wasn't recognized by the game. I'll check what the values are tomorrow. Edited May 9, 2016 by suloku
Guest Posted May 8, 2016 Posted May 8, 2016 I also need to add handling of the different checksum calculation for mistery event in emerald. Is there any information about what mistery event was used for in JAP Emerald and FRLG? Besides eon ticket on emerald I know nothing. Not that I know. The Emerald Version of the Eon Ticket Event as we know used the hardcoded script that is activated by the activation of a simple flag. Besides all the Emerald e-Cards I saw so far were Trainer Cards. + Correct me if I'm wrong... (Mystery Events & e-Cards are still new to me in many ways, so I don't know too much about them...) R&S e-Cards and FR&LG e-Cards are incompabitle with Emerald? This would basically mean that besides the Eon Ticket Mystery Event there were only Trainer Events in Emerald. And the function you found was appearently completely unused. So it's kinda interesting to know about it. Would be cool to figure out that checksum too... The question remains if it's worth all the effort... Btw. great to hear that the Berry Editor is coming!
BlackShark Posted May 9, 2016 Posted May 9, 2016 For the berry descriptions you should check the berry. You can find RAM pointers there that are different between US and JAP region. There can still be displaying errors though as their character sets are different.
Guest Posted May 9, 2016 Posted May 9, 2016 @suloku: Nice Berry! :cool: Btw. I wanted to start with the translation work but then I saw that the Japanese only e-Berries were already translated by others. Here the Topo Berry as an example: http://bulbapedia.bulbagarden.net/wiki/Topo_Berry Edit: ok, thx for the info BlackShark. I think we can cut some words here and there or maybe retranslate unnecessary parts. Let me know if you need my help.
BlackShark Posted May 9, 2016 Posted May 9, 2016 Btw. I wanted to start with the translation work but then I saw that the Japanese only e-Berries were already translated by others.Here the Topo Berry as an example: http://bulbapedia.bulbagarden.net/wiki/Topo_Berry Each line is only allowed to have 45 characters. Those translations are not always conform with that. We have to make them suit the restrictions.
Real.96 Posted May 9, 2016 Posted May 9, 2016 Just found emerald spanish at 10€ from a friend i'm going to buy it now!
Guest Posted May 9, 2016 Posted May 9, 2016 Real.96 and I talked about it and we think we should do this asap because we don't know when they in Italy will stop the distribution. I like to inform you guys that I have a German Ruby and German Emerald here that could be contributed to this. Just in case if no one from Germany wants to participate and get an German Aurora Ticket on Emerald or Eon Ticket on RS. So most important now would be to get an Spanish Ruby or Sapphire Version. If someone has some French cartridges to offer that would be cool as well... In case if HaxAras can't make it time. (Customs ect. or whatever might happen...) If someone wants to donate money please contact Real.96 via PM. He's the one who will do the whole process and the best would be if he could buy the missing cartridges. Because he will send them to Nintendo in Italy to gather the Events so it would be the shortest way. Thank you very much!
suloku Posted May 9, 2016 Posted May 9, 2016 I think I have an extra spanish ruby cartridge, I'll make sure about it and see if I can send it to real.96. By the way, I found nameless sprite editor and made it work with the e-berry sprite: http://puu.sh/oLCJ3/7ba54741ac.png EDIT: https://nse.codeplex.com/releases/view/87312
Real.96 Posted May 9, 2016 Posted May 9, 2016 Guys sorry, i wrote wrong language. I'm going to buy French emerald from a friend (10€). We miss now French sapphire or ruby and Spanish emerald
HaxAras Posted May 9, 2016 Posted May 9, 2016 (edited) Short reply. I contacted NoA and they told me the do not allow people to send in their carts for repair/tickets to be inserted anymore. Edited September 4, 2017 by HaxAras
Guest Posted May 9, 2016 Posted May 9, 2016 Short reply. I contacted NoA and they told me the do not allow people to send in their carts for repair/tickets to be inserted anymore. Thanks for contacting them... at least we know now what there is no hope regarding NoA and the Mystic Ticket.
HaxAras Posted May 9, 2016 Posted May 9, 2016 (edited) ajxpkm said: Thanks for contacting them... at least we know now what there is no hope regarding NoA and the Mystic Ticket. Yeah, I didn't really think it was going to happen to begin with but it was still a sad bit of news to find out anyway. Edited September 4, 2017 by HaxAras
Invader TAK Posted May 9, 2016 Posted May 9, 2016 Honestly not surprised NoA was useless. I can't remember them ever letting people send in games to get past events. Which sucks, considering North American Gen 3 events were very limited. Guess whoever wants the English Mystic Ticket will have to settle for using suloku's tool.
HaxAras Posted May 9, 2016 Posted May 9, 2016 (edited) Wouldn't be theoretically be able to sent it into Nintendo Italy? It's still an English game and if the English European ones work, I don't see why these wouldn't. Edited September 4, 2017 by HaxAras
Guest Posted May 9, 2016 Posted May 9, 2016 @HaxAras: Yes, but it would be the European English Aurora Ticket in this case. + We need the American Mystic Ticket and I highly doubt that Nintendo in Italy has the American Mystic Ticket Distribution Device... Unfortunately... Since it looks like no one wants to donate I offered Real.96 to pay him 50% of the price if he wants to buy more cartridges on ebay. I think we should get all cartridges together as soon as we can, just to make sure that we can make it before the distribution ends. I think we're really lucky that they still do it now in 2016, but it's better to be save... so we should do it in the next few weeks I think.
suloku Posted May 10, 2016 Posted May 10, 2016 (edited) So, back to scripting: I made a mistery event script for emerald that enables the eon ticket event (which is hardcoded to the rom). It's flag 0xD50 if anyone wonders. Also, I made a wondercard for emerald that enables the eon ticket flag. Yep. A shearable wondercard that allows access to the in-game event for the eon ticket. Only downside is that I don't think there's a way to add the record mixing item data trough scripting (in jap emerald, the mistery event for eon ticket enables the flag and also puts the item record mixing data, or that's how I have been told the event worked and what taka's tools do). EDIT: it was flag 0xD50, I misstyped Edited May 10, 2016 by suloku
Invader TAK Posted May 10, 2016 Posted May 10, 2016 @HaxAras:Yes, but it would be the European English Aurora Ticket in this case. + We need the American Mystic Ticket and I highly doubt that Nintendo in Italy has the American Mystic Ticket Distribution Device... Unfortunately... Since it looks like no one wants to donate I offered Real.96 to pay him 50% of the price if he wants to buy more cartridges on ebay. I think we should get all cartridges together as soon as we can, just to make sure that we can make it before the distribution ends. I think we're really lucky that they still do it now in 2016, but it's better to be save... so we should do it in the next few weeks I think. Considering the English Mystic Ticket was only distributed in the US, there's absolutely no way Nintendo Italy has it.
HaxAras Posted May 10, 2016 Posted May 10, 2016 (edited) Invader TAK said: Considering the English Mystic Ticket was only distributed in the US, there's absolutely no way Nintendo Italy has it. I refuse to give up yet though. It may be a completely lost cause to send an English cart to Italy. There's already way more backed up events than I'd ever have imagined were still around. It might still be out there. It might be like finding a needle in a haystack, but it could happen. Edited September 4, 2017 by HaxAras
Invader TAK Posted May 10, 2016 Posted May 10, 2016 I refuse to give up yet though. It may be a completely lost cause to send an English cart to Italy. There's already way more backed up events than I'd ever have imagined were still around. It might still be out there. It might be like finding a needle in a haystack, but it could happen. Considering ajxpkm is able to verify the legitimacy of Gen 3 Wonder Cards, hopefully we'll have event collectors wanting that done (and be willing to share).
Real.96 Posted May 10, 2016 Posted May 10, 2016 (edited) Considering the English Mystic Ticket was only distributed in the US, there's absolutely no way Nintendo Italy has it. I can confirm that Nintendo of Italy doesn't have it. They said that to me Edited May 10, 2016 by Real.96
suloku Posted May 10, 2016 Posted May 10, 2016 I've crafted a simple script for emerald to be used on a custom wondercard that enables the EON Ticket event, that in emerald is coded in-game. When you talk to the person in blue, a picture of the missing lati is shown and its roar played, then the flag for the event is enabled and you can talk again to the man in blue to receive the Eon ticket. This is not how it was meant to be in any way, but I though it was fun to do while learning a little how scripting works, and as it is a wondercard it can be shared via WiFi to other emeralds. I wouldn't recomend if you worry about the full legitimacy of the savegame though. http://puu.sh/oMY0J/db012179f0.png http://puu.sh/oMXYJ/7a9603be13.png '--------------- #org 0x4 setvirtualaddress 0x8000004 lock faceplayer checkflag 0x16B0 virtualgotoif 0x1 0x50 showpokepic 0x198 0x0A 0x03 cry 0x198 0x2 waitcry waitkeypress hidepokepic checkflag 0xD50 virtualgotoif 0x1 0x80 setflag 0xD50 release end '--------------- #org 0x50 showpokepic 0x197 0x0A 0x03 cry 0x197 0x2 waitcry waitkeypress hidepokepic checkflag 0xD50 virtualgotoif 0x1 0x80 setflag 0xD50 release end '--------------- #org 0x80 release end Some flags for emerald I've gathered while researching, just so they don't get lost into nothingness: - badges flags are stored at 0x3fB section 2, badge 1 flag# is 0x867 and badge 8 flag# is 0x86E - Selected lati is stored at 0x5c6 section 2 (bit 0, or 0x01), the flag# is 0x16B0 - EON ticket event flag is stored at 0x49A section 2 (bit 0, or 0x01), the flag# is 0xD50. I know custom scripting in wondercards/mistery event is not the goal of this thread, but I though it was a good example to show what the research has lead to, and also a good example of what the tool I've coded can do.
BlackShark Posted May 10, 2016 Posted May 10, 2016 Only downside is that I don't think there's a way to add the record mixing item data trough scripting You could do that with writebytetooffset "value" "RAM offset" For example the US Eon Ticket. writebytetooffset 0x33 0x20291B0 writebytetooffset 0x00 0x20291B1 writebytetooffset 0x00 0x20291B2 writebytetooffset 0x00 0x20291B3 writebytetooffset 0x01 0x20291B4 writebytetooffset 0x1E 0x20291B5 writebytetooffset 0x13 0x20291B6 writebytetooffset 0x01 0x20291B7
Recommended Posts