public static Bitmap GetFrame(int index, int frame) { var pd = GfxBattleAnimations.AnimEntries[index]; // Get the gfx pointer var gfxEntry = GfxBattleTable.GetEntry(pd.GfxEntry); // Get the arrangement var arr = GfxBattleTable.GetArr(pd.ArrEntries[frame]); // Get the palette var pal = GfxBattleTable.GetPalettes(pd.PalEntry); // Render return(GfxProvider.RenderArrangement(arr, 32, 32, Rom, gfxEntry[0], pal, true, false)); }
public static int LoadRom(string filename) { if (!File.Exists(filename)) { return(-1); } try { Rom = File.ReadAllBytes(filename); } catch { return(-2); } if (Rom.Length != 0x2000000) { return(-3); } string header = "MOTHER3\0\0\0\0\0A3UJ"; string headerTest = string.Empty; for (int i = 0xA0; i < 0xB0; i++) { headerTest += (char)Rom[i]; } if (!header.Equals(headerTest)) { return(-4); } IsLoaded = true; switch (Rom[0x124C18]) { case 0x9C: Version = RomVersion.English; break; case 0x1C: Version = RomVersion.Englishv12; break; default: Version = RomVersion.Japanese; break; } if (Rom[0x1DB4] == 0x73) { DecodeAddress = 0x13C5F2; DecodeMod = 0x10E; } else { DecodeAddress = 0x13C5D8; DecodeMod = 0x126; } GfxProvider.RomTileCache.Clear(); M3CC.Init(); TextProvider.Init(); TextItemNames.Init(); TextEnemyNames.Init(); TextEnemyShortNames.Init(); TextMusicNames.Init(); TextItemDescriptions.Init(); TextEnemyDescriptions.Init(); TextBattle.Init(); TextMain.Init(); TextMapNames.Init(); TextPsiNames.Init(); TextCharNames.Init(); TextDontCareNames.Init(); GfxBattleTable.Init(); GfxBattleSprites.Init(); GfxItems.Init(); GfxBattleAnimations.Init(); GfxBattleBgTable.Init(); GfxBattleBg.Init(); GfxTownMaps.Init(); GfxLogoTitle.Init(); SpriteData.Init(); MusicPlayerTable.Init(); ActionTable.Init(); SongTable.Init(); return(0); }