Jump to content

M@T

Member
  • Posts

    344
  • Joined

  • Last visited

Everything posted by M@T

  1. 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])
  2. Wierd, is there some text written in the console before the crash ?
  3. 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. 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. GTS_Server_v0.2+src.zip
  4. 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.
  5. 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.
  6. 127.0.0.1 is your computer's loopback IP address, you have to type its network address for the DS to locate the DNS (usually 192.168.X.Y for local IPs).
  7. That was the first version of my DNS server. In the current version (I kept developping it), I put a timeout : ReDim rr(511) s = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) s.ReceiveTimeout = 2000 s.SendTimeout = 2000 s.Connect(DEFAULT_DNS_SERVER, 53) s.Send(r, lngRcv, SocketFlags.None) lngSnd = s.Receive(rr, SocketFlags.None) ReDim Preserve rr(lngSnd) Don't know if it'll help, as I've never had that problem, but it should throw an error if it times out, so the program should loop and keep receiving connections.
  8. Do you know what is PID and how are calculated nature and shininess ? Modifying PID to make a Pokémon shiny has 24 chances over 25 to change its nature, and modifying a shiny Pokémon's nature will remove its shininess, that's why the codes you are asking are very hard to make.
  9. Try this, should work for Spanish version of the games : Rebattle the Red Gyarados (Start+Select) : 94000130 FFF30000 B21118A0 00000000 DA000000 00001110 D3000000 00000000 D7000000 02000010 A2000010 FFF70000 D4000000 0000FFF8 B211189E 00000000 D7000000 00001110 D2000000 00000000
  10. Try this code : Marking a Pokémon makes it shiny : 1206F04A 00004800 0206F04C 023C0B91 1206F050 00004700 023C0B90 88049800 023C0B94 88BE8845 023C0B98 407788FF 023C0B9C 0A24407C 023C0BA0 407D70C4 023C0BA4 407D2707 023C0BA8 B0147005 023C0BAC 46C0BDF8
  11. 22,000 Watts (Select) : 94000130 FFFB0000 62111880 00000000 B2111880 00000000 0000E718 000055F0 D2000000 00000000
  12. Yes, there's one : Remove PKMN Battle Restriction : 92072702 0000d102 12072702 0000e002 d2000000 00000000
  13. Change EVs : 1206F04A 00004800 0206F04C 023C0B91 1206F050 00004700 E23C0B90 00000018 61384803 82B84801 BDF8B014 0000SDSA SpDeAtHP 46C046C0 Replace the coloured letters by the values (in hex) of the following stats, between 00 and FF : SD : Special Defense SA : Special Attack Sp : Speed De : Defense At : Attack HP : Health Points
  14. Maybe Datel's support can help you : http://uk.codejunkies.com/support/article.aspx?article_id=417
  15. Sure, here it is : 1206F04A 00004800 0206F04C 023C0B91 1206F050 00004700 E23C0B90 00000018 61384803 82B84801 BDF8B014 00000000 0C06ECFC 46C046C0 Use the same way as other codes.
  16. Do you see some logs on the console of the programs ?
  17. 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.
  18. 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.
  19. Try this : Hold [L] To Obtain Egg : 1206CD78 0000D113 1206CD94 0000D905 94000130 FDFF0000 1206CD78 000046C0 1206CD94 000046C0 D2000000 00000000 Hold [R] To Obtain Egg : 1206CD78 0000D113 1206CD94 0000D905 94000130 FEFF0000 1206CD78 000046C0 1206CD94 000046C0 D2000000 00000000
  20. It is completely random, and chances for 2 trainers to have the same ID and sID are really low. There are 65536 possibilities for the ID and the sID, so one chance over 4 294 967 296 to have both ID and Secret ID identical. I think it is calculated with the PRNG algorithm or something similar.
  21. I already posted it here. No, you're wrong, my codes don't have any typo or whatever. Line [A2000010] is not an activator at all, it checks if the 16-bit value at 0x02000010 masked with 0x0800 is different from 0, i.e. its 5th bit is 1. That's a trick I invented to simulate an AND operation, cuz I dunno how to perform an AND operation otherwise (that resets the right bit from the value so that it doesn't affect other events like some other rebattle codes do). But I see that you know how to create AR codes, so you sould know that ; I think you didn't look at the codes carefuly.
  22. 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. 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.
  23. 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.
×
×
  • Create New...