Esempio n. 1
0
        static uint FindSongTable(byte[] data)
        {
            uint songpointer = SongUtil.FindSongTablePointer(data);

            if (songpointer == U.NOT_FOUND)
            {
                return(U.NOT_FOUND);
            }

            uint songlist = U.u32(data, songpointer);

            if (!U.isPointer(songlist))
            {
                return(U.NOT_FOUND);
            }
            return(U.toOffset(songlist));
        }
Esempio n. 2
0
        public static uint GetSoundTablePointer()
        {
            uint p = Program.ROM.RomInfo.sound_table_pointer();
            uint a = Program.ROM.u32(p);

            if (U.isSafetyPointer(a))
            {
                return(p);
            }
            p = SongUtil.FindSongTablePointer(Program.ROM.Data);
            if (U.isSafetyOffset(p))
            {
                a = Program.ROM.u32(p);
                if (U.isSafetyPointer(a))
                {
                    return(p);
                }
            }
            return(0);
        }