[GB][TOOLS]Editeur d'évolution pour 1ere gen

Pages: [1]

MadDog84

  • Membre
  • 4 posts
07 janvier 2017, 19:21
Salut à tous !

Il y a quelques jours j'ai voulu rejouer à Pokemon jaune et je me suis dis que j'allais éditer les évolutions pour éviter les échanges, seulement j'ai bien galéré avec l'éditeur hexa car j'y avais jamais trop touché et c'étais pas évident de trouver les offsets des pokemons aussi ..

Du coup j'ai fais une petite application en C#, elle est moche et vraiment simpliste mais ça fais le travail si vous trouvez des bugs dites le moi !

C'est important de savoir que j'avais jamais touché au C# avant cette appli, donc si y'a des bugs ou quoi hesitez pas ^^'

Voici un screen du programme : https://gyazo.com/07ee48516ed95e8b4afc5b97b4a0fbc6

Le lien : https://www.mediafire.com/?8953asbtdapn7uz

Et une analyse virustotal : https://www.virustotal.com/fr/file/9ec85386fa933ad02a018aec0812f1ebb986070d260a24104b19ef7a4f585d80/analysis/

Il y a 3 faux positives je comprends pas trop pourquoi, si un développeur peut me renseigner je veux bien !(Si vous avez pas confiance je peux filer le code source à quelqu'un qui s'y connait et vous confirmera !)


Voilà merci à vous et donnez moi vos impressions/conseils !

Guitoh

  • Membre
  • 5981 posts
07 janvier 2017, 21:40
crée un github et fout le code source là bas, best preuve de bonne foi ;)

MadDog84

  • Membre
  • 4 posts

Undi

  • Modérateur de section
  • 2513 posts
08 janvier 2017, 02:14
Très bon travail !

MadDog84

  • Membre
  • 4 posts
08 janvier 2017, 16:08
Très bon travail !


Merci ça fais plaisir :) J'y ai passé du temps mine de rien ^^

Je suis vraiment débutant donc mon code est surement très mal optimisé !

Guitoh

  • Membre
  • 5981 posts
08 janvier 2017, 16:28
                ipson++;
                ipson++;
                ipson++;
                if (ipsbyte[ipson] * 256 + ipsbyte[ipson + 1] == 0)
                {
                    ipson++;
                    ipson++;
                    totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
                    ipson++;
                    ipson++;
                    byte[] repeatbyte = new byte[totalrepeats];
                    for (int ontime = 0; ontime < totalrepeats; ontime++)
                        repeatbyte[ontime] = ipsbyte[ipson];
                    romstream.Seek(offset, SeekOrigin.Begin);
                    romresult = romstream.BeginWrite(repeatbyte, 0, totalrepeats, null, null);
                    romstream.EndWrite(romresult);
                    ipson++;
                }
                else
                {
                    totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
                    ipson++;
                    ipson++;
                    romstream.Seek(offset, SeekOrigin.Begin);
                    romresult = romstream.BeginWrite(ipsbyte, ipson, totalrepeats, null, null);
                    romstream.EndWrite(romresult);
                    ipson = ipson + totalrepeats;

passe ça en
ipson += 3;
if (ipsbyte[ipson] * 256 + ipsbyte[ipson + 1] == 0)
{
ipson += 2;
totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
ipson += 2;
byte[] repeatbyte = new byte[totalrepeats];
for (int ontime = 0 ; ontime < totalrepeats ; ontime++)
repeatbyte[ontime] = ipsbyte[ipson];
romstream.Seek(offset, SeekOrigin.Begin);
romresult = romstream.BeginWrite(repeatbyte, 0, totalrepeats, null, null);
romstream.EndWrite(romresult);
ipson++;
}
else
{
totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
ipson += 2;
romstream.Seek(offset, SeekOrigin.Begin);
romresult = romstream.BeginWrite(ipsbyte, ipson, totalrepeats, null, null);
romstream.EndWrite(romresult);
ipson += totalrepeats;

Please. truc++ 3x de suite, ça fait mal :P

MadDog84

  • Membre
  • 4 posts
08 janvier 2017, 16:33
                ipson++;
                ipson++;
                ipson++;
                if (ipsbyte[ipson] * 256 + ipsbyte[ipson + 1] == 0)
                {
                    ipson++;
                    ipson++;
                    totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
                    ipson++;
                    ipson++;
                    byte[] repeatbyte = new byte[totalrepeats];
                    for (int ontime = 0; ontime < totalrepeats; ontime++)
                        repeatbyte[ontime] = ipsbyte[ipson];
                    romstream.Seek(offset, SeekOrigin.Begin);
                    romresult = romstream.BeginWrite(repeatbyte, 0, totalrepeats, null, null);
                    romstream.EndWrite(romresult);
                    ipson++;
                }
                else
                {
                    totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
                    ipson++;
                    ipson++;
                    romstream.Seek(offset, SeekOrigin.Begin);
                    romresult = romstream.BeginWrite(ipsbyte, ipson, totalrepeats, null, null);
                    romstream.EndWrite(romresult);
                    ipson = ipson + totalrepeats;

passe ça en
ipson += 3;
if (ipsbyte[ipson] * 256 + ipsbyte[ipson + 1] == 0)
{
ipson += 2;
totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
ipson += 2;
byte[] repeatbyte = new byte[totalrepeats];
for (int ontime = 0 ; ontime < totalrepeats ; ontime++)
repeatbyte[ontime] = ipsbyte[ipson];
romstream.Seek(offset, SeekOrigin.Begin);
romresult = romstream.BeginWrite(repeatbyte, 0, totalrepeats, null, null);
romstream.EndWrite(romresult);
ipson++;
}
else
{
totalrepeats = ipsbyte[ipson] * 256 + ipsbyte[ipson + 1];
ipson += 2;
romstream.Seek(offset, SeekOrigin.Begin);
romresult = romstream.BeginWrite(ipsbyte, ipson, totalrepeats, null, null);
romstream.EndWrite(romresult);
ipson += totalrepeats;

Please. truc++ 3x de suite, ça fait mal :P

 
Ah oui c'est les fonctions de Gal, un type de Pokecommunity ! j'utilise seulement ReadHex et WriteHex mais j'avous que c'est un peu WTF les  ipson++;    x) Je vais modifier ça au cas ou merci :)

Pages: [1]    En haut ↑