void Core_LoadTitleScreen() { try { if (Core.CurrentROM is FE6) { Pointer address_mg_palette = Core.GetPointer("Title Screen MG/FG Palette"); Pointer address_mg_tileset = Core.GetPointer("Title Screen MG/FG Tileset"); Pointer address_fg_tileset = Core.GetPointer("Title Screen FG Tileset"); Pointer address_mg_tsa = Core.GetPointer("Title Screen MG TSA"); Pointer address_bg_tileset = Core.GetPointer("Title Screen BG Tileset"); Pointer address_bg_palette = Core.GetPointer("Title Screen BG Palette"); Core_LoadTitleScreen_FE6( Core.ReadPalette(address_mg_palette, Palette.LENGTH * 8), new Tileset(Core.ReadData(address_mg_tileset, 0)), new Tileset(Core.ReadData(address_fg_tileset, 0)), Core.ReadTSA(address_mg_tsa, 32, 20, true, false), Core.ReadPalette(address_bg_palette, Palette.LENGTH), new Tileset(Core.ReadData(address_bg_tileset, 0))); } if (Core.CurrentROM is FE7) { Pointer address_bg_palette = Core.GetPointer("Title Screen BG Palette"); Pointer address_bg_tileset = Core.GetPointer("Title Screen BG Tileset"); Pointer address_mg_palette = Core.GetPointer("Title Screen MG Palette"); Pointer address_mg_tileset = Core.GetPointer("Title Screen MG Tileset"); Pointer address_mg_tsa = Core.GetPointer("Title Screen MG TSA"); Pointer address_fg_palette = Core.GetPointer("Title Screen FG Palette"); Pointer address_fg_tileset = Core.GetPointer("Title Screen FG Tileset"); bool tsa = (Core.CurrentROM.Version != GameVersion.JAP); Core_LoadTitleScreen_FE7( Core.ReadPalette(address_bg_palette, Palette.LENGTH), new Tileset(Core.ReadData(address_bg_tileset, 0)), Core.ReadPalette(address_mg_palette, Palette.LENGTH), new Tileset(Core.ReadData(address_mg_tileset, 0)), Core.ReadTSA(address_mg_tsa, GBA.Screen.W_TILES, GBA.Screen.H_TILES, tsa, true), Core.ReadPalette(address_fg_palette, Palette.LENGTH * 5), new Tileset(Core.ReadData(address_fg_tileset, 0))); } if (Core.CurrentROM is FE8) { Pointer address_bg_palette = Core.GetPointer("Title Screen BG Palette"); Pointer address_bg_tileset1 = Core.GetPointer("Title Screen BG Tileset 1"); Pointer address_bg_tileset2 = Core.GetPointer("Title Screen BG Tileset 2"); Pointer address_bg_tsa = Core.GetPointer("Title Screen BG TSA"); Pointer address_mg_palette = Core.GetPointer("Title Screen MG Palette"); Pointer address_mg_tileset = Core.GetPointer("Title Screen MG Tileset"); Pointer address_mg_tsa = Core.GetPointer("Title Screen MG TSA"); Pointer address_fg_palette = Core.GetPointer("Title Screen FG Palette"); Pointer address_fg_tileset1 = Core.GetPointer("Title Screen FG Tileset 1"); Pointer address_fg_tileset2 = Core.GetPointer("Title Screen FG Tileset 2"); Tileset bg_tileset; bg_tileset = new Tileset(Core.ReadData(address_bg_tileset1, 0)); bg_tileset.AddTileset(new Tileset(Core.ReadData(address_bg_tileset2, 0))); Tileset fg_tileset; fg_tileset = new Tileset(Core.ReadData(address_fg_tileset1, 0)); fg_tileset.AddTileset(new Tileset(Core.ReadData(address_fg_tileset2, 0))); Core_LoadTitleScreen_FE8( Core.ReadPalette(address_bg_palette, Palette.LENGTH), bg_tileset, Core.ReadTSA(address_bg_tsa, 32, 32, true, false), Core.ReadPalette(address_mg_palette, Palette.LENGTH), new Tileset(Core.ReadData(address_mg_tileset, 0)), Core.ReadTSA(address_mg_tsa, 32, 32, true, false), Core.ReadPalette(address_fg_palette, Palette.LENGTH * 5), fg_tileset); } } catch (Exception ex) { Program.ShowError("There has been an error while trying to load the title screen.", ex); } }