internal DivaScore(Manipulator manipulator)
 {
     isInitialized = false;
     Manipulator   = manipulator;
     // Allocation for Scores, thanks somewhatlurker
     scoreArray = Manipulator.AllocateMemory(4 * 1000 * 2 * 0xE4).ToInt64();
     for (int i = 0; i < 4; i++)
     {
         Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x5D0, scoreArray + i * 1000 * 2 * 0xE4);
         Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x5D8, scoreArray + (i + 1) * 1000 * 2 * 0xE4);
     }
     // Allocation for MyLists, thanks vladkorotnev
     myListArray = Manipulator.AllocateMemory(3 * 40 * 4).ToInt64();
     for (int i = 0; i < 3; i++)
     {
         Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x588, myListArray + i * 40 * 4);
         Manipulator.WriteInt64(PLAYER_DATA_ADDRESS + i * 0x18 + 0x590, myListArray + (i + 1) * 40 * 4);
     }
     new Thread(new ThreadStart(Initialize)).Start();
 }
 public void Initialize(int pv, int ed)
 {
     // this is just copied from 140113510
     // no clue what most of it is
     PvId    = pv;
     Edition = ed;
     Manipulator.WriteBytes(address + 0x08, 0xFF, 0x78);
     Manipulator.WriteBytes(address + 0x80, 0x01, 0x18);
     Manipulator.WriteInt32(address + 0x98, 0);
     Manipulator.WriteInt64(address + 0x9C, -1);
     Manipulator.WriteInt64(address + 0xA4, -1);
     Manipulator.WriteInt32(address + 0xAC, -1);
     Manipulator.WriteInt64(address + 0xB0, 0);
     Manipulator.WriteInt32(address + 0xB8, -1);
     Manipulator.WriteByte(address + 0xBC, 0);
     Manipulator.WriteInt64(address + 0xC0, -1);
     Manipulator.WriteInt32(address + 0xCC, -1);
     Manipulator.WriteByte(address + 0xC8, 0);
     Manipulator.WriteInt64(address + 0xD0, 0);
     Manipulator.WriteInt32(address + 0xD8, -1);
     Manipulator.WriteBytes(address + 0xDC, 0, 8);
 }