Advertisement
KazoWAR

encedit.c

Feb 3rd, 2015
1,205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include "spider.h"
  2. #include "fs.h"
  3.  
  4. int uvl_entry()
  5. {
  6.     FILE *fin = (void *)0x08F10000;
  7.     int *read_len = 0x08F10020;
  8.     unsigned int addr;
  9.     int *buf = 0x18410000;
  10.     int *encdata = 0x18420000;
  11.     unsigned int offset;
  12.     int i;
  13.  
  14.     int P1;
  15.     int P2;
  16.     int P3;
  17.     int P4;
  18.     int P5;
  19.    
  20.     int L1;
  21.     int L2;
  22.     int L3;
  23.     int L4;
  24.     int L5;
  25.  
  26.     //copy block of memory to buffer
  27.     addr = 0x17A00000;
  28.     GSPGPU_FlushDataCache(addr, 0x10000);
  29.     GX_SetTextureCopy(addr, buf, 0x10000, 0, 0, 0, 0, 8);
  30.     GSPGPU_FlushDataCache(buf, 0x10000);
  31.  
  32.     //finds the encouter data of Petalburg Woods
  33.     offset = 0;
  34.     for (i = 0; i < 0x4000; i++)
  35.     {
  36.         if ((buf[i] == 0x01070000) && (buf[i + 1] == 0x01070404))
  37.         {
  38.             offset = i;
  39.         }
  40.     }
  41.  
  42.     //if it found somthing overwrite data
  43.     if (offset != 0)
  44.     {
  45.         IFile_Open(fin, L"dmc:/encdata.bin", FILE_R);
  46.         fin->pos = 0x00;
  47.         IFile_Read(fin, read_len, encdata, 0x28);
  48.  
  49.         buf[offset] = (encdata[0] << 0x10);
  50.         for (i = (offset + 1); i < (offset + 61); i += 5)
  51.         {
  52.             buf[i] = (encdata[8] << 0x10) + (encdata[1] << 0x08) + encdata[1];
  53.             buf[i + 1] = (encdata[6] << 0x10) + (encdata[9] << 0x08) + encdata[9];
  54.             buf[i + 2] = (encdata[4] << 0x10) + (encdata[7] << 0x08) + encdata[7];
  55.             buf[i + 3] = (encdata[2] << 0x10) + (encdata[5] << 0x08) + encdata[5];
  56.             buf[i + 4] = (encdata[0] << 0x10) + (encdata[3] << 0x08) + encdata[3];
  57.         }
  58.         buf[offset + 61] = (encdata[1] << 0x08) + encdata[1];
  59.     }
  60.  
  61.     //write back to memory
  62.     svcSleepThread(0x400000LL);
  63.     GSPGPU_FlushDataCache(buf, 0x10000);
  64.     GX_SetTextureCopy(buf, addr, 0x10000, 0, 0, 0, 0, 8);
  65.     GSPGPU_FlushDataCache(addr, 0x10000);
  66.     svcSleepThread(0x400000LL);
  67.  
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement