TheZZAZZGlitch's April Fools Event 2019
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

196 lines
5.0 KiB

#include <stdio.h>
// Final buffer goes at 3:A100 of the save file
char buf[0x1b0];
int s02_ADB1;
char s02_ADB1_b;
char s02_ADB2;
char s02_ADB3;
char s02_ADB4;
char sSaveBlockChecksum;
char func()
{
s02_ADB1_b = (s02_ADB1 >> 0) & 0xFF;
s02_ADB2 = (s02_ADB1 >> 8) & 0xFF;
s02_ADB3 = (s02_ADB1 >> 16) & 0xFF;
s02_ADB4 = (s02_ADB1 >> 24) & 0xFF;
s02_ADB2 ^= (s02_ADB1_b + 1) ^ s02_ADB4;
s02_ADB3 += s02_ADB2;
s02_ADB4 = s02_ADB2 ^ (s02_ADB4 + (s02_ADB3 / 2));
s02_ADB1 = (s02_ADB4 << 24) | (s02_ADB3 << 16) | (s02_ADB2 << 8) | s02_ADB1_b;
return s02_ADB4;
}
int main()
{
int bufi = 0;
// sSaveSource = $FCDF;
sSaveBlockChecksum = 0x7F;
s02_ADB1 = 0x8C10E62F;
for (int i = 0; i < 0x48; i++) {
buf[bufi] = (char)(bufi & 0xFF);
buf[bufi] ^= func();
sSaveBlockChecksum += buf[bufi];
bufi++;
buf[bufi] = (char)(bufi & 0xFF);
sSaveBlockChecksum ^= buf[bufi];
buf[bufi] ^= func();
bufi++;
}
buf[bufi] = sSaveBlockChecksum;
bufi++;
// sSaveSource = $FA7A;
sSaveBlockChecksum = 0xC2;
s02_ADB1 = 0x6AF528C2;
for (int i = 0; i < 0x14; i++) {
buf[bufi] = (char)(bufi & 0xFF);
buf[bufi] ^= func();
sSaveBlockChecksum ^= buf[bufi];
bufi++;
}
buf[bufi] = sSaveBlockChecksum;
bufi++;
// sSaveSource = $F84E;
for (int i = 0; i < 0x03; i++) {
buf[bufi] = (char)(bufi & 0xFF);
bufi++;
}
// sSaveSource = $F859;
sSaveBlockChecksum = 0x06;
s02_ADB1 = 0xEF7305A6;
for (int i = 0; i < 0x4C; i++) {
buf[bufi] = (char)(bufi & 0xFF);
buf[bufi] ^= func();
sSaveBlockChecksum ^= buf[bufi];
bufi++;
buf[bufi] = (char)(bufi & 0xFF);
buf[bufi] ^= func();
sSaveBlockChecksum += buf[bufi];
bufi++;
}
buf[bufi] = sSaveBlockChecksum;
bufi++;
// sSaveSource = $DE41;
s02_ADB1 = 0x2A7FEC38;
sSaveBlockChecksum = 0x3C;
for (int i = 0; i < 0x21; i++) {
buf[bufi] = (char)(bufi & 0xFF);
sSaveBlockChecksum += buf[bufi];
buf[bufi] ^= func();
bufi++;
}
buf[bufi] = sSaveBlockChecksum;
bufi++;
// sSaveSource = $DE99;
sSaveBlockChecksum = 0xE2;
s02_ADB1 = 0x4BFC1115;
for (int i = 0 ; i < 0x40; i++) {
buf[bufi] = (char)(bufi & 0xFF);
buf[bufi] ^= func();
sSaveBlockChecksum += buf[bufi];
bufi++;
}
buf[bufi] = sSaveBlockChecksum;
bufi++;
s02_ADB1 = 0xA23F387C;
sSaveBlockChecksum = 0x16;
// sSaveSource = $A003;
for (int i = 0; i < 0x04; i++) {
buf[bufi] = (char)(bufi & 0xFF);
buf[bufi] ^= func();
sSaveBlockChecksum ^= buf[bufi];
sSaveBlockChecksum += buf[bufi];
bufi++;
}
buf[bufi] = sSaveBlockChecksum;
bufi++;
sSaveBlockChecksum = 0x00;
// sSaveSource = $FFE1;
buf[bufi] = (char)(bufi & 0xFF);
sSaveBlockChecksum += buf[bufi];
sSaveSource = 0xB16B;
*(sSaveSource++) = sSaveBlockChecksum;
bufi++;
// sSaveSource = $FFE2;
// buf[bufi] = *(sSaveSource++);
// sSaveBlockChecksum ^= buf[bufi];
// buf[bufi] = sSaveBlockChecksum;
// sSaveSource = $B16C;
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// sSaveSource = $FF04;
// buf[bufi] = *(sSaveSource++);
// sSaveBlockChecksum += buf[bufi];
// buf[bufi] = sSaveBlockChecksum;
// sSaveSource = $B16D;
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// sSaveSource = $FF05;
// buf[bufi] = *(sSaveSource++);
// sSaveBlockChecksum ^= buf[bufi];
// buf[bufi] = sSaveBlockChecksum;
// sSaveSource = $B16E;
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// s02_ADB1 = $EFBEADDE;
// bufi++;
// bufi++;
// sSaveBlockChecksum = $55;
// sSaveSource = $F350;
// *(sSaveSource++) = sSaveBlockChecksum;
// *(sSaveSource++) = sSaveBlockChecksum;
// rept ($1AB) {;
// sSaveSource = $F350;
// sSaveBlockChecksum = *sSaveSource;
// sSaveBlockChecksum += buf[bufi];
// *(sSaveSource++) = sSaveBlockChecksum;
// sSaveBlockChecksum = *sSaveSource;
// sSaveBlockChecksum ^= buf[bufi];
// *(sSaveSource++) = sSaveBlockChecksum;
// buf[bufi] ^= func(s02_ADB1);
// bufi++;
// };
// sSaveBlockChecksum = $CC;
// sSaveSource = $ADB1;
// sSaveBlockChecksum ^= buf[bufi];
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// sSaveBlockChecksum ^= buf[bufi];
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// sSaveBlockChecksum ^= buf[bufi];
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// sSaveBlockChecksum ^= buf[bufi];
// *(sSaveSource++) = sSaveBlockChecksum;
// bufi++;
// sSaveSource = $F350;
// buf[bufi] = *(sSaveSource++);
// buf[bufi] ^= func(s02_ADB1);
// bufi++;
// buf[bufi] = *(sSaveSource++);
// buf[bufi] ^= func(s02_ADB1);
// bufi++;
}