コード例 #1
0
        private void findAddressOffset()
        {
            bool   found    = false;
            Int32  offset   = 0x00000000;
            Int32  testAddr = 0x0010001C;
            string good     = "280C";

            while (!found)
            {
                string tester = BytesToHex(memory.ReadMemory(testAddr + offset, 2));
                if (tester == "Service not started. Waiting for PCSX2")
                {
                    break;
                }
                else if (tester == good)
                {
                    found = true;
                }
                else
                {
                    offset = offset + 0x10000000;
                }
            }
            ADDRESS_OFFSET = offset;
        }
コード例 #2
0
ファイル: Stats.cs プロジェクト: TimEneman/KH2Tracker
        public void UpdateMemory()
        {
            byte[] levelData = memory.ReadMemory(levelAddress + ADDRESS_OFFSET, 2);

            if (levelData[0] == 0 && Weapon != "Sword")
            {
                Weapon = "Sword";
            }
            else if (levelData[0] == 1 && Weapon != "Shield")
            {
                Weapon = "Shield";
            }
            else if (levelData[0] == 2 && Weapon != "Staff")
            {
                Weapon = "Staff";
            }

            previousLevels[0] = previousLevels[1];
            previousLevels[1] = previousLevels[2];
            previousLevels[2] = Level;

            if (Level != levelData[1])
            {
                Level = levelData[1];
            }

            byte[] statsData = memory.ReadMemory(statsAddress + ADDRESS_OFFSET, 5);
            if (Strength != statsData[0])
            {
                Strength = statsData[0];
            }
            if (Magic != statsData[2])
            {
                Magic = statsData[2];
            }
            if (Defense != statsData[4])
            {
                Defense = statsData[4];
            }

            byte[] modelData = memory.ReadMemory(formAddress + ADDRESS_OFFSET, 1);
            form = modelData[0];
        }
コード例 #3
0
ファイル: Rewards.cs プロジェクト: TimEneman/KH2Tracker
        private void ReadReward(int address, int byteCount, List <Tuple <int, string> > rewards, int level)
        {
            int num = address + ADDRESS_OFFSET;

            byte[] reward = memory.ReadMemory(num, byteCount);
            int    i      = BitConverter.ToInt16(reward, 0);

            if (IsImportant(i, out string name))
            {
                rewards.Add(new Tuple <int, string>(level, name));
            }
        }
コード例 #4
0
        public void UpdateMemory()
        {
            byte[] worldData = memory.ReadMemory(worldAddress + ADDRESS_OFFSET, 9);
            worldNum   = worldData[0];
            roomNumber = worldData[1];
            eventID1   = worldData[4];
            eventID2   = worldData[6];
            eventID3   = worldData[8];

            string tempWorld;

            if (worldCodes.ContainsKey(worldNum))
            {
                // simplify determining if in stt
                if (worldName == "SimulatedTwilightTown" && !(worldCodes[worldNum] == "HollowBastion" && roomNumber == 26))
                {
                    return;
                }

                tempWorld = worldCodes[worldNum];
            }
            else
            {
                tempWorld = "";
            }

            // Handle crit bonus start
            if (tempWorld == "TwilightTown" && roomNumber == 32 && eventID1 == 1 && eventID2 == 1 && eventID3 == 1)
            {
                worldName = "GoA";
            }
            // Handle AS fights
            else if (tempWorld == "HollowBastion")
            {
                if (roomNumber == 26)
                {
                    worldName = "GoA";
                }
                else if (roomNumber == 32)
                {
                    worldName = "HalloweenTown"; // Vexen
                }
                else if (roomNumber == 33 && eventID1 == 123)
                {
                    worldName = "Agrabah"; // Lexaeus
                }
                else if (roomNumber == 33 && eventID1 == 129)
                {
                    worldName = "SpaceParanoids"; // Larxene
                }
                else if (roomNumber == 34)
                {
                    worldName = "OlympusColiseum"; // Zexion
                }
                else if (roomNumber == 38)
                {
                    worldName = "DisneyCastle"; // Marluxia
                }
                else
                {
                    worldName = "HollowBastion";
                }
            }
            // Handle STT
            else if (tempWorld == "TwilightTown")
            {
                // probably need to track every save point for safety
                if ((roomNumber == 2 && eventID1 == 63) || (roomNumber == 21 && eventID1 == 7))
                {
                    worldName = "SimulatedTwilightTown";
                }
                else
                {
                    worldName = "TwilightTown";
                }
            }
            // Handle Data fights
            else if (tempWorld == "TWTNW")
            {
                if (roomNumber == 10 && eventID1 == 108)
                {
                    worldName = "LandofDragons"; // Xigbar
                }
                else if (roomNumber == 15 && eventID1 == 110)
                {
                    worldName = "PrideLands"; // Saix
                }
                else if (roomNumber == 14 && eventID1 == 112)
                {
                    worldName = "PortRoyal"; // Luxord
                }
                else if (roomNumber == 21 && eventID1 == 114)
                {
                    worldName = "SimulatedTwilightTown"; // roxas
                }
                else
                {
                    worldName = "TWTNW";
                }
            }
            else
            {
                if (worldName != tempWorld)
                {
                    worldName = tempWorld;
                }
            }
        }
コード例 #5
0
 public virtual byte[] UpdateMemory()
 {
     return(memory.ReadMemory(Address + ADDRESS_OFFSET, Bytes));
 }