View Full Version : GTS: website research
Vetle
Apr 14th, 2010, 09:46 AM
Btw made this (for fun) http://ziuo.net/portforward :P
but what if u browse the internet? how does the router knows what pc to send it to?
zowayixx
Apr 14th, 2010, 11:51 AM
Very nice, Vlad. Also, my host is crap. They don't respond to any of my emails, and they keep their sites on one IP. Also, it won't let me configure an A or CNAME on my cpanel. Even if I ask for a new IP or CNAME to be activated, they won't respond to emails.
I'm thinking about switching to Linode, unless anyone else has any other better suggestions on VPS servers. =/
Vlad
Apr 14th, 2010, 02:06 PM
but what if u browse the internet? how does the router knows what pc to send it to?
Hehe, well I made that mostly to try and explain why we need port forwarding to make the dnsserver.py and pkmserver.py (DNS and HTTP applications) work, why some get errors and are unable to connect to their DNS server or their HTTP server when behind a router -basically not configured port forwarding.
If you browse the internet, the router contains a table with information about where to send your packet (browsing the net is TCP port 80 packets). It sends your packet to the nearest router it knows is in the right "direction", then that router continues the same process -sending that packet to the next router closer to your target host, and so on until the host is reached. On top of this (application layer) we have services, in this case DNS (http://en.wikipedia.org/wiki/Domain_Name_System#Address_resolution_mechanism).
Squiggles
Apr 14th, 2010, 04:38 PM
To start, Awesome work. I have wanted a full pokedex since i first played Red(never happened ><) and this really gives me a chance now.
More than that, i saw a post some pages ago dealing with GTS_Nuker. As i read it sounded like it can send Multiple pkms in one connect? or is it Multiple Connections for a single hosted .PKM?
datoneguy
Apr 14th, 2010, 04:49 PM
Multiple Connections from a single hosted .pkm
None of them can send multiple pokemon to the same person yet because they break after you see the pokemans.
Tritlo
Apr 14th, 2010, 05:05 PM
I experienced, when i connected with my SoulSilver and got an event pokémon, that I was not booted from the server. I could access the normal GTS menu, but without anyother trainers. I was using the GTS_Nuke combo for only myself.
M@T
Apr 14th, 2010, 05:29 PM
You're lucky then, cuz my friends and I always have a BSOD when using Platinum or HG/SS (actually, it worked once for me).
If you can access the GTS menu when using a fake GTS server, then never send a Pokémon from the game, because you can't take it back, it'll be lost between time and space.
Squiggles
Apr 14th, 2010, 05:46 PM
Alright thanks. (And darnit)
Also a point that i am sure has been brought up. If we know how the .PKM is formatted and encoded, can we not also extract one via the GTS?
I am working with a limited know how of the system but as i understand you for all intents and purposes send a .pkm to a server with some fiddly bits of code about trade requirements.
Shouldn't extracting the .pkm out of this be fairly simple?
chinedu11
Apr 14th, 2010, 05:46 PM
could somebody help me port forward port 53? I tried the same thing i did with 80 but only 80 is open. 53 is still closed/unactivated
イーブイ
Apr 14th, 2010, 05:52 PM
Can we get the tech support out of the *research* thread?
Here is some data, courtesy of.. mignot? Someone from IRC.
Sorted by encrypted.
0x pid 0b pid 0x encrypted 0b encrypted
0d593d2b 00001101010110010011110100101011 4a 3b 2c d3 ad 0c 39 03 01001010001110110010110011010011101011010000110000 11100100000011
0f4a4b55 00001111010010100100101101010101 4a 3b 2c e4 48 ac 3d 2e 01001010001110110010110011100100010010001010110000 11110100101110
01050000 00000001000001010000000000000000 4a 3b 2c 1b 9e 9b cb 8e 01001010001110110010110000011011100111101001101111 00101110001110
01000302 00000001000000000000001100000010 4a 3b 2c 1b 9c 98 ce 8e 01001010001110110010110000011011100111001001100011 00111010001110
00000005 00000000000000000000000000000101 4a 3b 2c 18 5c 02 8c c4 01001010001110110010110000011000010111000000001010 00110011000100
00000004 00000000000000000000000000000100 4a 3b 2c 19 10 68 4a f9 01001010001110110010110000011001000100000110100001 00101011111001
00000002 00000000000000000000000000000010 4a 3b 2c 1f 88 36 c6 64 01001010001110110010110000011111100010000011011011 00011001100100
00000001 00000000000000000000000000000001 4a 3b 2c 1c 44 9d 84 99 01001010001110110010110000011100010001001001110110 00010010011001
00000003 00000000000000000000000000000011 4a 3b 2c 1e cc cf 08 2e 01001010001110110010110000011110110011001100111100 00100000101110
10003020 00010000000000000011000000100000 4a 3b 2c 7d c0 5b 03 f2 01001010001110110010110001111101110000000101101100 00001111110010
10500000 00010000010100000000000000000000 4a 3b 2c 7d e0 6b 53 f2 01001010001110110010110001111101111000000110101101 01001111110010
0f5eee8a 00001111010111101110111010001010 4a 3b 2d f8 33 ea 0c 28 01001010001110110010110111111000001100111110101000 00110000101000
0daf3ecc 00001101101011110011111011001100 4a 3b 2d db 92 45 fc 9b 01001010001110110010110111011011100100100100010111 11110010011011
0d6b85f2 00001101011010111000010111110010 4a 3b 2d f2 99 7a 8d 19 01001010001110110010110111110010100110010111101010 00110100011001
0f64931f 00001111011001001001001100011111 4a 3b 2d 38 e6 a5 ab 0f 01001010001110110010110100111000111001101010010110 10101100001111
0f497b4f 00001111010010010111101101001111 4a 3b 2d 3f 65 10 40 90 01001010001110110010110100111111011001010001000001 00000010010000
0f656682 00001111011001010110011010000010 4a 3b 2d 41 4e 7f 9b 99 01001010001110110010110101000001010011100111111110 01101110011001
0f2ac754 00001111001010101100011101010100 4a 3b 2d 49 f0 96 c4 30 01001010001110110010110101001001111100001001011011 00010000110000
0bdd5ba0 00001011110111010101101110100000 4a 3b 2d fe 8f 89 13 9a 01001010001110110010110111111110100011111000100100 01001110011010
098fbd52 00001001100011111011110101010010 4a 3b 2d ba 51 4f da 0c 01001010001110110010110110111010010100010100111111 01101000001100
0f4ab199 00001111010010101011000110011001 4a 3b 2d be 76 3f 07 d5 01001010001110110010110110111110011101100011111100 00011111010101
0da9a07a 00001101101010011010000001111010 4a 3b 2d cd 6a d6 4e 8e 01001010001110110010110111001101011010101101011001 00111010001110
0a99faed 00001010100110011111101011101101 4a 3b 2e 97 df 57 47 e3 01001010001110110010111010010111110111110101011101 00011111100011
M@T
Apr 14th, 2010, 06:19 PM
Alright thanks. (And darnit)
Also a point that i am sure has been brought up. If we know how the .PKM is formatted and encoded, can we not also extract one via the GTS?
I am working with a limited know how of the system but as i understand you for all intents and purposes send a .pkm to a server with some fiddly bits of code about trade requirements.
Shouldn't extracting the .pkm out of this be fairly simple?
When the encryption process is fully decrypted, that should be possible.
I think that the final goal is to have a fully-functionnal fake GTS server that works with .pkm, that would be really great.
could somebody help me port forward port 53? I tried the same thing i did with 80 but only 80 is open. 53 is still closed/unactivated
Be careful, online port-checkers don't work with UDP ports.
If you did the same thing with TCP 80 and UDP 53, there's no reason for it to fail.
イーブイ
Apr 14th, 2010, 06:39 PM
The header is 0x4a3b2c1d ^ sum(bytes).
gryphhg
Apr 14th, 2010, 07:10 PM
Hello all,
I've been reading this thread and forgive me if I've missed something, but there are several references to a "GTS Nuker" method of sending pkm files, but no download links. Can anyone point me to where to obtain this version of the script? I understand it's threaded and allows multiple transfers as opposed to the Python script which ends after each successful transaction.
Thanks for your time,
Gryphhg
chinedu11
Apr 14th, 2010, 07:17 PM
^ Me too
M@T
Apr 14th, 2010, 07:22 PM
Here it is (http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=71061&viewfull=1#post71061).
chinedu11
Apr 14th, 2010, 07:25 PM
Here it is (http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=71061&viewfull=1#post71061).
Thanks. So when i used it and entered my ip i got a 0.0.0.0.53. What do i do then?
gryphhg
Apr 14th, 2010, 07:26 PM
M@T: Thanks, this is exactly what I was looking for!
Tritlo
Apr 14th, 2010, 07:40 PM
I'm gonna try to figure out the Wonder Card problem. Now, when the gameboy connects to the WFC, trying to get a mystery gift, it contacts a server called dls1.nintendowifi.net. First it goes through nintendo's NAS, and verifies that the connectee is indeed a DS. We need to reroute the dls1.nintendowifi.net using the dns server script (Shouldn't be a problem, just a small change in the code frome gamestat2 to dls1) and make a script to broadcast wondercard info.
イーブイ
Apr 14th, 2010, 07:46 PM
Messages with the same sums of bytes have the same "key".
Progress.
M@T
Apr 14th, 2010, 07:52 PM
Thanks. So when i used it and entered my ip i got a 0.0.0.0.53. What do i do then?
I said it already :
"DNS server started on 0.0.0.0:53" only means that the socket was successfully bound on the port 53 of your computer, this is NOT the equivalent of sendpkm.py's "Please set your DS's DNS server to 192.168.1.7" (for example).
This was more for debugging purpose actually.
So, step by step, you must :
- Know your external IP address, go here (http://www.whatismyip.com/) to have it for example
- Launch DNS_Server.exe, and input that IP when asked
- You are done with the DNS part, now start SendPKM.exe with a 236-byte .pkm or .bin file (you can drag and drop it on the .exe, that's much easier). It should say that it is ready and waiting for a connection.
That's all.
If both UDP port 53 and TCP port 80 are forwarded and reachable from the Internet, then any person who sets your external IP as his DS's primary DNS server and connects to the GTS should receive the .pkm you chose.
But remember that it may not work when connecting with a DS in the same network, in that case you have to replace your external IP by your computer's private IP in both DNS_Server.exe and your DS's DNS settings.
Kowiz
Apr 14th, 2010, 11:36 PM
I didn't like having to sit at the computer, and manually change the pokemon I wanted.
So, I made this simple .bat script, using LordLandon's script(post #43).
Place the .bat into the same directory as the sendpkm.py script.
Have a pkm folder inside the same directory, and put your *.pkm files inside that folder
It cycles through the whole directory, then loops back to the beginning
@@echo off
:start
@@dir pkm\*.pkm /A:-D /b /n /O:N > dir.txt
@@setlocal enabledelayedexpansion
@@FOR /F "usebackq delims=" %%G IN ("dir.txt") DO @@ (
@@Set Line=%%G
@@Set Line=!Line:~0,-4%!
@@echo File is now: pkm\!Line!.pkm
@@C:\Python26\Python.exe sendpkm.py pkm\!Line!.pkm
)
@@goto start
Interestingly enough, when I started using my .bat, instead of throwing me an error, it sent me to the GTS menu, after I received the pokemon. Though, probably just a coincidence.
magical
Apr 15th, 2010, 03:04 AM
So.
As mentioned earlier in the thread, we now know how the checksum is obsfuscated, thanks to Jalada and nicholas on IRC. (That is, by xoring it with 0x4a3b2c1d.)
By looking for the magic number 0x4a3b2c1d, i was able to find where in the ROM the encryption takes place, and to pinpoint the encryption algorithm. I'm sure you will not be surprised to learn that it uses yet another LCG (http://en.wikipedia.org/wiki/Linear_congruential_generator), which i'm naming the GRNG, for "GTS Random Number Generator". (Terrible, i know. Also it sounds a bit like "grunge".)
Ladies and Gentlemen, the GRNG:
GRNG[n+1] = (GRNG[n] * 0x45 + 0x1111) & 0x7fffffff
The data is encrypted by xoring each byte with the low byte of the high word of the corresponding GRNG value, like so:
ciphertext[n] = plaintext[n] ^ ((GRNG[n] >> 16) & 0xff)
The checksum is used to seed the GRNG:
GRNG[0] = checksum | (checksum << 16)
(Oh, and for anyone interested, the routine for seeding the GRNG is at 0x02211E60 in Diamond, and the routine for advancing it is at 0x02211E70. These routines are found in overlay 79.)
So there you have it. I guess the floodgates are open. And now that i've figured out both the challenge-response hash and the data encryption, i'm kind of done with this GTS stuff. Honestly though, i'm a little worried about the SSL connection that takes place. Since we don't know much about it, and aren't even close to being able to spoof it, that means that when Nintendo eventually shuts down the official GTS server, all the fan servers will go with it. Enjoy it while it lasts.
And, as a parting note, i'm interested in seeing where the Wonder Card spoofing research goes.
Peace.
イーブイ
Apr 15th, 2010, 03:07 AM
I'll have a simple GTS server running as part of veekun by the end of the weekend.
AngelSL
Apr 15th, 2010, 03:56 AM
Very nice, Vlad. Also, my host is crap. They don't respond to any of my emails, and they keep their sites on one IP. Also, it won't let me configure an A or CNAME on my cpanel. Even if I ask for a new IP or CNAME to be activated, they won't respond to emails.
I'm thinking about switching to Linode, unless anyone else has any other better suggestions on VPS servers. =/
I don't think BIND (at least I think that's what your host is using) allows you to specify CNAMEs for domains not in your domain's zone.
イーブイ
Apr 15th, 2010, 01:35 PM
BIND is happy to be a master zone for whatever domain you want, whether or not it's actually acting as the main nameserver for that domain.
eevee@tekkanin ~ $ host gamestats2.gs.nintendowifi.net
gamestats2.gs.nintendowifi.net has address 207.38.11.146
eevee@tekkanin ~ $ host gamestats2.gs.nintendowifi.net 72.232.182.50
gamestats2.gs.nintendowifi.net has address 72.232.182.50
イーブイ
Apr 15th, 2010, 01:44 PM
Also, for the hacker crowd, this is a drop-in rewrite of pkmlib.py that might be a bit easier to work with: http://eevee.pastebin.com/fP4YH33Q
DirtySyko
Apr 15th, 2010, 05:40 PM
I've read through this entire thread, downloaded and tried out everything so far, and still cannot make it so other people can connect and receive Pokemon from me. I have no problem sending Pokemon on my PC to my DS, I just can't get it to work for others.
I have a static IP, I'm pretty sure I did everything right when it comes to opening and forwarding ports, but any port checker I use tells me 53 and 80 are closed. The error message I always get is 52100. I'm at a loss of what I could be doing wrong. I'm starting to think maybe my ISP just doesn't allow port 53 and 80 to be open. If that's the case, what do I do?
I'm hoping I'm just making an error somewhere with the ports. Here is a screen shot of my configurations, can anyone tell me what I may be doing wrong?
http://img594.imageshack.us/img594/2056/portshit.jpg
M@T
Apr 15th, 2010, 06:10 PM
Try opening UDP only for port 53 and TCP only for port 80, I don't know if it'll help you but it worked for me.
DirtySyko
Apr 15th, 2010, 06:39 PM
Try opening UDP only for port 53 and TCP only for port 80, I don't know if it'll help you but it worked for me.
I ended up trying out Port Triggering, and I managed to get 53 TCP and UDP open, and 80 UDP open, but 80 TCP is still closed. I tried again online with people, and I thought it was working, but everyone says they just got sent back to the lobby. This is the screen shot of what was happening though. What was I doing wrong this time? Should I still need to try out this opening UDP only for port 53 and TCP only for port 80 method?
http://img717.imageshack.us/img717/8973/pokes.jpg
M@T
Apr 15th, 2010, 06:55 PM
DNS server is getting requests, that's a beginning.
When you do a port 80 check on your IP, is SendPKM.exe showing an error saying that it got a wrong request ?
If nothing happens, then try the method I told you, open TCP only for port 80 instead of "Both".
That worked for me with port 53, it didn't work when I opened both TCP and UDP, but I solved it by opening UDP only, idk why.
hedgeberg
Apr 15th, 2010, 06:57 PM
hey, i've been having lots of trouble with GTS_nuker. The problem is that When i try to "check gts status" it quickly give me an error screen, like the DS won't eve connect to my computer. IPs are correct, and both the fake GTS program and the Send PKM program are open. What do i have to do?
EDIT: just noticed that the Send PKM file seemed to get a connection, but didn'y think it was a ds.
M@T
Apr 15th, 2010, 07:00 PM
hey, i've been having lots of trouble with GTS_nuker. The problem is that When i try to "check gts status" it quickly give me an error screen, like the DS won't eve connect to my computer. IPs are correct, and both the fake GTS program and the Send PKM program are open. What do i have to do?
Do you see some logs on the console of the programs ?
DirtySyko
Apr 15th, 2010, 07:39 PM
DNS server is getting requests, that's a beginning.
When you do a port 80 check on your IP, is SendPKM.exe showing an error saying that it got a wrong request ?
If nothing happens, then try the method I told you, open TCP only for port 80 instead of "Both".
That worked for me with port 53, it didn't work when I opened both TCP and UDP, but I solved it by opening UDP only, idk why.
When I try to use the checker with SendPKM.exe running I get a message saying "couldn't test port 80 because some other app has this port locked."
I also tried what you said and it didn't make a difference. And now, for some bizarre reason, port 53 TCP/UDP both show up as closed again, and I'm pretty sure I didn't change anything for it to suddenly do this.
siiiigh
DirtySyko
Apr 15th, 2010, 08:41 PM
I have come to the conclusion that it has to be my ISP that does not want me to run servers, so Port 80 TCP is blocked. I can still use it for outgoing requests though, like playing Xbox Live or Skype, just not able to have people connect to my network.
So, is there any other method I can use to get people to connect to my network for this, or will my ISP have alternative packages I might be able to get from them that allows me to have port 80 TPC opened, or will I have to do something like purchase a domain? Not exactly sure how all of this works.
hedgeberg
Apr 15th, 2010, 09:11 PM
Do you see some logs on the console of the programs ?
yeah. Red text that says something like "connection attempted, source was not DS".
datoneguy
Apr 16th, 2010, 01:40 AM
Not sure how relevant this is Vlad, but I keep getting the following:
http://img255.imageshack.us/img255/8553/capturekj.png
Vlad
Apr 16th, 2010, 08:18 AM
Vlad wants to help but has computer problems, it's offtopic so I won't go deep except that using Netbeans (while saving a project) my 2nd partition got corrupt (semi, works but if I go to my project folder I get BSOD). Atm trying to repair it using chdsk and recovery console.
About the issue it you are having datoneguy, the next step is contacting nas.nintendowifi.net and perhaps it couldnt not get in touch with it and returned a error, or perhaps the 4.2.2.2 dns server I use to query did not respond properly so the app shutdown. I would dare saying it's a port issue but not sure, can't really check.
Btw like Veekun said, I wonder if we can get a 2nd thread for support, but for it to work we must like add a notificating when you make a post on this thread that "support is this way" -point people in the right direction. :D Would be nice to move 15 of the pages in the support thread and keep this for research related things. ;)
Seurun
Apr 16th, 2010, 10:55 AM
Why it doesn't work, when I use a party file?
datoneguy
Apr 16th, 2010, 02:57 PM
Vlad wants to help but has computer problems, it's offtopic so I won't go deep except that using Netbeans (while saving a project) my 2nd partition got corrupt (semi, works but if I go to my project folder I get BSOD). Atm trying to repair it using chdsk and recovery console.
About the issue it you are having datoneguy, the next step is contacting nas.nintendowifi.net and perhaps it couldnt not get in touch with it and returned a error, or perhaps the 4.2.2.2 dns server I use to query did not respond properly so the app shutdown. I would dare saying it's a port issue but not sure, can't really check.
Btw like Veekun said, I wonder if we can get a 2nd thread for support, but for it to work we must like add a notificating when you make a post on this thread that "support is this way" -point people in the right direction. :D Would be nice to move 15 of the pages in the support thread and keep this for research related things. ;)
If anyone decides to make a thread for it, for sure I'll be all up in it.
I'd make one, but I really think it should be something made by one of the people actually releasing stuff here because as you guys release new stuff it should go in the first post in that thread.
Seurun
Apr 16th, 2010, 03:10 PM
I checked it, and it said UPnP is turned off, but when I turned it on, I couldn't use my Wi-Fi...Can someone help me?
ezxen
Apr 16th, 2010, 04:59 PM
Hey for those of you who want Sendpkm reload on close i made a re starter and i thought i share it with every one. you just put the folder path to where the sendpkm.py file is and then hit the green poke ball to start sendpkm and auto restart if it closes and the red to stop auto stop. i also set
pathtopoke=raw_input() to
pathtopoke = "full path to pkmfile :pkm/charmander.pkm" so on restart it auto loads the pkm . Thought this would be useful for any one wanting to host events and wanted to keep the program running so no worry of it going down.It also minimizes to system tray
http://img51.imageshack.us/img51/2145/sendpkm1.pnghttp://img695.imageshack.us/img695/6079/sendpkm2.png
Send PKM restarter - OLD (http://filebeam.com/a1dddffd8a2861e81baa4effbfa0485f)
New Version With Download counter and direct sendpkm.py editor (http://filebeam.com/fcbd3c6f6de42687faa43655a16243c9)
datoneguy
Apr 16th, 2010, 05:23 PM
Very nice program, but you may want to read through the thread, M@T released a GTS_Nuker, which is threaded and allows for multiple pokemon to be sent at the same time even.
ezxen
Apr 16th, 2010, 05:44 PM
yeah ive started form the begenning a little while ago on page 8 where m@t just released it
Arjun - PeeB4UGo
Apr 16th, 2010, 06:50 PM
More GTS_Nuker problems:
I run DNS_Server.exe, inputting my external IP address as normal. I fire up SendPKM, like normal. I connect to the GTS, but the connection drops, and gives me a 52100 error, not normal. All the while, on the DNS_Server.exe screen, I see the DS requesting conntest.nintendowifi.net 3 times before the connection drops. Does anybody have a solution to this?
chinedu11
Apr 16th, 2010, 07:04 PM
More GTS_Nuker problems:
I run DNS_Server.exe, inputting my external IP address as normal. I fire up SendPKM, like normal. I connect to the GTS, but the connection drops, and gives me a 52100 error, not normal. All the while, on the DNS_Server.exe screen, I see the DS requesting conntest.nintendowifi.net 3 times before the connection drops. Does anybody have a solution to this?
Disable your firewall or open port 80
Arjun - PeeB4UGo
Apr 16th, 2010, 07:08 PM
That's already the case.
chinedu11
Apr 16th, 2010, 07:11 PM
That's already the case.
You already done that? Do you have skype running?
Arjun - PeeB4UGo
Apr 16th, 2010, 07:15 PM
Nope. If I had Skype running, then SendPKM.exe would freeze immediately upon opening, and that's not the case here.
chinedu11
Apr 16th, 2010, 07:19 PM
Nope. If I had Skype running, then SendPKM.exe would freeze immediately upon opening, and that's not the case here.
Try the python one
Arjun - PeeB4UGo
Apr 16th, 2010, 07:23 PM
Try the python one
The python one doesn't work either.
chinedu11
Apr 16th, 2010, 07:27 PM
The python one doesn't work either.
What does it say? 52100? Do you have steam? Disable firewall, Pots 80. Restart computer?
Security software on your computer may be stopping this from working, try temporarily disabling any security/firewall programs. Otherwise check your router's settings to see if it has any sort of LAN security policies in effect. Follow the instructions in the question above to see ipconfig info, copy down the "default gateway" address into the address bar of a browser and press enter. A login box should come up. The username should be "admin" or blank, and the password can be anything from "admin" to "administrator" "pass" to "password" or "password1", or something else if you've set it differently. Ask whoever set up the router what the password to get into it is, or check this page. http://www.phenoelit-us.org/dpl/dpl.html Failing that, try it from a different computer. Also try opeaning port 80. Not sure if that will help but it’s worth a shot.
Arjun - PeeB4UGo
Apr 16th, 2010, 07:31 PM
What does it say? 52100? Do you have steam? Disable firewall, Pots 80. Restart computer?
Security software on your computer may be stopping this from working, try temporarily disabling any security/firewall programs. Otherwise check your router's settings to see if it has any sort of LAN security policies in effect. Follow the instructions in the question above to see ipconfig info, copy down the "default gateway" address into the address bar of a browser and press enter. A login box should come up. The username should be "admin" or blank, and the password can be anything from "admin" to "administrator" "pass" to "password" or "password1", or something else if you've set it differently. Ask whoever set up the router what the password to get into it is, or check this page. http://www.phenoelit-us.org/dpl/dpl.html Failing that, try it from a different computer. Also try opeaning port 80. Not sure if that will help but it’s worth a shot.
All that I have is Windows Firewall, yeah 52100, no Steam. Restarted computer, same effect.
and haha copy+paste much?
I specifically set up my router so that this would work. There's no problems router-side.
chinedu11
Apr 16th, 2010, 07:32 PM
Disable windows firewall.
Arjun - PeeB4UGo
Apr 16th, 2010, 08:22 PM
All that's changed is that the number of times it requests conntest.nintendowifi.net doubles. Otherwise, there's no effect.
No change.
EDIT:
I found this blog post (http://techrepublic.com.com/5208-1035-0.html?forumID=102&threadID=309252), and after reading it, I thought, OK... just change the DNS back to the default, and then connect to legit GTS, then change DNS back to my own.
That didn't work, nor did connecting to legit GTS. So now I'm thoroughly confused.
Exotahu
Apr 16th, 2010, 09:52 PM
I too am having connection issues. I have it all forwarded in my router, ports 53 and 80, forwarded to the computer.
I am using the python script. One computer I tried it on does have steam running, the other doesn't. THe one with steam runs vista 64 bit and the one without 32 bit XP.
I tried disabling the firewall on the XP machine. Still no dice. My router is a Netgear MR814v2.
Does anybody know what I could be doing wrong here?
I used the tool, and it said everything was okay.
Obtuse
Apr 16th, 2010, 10:14 PM
It was giving me 52100 if I had closed the command prompt that gave you the DNS before actually connecting to the GTS. I assume you're not closing the prompt?
Arjun - PeeB4UGo
Apr 16th, 2010, 10:26 PM
Nope, the prompt is staying open all the time.
datoneguy
Apr 16th, 2010, 10:52 PM
All that's changed is that the number of times it requests conntest.nintendowifi.net doubles. Otherwise, there's no effect.
No change.
EDIT:
I found this blog post (http://techrepublic.com.com/5208-1035-0.html?forumID=102&threadID=309252), and after reading it, I thought, OK... just change the DNS back to the default, and then connect to legit GTS, then change DNS back to my own.
That didn't work, nor did connecting to legit GTS. So now I'm thoroughly confused.
Okay, so it's actually showing in your DNS server that it's trying to connect to conntest.nintendowifi.net (buypass) but it's just not connecting?
I had this problem previously where it would try twice, fail, and then attempt.
Try restarting both your modem and PC.
Saving that, set your Secondary DNS to your Default Gateway.
Exotahu
Apr 16th, 2010, 11:08 PM
New question as I fixed the other thing and got it to distribute.
However, what I distributed was a pokemon ranch Mew. What they received was a level 122 Poisoned Mew with a non existent ball capsule that had question marks for stats.
How do I fix it so it distributes correctly?
datoneguy
Apr 16th, 2010, 11:34 PM
Don't use box pokemon. That only happens when you use box pokemon, make sure your file is 236 bytes.
Exotahu
Apr 17th, 2010, 12:52 AM
DON'T use box pokemon?
I thought we weren't supposed to use Party pokemon?
イーブイ
Apr 17th, 2010, 03:08 AM
It is done.
DNS: 72.232.182.50
Simple roundtripping GTS. Deposit a Pokémon, and next time you check GTS status it'll come back to you. And no blue screen!
No searching, etc., and I don't save your Pokémon after you take it back.
(Disclaimer: Please don't put anything important in here; this is a proof of concept, and I reserve the right to nuke everything at any time.)
EdwardQ
Apr 17th, 2010, 03:24 AM
It is done.
DNS: 72.232.182.50
Simple roundtripping GTS. Deposit a Pokémon, and next time you check GTS status it'll come back to you. And no blue screen!
No searching, etc., and I don't save your Pokémon after you take it back.
(Disclaimer: Please don't put anything important in here; this is a proof of concept, and I reserve the right to nuke everything at any time.)
I just checked it out and it works flawlessly. This stuff looks so promising cant wait for more stuff to happen with it.
good work on this and everything else that been accomplished in this thread
chinedu11
Apr 17th, 2010, 05:14 AM
ok. i port forwarded my ports and done everything but people still cant connect to my gts server
Arjun - PeeB4UGo
Apr 17th, 2010, 09:43 AM
Okay, so it's actually showing in your DNS server that it's trying to connect to conntest.nintendowifi.net (buypass) but it's just not connecting?
I had this problem previously where it would try twice, fail, and then attempt.
Try restarting both your modem and PC.
Saving that, set your Secondary DNS to your Default Gateway.
OK, that gets me to regular GTS. But I still can't send anything over.
EDIT: I'm able to use sendpkm.py, but not SendPKM.exe with DNS_Server.exe
krizz02
Apr 17th, 2010, 02:55 PM
Welp, having an issue. Using GTS Nuker, works perfectly from my PC to my DS when inputing the host PC as its local IP address. When I use the external IP address I've been unable to get it to work, both to my DS and my friends. It gets to nas.nintendowifi.net and just keeps looping there. Hard to explain in words, so I'll just attach an image:
http://img341.imageshack.us/img341/3005/dnsd.jpg
Never gets past that, never attempts spoofing. Any ideas?
Tritlo
Apr 17th, 2010, 09:02 PM
I was wondering, would there be anyway of receiving a deposited pokémon, and save it as a .pkm file?
This would come in handy when trying to figure out ones SID, as you'd simply look it up!
Kowiz
Apr 17th, 2010, 11:47 PM
Didn't like being forced to turn off my webserver, just to turn on the GTS.
edited the sendpkm.py to open up port 81 instead of 80
and made the .htaccess file to redirect pokemondpds to port 81
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^pokemondpds/(.*) http://%{SERVER_NAME}:81/pokemondpds/$1
DirtySyko
Apr 18th, 2010, 05:59 AM
Didn't like being forced to turn off my webserver, just to turn on the GTS.
edited the sendpkm.py to open up port 81 instead of 80
and made the .htaccess file to redirect pokemondpds to port 81
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^pokemondpds/(.*) http://%{SERVER_NAME}:81/pokemondpds/$1
Would this make it so people like me, who have port 80 blocked by ISP, able to send Pokemon to others? If so, can you host this file so I can download it, because I don't know much about editing these things myself.
ezxen
Apr 18th, 2010, 08:22 AM
Awesome thank you for this really appreciated
Kowiz
Apr 18th, 2010, 11:16 AM
Would this make it so people like me, who have port 80 blocked by ISP, able to send Pokemon to others? If so, can you host this file so I can download it, because I don't know much about editing these things myself.
Well, it would probably require getting an external webhost at port 80, and instead of pointing to port 81 on the external webhost, have it point to your IP at port 81
As long as you're properly forwarding port 81, I think it would work fine.
Would require some minor editing of the file though.
d0ck
Apr 18th, 2010, 02:04 PM
which file would need to be edit? i set up an account for redirect at no-ip
okay so i selected port redirect 80
next box i put my ip address and when port to forward it to i sent my computer up on dmz so port 81 is open how do i get the program that sends the pokemon to actually do it? the dns part works fine i see when people try to connect but they never get a pokemon it boots them to counter
chinedu11
Apr 18th, 2010, 03:21 PM
It tells me to set my dns on 0.0.0.0.0.
Kamek
Apr 18th, 2010, 05:32 PM
For anyone interested, I did a quick edit of the GTS Nuker program that accepts multiple command line arguments. Whenever someone attempts to connect, it will select a random PKM and send it, and keep a tally of how many of each Pokemon is sent out. Pretty basic stuff for now.
(The zip only includes the modified GTS Nuker, not the DNS server)
Kamek
Apr 18th, 2010, 05:38 PM
It is done.
DNS: 72.232.182.50
Simple roundtripping GTS. Deposit a Pokémon, and next time you check GTS status it'll come back to you. And no blue screen!
No searching, etc., and I don't save your Pokémon after you take it back.
(Disclaimer: Please don't put anything important in here; this is a proof of concept, and I reserve the right to nuke everything at any time.)
Works great! Dumped a Pikachu in there and got it right back.
ILJICH
Apr 18th, 2010, 06:28 PM
It seems that 0x34 byte in additional GTS data is determining skin during searching. But it works only with specific values:
05 - bug catcher
0B - ace trainer
1F - some tought guy (dont know exactly)
32 - ruins explorer
33 - karate guy
3E - dont know exactly too
46 - this one too
In dec: 5,10,31,50,51,62,70. And I cant see any rule here yet.
Other values in range 00-83 gives default skin. (I hadnt tested others yet)
Also, other 3 trailing bytes seems to have no role here.
KazoWAR
Apr 18th, 2010, 11:06 PM
It seems that 0x34 byte in additional GTS data is determining skin during searching. But it works only with specific values:
05 - bug catcher
0B - ace trainer
1F - some tought guy (dont know exactly)
32 - ruins explorer
33 - karate guy
3E - dont know exactly too
46 - this one too
In dec: 5,10,31,50,51,62,70. And I cant see any rule here yet.
Other values in range 00-83 gives default skin. (I hadnt tested others yet)
Also, other 3 trailing bytes seems to have no role here.
It could be the trainer's wifi avatar. like how you see yours friends in union room.
jondeezie
Apr 19th, 2010, 07:35 AM
i can connect to the the legit gts, and i can connect to other peoples, but when i try to connect to mine, my ds wireless logo goes red to green to red, with a 52100 error, anyone can help me please?
Seurun
Apr 19th, 2010, 09:18 AM
I think the firewall is turned on. Turn it off! And sometimes it doesn't work for me too...then I just restart the DS and the senpkmn tool. Then it works.
rennaT
Apr 19th, 2010, 06:52 PM
It is done.
DNS: 72.232.182.50
Simple roundtripping GTS. Deposit a Pokémon, and next time you check GTS status it'll come back to you. And no blue screen!
No searching, etc., and I don't save your Pokémon after you take it back.
(Disclaimer: Please don't put anything important in here; this is a proof of concept, and I reserve the right to nuke everything at any time.)
That's really awesome! So might this be used to transfer pokemon from the DS to the computer and, if so, when might you allow us access to your program?
Vlad
Apr 19th, 2010, 07:40 PM
Perhaps Projectpokemon could run a GTS server, something like what I am trying to make at http://vlacula.no-ip.com/pokemon/gts/ (if my pc is on the link will work). I guess once events are up it would be neat to have the possibility to get the Pokemon trough PP's custom GTS and with a site interface vote for what event the community want's to download. Going to release the sources soon, when I manage to get it stable. No it's not easy to use but it's at least pretty easy to configure if you know the basics of web-hosting.
This ain't really research but more like the result of it, hehe. Super Veekun, that you managed to make your own server too -it's cool. ;) Easy "trade evolution" for those unable to edit their saves with Pokesav.
chinedu11
Apr 19th, 2010, 11:15 PM
Thanks. With that pokemon randomizer i gave awat 1000+ pokemon. Thanks again :D
tsanth
Apr 19th, 2010, 11:17 PM
So there you have it. I guess the floodgates are open. And now that i've figured out both the challenge-response hash and the data encryption, i'm kind of done with this GTS stuff. Honestly though, i'm a little worried about the SSL connection that takes place. Since we don't know much about it, and aren't even close to being able to spoof it, that means that when Nintendo eventually shuts down the official GTS server, all the fan servers will go with it. Enjoy it while it lasts.
Guess it's time to work on some homebrew servers while the going's good.
Thank you for your research.
ezxen
Apr 20th, 2010, 01:18 AM
ezxen.game-server.cc/gts Is mine im changing out pokemon every two days
nyanya
Apr 20th, 2010, 04:36 PM
hello, I'm Japanese pokemon fan.
I was reserched GTS and BattleTower Wi-Fi system from 2007.
then calc hash, crypt method, and protocol revealed.
but, I thought that protocol published is very dangerous.
I decided that protocol was secret.
But however, that protocol published by magical and イーブイ.
I changed my thinking.
I'm few knowledge write down.
<pid>
called GSPID in "Metroid Prime: Hunters".
pid = friend code 12 digit & 0x7FFFFFFF.
ex. 0773 6429 1465 -> 54880137 (0x03456789)
<The extra 56 bytes are GTS-specific data>
0x10 : Trainer gender. male:0, female:1
0x35 : exchanged flag.
0x36 : rom version. 0x0A:Diamond, 0x0B:Pearl, ...
0x37 : rom language. 1:JPN, 2:ENG, 3:FRA, ...
<search query>
0x01-02 : Pokemon NO.
0x03 : gender. 1:male, 2:female, 3:both
0x04 : LV min.
0x05 : LV max.
0x06 : always 0.
0x07 : result number. 3,5,7
0x08 : geonet country. (only Pt,HG,SS)
<timestamp>
timestamp is PST(GMT-8:00).
-----
(original Japanese sentence)
こんにちは、私は日本のポケモンファンです。
私は、GTSとバトルタワーのWi-Fi通信を2007年に調べました。
hashの算出方法、データの暗号化方法、プロトコルを解きました。
しかし、私はこれらを公開することは、危険な影響があると考えました。
私は、これらのプロトコルを秘密にすることを決めました。
しかし、プロトコルは、magical氏とイーブイ氏により公開されてしまいました。
私は、もう仕方ないと、考えを改めました。
私が知っている事の少しを書きます。
(以下省略)
Kowiz
Apr 20th, 2010, 06:01 PM
My goal was to make a page, where people could upload their .pkm files, and have a GTS instance start up, let them download the .pkm, and then have the instance shut off. But, I got lazy, and tired from adding checks everywhere. The main base is here though, so it works! If anybody wants to fix it up, go right ahead :P
http://kowiz.cowxp.com/GTSPHP.zip
It goes via IP address, so it may not work correctly if you're connecting to the GTS server on the same LAN
The sendpkm and pokehaxlib were modified to take a 2nd argument, port number
(doesn't contain the cname version)
(probably should have removed the dnsspoof function due to redundancy)
You're suppose to (manually) run a server GTS server on port 81, maybe with the randomizing pkm files
When somebody submits a pokemon, an instance will start up on port 82
Then they connect to the GTS. Via their IP, they are automatically forwarded to port 82, where they receive the pkm, and the port 82 instanced server shuts down.
If port 82 is being taken up by somebody else submitting, and somebody submits a pokemon, it automatically goes to port 83, and starts the instanced server there.
After the instanced servers shut down, the IP is deleted, and it will let people submit from the first port number(82 in this case)
If they don't have a pokemon submitted, then they'll be sent to port 81.
You can modify the .htaccess file to allow for more instances.
You are required to have a webserver with PHP running on port 80.
5P33DY1
Apr 20th, 2010, 07:25 PM
I know this may have already been answered but its hard to go through every single thing... but could someone please explain how to actually 'distribute' the .pkm files to more than one person and would the distribution method work the same for any operating system not just windows (i use linux - fedora)
Dr.Octagonapus
Apr 20th, 2010, 08:09 PM
I think the GTS nuker might do what you want, but I am unsure. (I have not actually tried any of this, as the wireless I use uses WPA instead of WEP)
http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=71061&viewfull=1#post71061
EDIT: also, I think the one I linked too is for if it is on your network, and no over the internet
(this is my first post)
ezxen
Apr 20th, 2010, 11:30 PM
I know this may have already been answered but its hard to go through every single thing... but could someone please explain how to actually 'distribute' the .pkm files to more than one person and would the distribution method work the same for any operating system not just windows (i use linux - fedora)
Use the python script by lordlandon with a auto re starter i made you can find it here http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=74808&viewfull=1#post74808
イーブイ
Apr 21st, 2010, 11:50 AM
Do you really need a restarter...? Just make sendpkm.py not exit after sending the Pokémon off.
ezxen
Apr 21st, 2010, 12:31 PM
Do you really need a restarter...? Just make sendpkm.py not exit after sending the Pokémon off.
mainly made it out of general boredom . When you loose your job and have noting better to do because the economy is failing and your waiting for a few things to happen first before you join the military you get very board.
Also i like to know how many times the pokemon im hosting has bin downloaded
Lyndare
Apr 21st, 2010, 01:40 PM
can you some tutorial on me....
cuz i dont understant or any video tutorial please........
thanks
Lyndare
Apr 21st, 2010, 03:11 PM
i have this problem can you help me...........
http://i42.tinypic.com/2h6xff8.jpg
Zoidian Eve
Apr 21st, 2010, 04:01 PM
OK OK OK I got really lost reading this thread it seems to me that either you guys are trying to make a GTS sever of your own or are having problems getting om to the Nintendo GTS sever.
Vlad
Apr 21st, 2010, 04:30 PM
It's mixed Leon, in short "we" can create a GTS server but most of the replies are about support and port forwarding issues, perhaps some few bugs with the apps we've shared.
Lyndare
Apr 21st, 2010, 04:30 PM
me im having problem on making my own gts so i can get any pokemon...
but when drag and drop the pokemon.pkm to sndpkm.py it only said 0.0.0.0
how can i have a DNS Server?
Obtuse
Apr 21st, 2010, 09:48 PM
i have this problem can you help me...........
http://i42.tinypic.com/2h6xff8.jpg
I think I got that error when the .pkm was a corrupted download. Delete and redownload whatever you tried to put on.
Quote|a
Apr 22nd, 2010, 12:32 PM
OK, there's aaaall this GTSresearch going on, and transferring .pkms is fun and all, but...
Why haven't people started researching Mystery Gift? Surely it connects to Nintendo in the same fashion as the GTS does... But on the computer I'm using I don't have access to hex editing, or else I'd check myself.
But meh, maybe I should be content with just .pkm files for a while... :B
Scarface
Apr 22nd, 2010, 12:45 PM
OK, there's aaaall this GTSresearch going on, and transferring .pkms is fun and all, but...
Why haven't people started researching Mystery Gift? Surely it connects to Nintendo in the same fashion as the GTS does... But on the computer I'm using I don't have access to hex editing, or else I'd check myself.
But meh, maybe I should be content with just .pkm files for a while... :B
As said earlier in the thread from vlad on post #123 The mystery gift may use SSL which is hard to crack and act as the server.
So at this point, There will be no Wondercard Distribution Research.
Latias4Ever
Apr 23rd, 2010, 12:35 PM
Umm I don't know if this was answered yet but I tried to use my Luxray.PKM file on sendpkm.py, but I couldn't drag and drop it, so I had to use "Run...", and when it encoded I got the DNS 127.0.0.1, I tried to put it on my DS and it didn't work, I saw the other replies and tried what they said but it still didn't work, I don't know if it's because my Modem's ports are not Port Forwarded or if it's my Modem itself, I keep getting the error 52100 when I try to connect to the GTS, my Modem is a Cable Modem: Thomson THG540, can anyone help me with this issue please? Thank you in advance.
Scarface
Apr 23rd, 2010, 12:43 PM
try clicking on start then click run. Type in "cmd" then once the command box pops up type in "ipconfig" and hit enter then next to where it says ip address put that in your dns settings on your ds
ezxen
Apr 23rd, 2010, 01:34 PM
Are you useing a router like wireless or direct modem? If its a direct modem Its mostliklygonna use your regular ip takea ,ook at this http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=68886&viewfull=1#post68886
flyingpker
Apr 23rd, 2010, 05:05 PM
I have a problem, my signal is red, then green, then after a minute red again. Someone said earlier that port 53 and 80 need to be open or something. How do you do this? Where do you change port numbers, is that on your IP?
ezxen
Apr 23rd, 2010, 08:58 PM
I have a problem, my signal is red, then green, then after a minute red again. Someone said earlier that port 53 and 80 need to be open or something. How do you do this? Where do you change port numbers, is that on your IP?
are you behind a router?
Rukia-san
Apr 24th, 2010, 12:54 AM
Hello and thank you for the amazing work.<3
I have uploaded Vlad's script on the host I'm using for my website and the only thing that I have is :
No logs has yet been... logged.
Is this normal?
Plus when I tried to connect on the GTS I have this error: 52100
What did I do wrong?
Can someone explain to me how can I connect when I put the folder on a real host?
Thank you in advance.
ILJICH
Apr 24th, 2010, 06:35 PM
As said earlier in the thread from vlad on post #123 The mystery gift may use SSL which is hard to crack and act as the server.
So at this point, There will be no Wondercard Distribution Research.
Well, WC really uses SSL, and I already tried MITM-atack. No results yet(
Honestly, there are few things we can do.
Hard way: we can try to exploit a vulnerability of ssl, which allows to sign our own certificate with NOA key, so DS will trust. Yep, it IS bruteforce, but it can be completed in adequate time.
Easy way: we can try to redirect requests to non-encrypted channel. I don't think that DS will insist using SSL. If so - we can just patch rom and analyse data transferring while others will perform hard way)
Vlad
Apr 24th, 2010, 06:50 PM
Rukia-san I recommend using the simple way: python for both DNS and HTTP server -much easier than that crappy site I made that I only used for debugging. You could try either LordLangdons script #43 (http://projectpokemon.org/forums/showthread.php?780-GTC-website-research&p=67086&viewfull=1#post67086) or mine #129 (http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=72238&viewfull=1#post72238).
Scarface
Apr 25th, 2010, 01:11 AM
Rukia-san I recommend using the simple way: python for both DNS and HTTP server -much easier than that crappy site I made that I only used for debugging. You could try either LordLangdons script #43 (http://projectpokemon.org/forums/showthread.php?780-GTC-website-research&p=67086&viewfull=1#post67086) or mine #129 (http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=72238&viewfull=1#post72238).
Im having some problems with your Script, when i Connect to the GTS it says:
Unable to connect to the GTS.
Returning to the reception counter.
But when i test the connection with both programs running i get a connection successful
and all my ports on my router is open and my firewalls are turned off
and when i run the program it gives me the IP address of my internet company instead of the router but i been connecting with my routers ip in the ds's dns settings because the IP address to the internet company doesnt connect for me
Vlad
Apr 25th, 2010, 07:21 AM
Weird :< but I feel such pain in my chest that I contribute and keep the support alive in this thread when we have a separate one for "help me..." questions. :(
Scarface
Apr 25th, 2010, 07:32 AM
I never knew there was a seperate thread for help
Latias4Ever
Apr 25th, 2010, 09:23 AM
try clicking on start then click run. Type in "cmd" then once the command box pops up type in "ipconfig" and hit enter then next to where it says ip address put that in your dns settings on your ds
I tried to do that and got the error code 52200... Does my modem have anything to do with this problem?
Are you useing a router like wireless or direct modem? If its a direct modem Its mostliklygonna use your regular ip takea ,ook at this http://projectpokemon.org/forums/showthread.php?780-GTS-website-research&p=68886&viewfull=1#post68886
This works as both a wireless router and a cable modem. And I've tried doing something like that but for some reason it didn't work.
flyingpker
Apr 25th, 2010, 12:43 PM
are you behind a router?
Umm my Router is Downstairs. And I am up stairs. I am behind the Router, but also Upstairs. Are you suppose to be in Front of the Router?
kickhopper
Apr 25th, 2010, 06:45 PM
Umm my Router is Downstairs. And I am up stairs. I am behind the Router, but also Upstairs. Are you suppose to be in Front of the Router?
http://i574.photobucket.com/albums/ss184/sparrowsluck/facepalm7-1.jpg?t=1272235472
*
Poryhack
Apr 25th, 2010, 08:21 PM
[facepalm pic]
Indeed.
ezxen
Apr 25th, 2010, 08:33 PM
http://i574.photobucket.com/albums/ss184/sparrowsluck/facepalm7-1.jpg?t=1272235472
*
Indeed.
ditto
http://www.valvigirl.net/images/ditto.gif
Scarface
Apr 26th, 2010, 07:56 AM
Umm my Router is Downstairs. And I am up stairs. I am behind the Router, but also Upstairs. Are you suppose to be in Front of the Router?
"ARE YOU USING A ROUTER" Is what ezxen meant
Vlad
Apr 26th, 2010, 08:32 AM
To end the face-palming. What he meant flyingpker is if you are connected to the internet trough a router. If you are then it means you need to configure the ports on the routers administration page so that the traffic on ports 80 and 53 are directed to your machine -if you want a public service, so others can connect to your server when connecting from the outside of your house/i.e. their connection does not go into your router box directly, but from the outside of your house.
doeiqts
Apr 26th, 2010, 07:38 PM
Vlad, is your python script threaded? Or is GTS Nuker the only threaded server?
Also, would it be possible to forward all non GTS requests through to the regular web server running on the computer?
Vlad
Apr 27th, 2010, 09:31 AM
Mine ain't threaded, was my first Python script. :P GTS Nuker is the only community release that is threaded.
When we use the DNS to redirect requests, at least in my script what I did was only redirect request going to "gamestats2.gs.nintendowifi.net" to a specific IP (that was the custom webserver IP). Everything else should be left alone. Now the new host must handle two things, the GTS and the Battletower as they oddly are implemented on that server. They also share one file I believe, the setProfile.asp in the /common/ dir so it's a little messy but you could manage and redirect those requests (battletower) to the official Nintendo GTS server and only intercept the GTS communication, but that's done within the webserver, the DNS is supposed only to redirect all the traffic from the mentioned CNAME.
Wichu
Apr 27th, 2010, 09:33 AM
We can get the DS card to connect to a fake GTS server, but what about the other way round? I tried writing a program to connect to the real GTS, without much success. I tried connecting to the GTS server, referring to the wiki page, but it gave me a 403 error. The request I sent was:
GET /pokemondpds/worldexchange/info.asp?pid=117094747 HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close
I'm assuming the DS games have to 'log on' first to get a unique PID, right? Has this been figured out?
doeiqts
Apr 27th, 2010, 11:37 AM
Mine ain't threaded, was my first Python script. :P GTS Nuker is the only community release that is threaded.
When we use the DNS to redirect requests, at least in my script what I did was only redirect request going to "gamestats2.gs.nintendowifi.net" to a specific IP (that was the custom webserver IP). Everything else should be left alone. Now the new host must handle two things, the GTS and the Battletower as they oddly are implemented on that server. They also share one file I believe, the setProfile.asp in the /common/ dir so it's a little messy but you could manage and redirect those requests (battletower) to the official Nintendo GTS server and only intercept the GTS communication, but that's done within the webserver, the DNS is supposed only to redirect all the traffic from the mentioned CNAME.
Hmm... cause I went to access my webserver (running on the same computer as the DNS server and pkmn server) and I got the Hello World message (which is what "out" is set to if there's no request in your pkmn server).
I'll have to test it more when all my stuff comes back online. I don't think I can run GTS Nuker (though I haven't tried yet) with Apache running at the same time, which is why I liked your python scripts better. I'll try and do some more research soon.
doeiqts
Apr 27th, 2010, 11:37 AM
Mine ain't threaded, was my first Python script. :P GTS Nuker is the only community release that is threaded.
When we use the DNS to redirect requests, at least in my script what I did was only redirect request going to "gamestats2.gs.nintendowifi.net" to a specific IP (that was the custom webserver IP). Everything else should be left alone. Now the new host must handle two things, the GTS and the Battletower as they oddly are implemented on that server. They also share one file I believe, the setProfile.asp in the /common/ dir so it's a little messy but you could manage and redirect those requests (battletower) to the official Nintendo GTS server and only intercept the GTS communication, but that's done within the webserver, the DNS is supposed only to redirect all the traffic from the mentioned CNAME.
Hmm... cause I went to access my webserver (running on the same computer as the DNS server and pkmn server) and I got the Hello World message (which is what "out" is set to if there's no request in your pkmn server).
I'll have to test it more when all my stuff comes back online. I don't think I can run GTS Nuker (though I haven't tried yet) with Apache running at the same time, which is why I liked your python scripts better. I'll try and do some more research soon.
イーブイ
Apr 27th, 2010, 12:15 PM
For the curious, the veekun setup is as follows:
- BIND thinks it's a master server for nintendowifi.net. It returns the veekun IP for gamestats2.gs, but the correct IPs for conntest and nat.
- In Apache, gamestats2.gs.nintendowifi.net is a ServerAlias for veekun.com. Requests to http://gamestats2.gs.nintendowifi.net/pokemondpds/common/setProfile.asp, for example, as treated the same way as though they were for http://veekun.com/pokemondpds/common/setProfile.asp.
- App side, I have these two route rules:
map.connect('/pokemondpds/worldexchange/{page}.asp', controller='fake_gts', action='dispatch')
map.connect('/pokemondpds/common/{page}.asp', controller='fake_gts', action='dispatch')
Anything that starts with /pokemondpds, I send off to a custom dispatch function in its own controller.
- The dispatch function takes care of challenge/response and decrypting the data, then dispatches to the right method based on the page name. Source here (http://git.veekun.com/?p=spline-pokedex.git;a=blob;f=spline/plugins/pokedex/controllers/fake_gts.py;h=455335399a4b1c8564cb79966320788fbb04 9c43;hb=afc576e096df9fc593e16b7b433a5725b946f928#l 83), although it'll be moving later.
The thing to remember is that the Nintendo server isn't doing anything special whatsoever; it's just a regular Web app, running on IIS (gross), that happens to return binary junk instead of HTML.
LordLandon
Apr 27th, 2010, 02:58 PM
Binary junk with the content-type header of text/html, at that q=
my setup is simply dnsspoof substituting replies to gamestats2.gs with my IP, and mod_rewrite in lighttpd
url.rewrite =("^/pokemon.+([?].*)" => "/gts.py$1")
which rewrites all requests to /pokemon.* to, /gts.py which uses the requested_url environ variable to figure out what to do.
I've got a fully working GTS server running there atm, with searching and trading, from within my regular wobserver C=
イーブイ
Apr 27th, 2010, 08:39 PM
veekun is already running its own DNS server, so dnsspoof wasn't really an option 8)
veekun's GTS is still just a dumb roundtrip; working on some backend stuff before I try to make it cooler. And of course I need to actually finish veekun and all.
Draelor
Apr 28th, 2010, 03:15 AM
Hey guys, I've been trying to host my GTS server but its not working.
When I get into the connect to Nintendo Wifi connection, it just stays like that and eventually gives me an error in which I have to restart the DS.
However when I look at my DNS server it says its Spoofing to my IP Address, though nothings happening on my DNS.
I've turned off my firewall, skype etc and anything else that may get in the way.
Any Help?
madaruwode
Apr 28th, 2010, 02:05 PM
@イーブイ
Does that mean that with the Code you posted it will be possible to write a program/script that allows me to upload a PKMN from the game to the PC and download it as often as I want?
Are you working on something like this or just the online-GTS?
イーブイ
Apr 28th, 2010, 02:07 PM
Yes, you could do that. Actually, just remove the line that deletes the Pokémon from the beta table, and it will do exactly that.
madaruwode
Apr 28th, 2010, 02:13 PM
Thank you for your reply, but the thing I haven't understood is how I have to start it...
I thought I would need to have a Webserver running? And where does it store the PKMN data?
イーブイ
Apr 28th, 2010, 09:24 PM
Uh, it's part of my entire site. Not really meant for people to run for themselves, especially if you're not a developer.
madaruwode
Apr 29th, 2010, 09:55 AM
Uh, it's part of my entire site. Not really meant for people to run for themselves, especially if you're not a developer.
ok, I thought that before, but then I misunderstood your 2nd post and thought that I can run it on my computer. I am a developer but I never learned Python... but I think I understand most of it :)
I will have a look at your code and try to make a script that can be run locally on a computer... but if anybody already tries to do this please tell me so I don't have to ;)
M@T
Apr 29th, 2010, 10:21 AM
I am currently making a VB.NET program that acts as a GTS server, allowing users to deposit/retrive a Pokémon and saving a .pkm of every Pokémon it receives (but no "search" function yet, so no real trading).
It is based on my SendPKM.exe program and on イーブイ's fake_gts.py.
It works fine, I just have to modify some things and I post it.
Scarface
Apr 29th, 2010, 10:22 AM
I am currently making a VB.NET program that acts as a GTS server, allowing users to deposit/retrive a Pokémon and saving a .pkm of every Pokémon it receives (but no "search" function yet, so no real trading).
It works fine, I just have to modify some things and I post it.
Sounds good, I cant wait.
madaruwode
Apr 29th, 2010, 12:32 PM
Sounds very nice!
I would also appreciate to have a look at the code because VB.net is a language I understand much better than Python :)
M@T
Apr 29th, 2010, 12:49 PM
The program is nearly finished, I am making some tests now, to see if it handles properly every kind of requests (except searching a Pokémon).
@ madaruwode : I always release the source code with my programs, don't worry. :wink:
PS : Before starting to deal with fake GTS & DNS servers, I didn't know Python at all, but it made me discover this language and it is quite easy actually. :redface:
EDIT : I'm going to eat, I will probably release the program in 1 hour or less.
kickhopper
Apr 29th, 2010, 02:35 PM
I am currently making a VB.NET program that acts as a GTS server, allowing users to deposit/retrive a Pokémon and saving a .pkm of every Pokémon it receives (but no "search" function yet, so no real trading).
It is based on my SendPKM.exe program and on イーブイ's fake_gts.py.
It works fine, I just have to modify some things and I post it.
So basically you're working on a way to transfer Pokemon from the DS to the computer? Man that would be really great to find out secret IDs for people that don't own flash carts.
Scarface
Apr 29th, 2010, 02:39 PM
So basically you're working on a way to transfer Pokemon from the DS to the computer? Man that would be really great to find out secret IDs for people that don't own flash carts.
Well actually you can obtain your SID's from HGSS Easily all you need is to know 3 lotto numbers in a row and your Trainer id just translate this website
http://oupo.xrea.jp/sid-search/
イーブイ
Apr 29th, 2010, 03:07 PM
So basically you're working on a way to transfer Pokemon from the DS to the computer? Man that would be really great to find out secret IDs for people that don't own flash carts.
There are several third-party GTSes that can already do this. I think.
madaruwode
Apr 29th, 2010, 03:16 PM
There are several third-party GTSes that can already do this. I think.
But none where posted on this thread 8)
M@T
Apr 29th, 2010, 03:36 PM
Finally, here it is. :tongue:
I took my old SendPKM.exe program as a base, on which I added some functions present in fake_gts.py.
I also used some parts of codemonkey85' awesome PokemonDSLib for the Pokémon data-manipulating functions (encryption/decryption).
It is threaded, just like my other program.
You just have to run 'GTS Server.exe' with a DNS server redirecting to your IP (local or public, depending on where you connect your DS from).
[BTW, I improved my DNS server a long time ago but there are some bugs now, I'll see if I can release a new version soon.]
When the program is launched for the first time, it creates 2 folders, named 'PKMs' and 'Current'.
Every Pokémon sent by the game is converted to a .pkm and put in the 'PKMs' folder, under the name '[current timestamp]_[Pokémon specie]_[game PID].pkm' (without the brackets).
'Current' contains the current Pokémon data, one for each game PID, under the name 'current_[game PID].dat' (without the brackets).
The data files are 292 bytes long, beginning with the 236 encrypted party-Pokémon bytes and followed by 56 GTS-specific bytes, as described here (http://projectpokemon.org/wiki/GTS_protocol#Pok.C3.A9mon_struct).
When a game deposits a Pokémon, a .dat file is created in that folder.
It remains present until the game calls 'return.asp', typically when the Pokémon is taken back.
However, the .pkm stays in the 'PKMs' folder.
---
I started to add a 'verbose' functionnality, you can use it by passing '-verbose' (or '-v') as argument.
It simply shows more description of the requests made by the DS.
The program is still a console application, but can easily be included in a window app.
I was planning to make a kind of Pokémon management system, to change which Pokémon are currently stored for example, but I don't have much time at the moment.
PS : .NET Framework version 3.5 is requied to run this program, if you don't have it or if you are unsure of the version you have, download it from here (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6).
doeiqts
Apr 30th, 2010, 12:23 AM
Nice. As soon as I get some of the more basic sending server stuff worked out I'll try this and give you feedback.
Scarface
Apr 30th, 2010, 01:42 AM
Finally, here it is. :tongue:
I took my old SendPKM.exe program as a base, on which I added some functions present in fake_gts.py.
I also used some parts of codemonkey85' awesome PokemonDSLib for the Pokémon data-manipulating functions (encryption/decryption).
It is threaded, just like my other program.
You just have to run 'GTS Server.exe' with a DNS server redirecting to your IP (local or public, depending on where you connect your DS from).
[BTW, I improved my DNS server a long time ago but there are some bugs now, I'll see if I can release a new version soon.]
When the program is launched for the first time, it creates 2 folders, named 'PKMs' and 'Current'.
Every Pokémon sent by the game is converted to a .pkm and put in the 'PKMs' folder, under the name '[current timestamp]_[Pokémon specie]_[game PID].pkm' (without the brackets).
'Current' contains the current Pokémon data, one for each game PID, under the name 'current_[game PID].dat' (without the brackets).
The data files are 292 bytes long, beginning with the 236 encrypted party-Pokémon bytes and followed by 56 GTS-specific bytes, as described here (http://projectpokemon.org/wiki/GTS_protocol#Pok.C3.A9mon_struct).
When a game deposits a Pokémon, a .dat file is created in that folder.
It remains present until the game calls 'return.asp', typically when the Pokémon is taken back.
However, the .pkm stays in the 'PKMs' folder.
---
I started to add a 'verbose' functionnality, you can use it by passing '-verbose' (or '-v') as argument.
It simply shows more description of the requests made by the DS.
The program is still a console application, but can easily be included in a window app.
I was planning to make a kind of Pokémon management system, to change which Pokémon are currently stored for example, but I don't have much time at the moment.
When i launch the program it crashes and i get the following message:
GTS Server has encountered a problem and needs to close. We are sorry for the inconvenience.
and gives me an option to send error report or don't send.
M@T
Apr 30th, 2010, 02:14 AM
Wierd, is there some text written in the console before the crash ?
Scarface
Apr 30th, 2010, 02:15 AM
yes it does but it does it the second i click dont send error report it goes so fast i cant read it i'll try and screen shot it if i can
M@T
Apr 30th, 2010, 02:19 AM
Could you launch it from a command prompt ? (Start->Run->"cmd" [without quotes], then cd to the directory where it is located and run "GTS Server.exe" [with the quotes])
Scarface
Apr 30th, 2010, 02:22 AM
yeah i get the same error but i got the screenshot
Here it is: http://i39.tinypic.com/zmh3m.jpg
M@T
Apr 30th, 2010, 02:25 AM
It looks like it's a problem with the .NET Framework, are you sure you have the version 3.5 ?
If you are unsure, download it from here : http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6
Scarface
Apr 30th, 2010, 02:28 AM
It looks like it's a problem with the .NET Framework, are you sure you have the version 3.5 ?
If you are unsure, download it from here : http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6
Well i didnt know it required .Net framework 3.5 im downloading it now, Thanks
M@T
Apr 30th, 2010, 02:31 AM
Yeah, I didn't specify that it was required, my mistake.
Scarface
Apr 30th, 2010, 02:56 AM
Works perfectly now m@t Great Job :)
M@T
Apr 30th, 2010, 03:10 AM
Cool, thanks, I was afraid there could be an error in the program. :D
Scarface
Apr 30th, 2010, 03:14 AM
Well at least your releif that there isnt :P
Scarface
Apr 30th, 2010, 07:32 AM
It seems that this program doesnt work in HG/SS but i tested on platinum and it worked perfectly
EDIT: It looks like it randomly chooses to work or not because now it wont connect on platinum i have all my firewalls off and all ports open and its not changing from saying waiting connection...
EDIT2: I was mistaken my ports were not open it turns out, it seems to be working now.
EDIT3: doesnt seem to work all the time but it does work
Wichu
Apr 30th, 2010, 12:52 PM
We can get the DS card to connect to a fake GTS server, but what about the other way round? I tried writing a program to connect to the real GTS, without much success. I tried connecting to the GTS server, referring to the wiki page, but it gave me a 403 error. The request I sent was:
GET /pokemondpds/worldexchange/info.asp?pid=117094747 HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close
I'm assuming the DS games have to 'log on' first to get a unique PID, right? Has this been figured out?
Does anyone know anything about this? :(
rennaT
Apr 30th, 2010, 05:44 PM
M@T, your GTS Server works amazingly well for me! Really, great job and thanks!
イーブイ
Apr 30th, 2010, 10:08 PM
Does anyone know anything about this? :(
The handshake is SSL with some other server. We don't know how it works.
doeiqts
Apr 30th, 2010, 10:16 PM
So this may not be of any use to anyone, but it was useful to me and so I figured I'd share.
I messed with Vlad's python code a little bit so that it would rotate through pokemon that I had in a folder when giving pokemon out. Also, it will never go to the "Summery" screen in the GTS, it will just always send the pokeball down whenever you get to the GTS computer.
Just some minor tweaks that were annoying me, and it helped me to learn some python. Just put the pokemon you want to give out in the pkm folder and it will cycle through them in the order they appear in the directory. (hint: to change the order, just rename the files with numbers at the front. So the first pokemon to give out would be 001zubat.pkm instead of zubat.pkm.)
Pingouin7
May 2nd, 2010, 12:44 AM
I managed to get this work once with Wi-Fi USB connector.
Then every time after that I kept getting error code 00000 and was forced to turn off my DS.
doeiqts
May 2nd, 2010, 12:46 AM
I managed to get this work once with Wi-Fi USB connector.
Then every time after that I kept getting error code 00000 and was forced to turn off my DS.
You get that error when you walk up to the PC once you're inside the GTS? If so, that means the pokemon you're trying to send has something wrong with it.
kickhopper
May 2nd, 2010, 03:34 AM
@M@T
Using your GTS is there a way to see a summary of what Pokemon are currently in and what Pokemon are currently wanted? It would be great to use this to run a request GTS. People could deposit anything and seek something, then I could whip it up in Pokesav and send it out to em.
Oh and thanks for this program, it works great.
Scarface
May 2nd, 2010, 03:58 AM
@M@T
Using your GTS is there a way to see a summary of what Pokemon are currently in and what Pokemon are currently wanted? It would be great to use this to run a request GTS. People could deposit anything and seek something, then I could whip it up in Pokesav and send it out to em.
Oh and thanks for this program, it works great.
The only function it does not have is the search function everything else works, yes you can see the summary
kickhopper
May 2nd, 2010, 06:19 AM
No, I meant a full summary of all the Pokemon currently in the GTS and all Pokemon currently wanted.
And if it's true there is no search function, how would people actually use it then? Without a search function the only use it has is to convert Pokemon on your game to Pkm files on the computer.
Tritlo
May 2nd, 2010, 09:24 AM
And that is bad how?
I love to be able to check the IV's of my Pokémon, without having to hack my rom.
Scarface
May 2nd, 2010, 09:34 AM
No, I meant a full summary of all the Pokemon currently in the GTS and all Pokemon currently wanted.
And if it's true there is no search function, how would people actually use it then? Without a search function the only use it has is to convert Pokemon on your game to Pkm files on the computer.
Actually i managed to swap pokemon. for example
I deposit a pokemon from my SS game and my Platinum,and by swapping the filenames in the folder Current i was able to swap the pokemon completely
kickhopper
May 2nd, 2010, 10:19 AM
Actually i managed to swap pokemon. for example
I deposit a pokemon from my SS game and my Platinum,and by swapping the filenames in the folder Current i was able to swap the pokemon completely
It's cool and all but pretty pointless since you could have just used sendpkm on each game for the same effect. Less steps and easier.
@Tritlo I wasn't saying it was a bad thing, it's pretty useful for checking IVs and Secret IDs. I was just checking to see if I missed something.
Scarface
May 2nd, 2010, 10:21 AM
It's cool and all but pretty pointless since you could have just used sendpkm on each game for the same effect. Less steps and easier.
@Tritlo I wasn't saying it was a bad thing, it's pretty useful for checking IVs and Secret IDs. I was just checking to see if I missed something.
The way i do it enables people to trade Pokemon if they only have 1 ds
M@T
May 2nd, 2010, 01:38 PM
Without a search function the only use it has is to convert Pokemon on your game to Pkm files on the computer.
Yes, that is the only use of the program for the moment, I don't know what you expected...
That's pretty useful however if, like me, you don't have any way to extract your save and you want the .pkm of your Pokémon.
doeiqts
May 2nd, 2010, 04:39 PM
Being able to get a legit .pkm of your own game is pretty nice.
Also, other people could deposit pokemon to you and then take them back, basically giving you that pokemon.
Poryhack
May 2nd, 2010, 05:29 PM
The handshake is SSL with some other server. We don't know how it works.
The key(s) one would would need to mimic a DS are somewhere in the ROM though right?
Pingouin7
May 2nd, 2010, 07:12 PM
That way, we can restart our game without having to trade over heaps of Pokémon.
Armada
May 2nd, 2010, 08:30 PM
I must say this is certainly an impressive project. I'm into studying and implementing protcols myself, so this is really fun for me. Unfortunately, it seems I can't do a broadcast over the internet using the DNS server (both Vlad's and M@T's). This screenshot shows the attempted connection results:
http://armada.lostsignalweb.com/gts_error.PNG
Then it stalls and my DS throws error code 52100.
This is most likely due to Comcast being my ISP and blocking port 80. The AutoIT script that checks the ports appears to confim this. I'm guessing there is no work-around. I have a webserver (not on my own machine) that is available for trying to run Vlad's GTS that I found in his signature. However, the readme included is not helpful at all. I'm competent in all aspects of web design except for using the Python script. I was able to create the database and everything else though.
Help would be appriciated. Thanks in advance.
EDIT: Thought I'd note it's a CentOS server. This will probably mean it won't work.
Scarface
May 3rd, 2010, 04:53 AM
You are not understanding what i am saying, i upload a pokemon to the gts then send it to another ds instead of using legal/hacked pokemon
kickhopper
May 3rd, 2010, 05:05 AM
You are not understanding what i am saying, i upload a pokemon to the gts then send it to another ds instead of using legal/hacked pokemon
No, I get it. You don't seem to be understanding it would be easier if you just used sendpkm to send a Pokemon to that other game instead of having him deposit something, then swap it with another Pokemon. Your method is something we would have been doing if this GTS was created before sendpkm, since it came after though this method is a novelty.
M@T
May 3rd, 2010, 05:11 AM
I think that the easiest way is to use my program to get the .pkm, then send it to the other game with sendpkm.
No you just made it sound like a full working GTS instead of a glorified Pokemon depository.
I never intended to make a full working GTS server, read more carefuly :
I am currently making a VB.NET program that acts as a GTS server, allowing users to deposit/retrive a Pokémon and saving a .pkm of every Pokémon it receives (but no "search" function yet, so no real trading).
5P33DY1
May 3rd, 2010, 05:48 AM
Yo!
I need some help....
Whenever i send a pokemon using the GTS_nuker i have to keep pasting the path to the pokemon in the nuker... could someone please help me?
Also should i be using the sendpkm.py file to get my dns and then use the nuker... it seemed to work for me....
Scarface
May 3rd, 2010, 07:12 AM
Yo!
I need some help....
Whenever i send a pokemon using the GTS_nuker i have to keep pasting the path to the pokemon in the nuker... could someone please help me?
Also should i be using the sendpkm.py file to get my dns and then use the nuker... it seemed to work for me....
Launch the Program then drag your .pkm file onto it then back space the " that you see and hit enter
M@T
May 3rd, 2010, 07:15 AM
Or simply drag the .pkm file onto the .exe...
Scarface
May 3rd, 2010, 07:17 AM
Or simply drag the .pkm file onto the .exe...
Yeah forgot about that xD
E-Licit
May 4th, 2010, 12:32 PM
M@T thank god you're on. I've been trying to figure something out all day long here. How can I establish a connection from an outside person (friend) to the GTS server? I've tried combinations of IP's and DNS's and he still recieves a error saying no connection could be established. And I have ports 80 and 53 forwarded.
codemonkey85
May 4th, 2010, 06:27 PM
I just deleted a bunch of posts which entailed nothing but arguments. Guys, if you want to argue with each other, do it via PM. I especially will not tolerate blatant insults, such as calling someone stupid.
chinedu11
May 4th, 2010, 07:07 PM
Is it possible to Set Random pokemon to your Personal (House) Gts Server? I only know how to set random on the ones others are receiving (Using my External Ip)
M@T
May 4th, 2010, 07:56 PM
Thank you codemonkey85.
I finished the new version of my DNS server, it includes some automation now.
I added several command-line options, described with "/?" :
Usage : DNS_Server [public_IP] [/local:<local_IP>] [/dns:<DNS_IP>] [/auto]
[/localonly | /nolocal] [/log]
public_IP Public (external) IP address to use.
Must be a valid IP address (e.g. 123.45.67.89).
This parameter is ignored if /localonly is specified.
local_IP Local (internal, private) IP address to use.
Must be a valid IP address (e.g. 192.168.1.2).
This parameter is ignored if /nolocal is specified.
DNS_IP IP address of the real DNS server used to perform DNS queries.
The default value can be changed in 'DNS_Server.exe.config'.
/auto If this flag is set, the program will try and find both public
and private IPs automatically.
If, for any reason, one or both of the operations failed,
you would be prompted to give the missing IP address(es).
This option enables automatic public/private IP switching.
If used with /localonly, the program won't try and find a
public IP.
Similarly, with /nolocal, only the public IP will be fetched.
/localonly When used, this parameter will make the program use only the
internal IP, and disables autoswitching between public and
private IPs.
/nolocal The opposite of /localonly : only the public IP will be used.
/log If set, the program will log every request it receives and what
it sends to the client, including raw DNS-queries packets.
/?, --help Shows this help screen ('?', '-h' and '-?' also work).
Every parameter is case-insensitive, and can be set using prefixes '/', '-' and
'--' (e.g. '-lOcAl:192.168.1.2', '--DNS:8.8.8.8', '-Auto', '/LOG', etc.).
(I included a .bat file to run it in 'auto' mode in the ZIP.)
Basically, to use it, simply enter things as asked (public and/or private IP, and whether you want to use automatic IP switching).
It automatically finds your IPs, and asks you whether or not you agree with what it found.
The automatic IP switching checks whether the client's IP is a private one (see here (http://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces) for private IP ranges).
If so, the DNS server tells the client that gamestats2.gs.nintendowifi.net's IP is the one set as local IP.
If not, it uses the public IP.
It is really useful for people who want to run a GTS server on their own computer, and have clients from both their local network (e.g. themselves) and the Internet.
Please report any problem.
EDIT : This program, as well as all my other programs, needs Microsoft .NET Framework 3.5 in order to run properly.
You can find it here (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7).
Is it possible to Set Random pokemon to your Personal (House) Gts Server? I only know how to set random on the ones others are receiving (Using my External Ip)
I don't see exactly what you mean...
What program are you using ?
E-Licit
May 4th, 2010, 08:19 PM
M@T would it be possible to add the feature of depositing pokemon by IP (seperate folders per IP)? Just thought it'd be a neat feature :p
E-Licit
May 4th, 2010, 10:06 PM
My friend noticed a problem, like with the pkmsend each time he D/C's and reconnects, it wont allow him to. Except instead of the server shutting down, it just kicks him out to the title screen, and the server is still active?
chinedu11
May 5th, 2010, 02:39 AM
I don't see exactly what you mean...
What program are you using ?
Python. Sendpkmn.py
M@T
May 5th, 2010, 03:54 AM
M@T would it be possible to add the feature of depositing pokemon by IP (seperate folders per IP)? Just thought it'd be a neat feature :p
My new GTS server works with the IDs of the games, which is better than IP (if you have a dynamic IP, you wouldn't be able to take your Pokémon back when it changes for example).
I can do what you say with IDs, and write in a file which IP(s) corresponds to each ID...
Or if you really want it, one folder per IP, but dynamic IPs might make it a bit confusing.
My friend noticed a problem, like with the pkmsend each time he D/C's and reconnects, it wont allow him to. Except instead of the server shutting down, it just kicks him out to the title screen, and the server is still active?
I don't have this problem when connecting from my local network, but unfortunately I can't test it from the Internet.
Could you copy/paste the entire DNS and GTS logs when he connects to the GTS, then disconnects and reconnects ?
Did you have this problem with my old DNS server too ?
Python. Sendpkmn.py
And you say that it is possible with external IPs, but not with your internal one ?
That's odd, or I don't understand your previous post...
ReignOfComputer
May 5th, 2010, 05:02 AM
Hi M@T, are you able to make a GTS Server that is loggable like the DNS Server above? Thanks.
chinedu11
May 5th, 2010, 05:28 AM
[QUOTE=M@T;77181
And you say that it is possible with external IPs, but not with your internal one ?
That's odd, or I don't understand your previous post...[/QUOTE]
I can give people using my External Ip Random pokemon but I want to Give my self (people in my house) Random pokemon too.
M@T
May 5th, 2010, 05:34 AM
Hi M@T, are you able to make a GTS Server that is loggable like the DNS Server above? Thanks.
Yes, what do you want to log exactly ?
Every HTML request/response, with the complete URL and IP of the client ?
I can give people using my External Ip Random pokemon but I want to Give my self (people in my house) Random pokemon too.
Instead of putting your external IP in the DNS server, use your internal one.
ReignOfComputer
May 5th, 2010, 05:39 AM
My intention is to log every Pokemon that comes in and goes out, like the line
"* A Grimer <lvl 28, male> was deposited and converted to .pkm.
* Filename : C:\..........\.....pkm"
And just for the fun of it, if it's not too inconvenient, the IP of the poster, like in
"Client xxx.xxx.xxx.xxx:xxxxx
Requesting : ......."
Thanks.
Edit : Also, could this be done for SendPKM? Like, whenever a Pokemon is sent and from which IP?
M@T
May 5th, 2010, 05:41 AM
Ah OK, that should be easy to implement.
ReignOfComputer
May 5th, 2010, 05:42 AM
Alright, thanks so much. Looking forward to it.
chinedu11
May 5th, 2010, 06:06 AM
thanks M@t
E-Licit
May 5th, 2010, 02:13 PM
My new GTS server works with the IDs of the games, which is better than IP (if you have a dynamic IP, you wouldn't be able to take your Pokémon back when it changes for example).
I can do what you say with IDs, and write in a file which IP(s) corresponds to each ID...
Or if you really want it, one folder per IP, but dynamic IPs might make it a bit confusing.
I don't have this problem when connecting from my local network, but unfortunately I can't test it from the Internet.
Could you copy/paste the entire DNS and GTS logs when he connects to the GTS, then disconnects and reconnects ?
Did you have this problem with my old DNS server too ?
And you say that it is possible with external IPs, but not with your internal one ?
That's odd, or I don't understand your previous post...
Well it happened first with the old server, the new server it happened, but then after posting this I rebooted.
Works like a charm now, it ran all night, morning, and day. No problems. But yeah that'd be awesome to do that with the folders. Save a lot of time sorting through pokemon lol.
M@T
May 5th, 2010, 03:01 PM
I'm almost done, I am implementing a logging and a sorting feature, as well as the ability to see what is requested when one deposits a Pokémon.
I don't have much time to code, but it should be ready in one hour or two.
nATEdAWGG
May 5th, 2010, 04:33 PM
ill be making a .pkm downloader tonight for all the people who are confused about how and where to download the files from
Edit: ill even make a gui in vb if someone could help me port the python script to work as in a vb program
M@T
May 5th, 2010, 05:23 PM
Version 0.3 of my GTS server is ready.
I added several command-line parameters :
/verbose (or simply /v) : makes the program more verbose (it describes every action done by the client).
/log : logs the following actions : the servers starts, a Pokémon is deposited, a Pokémon is taken back.
/logall : logs everything, just like the main console. If /verbose is used, the logs are more verbose too.
/sortbyid : sorts the .PKMs in folders according to the client's game ID. Folder name is 'PKMs_[client's ID]' (without the brackets).
/sortbyip : sorts the .PKMs in folders according to the client's IP address. Folder name is 'PKMs_[client's IP]'.
If both /sortbyid and /sortbyip are specified, .PKMs are stored in a folder named 'PKMs_[client's ID]_[client's IP]'.
/prompt : prompts whether you want to enable parameters above that are not set by command-line.
Every parameter is case-insensitive, and can be prefixed with either '/', '-' or '/'.
I also fixed some typos, and a probem with relative/absolute paths.
I included 3 .BAT files to quickly use tags '/log', '/verbose' and '/prompt'.
In the next version, I'll try to add the ability to send .PKMs, just like SendPKM, but I need to find out how to fix the BSOD issue first.
EDIT : This program, as well as all my other programs, needs Microsoft .NET Framework 3.5 in order to run properly.
You can find it here (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7).
Edit: ill even make a gui in vb if someone could help me port the python script to work as in a vb program
You want to make a .PKM sender in VB ?
I already made one in VB.NET 9.0, you can have look at the sources (it is included in the .ZIP file named GTS_Nuker (http://projectpokemon.org/forums/attachment.php?attachmentid=3931&d=1269820708)).
rennaT
May 5th, 2010, 06:44 PM
Once I figured out that this also needs .net Framework 3.5, the new DNS server works great. In fact, it's the first time I've actually been able use it with people outside my internal network so props again, M@T.
M@T
May 5th, 2010, 06:58 PM
That's right, all my programs need .NET Fx 3.5.
I forgot to specify it this time, sorry. :redface:
E-Licit
May 5th, 2010, 07:05 PM
lol wow m@t you're seriously efficient. And thank you for adding that, awesome indeed *downloaded now*. Now i'd worship you if you could just get rid of that stupid ribbon limitation lol. But yeah, thanks for including that feature so fast. Should make a lot of things much much easier.
nATEdAWGG
May 5th, 2010, 07:41 PM
You want to make a .PKM sender in VB ?
I already made one in VB.NET 9.0, you can have look at the sources (it is included in the .ZIP file named GTS_Nuker (http://projectpokemon.org/forums/attachment.php?attachmentid=3931&d=1269820708)).
i was talking GUI. ive always had toubles with command line and i can guarentee that im not the only one, but im still gonna make a pkm downloader to make it much easier for some users :) and also, does your gts server actually send the pkm to the ds or is that bgged, cus if it does ill use the source and make a GUI for it and even make both work together
maybe even set it up to work with pokesav
Jolteon<3
May 6th, 2010, 12:05 AM
What does it mean if it tells me to set my ds DNS to 0.0.0.0?
Cause every time I try it, it does that. :/
M@T
May 6th, 2010, 02:54 AM
i was talking GUI. ive always had toubles with command line and i can guarentee that im not the only one, but im still gonna make a pkm downloader to make it much easier for some users :) and also, does your gts server actually send the pkm to the ds or is that bgged, cus if it does ill use the source and make a GUI for it and even make both work together
maybe even set it up to work with pokesav
I began making a GUI several days ago, but I don't have enough time, I'm very busy.
Good luck then, especially for making it work with Pokésav (you can use codemonkey85's PokemonDSLib (http://projectpokemon.org/forums/showthread.php?3332-PKMDS-Code-Library!), it is really useful).
I made 2 different GTS servers.
The first one sends .PKMs to the DS, just like sendpkm.py, but a BSOD usually appears on the DS after using it (the same thing happens with every PKM senders I think).
EDIT : I just used it 3 times, and it didn't give me a BSOD, hopefully it will (finally) work properly.
EDIT˛ : It seems to work at 100% with Platinum, with several Pokémon, that's odd 'cuz I always had BSODs with sendpkm.py and my program is based on that Python script...
The second one acts more like a real GTS server, you can deposit and retrive Pokémon, and every .PKM deposited is saved in a folder.
You can then Pokesav your .PKM's and send them back to your game, everything without any flashcart, Action Replay nor save extractor.
What does it mean if it tells me to set my ds DNS to 0.0.0.0?
Cause every time I try it, it does that. :/
What program are you using ?
Pup
May 6th, 2010, 02:10 PM
Hey guys, I was looking over your research here in attempt to make a tool to query the GTS... I think I've stumbled on a big hole in the GTS security, or lack thereof.
Has anyone else found this and taken a vow of silence or anything, before I open my big mouth?
M@T
May 6th, 2010, 02:51 PM
Lol no, there is no censorship or whatever.
There are juste some limitations, such as the SSL handshake with nas.nintendowifi.net, but I think one can bypass it by connecting with his real DS first, and then use his ID to connect from a computer, but I don't have the time to test it yet.
Pup
May 6th, 2010, 03:28 PM
Oh I don't mean just the lack of security. I mean that anyone who knows how can query the GTS, get a list of PIDs then run them against return.asp or delete.asp and knock them off the GTS system. You don't even need to go through SSL.
I did some checks with my copies of Pearl and Platinum. It seems the game doesn't delete them when sending them to the GTS so it just restores them. It's still a pretty big thing that anyone who knows how can empty the GTS...
M@T
May 6th, 2010, 04:08 PM
Oh I don't mean just the lack of security. I mean that anyone who knows how can query the GTS, get a list of PIDs then run them against return.asp or delete.asp and knock them off the GTS system. You don't even need to go through SSL.
I know, but I was unsure of whether SSL handshake was mandatory.
The contrary should be possible too : simulate an exchange between two IDs, to annoy someone who requests a lvl 9 Mew for example (he was probably trying to clone his Pokémon). :biggrin:
In fact, you can search a Pokémon with search.asp, then call exchange.asp and finally exchange_finish.asp.
I am currently attempting to figure out how exchanging works (it seems to be similar to post.asp, with 4 extra null-bytes at the end).
I was wondering too, if the checks on whether the Pokémon you want to exchange matches the one that is requested is done on the game-side only (bad Pokémon are darkened), or if the GTS checks it too (which is certainly the case).
If the GTS doesn't check it, one could eventually trade a Magikarp instead of a requested Arceus. :tongue:
I did some checks with my copies of Pearl and Platinum. It seems the game doesn't delete them when sending them to the GTS so it just restores them.
Yeah I did it too, there are several securities to prevent your Pokémon from being lost between time and space if something goes wrong.
Also, if the game knows it sent nothing in the GTS, but the server says there is something, it provokes a communication error.
One could try and call return.asp with random IDs between 1 and 2147483647, if the request is formatted properly, there sould not be any problem.
But Nintendo will certainly notice it, and close the GTS or something similar. :\
LordLandon
May 7th, 2010, 12:52 AM
Yes, the GTS is terribly insecure..
No, the last four bytes at the end of exchange aren't "null" they're the PID of the trainer you want to do the exchange with (remember? stateless.)
Yes, you could fsck with the GTS and delete all the pokemon for the lulz - but the reason none of us have released client code (to work against the real GTS) is that we do not advocate it. At all. It's one thing to mess with your own game/server, it's another to go ruining the experience for everyone using the real GTS.
M@T
May 7th, 2010, 02:26 AM
No, the last four bytes at the end of exchange aren't "null" they're the PID of the trainer you want to do the exchange with (remember? stateless.)
OK thanks, it is not documented in the wiki yet.
Pup
May 7th, 2010, 02:04 PM
Okay, so it is a case of we know how to do but are keeping quiet about it for the sake of everyone else. That's good I guess.
Anyways, here's the thing what I done. http://furlocks-forest.net/tools/gts/ If anyone's interested.
madaruwode
May 7th, 2010, 07:50 PM
Just a quick question:
Is there any fix for the connection error after receiving a pkm on HG/SS? I have written a GUI that includes DNS and GTS that is made for duplicating Pokemon: If you send a Pokemon to the Computer it starts sending it back until you upload an other Pokemon. It works perfecty on Pearl (and I guess all other "old" games) but on HG I get the connection error when the Pokemon arrived at the DS.
Edit: It also works on SoulSilver, the error only appears on my HeartGold game. Very strange...
M@T
May 7th, 2010, 08:27 PM
I think it is not due to the return values of the fake GTS server, but from the game making a copy of the Pokémon it sends in the GTS.
When it recieves a Pokémon from SendPKM, it assumes it already sent something in the GTS before, and therefore, when it is traded (the Pokémon sent by SendPKM is seen as a trade by the game), the game tries to delete the backup it made of the Pokémon it believes having deposited.
But, as it sent nothing to the GTS, it provokes an error.
Also, I think that D&P don't make BSODs because they don't make backups of the Pokémon, which would explain the easy cloning glitch in these versions (the Pokémon are erased at the very end of the deposit process, so when one resets the game between the deposit and the save, there are two copies of the Pokémon, one was sent in the GTS, and the other was not erased from the save).
These are only assumptions, maybe I am completely wrong.
But strangely, it first gave me BSODs with Platinum, and now it works properly, I don't know why exactly, I think that it is due to me having deposited something in the real GTS (it began working fine after I did that).
That could explain why some people have connection errors, and others do not.
Pingouin7
May 7th, 2010, 10:37 PM
I never got any communication error on HG from using sendpkm.py
Sushi Dragonfire
May 8th, 2010, 02:30 PM
I've been trying to use the GTS Server program and my DS can't connect. It throws out a 52100 error, and the GTS Server is still waiting for a connection. Meanwhile, sendpkm works just fine. Any tips?
ReignOfComputer
May 8th, 2010, 02:40 PM
I've been trying to use the GTS Server program and my DS can't connect. It throws out a 52100 error, and the GTS Server is still waiting for a connection. Meanwhile, sendpkm works just fine. Any tips?
Did you run the DNS Server with it?
Sushi Dragonfire
May 8th, 2010, 02:55 PM
Oh, there we go... My mistake.
madaruwode
May 9th, 2010, 08:19 AM
Has anybody already documented how the search function works? I just need to know where I can find the Pokedex # of the Pokemon that has been searched for.
M@T
May 9th, 2010, 11:42 AM
I didn't see any documentation, but I did some research with my Platinum version (Diamond and Soul Silver gave exactly the same results).
I got these data :
* Pattern:
* Pokémon/gender/level/country
* data=$_GET['data']
* Deciphered data
Abra/either/any/any
data=SjstJ5BCF6twVernYqWG
0x3F 0x00 0x03 0x00 0x00 0x00 0x03
Abra/male/any/any
data=SjstJSoUmwHNapX1ILSp
0x3F 0x00 0x01 0x00 0x00 0x00 0x03
Abra/female/any/any
data=SjstJG-r1dafX7xuwSwU
0x3F 0x00 0x02 0x00 0x00 0x00 0x03
Abra/either/1-10/any
data=SjstWKvePVT04b4aWtA7
0x3F 0x00 0x03 0x01 0x0A 0x00 0x03
Abra/either/11-20/any
data=SjstRM_JFTpXDxOb_jbG
0x3F 0x00 0x03 0x0B 0x14 0x00 0x03
Abra/either/91-100/any
data=Sjst5C99Vw5zfKhh02gr
0x3F 0x00 0x03 0x5B 0x64 0x00 0x03
Arceus/neither/any/any
data=Sjst9P_ud1yFJAGpouNS
0xED 0x01 0x03 0x00 0x00 0x00 0x03
Arceus/neither/any/Afghanistan
data=Sjst9yCFsRH7Gy4iRFu9ew==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0x01
Arceus/neither/any/South Africa
data=SjsutL-w8XX-Q-x1mB9hvQ==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0xC0
Arceus/neither/any/Albania
data=Sjst9mUc8-cpEVSb5dQv-g==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0x02
Arceus/neither/any/Algeria
data=Sjst8a6zDbyeBIEUhkyadQ==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0x03
Arceus/neither/any/Vietnam
data=Sjsu0c6jzjgI08MCpZFUVA==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0xE3
Arceus/neither/any/US
data=Sjsu2CtyOKTMHZWyPEdZmQ==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0xDC
Arceus/neither/any/UK
data=Sjsu2ebb_u-eJ285m8_vHA==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0xDB
Arceus/neither/any/France
data=SjsuLcJahJhXO9M8XUGpqQ==
0xED 0x01 0x03 0x00 0x00 0x00 0x03 0x47
Now, my guess :
Byte offset
0x00-0x01 Pokémon being looked for
0x02 Gender (1: male, 2: female, 3: (n)either)
0x03 Min level
0x04 Max level
0x05 Always 0 ?
0x06 Game language (always 3 for me because I play French version)
0x07 Country (optional, set only when a country is specified, to allow compatibility with D/P in which this option wasn't available)
It seems to be in alphabetical order, based on English names of the countries.
Pup
May 9th, 2010, 01:14 PM
0x06 Game language (always 3 for me because I play French version)
It's the number of results requested. You can get a maximum of 7 results so don't try a value higher than 7 here.
I didn't know that about country though, thanks for that. =D
madaruwode
May 9th, 2010, 01:18 PM
@M@T
very nice, you're great :D
Thank you very much!
M@T
May 9th, 2010, 01:23 PM
It's the number of results requested. You can get a maximum of 7 results so don't try a value higher than 7 here.
That's odd, why is it always 3 then ?
The game should request the maximum number of results...
Are you sure of that ?
For example, what value do you have when you perform a search ?
Anyway, who feels courageous enough to make a list of all the countries ? :D
There should be 227 countries, from Afghanistan (0x01) to Vietnam (0xE3).
I don't know if it is 'rippable' directly from the ROM, it could be somewhat easier. :biggrin:
EDIT: There seems to be a problem : France is 44th in the list, but the value I got with Platinum was 0x47, i.e. 71...
It must be sorted otherwise, maybe with Jap names ?
EDIT˛: Wierd...
I made the list, but there are only 130 elements in it...
Afghanistan
Albania
Algeria
Angola
Antigua and Barbuda
Argentina
Australia
Austria
Bahamas
Bahrain
Bangladesh
Barbados
Belgium
Belize
Benin
Bermuda
Bolivia
Botswana
Brazil
British Virgin Islands
Bulgaria
Burundi
Cambodia
Cameroon
Canada
Chad
Chile
China
Colombia
Congo
Cook Islands
Costa Rica
Croatia
Cyprus
Czech Republic
Denmark
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Fiji
Finland
France
French Guiana
Gabon
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guatemala
Guinea
Guyana
Haiti
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iraq
Ireland
Israel
Italy
Jamaica
Japan
Jordan
Kenya
Kuwait
Lebanon
Liberia
Libyan Arab Jamahiriya
Luxembourg
Macau
Malaysia
Malta
Martinique
Mauritius
Mexico
Morocco
Myanmar
Netherlands
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Norway
Oman
Pakistan
Panama
Papua New Guinea
Peru
Philippines
Poland
Portugal
Republic of Korea
Romania
Russian Federation
Samoa
Senegal
Sierra Leone
Singapore
Slovakia
Slovenia
South Africa
Spain
Sri Lanka
Suriname
Swaziland
Sweden
Swiss Confederation
Taiwan
Thailand
Togo
Tunisia
Turkey
Uganda
United Arab Emirates
United Kingdom
United Republic of Tanzania
United States Virgin Islands
United States of America
Uruguay
Vanatu
Venezuela
Vietnam
Pup
May 9th, 2010, 02:02 PM
Yeah, it's always 3 in Pt/HG/SS and 5 in D/P (I think). I guess it's to curb bandwidth or something. It's a pain in the arse when you're trying to find a non-ridiculous trade request...
Edit: Incidentally, does anyone have a character conversion list for the nicknames/trainer names? I've worked out A-Z/a-z but the non-roman characters are a bit beyond me.
M@T
May 10th, 2010, 02:36 AM
Edit: Incidentally, does anyone have a character conversion list for the nicknames/trainer names? I've worked out A-Z/a-z but the non-roman characters are a bit beyond me.
Yes, I found one in PPSE's SVN repository (I added the first and the last three items according to PPRE's Table.tbl):
* Game hex character=Unicode hex character
0000=0000
0001=3000
0002=3041
0003=3042
0004=3043
0005=3044
0006=3045
0007=3046
0008=3047
0009=3048
000A=3049
000B=304A
000C=304B
000D=304C
000E=304D
000F=304E
0010=304F
0011=3050
0012=3051
0013=3052
0014=3053
0015=3054
0016=3055
0017=3056
0018=3057
0019=3058
001A=3059
001B=305A
001C=305B
001D=305C
001E=305D
001F=305E
0020=305F
0021=3060
0022=3061
0023=3062
0024=3063
0025=3064
0026=3065
0027=3066
0028=3067
0029=3068
002A=3069
002B=306A
002C=306B
002D=306C
002E=306D
002F=306E
0030=306F
0031=3070
0032=3071
0033=3072
0034=3073
0035=3074
0036=3075
0037=3076
0038=3077
0039=3078
003A=3079
003B=307A
003C=307B
003D=307C
003E=307D
003F=307E
0040=307F
0041=3080
0042=3081
0043=3082
0044=3083
0045=3084
0046=3085
0047=3086
0048=3087
0049=3088
004A=3089
004B=308A
004C=308B
004D=308C
004E=308D
004F=308F
0050=3092
0051=3093
0052=30A1
0053=30A2
0054=30A3
0055=30A4
0056=30A5
0057=30A6
0058=30A7
0059=30A8
005A=30A9
005B=30AA
005C=30AB
005D=30AC
005E=30AD
005F=30AE
0060=30AF
0061=30B0
0062=30B1
0063=30B2
0064=30B3
0065=30B4
0066=30B5
0067=30B6
0068=30B7
0069=30B8
006A=30B9
006B=30BA
006C=30BB
006D=30BC
006E=30BD
006F=30BE
0070=30BF
0071=30C0
0072=30C1
0073=30C2
0074=30C3
0075=30C4
0076=30C5
0077=30C6
0078=30C7
0079=30C8
007A=30C9
007B=30CA
007C=30CB
007D=30CC
007E=30CD
007F=30CE
0080=30CF
0081=30D0
0082=30D1
0083=30D2
0084=30D3
0085=30D4
0086=30D5
0087=30D6
0088=30D7
0089=30D8
008A=30D9
008B=30DA
008C=30DB
008D=30DC
008E=30DD
008F=30DE
0090=30DF
0091=30E0
0092=30E1
0093=30E2
0094=30E3
0095=30E4
0096=30E5
0097=30E6
0098=30E7
0099=30E8
009A=30E9
009B=30EA
009C=30EB
009D=30EC
009E=30ED
009F=30EF
00A0=30F2
00A1=30F3
00A2=FF10
00A3=FF11
00A4=FF12
00A5=FF13
00A6=FF14
00A7=FF15
00A8=FF16
00A9=FF17
00AA=FF18
00AB=FF19
00AC=FF21
00AD=FF22
00AE=FF23
00AF=FF24
00B0=FF25
00B1=FF26
00B2=FF27
00B3=FF28
00B4=FF29
00B5=FF2A
00B6=FF2B
00B7=FF2C
00B8=FF2D
00B9=FF2E
00BA=FF2F
00BB=FF30
00BC=FF31
00BD=FF32
00BE=FF33
00BF=FF34
00C0=FF35
00C1=FF36
00C2=FF37
00C3=FF38
00C4=FF39
00C5=FF3A
00C6=FF41
00C7=FF42
00C8=FF43
00C9=FF44
00CA=FF45
00CB=FF46
00CC=FF47
00CD=FF48
00CE=FF49
00CF=FF4A
00D0=FF4B
00D1=FF4C
00D2=FF4D
00D3=FF4E
00D4=FF4F
00D5=FF50
00D6=FF51
00D7=FF52
00D8=FF53
00D9=FF54
00DA=FF55
00DB=FF56
00DC=FF57
00DD=FF58
00DE=FF59
00DF=FF5A
00E1=FF01
00E2=FF1F
00E3=3001
00E4=3002
00E5=22EF
00E6=30FB
00E7=FF0F
00E8=300C
00E9=300D
00EA=300E
00EB=300F
00EC=FF08
00ED=FF09
00EE=329A
00EF=329B
00F0=FF0B
00F1=FF0D
00F2=2297
00F3=2298
00F4=FF1D
00F5=FF5A
00F6=FF1A
00F7=FF1B
00F8=FF0E
00F9=FF0C
00FA=2664
00FB=2667
00FC=2661
00FD=2662
00FE=2606
00FF=25CE
0100=25CB
0101=25A1
0102=25B3
0103=25C7
0104=FF20
0105=266B
0106=FF05
0107=263C
0108=2614
0109=2630
010A=2744
010B=260B
010C=2654
010D=2655
010E=260A
010F=21D7
0110=21D8
0111=263E
0112=00A5
0113=2648
0114=2649
0115=264A
0116=264B
0117=264C
0118=264D
0119=264E
011A=264F
011B=2190
011C=2191
011D=2193
011E=2192
011F=2023
0120=FF06
0121=0030
0122=0031
0123=0032
0124=0033
0125=0034
0126=0035
0127=0036
0128=0037
0129=0038
012A=0039
012B=0041
012C=0042
012D=0043
012E=0044
012F=0045
0130=0046
0131=0047
0132=0048
0133=0049
0134=004A
0135=004B
0136=004C
0137=004D
0138=004E
0139=004F
013A=0050
013B=0051
013C=0052
013D=0053
013E=0054
013F=0055
0140=0056
0141=0057
0142=0058
0143=0059
0144=005A
0145=0061
0146=0062
0147=0063
0148=0064
0149=0065
014A=0066
014B=0067
014C=0068
014D=0069
014E=006A
014F=006B
0150=006C
0151=006D
0152=006E
0153=006F
0154=0070
0155=0071
0156=0072
0157=0073
0158=0074
0159=0075
015A=0076
015B=0077
015C=0078
015D=0079
015E=007A
015F=00C0
0160=00C1
0161=00C2
0162=00C3
0163=00C4
0164=00C5
0165=00C6
0166=00C7
0167=00C8
0168=00C9
0169=00CA
016A=00CB
016B=00CC
016C=00CD
016D=00CE
016E=00CF
016F=00D0
0170=00D1
0171=00D2
0172=00D3
0173=00D4
0174=00D5
0175=00D6
0176=00D7
0177=00D8
0178=00D9
0179=00DA
017A=00DB
017B=00DC
017C=00DD
017D=00DE
017E=00DF
017F=00E0
0180=00E1
0181=00E2
0182=00E3
0183=00E4
0184=00E5
0185=00E6
0186=00E7
0187=00E8
0188=00E9
0189=00EA
018A=00EB
018B=00EC
018C=00ED
018D=00EE
018E=00EF
018F=00F0
0190=00F1
0191=00F2
0192=00F3
0193=00F4
0194=00F5
0195=00F6
0196=00F7
0197=00F8
0198=00F9
0199=00FA
019A=00FB
019B=00FC
019C=00FD
019D=00FE
019E=00FF
019F=0152
01A0=0153
01A1=015E
01A2=015F
01A3=00AA
01A4=00BA
01A5=00B9
01A6=00B2
01A7=00B3
01A8=0024
01A9=00A1
01AA=00BF
01AB=0021
01AC=003F
01AD=002C
01AE=002E
01AF=2026
01B0=00B7
01B1=002F
01B2=2018
01B3=2019
01B4=201C
01B5=201D
01B6=201E
01B7=300A
01B8=300B
01B9=0028
01BA=0029
01BB=2642
01BC=2640
01BD=002B
01BE=002D
01BF=002A
01C0=0023
01C1=003D
01C2=0026
01C3=007E
01C4=003A
01C5=003B
01C6=2660
01C7=2663
01C8=2665
01C9=2666
01CA=2605
01CB=25C9
01CC=25CF
01CD=25A0
01CE=25B2
01CF=25C6
01D0=0040
01D1=266A
01D2=0025
01D3=2600
01D4=2601
01D5=2602
01D6=2603
01D7=263A
01D8=265A
01D9=265B
01DA=2639
01DB=2197
01DC=2198
01DD=263D
01DE=0020
01DF=2074
01E0=20A7
01E1=20A6
01E8=00B0
01E9=005F
01EA=FF3F
0400=AC00
0401=AC01
0402=AC04
0403=AC07
0404=AC08
0405=AC09
0406=AC0A
0407=AC10
0408=AC11
0409=AC12
040A=AC13
040B=AC14
040C=AC15
040D=AC16
040E=AC17
0410=AC19
0411=AC1A
0412=AC1B
0413=AC1C
0414=AC1D
0415=AC20
0416=AC24
0417=AC2C
0418=AC2D
0419=AC2F
041A=AC30
041B=AC31
041C=AC38
041D=AC39
041E=AC3C
041F=AC40
0420=AC4B
0421=AC4D
0422=AC54
0423=AC58
0424=AC5C
0425=AC70
0426=AC71
0427=AC74
0428=AC77
0429=AC78
042A=AC7A
042B=AC80
042C=AC81
042D=AC83
042E=AC84
042F=AC85
0430=AC86
0431=AC89
0432=AC8A
0433=AC8B
0434=AC8C
0435=AC90
0436=AC94
0437=AC9C
0438=AC9D
0439=AC9F
043A=ACA0
043B=ACA1
043C=ACA8
043D=ACA9
043E=ACAA
043F=ACAC
0440=ACAF
0441=ACB0
0442=ACB8
0443=ACB9
0444=ACBB
0445=ACBC
0446=ACBD
0447=ACC1
0448=ACC4
0449=ACC8
044A=ACCC
044B=ACD5
044C=ACD7
044D=ACE0
044E=ACE1
044F=ACE4
0450=ACE7
0451=ACE8
0452=ACEA
0453=ACEC
0454=ACEF
0455=ACF0
0456=ACF1
0457=ACF3
0458=ACF5
0459=ACF6
045A=ACFC
045B=ACFD
045C=AD00
045D=AD04
045E=AD06
045F=AD0C
0460=AD0D
0461=AD0F
0462=AD11
0463=AD18
0464=AD1C
0465=AD20
0466=AD29
0467=AD2C
0468=AD2D
0469=AD34
046A=AD35
046B=AD38
046C=AD3C
046D=AD44
046E=AD45
046F=AD47
0470=AD49
0471=AD50
0472=AD54
0473=AD58
0474=AD61
0475=AD63
0476=AD6C
0477=AD6D
0478=AD70
0479=AD73
047A=AD74
047B=AD75
047C=AD76
047D=AD7B
047E=AD7C
047F=AD7D
0480=AD7F
0481=AD81
0482=AD82
0483=AD88
0484=AD89
0485=AD8C
0486=AD90
0487=AD9C
0488=AD9D
0489=ADA4
048A=ADB7
048B=ADC0
048C=ADC1
048D=ADC4
048E=ADC8
048F=ADD0
0490=ADD1
0491=ADD3
0492=ADDC
0493=ADE0
0494=ADE4
0495=ADF8
0496=ADF9
0497=ADFC
0498=ADFF
0499=AE00
049A=AE01
049B=AE08
049C=AE09
049D=AE0B
049E=AE0D
049F=AE14
04A0=AE30
04A1=AE31
04A2=AE34
04A3=AE37
04A4=AE38
04A5=AE3A
04A6=AE40
04A7=AE41
04A8=AE43
04A9=AE45
04AA=AE46
04AB=AE4A
04AC=AE4C
04AD=AE4D
04AE=AE4E
04AF=AE50
04B0=AE54
04B1=AE56
04B2=AE5C
04B3=AE5D
04B4=AE5F
04B5=AE60
04B6=AE61
04B7=AE65
04B8=AE68
04B9=AE69
04BA=AE6C
04BB=AE70
04BC=AE78
04BD=AE79
04BE=AE7B
04BF=AE7C
04C0=AE7D
04C1=AE84
04C2=AE85
04C3=AE8C
04C4=AEBC
04C5=AEBD
04C6=AEBE
04C7=AEC0
04C8=AEC4
04C9=AECC
04CA=AECD
04CB=AECF
04CC=AED0
04CD=AED1
04CE=AED8
04CF=AED9
04D0=AEDC
04D1=AEE8
04D2=AEEB
04D3=AEED
04D4=AEF4
04D5=AEF8
04D6=AEFC
04D7=AF07
04D8=AF08
04D9=AF0D
04DA=AF10
04DB=AF2C
04DC=AF2D
04DD=AF30
04DE=AF32
04DF=AF34
04E0=AF3C
04E1=AF3D
04E2=AF3F
04E3=AF41
04E4=AF42
04E5=AF43
04E6=AF48
04E7=AF49
04E8=AF50
04E9=AF5C
04EA=AF5D
04EB=AF64
04EC=AF65
04ED=AF79
04EE=AF80
04EF=AF84
04F0=AF88
04F1=AF90
04F2=AF91
04F3=AF95
04F4=AF9C
04F5=AFB8
04F6=AFB9
04F7=AFBC
04F8=AFC0
04F9=AFC7
04FA=AFC8
04FB=AFC9
04FC=AFCB
04FD=AFCD
04FE=AFCE
04FF=AFD4
0500=AFDC
0501=AFE8
0502=AFE9
0503=AFF0
0504=AFF1
0505=AFF4
0506=AFF8
0507=B000
0508=B001
0509=B004
050A=B00C
050B=B010
050C=B014
050D=B01C
050E=B01D
050F=B028
0510=B044
0511=B045
0512=B048
0513=B04A
0514=B04C
0515=B04E
0516=B053
0517=B054
0518=B055
0519=B057
051A=B059
051B=B05D
051C=B07C
051D=B07D
051E=B080
051F=B084
0520=B08C
0521=B08D
0522=B08F
0523=B091
0524=B098
0525=B099
0526=B09A
0527=B09C
0528=B09F
0529=B0A0
052A=B0A1
052B=B0A2
052C=B0A8
052D=B0A9
052E=B0AB
052F=B0AC
0530=B0AD
0531=B0AE
0532=B0AF
0533=B0B1
0534=B0B3
0535=B0B4
0536=B0B5
0537=B0B8
0538=B0BC
0539=B0C4
053A=B0C5
053B=B0C7
053C=B0C8
053D=B0C9
053E=B0D0
053F=B0D1
0540=B0D4
0541=B0D8
0542=B0E0
0543=B0E5
0544=B108
0545=B109
0546=B10B
0547=B10C
0548=B110
0549=B112
054A=B113
054B=B118
054C=B119
054D=B11B
054E=B11C
054F=B11D
0550=B123
0551=B124
0552=B125
0553=B128
0554=B12C
0555=B134
0556=B135
0557=B137
0558=B138
0559=B139
055A=B140
055B=B141
055C=B144
055D=B148
055E=B150
055F=B151
0560=B154
0561=B155
0562=B158
0563=B15C
0564=B160
0565=B178
0566=B179
0567=B17C
0568=B180
0569=B182
056A=B188
056B=B189
056C=B18B
056D=B18D
056E=B192
056F=B193
0570=B194
0571=B198
0572=B19C
0573=B1A8
0574=B1CC
0575=B1D0
0576=B1D4
0577=B1DC
0578=B1DD
0579=B1DF
057A=B1E8
057B=B1E9
057C=B1EC
057D=B1F0
057E=B1F9
057F=B1FB
0580=B1FD
0581=B204
0582=B205
0583=B208
0584=B20B
0585=B20C
0586=B214
0587=B215
0588=B217
0589=B219
058A=B220
058B=B234
058C=B23C
058D=B258
058E=B25C
058F=B260
0590=B268
0591=B269
0592=B274
0593=B275
0594=B27C
0595=B284
0596=B285
0597=B289
0598=B290
0599=B291
059A=B294
059B=B298
059C=B299
059D=B29A
059E=B2A0
059F=B2A1
05A0=B2A3
05A1=B2A5
05A2=B2A6
05A3=B2AA
05A4=B2AC
05A5=B2B0
05A6=B2B4
05A7=B2C8
05A8=B2C9
05A9=B2CC
05AA=B2D0
05AB=B2D2
05AC=B2D8
05AD=B2D9
05AE=B2DB
05AF=B2DD
05B0=B2E2
05B1=B2E4
05B2=B2E5
05B3=B2E6
05B4=B2E8
05B5=B2EB
05B6=B2EC
05B7=B2ED
05B8=B2EE
05B9=B2EF
05BA=B2F3
05BB=B2F4
05BC=B2F5
05BD=B2F7
05BE=B2F8
05BF=B2F9
05C0=B2FA
05C1=B2FB
05C2=B2FF
05C3=B300
05C4=B301
05C5=B304
05C6=B308
05C7=B310
05C8=B311
05C9=B313
05CA=B314
05CB=B315
05CC=B31C
05CD=B354
05CE=B355
05CF=B356
05D0=B358
05D1=B35B
05D2=B35C
05D3=B35E
05D4=B35F
05D5=B364
05D6=B365
05D7=B367
05D8=B369
05D9=B36B
05DA=B36E
05DB=B370
05DC=B371
05DD=B374
05DE=B378
05DF=B380
05E0=B381
05E1=B383
05E2=B384
05E3=B385
05E4=B38C
05E5=B390
05E6=B394
05E7=B3A0
05E8=B3A1
05E9=B3A8
05EA=B3AC
05EB=B3C4
05EC=B3C5
05ED=B3C8
05EE=B3CB
05EF=B3CC
05F0=B3CE
05F1=B3D0
05F2=B3D4
05F3=B3D5
05F4=B3D7
05F5=B3D9
05F6=B3DB
05F7=B3DD
05F8=B3E0
05F9=B3E4
05FA=B3E8
05FB=B3FC
05FC=B410
05FD=B418
05FE=B41C
05FF=B420
0600=B428
0601=B429
0602=B42B
0603=B434
0604=B450
0605=B451
0606=B454
0607=B458
0608=B460
0609=B461
060A=B463
060B=B465
060C=B46C
060D=B480
060E=B488
060F=B49D
0610=B4A4
0611=B4A8
0612=B4AC
0613=B4B5
0614=B4B7
0615=B4B9
0616=B4C0
0617=B4C4
0618=B4C8
0619=B4D0
061A=B4D5
061B=B4DC
061C=B4DD
061D=B4E0
061E=B4E3
061F=B4E4
0620=B4E6
0621=B4EC
0622=B4ED
0623=B4EF
0624=B4F1
0625=B4F8
0626=B514
0627=B515
0628=B518
0629=B51B
062A=B51C
062B=B524
062C=B525
062D=B527
062E=B528
062F=B529
0630=B52A
0631=B530
0632=B531
0633=B534
0634=B538
0635=B540
0636=B541
0637=B543
0638=B544
0639=B545
063A=B54B
063B=B54C
063C=B54D
063D=B550
063E=B554
063F=B55C
0640=B55D
0641=B55F
0642=B560
0643=B561
0644=B5A0
0645=B5A1
0646=B5A4
0647=B5A8
0648=B5AA
0649=B5AB
064A=B5B0
064B=B5B1
064C=B5B3
064D=B5B4
064E=B5B5
064F=B5BB
0650=B5BC
0651=B5BD
0652=B5C0
0653=B5C4
0654=B5CC
0655=B5CD
0656=B5CF
0657=B5D0
0658=B5D1
0659=B5D8
065A=B5EC
065B=B610
065C=B611
065D=B614
065E=B618
065F=B625
0660=B62C
0661=B634
0662=B648
0663=B664
0664=B668
0665=B69C
0666=B69D
0667=B6A0
0668=B6A4
0669=B6AB
066A=B6AC
066B=B6B1
066C=B6D4
066D=B6F0
066E=B6F4
066F=B6F8
0670=B700
0671=B701
0672=B705
0673=B728
0674=B729
0675=B72C
0676=B72F
0677=B730
0678=B738
0679=B739
067A=B73B
067B=B744
067C=B748
067D=B74C
067E=B754
067F=B755
0680=B760
0681=B764
0682=B768
0683=B770
0684=B771
0685=B773
0686=B775
0687=B77C
0688=B77D
0689=B780
068A=B784
068B=B78C
068C=B78D
068D=B78F
068E=B790
068F=B791
0690=B792
0691=B796
0692=B797
0693=B798
0694=B799
0695=B79C
0696=B7A0
0697=B7A8
0698=B7A9
0699=B7AB
069A=B7AC
069B=B7AD
069C=B7B4
069D=B7B5
069E=B7B8
069F=B7C7
06A0=B7C9
06A1=B7EC
06A2=B7ED
06A3=B7F0
06A4=B7F4
06A5=B7FC
06A6=B7FD
06A7=B7FF
06A8=B800
06A9=B801
06AA=B807
06AB=B808
06AC=B809
06AD=B80C
06AE=B810
06AF=B818
06B0=B819
06B1=B81B
06B2=B81D
06B3=B824
06B4=B825
06B5=B828
06B6=B82C
06B7=B834
06B8=B835
06B9=B837
06BA=B838
06BB=B839
06BC=B840
06BD=B844
06BE=B851
06BF=B853
06C0=B85C
06C1=B85D
06C2=B860
06C3=B864
06C4=B86C
06C5=B86D
06C6=B86F
06C7=B871
06C8=B878
06C9=B87C
06CA=B88D
06CB=B8A8
06CC=B8B0
06CD=B8B4
06CE=B8B8
06CF=B8C0
06D0=B8C1
06D1=B8C3
06D2=B8C5
06D3=B8CC
06D4=B8D0
06D5=B8D4
06D6=B8DD
06D7=B8DF
06D8=B8E1
06D9=B8E8
06DA=B8E9
06DB=B8EC
06DC=B8F0
06DD=B8F8
06DE=B8F9
06DF=B8FB
06E0=B8FD
06E1=B904
06E2=B918
06E3=B920
06E4=B93C
06E5=B93D
06E6=B940
06E7=B944
06E8=B94C
06E9=B94F
06EA=B951
06EB=B958
06EC=B959
06ED=B95C
06EE=B960
06EF=B968
06F0=B969
06F1=B96B
06F2=B96D
06F3=B974
06F4=B975
06F5=B978
06F6=B97C
06F7=B984
06F8=B985
06F9=B987
06FA=B989
06FB=B98A
06FC=B98D
06FD=B98E
06FE=B9AC
06FF=B9AD
0700=B9B0
0701=B9B4
0702=B9BC
0703=B9BD
0704=B9BF
0705=B9C1
0706=B9C8
0707=B9C9
0708=B9CC
0709=B9CE
070A=B9CF
070B=B9D0
070C=B9D1
070D=B9D2
070E=B9D8
070F=B9D9
0710=B9DB
0711=B9DD
0712=B9DE
0713=B9E1
0714=B9E3
0715=B9E4
0716=B9E5
0717=B9E8
0718=B9EC
0719=B9F4
071A=B9F5
071B=B9F7
071C=B9F8
071D=B9F9
071E=B9FA
071F=BA00
0720=BA01
0721=BA08
0722=BA15
0723=BA38
0724=BA39
0725=BA3C
0726=BA40
0727=BA42
0728=BA48
0729=BA49
072A=BA4B
072B=BA4D
072C=BA4E
072D=BA53
072E=BA54
072F=BA55
0730=BA58
0731=BA5C
0732=BA64
0733=BA65
0734=BA67
0735=BA68
0736=BA69
0737=BA70
0738=BA71
0739=BA74
073A=BA78
073B=BA83
073C=BA84
073D=BA85
073E=BA87
073F=BA8C
0740=BAA8
0741=BAA9
0742=BAAB
0743=BAAC
0744=BAB0
0745=BAB2
0746=BAB8
0747=BAB9
0748=BABB
0749=BABD
074A=BAC4
074B=BAC8
074C=BAD8
074D=BAD9
074E=BAFC
074F=BB00
0750=BB04
0751=BB0D
0752=BB0F
0753=BB11
0754=BB18
0755=BB1C
0756=BB20
0757=BB29
0758=BB2B
0759=BB34
075A=BB35
075B=BB36
075C=BB38
075D=BB3B
075E=BB3C
075F=BB3D
0760=BB3E
0761=BB44
0762=BB45
0763=BB47
0764=BB49
0765=BB4D
0766=BB4F
0767=BB50
0768=BB54
0769=BB58
076A=BB61
076B=BB63
076C=BB6C
076D=BB88
076E=BB8C
076F=BB90
0770=BBA4
0771=BBA8
0772=BBAC
0773=BBB4
0774=BBB7
0775=BBC0
0776=BBC4
0777=BBC8
0778=BBD0
0779=BBD3
077A=BBF8
077B=BBF9
077C=BBFC
077D=BBFF
077E=BC00
077F=BC02
0780=BC08
0781=BC09
0782=BC0B
0783=BC0C
0784=BC0D
0785=BC0F
0786=BC11
0787=BC14
0788=BC15
0789=BC16
078A=BC17
078B=BC18
078C=BC1B
078D=BC1C
078E=BC1D
078F=BC1E
0790=BC1F
0791=BC24
0792=BC25
0793=BC27
0794=BC29
0795=BC2D
0796=BC30
0797=BC31
0798=BC34
0799=BC38
079A=BC40
079B=BC41
079C=BC43
079D=BC44
079E=BC45
079F=BC49
07A0=BC4C
07A1=BC4D
07A2=BC50
07A3=BC5D
07A4=BC84
07A5=BC85
07A6=BC88
07A7=BC8B
07A8=BC8C
07A9=BC8E
07AA=BC94
07AB=BC95
07AC=BC97
07AD=BC99
07AE=BC9A
07AF=BCA0
07B0=BCA1
07B1=BCA4
07B2=BCA7
07B3=BCA8
07B4=BCB0
07B5=BCB1
07B6=BCB3
07B7=BCB4
07B8=BCB5
07B9=BCBC
07BA=BCBD
07BB=BCC0
07BC=BCC4
07BD=BCCD
07BE=BCCF
07BF=BCD0
07C0=BCD1
07C1=BCD5
07C2=BCD8
07C3=BCDC
07C4=BCF4
07C5=BCF5
07C6=BCF6
07C7=BCF8
07C8=BCFC
07C9=BD04
07CA=BD05
07CB=BD07
07CC=BD09
07CD=BD10
07CE=BD14
07CF=BD24
07D0=BD2C
07D1=BD40
07D2=BD48
07D3=BD49
07D4=BD4C
07D5=BD50
07D6=BD58
07D7=BD59
07D8=BD64
07D9=BD68
07DA=BD80
07DB=BD81
07DC=BD84
07DD=BD87
07DE=BD88
07DF=BD89
07E0=BD8A
07E1=BD90
07E2=BD91
07E3=BD93
07E4=BD95
07E5=BD99
07E6=BD9A
07E7=BD9C
07E8=BDA4
07E9=BDB0
07EA=BDB8
07EB=BDD4
07EC=BDD5
07ED=BDD8
07EE=BDDC
07EF=BDE9
07F0=BDF0
07F1=BDF4
07F2=BDF8
07F3=BE00
07F4=BE03
07F5=BE05
07F6=BE0C
07F7=BE0D
07F8=BE10
07F9=BE14
07FA=BE1C
07FB=BE1D
07FC=BE1F
07FD=BE44
07FE=BE45
07FF=BE48
0800=BE4C
0801=BE4E
0802=BE54
0803=BE55
0804=BE57
0805=BE59
0806=BE5A
0807=BE5B
0808=BE60
0809=BE61
080A=BE64
080B=BE68
080C=BE6A
080D=BE70
080E=BE71
080F=BE73
0810=BE74
0811=BE75
0812=BE7B
0813=BE7C
0814=BE7D
0815=BE80
0816=BE84
0817=BE8C
0818=BE8D
0819=BE8F
081A=BE90
081B=BE91
081C=BE98
081D=BE99
081E=BEA8
081F=BED0
0820=BED1
0821=BED4
0822=BED7
0823=BED8
0824=BEE0
0825=BEE3
0826=BEE4
0827=BEE5
0828=BEEC
0829=BF01
082A=BF08
082B=BF09
082C=BF18
082D=BF19
082E=BF1B
082F=BF1C
0830=BF1D
0831=BF40
0832=BF41
0833=BF44
0834=BF48
0835=BF50
0836=BF51
0837=BF55
0838=BF94
0839=BFB0
083A=BFC5
083B=BFCC
083C=BFCD
083D=BFD0
083E=BFD4
083F=BFDC
0840=BFDF
0841=BFE1
0842=C03C
0843=C051
0844=C058
0845=C05C
0846=C060
0847=C068
0848=C069
0849=C090
084A=C091
084B=C094
084C=C098
084D=C0A0
084E=C0A1
084F=C0A3
0850=C0A5
0851=C0AC
0852=C0AD
0853=C0AF
0854=C0B0
0855=C0B3
0856=C0B4
0857=C0B5
0858=C0B6
0859=C0BC
085A=C0BD
085B=C0BF
085C=C0C0
085D=C0C1
085E=C0C5
085F=C0C8
0860=C0C9
0861=C0CC
0862=C0D0
0863=C0D8
0864=C0D9
0865=C0DB
0866=C0DC
0867=C0DD
0868=C0E4
0869=C0E5
086A=C0E8
086B=C0EC
086C=C0F4
086D=C0F5
086E=C0F7
086F=C0F9
0870=C100
0871=C104
0872=C108
0873=C110
0874=C115
0875=C11C
0876=C11D
0877=C11E
0878=C11F
0879=C120
087A=C123
087B=C124
087C=C126
087D=C127
087E=C12C
087F=C12D
0880=C12F
0881=C130
0882=C131
0883=C136
0884=C138
0885=C139
0886=C13C
0887=C140
0888=C148
0889=C149
088A=C14B
088B=C14C
088C=C14D
088D=C154
088E=C155
088F=C158
0890=C15C
0891=C164
0892=C165
0893=C167
0894=C168
0895=C169
0896=C170
0897=C174
0898=C178
0899=C185
089A=C18C
089B=C18D
089C=C18E
089D=C190
089E=C194
089F=C196
08A0=C19C
08A1=C19D
08A2=C19F
08A3=C1A1
08A4=C1A5
08A5=C1A8
08A6=C1A9
08A7=C1AC
08A8=C1B0
08A9=C1BD
08AA=C1C4
08AB=C1C8
08AC=C1CC
08AD=C1D4
08AE=C1D7
08AF=C1D8
08B0=C1E0
08B1=C1E4
08B2=C1E8
08B3=C1F0
08B4=C1F1
08B5=C1F3
08B6=C1FC
08B7=C1FD
08B8=C200
08B9=C204
08BA=C20C
08BB=C20D
08BC=C20F
08BD=C211
08BE=C218
08BF=C219
08C0=C21C
08C1=C21F
08C2=C220
08C3=C228
08C4=C229
08C5=C22B
08C6=C22D
08C7=C22F
08C8=C231
08C9=C232
08CA=C234
08CB=C248
08CC=C250
08CD=C251
08CE=C254
08CF=C258
08D0=C260
08D1=C265
08D2=C26C
08D3=C26D
08D4=C270
08D5=C274
08D6=C27C
08D7=C27D
08D8=C27F
08D9=C281
08DA=C288
08DB=C289
08DC=C290
08DD=C298
08DE=C29B
08DF=C29D
08E0=C2A4
08E1=C2A5
08E2=C2A8
08E3=C2AC
08E4=C2AD
08E5=C2B4
08E6=C2B5
08E7=C2B7
08E8=C2B9
08E9=C2DC
08EA=C2DD
08EB=C2E0
08EC=C2E3
08ED=C2E4
08EE=C2EB
08EF=C2EC
08F0=C2ED
08F1=C2EF
08F2=C2F1
08F3=C2F6
08F4=C2F8
08F5=C2F9
08F6=C2FB
08F7=C2FC
08F8=C300
08F9=C308
08FA=C309
08FB=C30C
08FC=C30D
08FD=C313
08FE=C314
08FF=C315
0900=C318
0901=C31C
0902=C324
0903=C325
0904=C328
0905=C329
0906=C345
0907=C368
0908=C369
0909=C36C
090A=C370
090B=C372
090C=C378
090D=C379
090E=C37C
090F=C37D
0910=C384
0911=C388
0912=C38C
0913=C3C0
0914=C3D8
0915=C3D9
0916=C3DC
0917=C3DF
0918=C3E0
0919=C3E2
091A=C3E8
091B=C3E9
091C=C3ED
091D=C3F4
091E=C3F5
091F=C3F8
0920=C408
0921=C410
0922=C424
0923=C42C
0924=C430
0925=C434
0926=C43C
0927=C43D
0928=C448
0929=C464
092A=C465
092B=C468
092C=C46C
092D=C474
092E=C475
092F=C479
0930=C480
0931=C494
0932=C49C
0933=C4B8
0934=C4BC
0935=C4E9
0936=C4F0
0937=C4F1
0938=C4F4
0939=C4F8
093A=C4FA
093B=C4FF
093C=C500
093D=C501
093E=C50C
093F=C510
0940=C514
0941=C51C
0942=C528
0943=C529
0944=C52C
0945=C530
0946=C538
0947=C539
0948=C53B
0949=C53D
094A=C544
094B=C545
094C=C548
094D=C549
094E=C54A
094F=C54C
0950=C54D
0951=C54E
0952=C553
0953=C554
0954=C555
0955=C557
0956=C558
0957=C559
0958=C55D
0959=C55E
095A=C560
095B=C561
095C=C564
095D=C568
095E=C570
095F=C571
0960=C573
0961=C574
0962=C575
0963=C57C
0964=C57D
0965=C580
0966=C584
0967=C587
0968=C58C
0969=C58D
096A=C58F
096B=C591
096C=C595
096D=C597
096E=C598
096F=C59C
0970=C5A0
0971=C5A9
0972=C5B4
0973=C5B5
0974=C5B8
0975=C5B9
0976=C5BB
0977=C5BC
0978=C5BD
0979=C5BE
097A=C5C4
097B=C5C5
097C=C5C6
097D=C5C7
097E=C5C8
097F=C5C9
0980=C5CA
0981=C5CC
0982=C5CE
0983=C5D0
0984=C5D1
0985=C5D4
0986=C5D8
0987=C5E0
0988=C5E1
0989=C5E3
098A=C5E5
098B=C5EC
098C=C5ED
098D=C5EE
098E=C5F0
098F=C5F4
0990=C5F6
0991=C5F7
0992=C5FC
0993=C5FD
0994=C5FE
0995=C5FF
0996=C600
0997=C601
0998=C605
0999=C606
099A=C607
099B=C608
099C=C60C
099D=C610
099E=C618
099F=C619
09A0=C61B
09A1=C61C
09A2=C624
09A3=C625
09A4=C628
09A5=C62C
09A6=C62D
09A7=C62E
09A8=C630
09A9=C633
09AA=C634
09AB=C635
09AC=C637
09AD=C639
09AE=C63B
09AF=C640
09B0=C641
09B1=C644
09B2=C648
09B3=C650
09B4=C651
09B5=C653
09B6=C654
09B7=C655
09B8=C65C
09B9=C65D
09BA=C660
09BB=C66C
09BC=C66F
09BD=C671
09BE=C678
09BF=C679
09C0=C67C
09C1=C680
09C2=C688
09C3=C689
09C4=C68B
09C5=C68D
09C6=C694
09C7=C695
09C8=C698
09C9=C69C
09CA=C6A4
09CB=C6A5
09CC=C6A7
09CD=C6A9
09CE=C6B0
09CF=C6B1
09D0=C6B4
09D1=C6B8
09D2=C6B9
09D3=C6BA
09D4=C6C0
09D5=C6C1
09D6=C6C3
09D7=C6C5
09D8=C6CC
09D9=C6CD
09DA=C6D0
09DB=C6D4
09DC=C6DC
09DD=C6DD
09DE=C6E0
09DF=C6E1
09E0=C6E8
09E1=C6E9
09E2=C6EC
09E3=C6F0
09E4=C6F8
09E5=C6F9
09E6=C6FD
09E7=C704
09E8=C705
09E9=C708
09EA=C70C
09EB=C714
09EC=C715
09ED=C717
09EE=C719
09EF=C720
09F0=C721
09F1=C724
09F2=C728
09F3=C730
09F4=C731
09F5=C733
09F6=C735
09F7=C737
09F8=C73C
09F9=C73D
09FA=C740
09FB=C744
09FC=C74A
09FD=C74C
09FE=C74D
09FF=C74F
0A00=C751
0A01=C752
0A02=C753
0A03=C754
0A04=C755
0A05=C756
0A06=C757
0A07=C758
0A08=C75C
0A09=C760
0A0A=C768
0A0B=C76B
0A0C=C774
0A0D=C775
0A0E=C778
0A0F=C77C
0A10=C77D
0A11=C77E
0A12=C783
0A13=C784
0A14=C785
0A15=C787
0A16=C788
0A17=C789
0A18=C78A
0A19=C78E
0A1A=C790
0A1B=C791
0A1C=C794
0A1D=C796
0A1E=C797
0A1F=C798
0A20=C79A
0A21=C7A0
0A22=C7A1
0A23=C7A3
0A24=C7A4
0A25=C7A5
0A26=C7A6
0A27=C7AC
0A28=C7AD
0A29=C7B0
0A2A=C7B4
0A2B=C7BC
0A2C=C7BD
0A2D=C7BF
0A2E=C7C0
0A2F=C7C1
0A30=C7C8
0A31=C7C9
0A32=C7CC
0A33=C7CE
0A34=C7D0
0A35=C7D8
0A36=C7DD
0A37=C7E4
0A38=C7E8
0A39=C7EC
0A3A=C800
0A3B=C801
0A3C=C804
0A3D=C808
0A3E=C80A
0A3F=C810
0A40=C811
0A41=C813
0A42=C815
0A43=C816
0A44=C81C
0A45=C81D
0A46=C820
0A47=C824
0A48=C82C
0A49=C82D
0A4A=C82F
0A4B=C831
0A4C=C838
0A4D=C83C
0A4E=C840
0A4F=C848
0A50=C849
0A51=C84C
0A52=C84D
0A53=C854
0A54=C870
0A55=C871
0A56=C874
0A57=C878
0A58=C87A
0A59=C880
0A5A=C881
0A5B=C883
0A5C=C885
0A5D=C886
0A5E=C887
0A5F=C88B
0A60=C88C
0A61=C88D
0A62=C894
0A63=C89D
0A64=C89F
0A65=C8A1
0A66=C8A8
0A67=C8BC
0A68=C8BD
0A69=C8C4
0A6A=C8C8
0A6B=C8CC
0A6C=C8D4
0A6D=C8D5
0A6E=C8D7
0A6F=C8D9
0A70=C8E0
0A71=C8E1
0A72=C8E4
0A73=C8F5
0A74=C8FC
0A75=C8FD
0A76=C900
0A77=C904
0A78=C905
0A79=C906
0A7A=C90C
0A7B=C90D
0A7C=C90F
0A7D=C911
0A7E=C918
0A7F=C92C
0A80=C934
0A81=C950
0A82=C951
0A83=C954
0A84=C958
0A85=C960
0A86=C961
0A87=C963
0A88=C96C
0A89=C970
0A8A=C974
0A8B=C97C
0A8C=C988
0A8D=C989
0A8E=C98C
0A8F=C990
0A90=C998
0A91=C999
0A92=C99B
0A93=C99D
0A94=C9C0
0A95=C9C1
0A96=C9C4
0A97=C9C7
0A98=C9C8
0A99=C9CA
0A9A=C9D0
0A9B=C9D1
0A9C=C9D3
0A9D=C9D5
0A9E=C9D6
0A9F=C9D9
0AA0=C9DA
0AA1=C9DC
0AA2=C9DD
0AA3=C9E0
0AA4=C9E2
0AA5=C9E4
0AA6=C9E7
0AA7=C9EC
0AA8=C9ED
0AA9=C9EF
0AAA=C9F0
0AAB=C9F1
0AAC=C9F8
0AAD=C9F9
0AAE=C9FC
0AAF=CA00
0AB0=CA08
0AB1=CA09
0AB2=CA0B
0AB3=CA0C
0AB4=CA0D
0AB5=CA14
0AB6=CA18
0AB7=CA29
0AB8=CA4C
0AB9=CA4D
0ABA=CA50
0ABB=CA54
0ABC=CA5C
0ABD=CA5D
0ABE=CA5F
0ABF=CA60
0AC0=CA61
0AC1=CA68
0AC2=CA7D
0AC3=CA84
0AC4=CA98
0AC5=CABC
0AC6=CABD
0AC7=CAC0
0AC8=CAC4
0AC9=CACC
0ACA=CACD
0ACB=CACF
0ACC=CAD1
0ACD=CAD3
0ACE=CAD8
0ACF=CAD9
0AD0=CAE0
0AD1=CAEC
0AD2=CAF4
0AD3=CB08
0AD4=CB10
0AD5=CB14
0AD6=CB18
0AD7=CB20
0AD8=CB21
0AD9=CB41
0ADA=CB48
0ADB=CB49
0ADC=CB4C
0ADD=CB50
0ADE=CB58
0ADF=CB59
0AE0=CB5D
0AE1=CB64
0AE2=CB78
0AE3=CB79
0AE4=CB9C
0AE5=CBB8
0AE6=CBD4
0AE7=CBE4
0AE8=CBE7
0AE9=CBE9
0AEA=CC0C
0AEB=CC0D
0AEC=CC10
0AED=CC14
0AEE=CC1C
0AEF=CC1D
0AF0=CC21
0AF1=CC22
0AF2=CC27
0AF3=CC28
0AF4=CC29
0AF5=CC2C
0AF6=CC2E
0AF7=CC30
0AF8=CC38
0AF9=CC39
0AFA=CC3B
0AFB=CC3C
0AFC=CC3D
0AFD=CC3E
0AFE=CC44
0AFF=CC45
0B00=CC48
0B01=CC4C
0B02=CC54
0B03=CC55
0B04=CC57
0B05=CC58
0B06=CC59
0B07=CC60
0B08=CC64
0B09=CC66
0B0A=CC68
0B0B=CC70
0B0C=CC75
0B0D=CC98
0B0E=CC99
0B0F=CC9C
0B10=CCA0
0B11=CCA8
0B12=CCA9
0B13=CCAB
0B14=CCAC
0B15=CCAD
0B16=CCB4
0B17=CCB5
0B18=CCB8
0B19=CCBC
0B1A=CCC4
0B1B=CCC5
0B1C=CCC7
0B1D=CCC9
0B1E=CCD0
0B1F=CCD4
0B20=CCE4
0B21=CCEC
0B22=CCF0
0B23=CD01
0B24=CD08
0B25=CD09
0B26=CD0C
0B27=CD10
0B28=CD18
0B29=CD19
0B2A=CD1B
0B2B=CD1D
0B2C=CD24
0B2D=CD28
0B2E=CD2C
0B2F=CD39
0B30=CD5C
0B31=CD60
0B32=CD64
0B33=CD6C
0B34=CD6D
0B35=CD6F
0B36=CD71
0B37=CD78
0B38=CD88
0B39=CD94
0B3A=CD95
0B3B=CD98
0B3C=CD9C
0B3D=CDA4
0B3E=CDA5
0B3F=CDA7
0B40=CDA9
0B41=CDB0
0B42=CDC4
0B43=CDCC
0B44=CDD0
0B45=CDE8
0B46=CDEC
0B47=CDF0
0B48=CDF8
0B49=CDF9
0B4A=CDFB
0B4B=CDFD
0B4C=CE04
0B4D=CE08
0B4E=CE0C
0B4F=CE14
0B50=CE19
0B51=CE20
0B52=CE21
0B53=CE24
0B54=CE28
0B55=CE30
0B56=CE31
0B57=CE33
0B58=CE35
0B59=CE58
0B5A=CE59
0B5B=CE5C
0B5C=CE5F
0B5D=CE60
0B5E=CE61
0B5F=CE68
0B60=CE69
0B61=CE6B
0B62=CE6D
0B63=CE74
0B64=CE75
0B65=CE78
0B66=CE7C
0B67=CE84
0B68=CE85
0B69=CE87
0B6A=CE89
0B6B=CE90
0B6C=CE91
0B6D=CE94
0B6E=CE98
0B6F=CEA0
0B70=CEA1
0B71=CEA3
0B72=CEA4
0B73=CEA5
0B74=CEAC
0B75=CEAD
0B76=CEC1
0B77=CEE4
0B78=CEE5
0B79=CEE8
0B7A=CEEB
0B7B=CEEC
0B7C=CEF4
0B7D=CEF5
0B7E=CEF7
0B7F=CEF8
0B80=CEF9
0B81=CF00
0B82=CF01
0B83=CF04
0B84=CF08
0B85=CF10
0B86=CF11
0B87=CF13
0B88=CF15
0B89=CF1C
0B8A=CF20
0B8B=CF24
0B8C=CF2C
0B8D=CF2D
0B8E=CF2F
0B8F=CF30
0B90=CF31
0B91=CF38
0B92=CF54
0B93=CF55
0B94=CF58
0B95=CF5C
0B96=CF64
0B97=CF65
0B98=CF67
0B99=CF69
0B9A=CF70
0B9B=CF71
0B9C=CF74
0B9D=CF78
0B9E=CF80
0B9F=CF85
0BA0=CF8C
0BA1=CFA1
0BA2=CFA8
0BA3=CFB0
0BA4=CFC4
0BA5=CFE0
0BA6=CFE1
0BA7=CFE4
0BA8=CFE8
0BA9=CFF0
0BAA=CFF1
0BAB=CFF3
0BAC=CFF5
0BAD=CFFC
0BAE=D000
0BAF=D004
0BB0=D011
0BB1=D018
0BB2=D02D
0BB3=D034
0BB4=D035
0BB5=D038
0BB6=D03C
0BB7=D044
0BB8=D045
0BB9=D047
0BBA=D049
0BBB=D050
0BBC=D054
0BBD=D058
0BBE=D060
0BBF=D06C
0BC0=D06D
0BC1=D070
0BC2=D074
0BC3=D07C
0BC4=D07D
0BC5=D081
0BC6=D0A4
0BC7=D0A5
0BC8=D0A8
0BC9=D0AC
0BCA=D0B4
0BCB=D0B5
0BCC=D0B7
0BCD=D0B9
0BCE=D0C0
0BCF=D0C1
0BD0=D0C4
0BD1=D0C8
0BD2=D0C9
0BD3=D0D0
0BD4=D0D1
0BD5=D0D3
0BD6=D0D4
0BD7=D0D5
0BD8=D0DC
0BD9=D0DD
0BDA=D0E0
0BDB=D0E4
0BDC=D0EC
0BDD=D0ED
0BDE=D0EF
0BDF=D0F0
0BE0=D0F1
0BE1=D0F8
0BE2=D10D
0BE3=D130
0BE4=D131
0BE5=D134
0BE6=D138
0BE7=D13A
0BE8=D140
0BE9=D141
0BEA=D143
0BEB=D144
0BEC=D145
0BED=D14C
0BEE=D14D
0BEF=D150
0BF0=D154
0BF1=D15C
0BF2=D15D
0BF3=D15F
0BF4=D161
0BF5=D168
0BF6=D16C
0BF7=D17C
0BF8=D184
0BF9=D188
0BFA=D1A0
0BFB=D1A1
0BFC=D1A4
0BFD=D1A8
0BFE=D1B0
0BFF=D1B1
0C00=D1B3
0C01=D1B5
0C02=D1BA
0C03=D1BC
0C04=D1C0
0C05=D1D8
0C06=D1F4
0C07=D1F8
0C08=D207
0C09=D209
0C0A=D210
0C0B=D22C
0C0C=D22D
0C0D=D230
0C0E=D234
0C0F=D23C
0C10=D23D
0C11=D23F
0C12=D241
0C13=D248
0C14=D25C
0C15=D264
0C16=D280
0C17=D281
0C18=D284
0C19=D288
0C1A=D290
0C1B=D291
0C1C=D295
0C1D=D29C
0C1E=D2A0
0C1F=D2A4
0C20=D2AC
0C21=D2B1
0C22=D2B8
0C23=D2B9
0C24=D2BC
0C25=D2BF
0C26=D2C0
0C27=D2C2
0C28=D2C8
0C29=D2C9
0C2A=D2CB
0C2B=D2D4
0C2C=D2D8
0C2D=D2DC
0C2E=D2E4
0C2F=D2E5
0C30=D2F0
0C31=D2F1
0C32=D2F4
0C33=D2F8
0C34=D300
0C35=D301
0C36=D303
0C37=D305
0C38=D30C
0C39=D30D
0C3A=D30E
0C3B=D310
0C3C=D314
0C3D=D316
0C3E=D31C
0C3F=D31D
0C40=D31F
0C41=D320
0C42=D321
0C43=D325
0C44=D328
0C45=D329
0C46=D32C
0C47=D330
0C48=D338
0C49=D339
0C4A=D33B
0C4B=D33C
0C4C=D33D
0C4D=D344
0C4E=D345
0C4F=D37C
0C50=D37D
0C51=D380
0C52=D384
0C53=D38C
0C54=D38D
0C55=D38F
0C56=D390
0C57=D391
0C58=D398
0C59=D399
0C5A=D39C
0C5B=D3A0
0C5C=D3A8
0C5D=D3A9
0C5E=D3AB
0C5F=D3AD
0C60=D3B4
0C61=D3B8
0C62=D3BC
0C63=D3C4
0C64=D3C5
0C65=D3C8
0C66=D3C9
0C67=D3D0
0C68=D3D8
0C69=D3E1
0C6A=D3E3
0C6B=D3EC
0C6C=D3ED
0C6D=D3F0
0C6E=D3F4
0C6F=D3FC
0C70=D3FD
0C71=D3FF
0C72=D401
0C73=D408
0C74=D41D
0C75=D440
0C76=D444
0C77=D45C
0C78=D460
0C79=D464
0C7A=D46D
0C7B=D46F
0C7C=D478
0C7D=D479
0C7E=D47C
0C7F=D47F
0C80=D480
0C81=D482
0C82=D488
0C83=D489
0C84=D48B
0C85=D48D
0C86=D494
0C87=D4A9
0C88=D4CC
0C89=D4D0
0C8A=D4D4
0C8B=D4DC
0C8C=D4DF
0C8D=D4E8
0C8E=D4EC
0C8F=D4F0
0C90=D4F8
0C91=D4FB
0C92=D4FD
0C93=D504
0C94=D508
0C95=D50C
0C96=D514
0C97=D515
0C98=D517
0C99=D53C
0C9A=D53D
0C9B=D540
0C9C=D544
0C9D=D54C
0C9E=D54D
0C9F=D54F
0CA0=D551
0CA1=D558
0CA2=D559
0CA3=D55C
0CA4=D560
0CA5=D565
0CA6=D568
0CA7=D569
0CA8=D56B
0CA9=D56D
0CAA=D574
0CAB=D575
0CAC=D578
0CAD=D57C
0CAE=D584
0CAF=D585
0CB0=D587
0CB1=D588
0CB2=D589
0CB3=D590
0CB4=D5A5
0CB5=D5C8
0CB6=D5C9
0CB7=D5CC
0CB8=D5D0
0CB9=D5D2
0CBA=D5D8
0CBB=D5D9
0CBC=D5DB
0CBD=D5DD
0CBE=D5E4
0CBF=D5E5
0CC0=D5E8
0CC1=D5EC
0CC2=D5F4
0CC3=D5F5
0CC4=D5F7
0CC5=D5F9
0CC6=D600
0CC7=D601
0CC8=D604
0CC9=D608
0CCA=D610
0CCB=D611
0CCC=D613
0CCD=D614
0CCE=D615
0CCF=D61C
0CD0=D620
0CD1=D624
0CD2=D62D
0CD3=D638
0CD4=D639
0CD5=D63C
0CD6=D640
0CD7=D645
0CD8=D648
0CD9=D649
0CDA=D64B
0CDB=D64D
0CDC=D651
0CDD=D654
0CDE=D655
0CDF=D658
0CE0=D65C
0CE1=D667
0CE2=D669
0CE3=D670
0CE4=D671
0CE5=D674
0CE6=D683
0CE7=D685
0CE8=D68C
0CE9=D68D
0CEA=D690
0CEB=D694
0CEC=D69D
0CED=D69F
0CEE=D6A1
0CEF=D6A8
0CF0=D6AC
0CF1=D6B0
0CF2=D6B9
0CF3=D6BB
0CF4=D6C4
0CF5=D6C5
0CF6=D6C8
0CF7=D6CC
0CF8=D6D1
0CF9=D6D4
0CFA=D6D7
0CFB=D6D9
0CFC=D6E0
0CFD=D6E4
0CFE=D6E8
0CFF=D6F0
0D00=D6F5
0D01=D6FC
0D02=D6FD
0D03=D700
0D04=D704
0D05=D711
0D06=D718
0D07=D719
0D08=D71C
0D09=D720
0D0A=D728
0D0B=D729
0D0C=D72B
0D0D=D72D
0D0E=D734
0D0F=D735
0D10=D738
0D11=D73C
0D12=D744
0D13=D747
0D14=D749
0D15=D750
0D16=D751
0D17=D754
0D18=D756
0D19=D757
0D1A=D758
0D1B=D759
0D1C=D760
0D1D=D761
0D1E=D763
0D1F=D765
0D20=D769
0D21=D76C
0D22=D770
0D23=D774
0D24=D77C
0D25=D77D
0D26=D781
0D27=D788
0D28=D789
0D29=D78C
0D2A=D790
0D2B=D798
0D2C=D799
0D2D=D79B
0D2E=D79D
0D31=1100
0D32=1101
0D33=1102
0D34=1103
0D35=1104
0D36=1105
0D37=1106
0D38=1107
0D39=1108
0D3A=1109
0D3B=110A
0D3C=110B
0D3D=110C
0D3E=110D
0D3F=110E
0D40=110F
0D41=1110
0D42=1111
0D43=1112
0D44=1161
0D45=1162
0D46=1163
0D47=1164
0D48=1165
0D49=1166
0D4A=1167
0D4B=1168
0D4C=1169
0D4D=116D
0D4E=116E
0D4F=1172
0D50=1173
0D51=1175
0D61=B894
0D62=C330
0D63=C3BC
0D64=C4D4
0D65=CB2C
E000=000A
25BC=000D
25BD=000C
If you want the Unicode characters directly instead of their hex number, you can download PPRE and have a look at the file Table.tbl included in the ZIP archive.
Poryhack
May 10th, 2010, 10:37 AM
@M@T I can rip them from the game's script file, they're probably in order there too. Don't know why you'd only come up with 130, but maybe I'll be able to get all of them.
@Pup I don't think it's a bandwidth thing. I'm pretty sure certain conditions have to be met (a certain number of trades over GTS?) and once they are the game will give you more search results.
Wichu
May 10th, 2010, 11:47 AM
On Japanese games, you select a region of Japan rather than a country. These will account for some of the missing locations.
Anyway, I'm interested in connecting to the GTS with a script, but I'd rather not use this method... The reason is that I want to write a script for fangames made in RPG Maker to connect. But if I'm understanding correctly, this can only be done (so far) using an existing GTS 'account' and thus won't be able to deposit/withdraw Pokémon without messing up someone else's trade, right?
M@T
May 10th, 2010, 12:37 PM
On Japanese games, you select a region of Japan rather than a country. These will account for some of the missing locations.
Thanks for the info, but I can't read Japanese, I hope Poryhack will manage to rip the names.
Anyway, I'm interested in connecting to the GTS with a script, but I'd rather not use this method... The reason is that I want to write a script for fangames made in RPG Maker to connect. But if I'm understanding correctly, this can only be done (so far) using an existing GTS 'account' and thus won't be able to deposit/withdraw Pokémon without messing up someone else's trade, right?
That's right, everything is based on the PID, so each player of your fangame would have to have a different PID, which has to be registered first.
The registration process seems to use SSL, so I think it'd be difficult to connect to the real GTS.
However, fan-made GTS servers can accept any PID, and I think it would be much more legal using a custom GTS server rather than the real one for fangames.
Wichu
May 10th, 2010, 01:38 PM
That's true, but defeats the point of being able to trade with official games :P
madaruwode
May 10th, 2010, 03:08 PM
That's true, but defeats the point of being able to trade with official games :P
You would be able to trade with official games if they also connect to your own GTS :D
M@T
May 10th, 2010, 03:21 PM
Yeah, that's what I meant.
I don't believe Nintendo would agree if a fangame traded with their GTS...
madaruwode
May 10th, 2010, 03:39 PM
I don't believe Nintendo would agree if a fangame traded with their GTS...
Sure they won't, but the question is if they could block non-official games from the GTS .
@Wichu
I don't think it's a good idea to connect Fangames to the real GTS but its your decision.
Poryhack
May 10th, 2010, 03:58 PM
Here's the list. It seems to be correct in number and order; you did miss a handful of locations past Vietnam but no problem.
1 Afghanistan
2 Albania
3 Algeria
4 American Samoa
5 Andorra
6 Angola
7 Anguilla
8 Antigua and Barbuda
9 Argentina
10 Armenia
11 Aruba
12 Australia
13 Austria
14 Azerbaijan
15 Bahamas
16 Bahrain
17 Bangladesh
18 Barbados
19 Belarus
20 Belgium
21 Belize
22 Benin
23 Bermuda
24 Bhutan
25 Bolivia
26 Bosnia and Herzegovina
27 Botswana
28 Brazil
29 British Virgin Islands
30 Brunei Darussalam
31 Bulgaria
32 Burkina Faso
33 Burundi
34 Cambodia
35 Cameroon
36 Canada
37 Cape Verde
38 Cayman Islands
39 Central African Republic
40 Chad
41 Channel Islands
42 Chile
43 China
44 Christmas Island
45 Colombia
46 Comoros
47 Democratic Republic of the Congo
48 Congo
49 Cook Islands
50 Costa Rica
51 Cote d’Ivoire
52 Croatia
53 Cuba
54 Cyprus
55 Czech Republic
56 Denmark
57 Djibouti
58 Dominica
59 Dominican Republic
60 Ecuador
61 Egypt
62 El Salvador
63 Equatorial Guinea
64 Eritrea
65 Estonia
66 Ethiopia
67 Faroe Islands
68 Falkland Islands
69 Fiji
70 Finland
71 France
72 French Guiana
73 French Polynesia
74 Gabon
75 Gambia
76 Georgia
77 Germany
78 Ghana
79 Gibraltar
80 Greece
81 Greenland
82 Grenada
83 Guadeloupe
84 Guam
85 Guatemala
86 Guinea
87 Guinea-Bissau
88 Guyana
89 Haiti
90 Honduras
91 Hong Kong
92 Hungary
93 Iceland
94 India
95 Indonesia
96 Iran
97 Iraq
98 Ireland
99 Isle of Man
100 Israel
101 Italy
102 Jamaica
103 Japan
104 Jordan
105 Kashmir
106 Kazakhstan
107 Kenya
108 Kiribati
109 D.P. Republic of Korea
110 Republic of Korea
111 Kuwait
112 Kyrgyzstan
113 Lao People’s Democratic Republic
114 Latvia
115 Lebanon
116 Lesotho
117 Liberia
118 Libyan Arab Jamahiriya
119 Liechtenstein
120 Lithuania
121 Luxembourg
122 Macau
123 Macedonia (FYROM)
124 Madagascar
125 Malawi
126 Malaysia
127 Maldives
128 Mali
129 Malta
130 Marshall Islands
131 Martinique
132 Mauritania
133 Mauritius
134 Mayotte
135 Mexico
136 Micronesia
137 Republic of Moldova
138 Monaco
139 Mongolia
140 Morocco
141 Mozambique
142 Myanmar
143 Namibia
144 Nauru
145 Nepal
146 Netherlands
147 Netherlands Antilles
148 New Caledonia
149 New Zealand
150 Nicaragua
151 Niger
152 Nigeria
153 Niue
154 Norfolk Island
155 Northern Mariana Islands
156 Norway
157 Oman
158 Pakistan
159 Palau
160 Panama
161 Papua New Guinea
162 Paraguay
163 Peru
164 Philippines
165 Pitcairn Islands
166 Poland
167 Portugal
168 Puerto Rico
169 Qatar
170 Reunion
171 Romania
172 Russian Federation
173 Rwanda
174 Saint Helena
175 Saint Kitts and Nevis
176 Saint Lucia
177 Saint-Pierre and Miquelon
178 Saint Vincent and the Grenadines
179 Samoa
180 San Marino
181 Sao Tome and Principe
182 Saudi Arabia
183 Senegal
184 Serbia and Montenegro
185 Seychelles
186 Sierra Leone
187 Singapore
188 Slovakia
189 Slovenia
190 Solomon Islands
191 Somalia
192 South Africa
193 Spain
194 Sri Lanka
195 Sudan
196 Suriname
197 Jan Mayen Island
198 Swaziland
199 Sweden
200 Swiss Confederation
201 Syrian Arab Republic
202 Taiwan
203 Tajikistan
204 United Republic of Tanzania
205 Thailand
206 Democratic Republic of Timor-Leste
207 Togo
208 Tokelau
209 Tonga
210 Trinidad and Tobago
211 Tunisia
212 Turkey
213 Turkmenistan
214 Turks and Caicos Islands
215 Tuvalu
216 Uganda
217 Ukraine
218 United Arab Emirates
219 United Kingdom
220 United States of America
221 United States Virgin Islands
222 Uruguay
223 Uzbekistan
224 Vanuatu
225 Vatican City
226 Venezuela
227 Vietnam
228 Wallis and Futuna
229 Palestine
230 Western Sahara
231 Yemen
232 Zambia
233 Zimbabwe
M@T
May 10th, 2010, 04:18 PM
Thanks a lot. :biggrin:
BTW, could you telle me where is it located in the ROM (path to the file), please ? :smile:
PS : I didn't have anything after Vietnam, look at the screenshot :
http://www.plixup.com/pics_core/12735222331080Locations.png
Poryhack
May 10th, 2010, 06:02 PM
Well you said you only got 130 from the list as it appears in your game? Maybe the ones after Vietnam are just some of the ones they skipped for whatever reason. I took the list from Platinum (US version); I kinda doubt that any changes were made to it either before or after but someone would have to check it to be sure.
The relevant files are at /msgdata/msg.narc for DP, /msgdata/pl_msg.narc for Pt, and /a/0/2/7 for HGSS. I recommend googling "thenewpoketext" if you aren't familiar with it. It can dump the NARC into a nice XML file in actual text.
M@T
May 10th, 2010, 06:10 PM
I know thenewpoketext a bit, I just wasn't sure if the names would be in the usual message files (I didn't search actually :redface:).
Thanks again.
EDIT : Okay, I found it, it was in file 612, so 'get 612 locations_plat.xml' did the trick.
Poryhack
May 10th, 2010, 09:26 PM
There's not really any other message files actually. Everything is in the one NARC, so it's easy to use getall then just ctrl+f for something.
EdwardQ
May 11th, 2010, 04:14 AM
But strangely, it first gave me BSODs with Platinum, and now it works properly, I don't know why exactly, I think that it is due to me having deposited something in the real GTS (it began working fine after I did that).
That could explain why some people have connection errors, and others do not.
After getting my flashcart i was getting a BSOD every time i used GTSNUKER or SENDPKM with heartgold ( don't have other games right now) while ii never did on my retail cart of heartgold. I was starting to blame the dump and was thinking about redumping. After what you said though i went and deposited a Pokemon into the real GTS , and took it out, after that i went and set up gts nuker and got no BSOD. This was the first time for me to connect to the real GTS on this save, so it makes me think the GTS gives the game some info or something the first time you connect, With out it the games wants to fail. I will continue connecting and seeing if i BSOD anymore. Know what the game gets from the GTS? can you duplicate it in the fake GTSs or iif not and this is the reason it fails the solution is to just connect the real GTS one time.( well at least once)
also if there are more misspellings or other oddities sry really tired and already fixed quite a few.
M@T
May 11th, 2010, 04:26 AM
Thank you for the feedback, so there would be a real link between using Nintendo's GTS once and having no more BSOD's.
I can try and sniff the packets with Cain & Abel and Wireshark, dunno if it'll work though.
EdwardQ
May 11th, 2010, 04:33 AM
sure seems that way since both gtsnuker and sendpkm work fine now, no more BSOD now that i have connected once on this save.
So for now the best advice to BSODing would just connecting to the real GTS, ...and possibly needing to deposit something.
EdwardQ
May 11th, 2010, 05:06 AM
i had an idea and went and found a save before the GTS, i sent me a pokemon to make sure i BSOD, which i did, i then used GTSserver to send a Pokemon over and then took it back .... then i sent me another Pokemon to me with gtsnuker and no BSOD. So if i understand all this right it not so much needing something from the real GTS, it the DS was just confused ( i know real technical here xD) on how you got a Pokemon when it has no record of you ever putting a Pokemon up? or whatever technical stuff i don't understand xD
EDIT: err well sendpkm gave me an error but it looked slightly different going to retry it but gtsnuker gave me no error.
EDIT: ah tried to send a box pokemon on accident with a party pokemon all worked fine with sendpkm as well.
M@T
May 11th, 2010, 05:49 AM
Okay, very interesting, that's what I thought.
That seems logical, I think you're right.
danhomer
May 14th, 2010, 05:40 PM
Hello. I really don't understand what I am supposed to do here. I understand most of what you talk about, but I don't know what the goal of this project is or what I can do to help. All I know is that you are trying to do something with the GTS. I am really good at computers, and I want to help.
Darkangel_Nyx
May 14th, 2010, 11:13 PM
I set up Sendpkm and got the DNS to use for my DS (192.168.1.66), but when I input it into my DS, I get a failed connection test and I can't connect to the GTS. How can I sort this problem out? Help would be appreciated.
イーブイ
May 15th, 2010, 02:19 AM
Hello. I really don't understand what I am supposed to do here. I understand most of what you talk about, but I don't know what the goal of this project is or what I can do to help. All I know is that you are trying to do something with the GTS. I am really good at computers, and I want to help.
We were trying to build fake GTS servers. Now we have.
tornadod
May 15th, 2010, 02:56 AM
Hey,
I found out about all this GTS exploits stuff this morning and have been trying since then to make a milotic with no avail. On my WIFI connection settings, everything is set and connected to my computer and has been for about a year with no problems. I followed the instructions on all the sites i could find, saying to drag the pokesav created pkm file to the sendpkm.py and i got 192.168.1.10. I type that in to my primary DNS, use test connection, and the bars go green, then red, and i get error code 52100. When i drag the pkm file to dnsserver.py, i get 65.78.174.207, and the connection is successful, but when i go to the GTS ingame, it brings me to the "deposit pokemon/seek pokemon/exit" menu. When i use the DNS of popular distributors, it works just fine. I have platinum and diamond and its like that for both of them. I only intend on using this for myself also.
EDIT: Now i dont have any connection at all after trying to figure out if my router's mode should be b, g, b and g, or 108mbps; my security options should be none or WEP; and if my authentication type should be open system, shared key, or automatic
danhomer
May 15th, 2010, 01:55 PM
Hello. On both my HeartGold and Platinum, I tried to re-create a Deoxys event with the GTS hack, by setting my DNS server to what Python told me (192.168.1.100), but when I tried to connect, I had a great connection, bu then it lost connection, gave me an error, and kicked me out (WITHOUT MY DEOXYS!):mad:.
tornadod
May 15th, 2010, 05:04 PM
same thing happened to me, id have a green 3 bar connection for about 30 sec then it went back to red, gave me an error, and i didnt get the pokemon (milotic)
Tritlo
May 15th, 2010, 05:24 PM
I would recommend setting you router to b and g, as it seems that the DS operates on the b band, but modern computers operate on g.
tornadod
May 15th, 2010, 05:44 PM
Ok, thanks. Changed it to b and g, channel 1. Im getting error code 52000: unable to obtain an IP address(this is with only the SSID and wep key in, Auto obtain Ip address and dns are on yes)
EDIT: Woohoo! got a connection using my LAN IP instead of the IP i got when i looked it up on google. When I use my Gateway as my Primary DNS, then it works perfectly. But when I put epic milotic.pkm the sendpkm.py, the Primary DNS it brings up in the command prompt is the same as my IP Address, and when i test the connection with that, i get error code 52100 andevery once in awhile 51300.
Tritlo
May 16th, 2010, 11:57 AM
Same thing happened to me, but got fixed when I switched to GTS_Nuker instead. You've got to make an exception in your firewall though, and perhaps open some ports on your router, but in the end it worked...
tornadod
May 16th, 2010, 06:57 PM
ive made an exception in my firewall and opened the ports in my router i was told to, but what is this GTS_nuker? can you give me an attachment also? Thanks
I downloaded GTS_nuker but have no clue what to do. Its called SendPKMdx.exe right? When i put a pkm in it it doesnt give me any DNS, it just says waiting for connexion and says distribution: 0. When I use my regular DNS, it sends me to the send or seek pokemon menu, i dont get any pokemon. And when I use the DNS that sendpkm.py gives me, i get error code 52100
Powered by vBulletin™ Version 4.0.2 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.