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)); }
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); }