├── .gitattributes
├── .gitignore
├── README.md
├── en-gb
├── en-gb.cpp
├── en-gb.rc
├── en-gb.vcxproj
├── en-gb.vcxproj.filters
├── en-gb.vcxproj.user
├── framework.h
├── pch.cpp
└── pch.h
├── lkg
├── 2014-12-26
│ ├── ColorScale.cpp
│ ├── ColorScale.h
│ ├── Default.h
│ ├── DescTree.cpp
│ ├── DescTree.h
│ ├── Game
│ │ ├── ColorScale.cpp
│ │ ├── ColorScale.h
│ │ ├── Default.h
│ │ ├── DescTree.cpp
│ │ ├── DescTree.h
│ │ ├── GameClass.cpp
│ │ ├── GameClass.h
│ │ ├── GameDef.h
│ │ ├── GameLoad.cpp
│ │ ├── GameLoad.h
│ │ ├── Game_MVC2_D.cpp
│ │ ├── Game_MVC2_D.h
│ │ ├── Game_MVC2_P.cpp
│ │ ├── Game_MVC2_P.h
│ │ ├── Game_MVC_A.cpp
│ │ ├── Game_MVC_A.h
│ │ ├── Game_SFA3_A.cpp
│ │ ├── Game_SFA3_A.h
│ │ ├── Game_SFIII3_A.cpp
│ │ ├── Game_SFIII3_A.cppbak.cc
│ │ ├── Game_SFIII3_A.cppbakup.cc
│ │ ├── Game_SFIII3_A.h
│ │ ├── Game_SFIII3_D.cpp
│ │ ├── Game_SFIII3_D.h
│ │ ├── Game_SSF2T_A.cpp
│ │ ├── Game_SSF2T_A.h
│ │ ├── Game_XMVSF_A.cpp
│ │ ├── Game_XMVSF_A.h
│ │ ├── ImgTicket.h
│ │ ├── MVC2_D_Def.h
│ │ ├── MVC2_PALSEL.cpp
│ │ ├── MVC2_SUPP.cpp
│ │ ├── MVC_A_DEF.h
│ │ ├── PalGroup.cpp
│ │ ├── PalGroup.h
│ │ ├── SFA3_A_DEF.h
│ │ ├── SFIII3_A_DEF.h
│ │ ├── SFIII3_D_DEF.h
│ │ ├── SSF2T_A_DEF.h
│ │ ├── ShellSort.cpp
│ │ ├── ShellSort.h
│ │ ├── XMVSF_A_DEF.h
│ │ └── mvc2_supp.h
│ ├── GameClass.cpp
│ ├── GameClass.h
│ ├── GameDef.h
│ ├── GameLoad.cpp
│ ├── GameLoad.h
│ ├── Game_MVC2_D.cpp
│ ├── Game_MVC2_D.h
│ ├── Game_MVC2_P.cpp
│ ├── Game_MVC2_P.h
│ ├── Game_MVC_A.cpp
│ ├── Game_MVC_A.h
│ ├── Game_SFA3_A.cpp
│ ├── Game_SFA3_A.h
│ ├── Game_SFIII3_A.cpp
│ ├── Game_SFIII3_A.cppbak.cc
│ ├── Game_SFIII3_A.cppbakup.cc
│ ├── Game_SFIII3_A.h
│ ├── Game_SFIII3_A_EXTRA.cpp
│ ├── Game_SFIII3_D.cpp
│ ├── Game_SFIII3_D.h
│ ├── Game_SSF2T_A.cpp
│ ├── Game_SSF2T_A.h
│ ├── Game_XMVSF_A.cpp
│ ├── Game_XMVSF_A.h
│ ├── ImgDat.cpp
│ ├── ImgDat.h
│ ├── ImgDisp.cpp
│ ├── ImgDisp.h
│ ├── ImgDumpBmp.cpp
│ ├── ImgDumpBmp.h
│ ├── ImgOutDlg.cpp
│ ├── ImgOutDlg.h
│ ├── ImgTicket.h
│ ├── Junk.cpp
│ ├── Junk.h
│ ├── JunkC.h
│ ├── MVC2_D_Def.h
│ ├── MVC2_PALSEL.cpp
│ ├── MVC2_SUPP.cpp
│ ├── MVC_A_DEF.h
│ ├── Notes.txt
│ ├── PalGroup.cpp
│ ├── PalGroup.h
│ ├── PalMod.aps
│ ├── PalMod.cpp
│ ├── PalMod.h
│ ├── PalMod.rc
│ ├── PalMod.vcproj
│ ├── PalMod.vcproj.KAZUYA-1E4C792D.Tatsu.user
│ ├── PalModDlg.cpp
│ ├── PalModDlg.h
│ ├── PalModDlg_Color.cpp
│ ├── PalModDlg_Config.cpp
│ ├── PalModDlg_Debug.cpp
│ ├── PalModDlg_Edit.cpp
│ ├── PalModDlg_File.cpp
│ ├── PalModDlg_General.cpp
│ ├── PalModDlg_Menu.cpp
│ ├── PalTool.cpp
│ ├── PalTool.h
│ ├── PreviewDlg.cpp
│ ├── PreviewDlg.h
│ ├── RegProc.cpp
│ ├── RegProc.h
│ ├── SFA3_A_DEF.h
│ ├── SFIII3_A_DEF.h
│ ├── SFIII3_D_DEF.h
│ ├── SSF2T_A_DEF.h
│ ├── SettDlg.cpp
│ ├── SettDlg.h
│ ├── ShellSort.cpp
│ ├── ShellSort.h
│ ├── UndoRedo.cpp
│ ├── UndoRedo.h
│ ├── XMVSF_A_DEF.h
│ ├── mvc2_supp.h
│ ├── newgamedummy
│ │ ├── Game_MVC_A.cpp
│ │ ├── Game_MVC_A.h
│ │ └── MVC_A_DEF.h
│ ├── res
│ │ ├── PalMod.ico
│ │ └── PalMod.rc2
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
├── gitversion
│ ├── ColorScale.cpp
│ ├── ColorScale.h
│ ├── Debug
│ │ ├── PalMod.exe.embed.manifest
│ │ ├── PalMod.exe.embed.manifest.res
│ │ ├── PalMod.ilk
│ │ ├── PalMod.log
│ │ ├── PalMod.pdb
│ │ ├── PalMod.res
│ │ ├── PalMod.tlog
│ │ │ ├── CL.command.1.tlog
│ │ │ ├── CL.read.1.tlog
│ │ │ ├── CL.write.1.tlog
│ │ │ ├── PalMod.lastbuildstate
│ │ │ ├── link.command.1.tlog
│ │ │ ├── link.read.1.tlog
│ │ │ ├── link.write.1.tlog
│ │ │ ├── rc.command.1.tlog
│ │ │ ├── rc.read.1.tlog
│ │ │ └── rc.write.1.tlog
│ │ ├── PalMod_manifest.rc
│ │ ├── vc142.idb
│ │ └── vc142.pdb
│ ├── Default.h
│ ├── DescTree.cpp
│ ├── DescTree.h
│ ├── Game
│ │ ├── ColorScale.cpp
│ │ ├── ColorScale.h
│ │ ├── Default.h
│ │ ├── DescTree.cpp
│ │ ├── DescTree.h
│ │ ├── GameClass.cpp
│ │ ├── GameClass.h
│ │ ├── GameDef.h
│ │ ├── GameLoad.cpp
│ │ ├── GameLoad.h
│ │ ├── Game_MVC2_D.cpp
│ │ ├── Game_MVC2_D.h
│ │ ├── Game_MVC2_P.cpp
│ │ ├── Game_MVC2_P.h
│ │ ├── Game_MVC_A.cpp
│ │ ├── Game_MVC_A.h
│ │ ├── Game_SFA3_A.cpp
│ │ ├── Game_SFA3_A.h
│ │ ├── Game_SFIII3_A.cpp
│ │ ├── Game_SFIII3_A.cppbak.cc
│ │ ├── Game_SFIII3_A.cppbakup.cc
│ │ ├── Game_SFIII3_A.h
│ │ ├── Game_SFIII3_D.cpp
│ │ ├── Game_SFIII3_D.h
│ │ ├── Game_SSF2T_A.cpp
│ │ ├── Game_SSF2T_A.h
│ │ ├── Game_XMVSF_A.cpp
│ │ ├── Game_XMVSF_A.h
│ │ ├── ImgTicket.h
│ │ ├── MVC2_D_Def.h
│ │ ├── MVC2_PALSEL.cpp
│ │ ├── MVC2_SUPP.cpp
│ │ ├── MVC_A_DEF.h
│ │ ├── PalGroup.cpp
│ │ ├── PalGroup.h
│ │ ├── SFA3_A_DEF.h
│ │ ├── SFIII3_A_DEF.h
│ │ ├── SFIII3_D_DEF.h
│ │ ├── SSF2T_A_DEF.h
│ │ ├── ShellSort.cpp
│ │ ├── ShellSort.h
│ │ ├── XMVSF_A_DEF.h
│ │ └── mvc2_supp.h
│ ├── GameClass.cpp
│ ├── GameClass.h
│ ├── GameDef.h
│ ├── GameLoad.cpp
│ ├── GameLoad.h
│ ├── Game_MVC2_D.cpp
│ ├── Game_MVC2_D.h
│ ├── Game_MVC2_P.cpp
│ ├── Game_MVC2_P.h
│ ├── Game_MVC_A.cpp
│ ├── Game_MVC_A.h
│ ├── Game_SFA3_A.cpp
│ ├── Game_SFA3_A.h
│ ├── Game_SFIII3_A.cpp
│ ├── Game_SFIII3_A.cppbak.cc
│ ├── Game_SFIII3_A.cppbakup.cc
│ ├── Game_SFIII3_A.h
│ ├── Game_SFIII3_A_EXTRA.cpp
│ ├── Game_SFIII3_D.cpp
│ ├── Game_SFIII3_D.h
│ ├── Game_SSF2T_A.cpp
│ ├── Game_SSF2T_A.h
│ ├── Game_XMVSF_A.cpp
│ ├── Game_XMVSF_A.h
│ ├── ImgDat.cpp
│ ├── ImgDat.h
│ ├── ImgDisp.cpp
│ ├── ImgDisp.h
│ ├── ImgDumpBmp.cpp
│ ├── ImgDumpBmp.h
│ ├── ImgOutDlg.cpp
│ ├── ImgOutDlg.h
│ ├── ImgTicket.h
│ ├── Junk.cpp
│ ├── Junk.h
│ ├── JunkC.h
│ ├── MVC2_D_Def.h
│ ├── MVC2_PALSEL.cpp
│ ├── MVC2_SUPP.cpp
│ ├── MVC_A_DEF.h
│ ├── Notes.txt
│ ├── PalGroup.cpp
│ ├── PalGroup.h
│ ├── PalMod.aps
│ ├── PalMod.cpp
│ ├── PalMod.h
│ ├── PalMod.rc
│ ├── PalMod.vcproj
│ ├── PalMod.vcproj.KAZUYA-1E4C792D.Tatsu.user
│ ├── PalMod.vcxproj
│ ├── PalMod.vcxproj.filters
│ ├── PalMod.vcxproj.user
│ ├── PalModDlg.cpp
│ ├── PalModDlg.h
│ ├── PalModDlg_Color.cpp
│ ├── PalModDlg_Config.cpp
│ ├── PalModDlg_Debug.cpp
│ ├── PalModDlg_Edit.cpp
│ ├── PalModDlg_File.cpp
│ ├── PalModDlg_General.cpp
│ ├── PalModDlg_Menu.cpp
│ ├── PalTool.cpp
│ ├── PalTool.h
│ ├── PreviewDlg.cpp
│ ├── PreviewDlg.h
│ ├── RegProc.cpp
│ ├── RegProc.h
│ ├── SFA3_A_DEF.h
│ ├── SFIII3_A_DEF.h
│ ├── SFIII3_D_DEF.h
│ ├── SSF2T_A_DEF.h
│ ├── SettDlg.cpp
│ ├── SettDlg.h
│ ├── ShellSort.cpp
│ ├── ShellSort.h
│ ├── UndoRedo.cpp
│ ├── UndoRedo.h
│ ├── UpgradeLog.htm
│ ├── XMVSF_A_DEF.h
│ ├── mvc2_supp.h
│ ├── newgamedummy
│ │ ├── Game_MVC_A.cpp
│ │ ├── Game_MVC_A.h
│ │ └── MVC_A_DEF.h
│ ├── palmod
│ │ ├── palmod
│ │ │ └── res
│ │ │ │ └── palmod_.manifest
│ │ └── res
│ │ │ └── palmod_.manifest
│ ├── res
│ │ ├── PalMod.ico
│ │ └── PalMod.rc2
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
└── palmod
│ └── res
│ └── palmod_.manifest
└── palmod
├── ACTfiles.cpp
├── BMPfiles.cpp
├── CFPLfiles.cpp
├── CRC32.cpp
├── CRC32.h
├── ColorSystem.cpp
├── ColorSystem.h
├── Debug
├── PalMod.exe.recipe
└── bgbmp.bmp
├── ExtraFile.cpp
├── ExtraFile.h
├── GIFfiles.cpp
├── GPLfiles.cpp
├── Game
├── AOF1_A_DEF.h
├── AOF3_A_DEF.h
├── AoDK_A_DEF.h
├── AquaPlus_P_DEF.h
├── AsuraBuster_A_DIR_DEF.h
├── AvgrsGS_A_DIR_DEF.h
├── BASARA_P_DEF.h
├── BMKNS_SNES_DEF.h
├── BSSMSJR_SNES_DEF.h
├── BattleFlipshot_A_DEF.h
├── BlazBlueCF_S_DEF.h
├── Bleach_DS_DEF.h
├── Breakers_A_DEF.h
├── BtlKRoad_A_DIR_DEF.h
├── ButtonDef.h
├── CFE_P_DEF.h
├── CFTE_SNES_DEF.h
├── COTA_A_DEF.h
├── CVS1_A_DEF.h
├── CVS2_A_DEF.h
├── ColorScale.cpp
├── ColorScale.h
├── CrossCopy.cpp
├── CvS2_D_DEF.h
├── Cyberbots_A_DEF.h
├── DANKUGA_A_DEF.h
├── DBFCI_S_DEF.h
├── DBZEB_DS_DEF.h
├── DBZHD_SNES_DEF.h
├── DaemonBrideAG_NL_DEF.h
├── DaemonBride_NL_DEF.h
├── Default.h
├── DescTree.cpp
├── DescTree.h
├── DevMode_DIR_DEF.h
├── DoubleDragon_A_DEF.h
├── FatalFury1_A_DEF.h
├── FatalFury2_A_DEF.h
├── FatalFury3_A_DEF.h
├── FatalFuryS_A_DEF.h
├── FatalFuryS_SNES_DEF.h
├── FightFever_A_DEF.h
├── FotNS_P_DEF.h
├── GAME_Bleach_DS.h
├── GEMFIGHTER_A_DEF.h
├── GGDS_NDS_DEF.h
├── GGML_P_DEF.h
├── GGXXACP_Wii_DEF.h
├── GGXXACR_Common.h
├── GGXXACR_P_DEF.h
├── GGXXACR_S_DEF.h
├── GGXXR_S_DEF.h
├── GUNDAM_SNES_DEF.h
├── GalaxyFight_A_DEF.h
├── GameClass.cpp
├── GameClass.h
├── GameClassByDir.cpp
├── GameClassByDir.h
├── GameClassByFile.cpp
├── GameClassByFile.h
├── GameClassByUnitPerFile.cpp
├── GameClassByUnitPerFile.h
├── GameDef.h
├── GameLoad.cpp
├── GameLoad.h
├── GameRegistry.cpp
├── GameRegistry.h
├── Game_AOF1_A.cpp
├── Game_AOF1_A.h
├── Game_AOF3_A.cpp
├── Game_AOF3_A.h
├── Game_AoDK_A.h
├── Game_AquaPlus_P.h
├── Game_AsuraBuster_A_DIR.h
├── Game_AvgrsGS_A_DIR.cpp
├── Game_AvgrsGS_A_DIR.h
├── Game_BASARA_P.h
├── Game_BMKNS_SNES.h
├── Game_BSSMSJR_SNES.h
├── Game_BattleFlipshot_A.h
├── Game_BlazBlueCF_S.cpp
├── Game_BlazBlueCF_S.h
├── Game_Breakers_A.cpp
├── Game_Breakers_A.h
├── Game_BtlKRoad_A_DIR.h
├── Game_CFE_P.cpp
├── Game_CFE_P.h
├── Game_CFTE_SNES.cpp
├── Game_CFTE_SNES.h
├── Game_COTA_A.h
├── Game_CVS1_A.cpp
├── Game_CVS1_A.h
├── Game_CVS2_A.cpp
├── Game_CVS2_A.h
├── Game_CvS2_D.h
├── Game_Cyberbots_A.h
├── Game_DANKUGA_A.h
├── Game_DBFCI_A.cpp
├── Game_DBFCI_A.h
├── Game_DBZEB_DS.h
├── Game_DBZHD_SNES.h
├── Game_DaemonBrideAG_NL.h
├── Game_DaemonBride_NL.h
├── Game_DevMode_DIR.cpp
├── Game_DevMode_DIR.h
├── Game_DoubleDragon_A.h
├── Game_FatalFury1_A.h
├── Game_FatalFury2_A.cpp
├── Game_FatalFury2_A.h
├── Game_FatalFury3_A.h
├── Game_FatalFuryS_A.h
├── Game_FatalFuryS_SNES.h
├── Game_FightFever_A.cpp
├── Game_FightFever_A.h
├── Game_FotNS_P.h
├── Game_GEMFIGHTER_A.h
├── Game_GGDS_NDS.h
├── Game_GGML_P.h
├── Game_GGXXACP_Wii.h
├── Game_GGXXACR_P.h
├── Game_GGXXACR_S.cpp
├── Game_GGXXACR_S.h
├── Game_GGXXR_S.h
├── Game_GUNDAM_SNES.h
├── Game_GalaxyFight_A.h
├── Game_Garou_A.cpp
├── Game_Garou_A.h
├── Game_Garou_S.h
├── Game_Gowcaizer_A.h
├── Game_HIppo_GBA.h
├── Game_HSF2_A.cpp
├── Game_HSF2_A.h
├── Game_JChan_A.h
├── Game_JOJOS_A.cpp
├── Game_JOJOS_A.h
├── Game_JOJOS_A_DIR.cpp
├── Game_JOJOS_A_DIR.h
├── Game_JojosRPG_SNES.h
├── Game_JusticeLeagueTF_SNES.h
├── Game_KI_SNES.h
├── Game_KOF00N_A.h
├── Game_KOF01_A.cpp
├── Game_KOF01_A.h
├── Game_KOF02PS2_A.cpp
├── Game_KOF02PS2_A.h
├── Game_KOF02UM_S.cpp
├── Game_KOF02UM_S.h
├── Game_KOF02UM_S_DIR.cpp
├── Game_KOF02UM_S_DIR.h
├── Game_KOF02_A.cpp
├── Game_KOF02_A.h
├── Game_KOF03_A.cpp
├── Game_KOF03_A.h
├── Game_KOF94_A.cpp
├── Game_KOF94_A.h
├── Game_KOF95_A.cpp
├── Game_KOF95_A.h
├── Game_KOF96_A.cpp
├── Game_KOF96_A.h
├── Game_KOF97_A.cpp
├── Game_KOF97_A.h
├── Game_KOF98AE2016_A.h
├── Game_KOF98_A.cpp
├── Game_KOF98_A.h
├── Game_KOF99_A.cpp
├── Game_KOF99_A.h
├── Game_KOFEX2_GBA.h
├── Game_KOFXI_A.cpp
├── Game_KOFXI_A.h
├── Game_KOTM_A.h
├── Game_KabukiKlash_A.h
├── Game_KarnovsR_A.cpp
├── Game_KarnovsR_A.h
├── Game_Kizuna_A.h
├── Game_LASTBLADE2_A.cpp
├── Game_LASTBLADE2_A.h
├── Game_LASTBLADE_A.cpp
├── Game_LASTBLADE_A.h
├── Game_MAAB_A.h
├── Game_MBAACC_S.h
├── Game_MBTL_A.cpp
├── Game_MBTL_A.h
├── Game_MK1_A.cpp
├── Game_MK1_A.h
├── Game_MK1_SNES.h
├── Game_MK2_A.cpp
├── Game_MK2_A.h
├── Game_MK2_SNES.cpp
├── Game_MK2_SNES.h
├── Game_MMPR_SNES.h
├── Game_MMX2_SNES.h
├── Game_MMX3_SNES.h
├── Game_MMX_SNES.h
├── Game_MSHVSF_A.cpp
├── Game_MSHVSF_A.h
├── Game_MSHVSF_P.h
├── Game_MSHWOTG_SNES.h
├── Game_MSH_A.cpp
├── Game_MSH_A.h
├── Game_MVC2_A.cpp
├── Game_MVC2_A.h
├── Game_MVC2_A_DIR.cpp
├── Game_MVC2_A_DIR.h
├── Game_MVC2_D.cpp
├── Game_MVC2_D.h
├── Game_MVC2_P.cpp
├── Game_MVC2_P.h
├── Game_MVC_A.cpp
├── Game_MVC_A.h
├── Game_MWarr_A_DIR.h
├── Game_MagicalDropIII_A.h
├── Game_MagicalDropII_A.h
├── Game_MartialMasters_A.h
├── Game_Matrimelee_A.h
├── Game_MvC_P.h
├── Game_NBHID_S.h
├── Game_NEOGEO_A.cpp
├── Game_NEOGEO_A.h
├── Game_NGBC_A.cpp
├── Game_NGBC_A.h
├── Game_NeoBomberman_A.h
├── Game_NinjaMasters_A.h
├── Game_P4AU_FightClub.h
├── Game_P4AU_NESICA.h
├── Game_P4AU_STEAM.h
├── Game_PrimalRage_SNES.h
├── Game_RBFF1_A.h
├── Game_RBFF2_A.cpp
├── Game_RBFF2_A.h
├── Game_RBFFS_A.cpp
├── Game_RBFFS_A.h
├── Game_REDEARTH_A.cpp
├── Game_REDEARTH_A.h
├── Game_REDEARTH_A_DIR.cpp
├── Game_REDEARTH_A_DIR.h
├── Game_RODSM2_A.h
├── Game_ROTD_A.h
├── Game_RanmaCRH_SNES.h
├── Game_RanmaHB_SNES.h
├── Game_SAMSHO1_A.cpp
├── Game_SAMSHO1_A.h
├── Game_SAMSHO2_A.cpp
├── Game_SAMSHO2_A.h
├── Game_SAMSHO3_A.cpp
├── Game_SAMSHO3_A.h
├── Game_SAMSHO4_A.cpp
├── Game_SAMSHO4_A.h
├── Game_SAMSHO5SP_A.cpp
├── Game_SAMSHO5SP_A.h
├── Game_SAMSHO5_A.cpp
├── Game_SAMSHO5_A.h
├── Game_SDodgeBall_A.h
├── Game_SF2CE_A.cpp
├── Game_SF2CE_A.h
├── Game_SF2HF_A.cpp
├── Game_SF2HF_A.h
├── Game_SFA1_A.cpp
├── Game_SFA1_A.h
├── Game_SFA2_A.cpp
├── Game_SFA2_A.h
├── Game_SFA3_A.cpp
├── Game_SFA3_A.h
├── Game_SFIII1_A.h
├── Game_SFIII1_A_DIR.h
├── Game_SFIII2_A.cpp
├── Game_SFIII2_A.h
├── Game_SFIII2_A_DIR.h
├── Game_SFIII3_A.cpp
├── Game_SFIII3_A.h
├── Game_SFIII3_A_DIR.cpp
├── Game_SFIII3_A_DIR.h
├── Game_SFIII3_D.cpp
├── Game_SFIII3_D.h
├── Game_SFTM_A.cpp
├── Game_SFTM_A.h
├── Game_SFZ3U_A.cpp
├── Game_SFZ3U_A.h
├── Game_SHAQFU_SNES.h
├── Game_SPF2T_A.h
├── Game_SSF2T_A.cpp
├── Game_SSF2T_A.h
├── Game_SSF2T_GBA.cpp
├── Game_SSF2T_GBA.h
├── Game_SVCPLUSA_A.cpp
├── Game_SVCPLUSA_A.h
├── Game_SVG_SNES.h
├── Game_SavageReign_A.h
├── Game_StreetFighter_A.cpp
├── Game_StreetFighter_A.h
├── Game_SurvivalArts_A.cpp
├── Game_SurvivalArts_A.h
├── Game_TMNTTF_SNES.cpp
├── Game_TMNTTF_SNES.h
├── Game_TattooAsns_A.h
├── Game_TekkenAdvance_GBA.h
├── Game_TopF2005_Sega.h
├── Game_UMK3_A.cpp
├── Game_UMK3_A.h
├── Game_UMK3_DS.h
├── Game_UMK3_SNES.h
├── Game_UNICLR_A.cpp
├── Game_UNICLR_A.h
├── Game_VHUNT2_A.h
├── Game_VSAV2_A.h
├── Game_VSAV_A.h
├── Game_VampireHunter_A.h
├── Game_VampireNightWarriors_A.cpp
├── Game_VampireNightWarriors_A.h
├── Game_Venture_A.cpp
├── Game_Venture_A.h
├── Game_Venture_A_DIR.cpp
├── Game_Venture_A_DIR.h
├── Game_WakuWaku7_A.cpp
├── Game_WakuWaku7_A.h
├── Game_Windjammers_A.h
├── Game_XMMA_SNES.h
├── Game_XMVSF_A.h
├── Game_XMVSF_P.h
├── Garou_A_DEF.h
├── Gowcaizer_A_DEF.h
├── HIppo_GBA_DEF.h
├── HSF2_A_DEF.h
├── ImgIdDef.h
├── ImgTicket.h
├── JChan_A_DEF.h
├── JOJOS_A_DEF.h
├── JojosRPG_SNES_DEF.h
├── JusticeLeagueTF_SNES_DEF.h
├── KIZUNA_A_DEF.h
├── KI_SNES_DEF.h
├── KOF00N_A_DEF.h
├── KOF01_A_DEF.h
├── KOF02PS2_A_DEF.h
├── KOF02UM_S_DEF.h
├── KOF02UM_S_DIR_DEF.h
├── KOF02_A_DEF.h
├── KOF03_A_DEF.h
├── KOF94_A_DEF.h
├── KOF95_A_DEF.h
├── KOF96_A_DEF.h
├── KOF97_A_DEF.h
├── KOF98AE2016_A_DEF.h
├── KOF98_A_DEF.h
├── KOF99_A_DEF.h
├── KOFEX2_GBA_DEF.h
├── KOFXI_A_DEF.h
├── KOTM_A_DEF.h
├── KabukiKlash_A_DEF.h
├── KarnovsR_A_DEF.h
├── LASTBLADE2_A_DEF.h
├── LASTBLADE_A_DEF.h
├── MAAB_A_DEF.h
├── MBAACC_S_DEF.h
├── MBTL_S_DEF.h
├── MK1_A_DEF.h
├── MK1_SNES_DEF.h
├── MK2_A_DEF.h
├── MK2_SNES_DEF.h
├── MMPR_SNES_DEF.h
├── MMX2_SNES_DEF.h
├── MMX3_SNES_DEF.h
├── MMX_SNES_DEF.h
├── MSHVSF_A_DEF.h
├── MSHVSF_P_DEF.h
├── MSHWOTG_SNES_DEF.h
├── MSH_A_DEF.h
├── MVC2_A_DEF.h
├── MVC2_D_Def.h
├── MVC2_PALSEL.cpp
├── MVC2_SUPP.cpp
├── MVC_A_DEF.h
├── MWARR_A_DIR_DEF.h
├── MagicalDropIII_A_DEF.h
├── MagicalDropII_A_DEF.h
├── MartialMasters_A_DEF.h
├── Matrimelee_A_DEF.h
├── MvC_P_DEF.h
├── NBHID_S_DEF.h
├── NEOGEO_A_DEF.h
├── NGBC_A_DEF.h
├── NeoBomberman_A_DEF.h
├── NinjaMasters_A_DEF.h
├── P4AU_Common.h
├── P4AU_FightClub_DEF.h
├── P4AU_NESICA_DEF.h
├── P4AU_STEAM_DEF.h
├── PalGroup.cpp
├── PalGroup.h
├── Patching.cpp
├── PrimalRage_SNES_DEF.h
├── RBFF1_A_DEF.h
├── RBFF2_A_DEF.h
├── RBFFS_A_DEF.h
├── REDEARTH_A_DEF.h
├── RODSM2_A_DEF.h
├── ROTD_A_DEF.h
├── RanmaCRH_SNES_DEF.h
├── RanmaHB_SNES_DEF.h
├── SAMSHO1_A_DEF.h
├── SAMSHO2_A_DEF.h
├── SAMSHO3_A_DEF.h
├── SAMSHO4_A_DEF.h
├── SAMSHO5SP_A_DEF.h
├── SAMSHO5_A_DEF.h
├── SDodgeBall_A_DEF.h
├── SF2CE_A_DEF.h
├── SF2HF_A_DEF.h
├── SFA1_A_DEF.h
├── SFA2_A_DEF.h
├── SFA2_Hack_DEF.h
├── SFA3_A_DEF.h
├── SFIII1_A_DEF.h
├── SFIII2_A_DEF.h
├── SFIII3_A_DEF.h
├── SFIII3_D_DEF.h
├── SFTM_A_DEF.h
├── SFZ3U_A_DEF.h
├── SHAQFU_SNES_DEF.h
├── SPF2T_A_DEF.h
├── SSF2T_A_DEF.h
├── SSF2T_GBA_DEF.h
├── SVCPLUSA_A_DEF.h
├── SVG_SNES_DEF.h
├── SavageReign_A_DEF.h
├── ShellSort.cpp
├── ShellSort.h
├── StreetFighter_A_DEF.h
├── SuppProc.cpp
├── SuppProc.h
├── SurvivalArts_A_DEF.h
├── TMNTTF_SNES_DEF.h
├── TattooAsns_A_DEF.h
├── TekkenAdvance_GBA_DEF.h
├── TopF2005_Sega_DEF.h
├── UMK3_A_DEF.h
├── UMK3_DS_DEF.h
├── UMK3_SNES_DEF.h
├── UNICLR_S_DEF.h
├── VHUNT2_A_DEF.h
├── VSAV2_A_DEF.h
├── VSAV_A_DEF.h
├── VampireHunter_A_DEF.h
├── VampireNightWarriors_A_DEF.h
├── Venture_A_DEF.h
├── WakuWaku7_A_DEF.h
├── Windjammers_A_DEF.h
├── XMMA_SNES_DEF.h
├── XMVSF_A_DEF.h
├── XMVSF_P_DEF.h
├── mvc2_descs.h
├── mvc2_supp.h
├── mvc2_validate.cpp
└── mvc2_validate.h
├── HPALfiles.cpp
├── HTMLfiles.cpp
├── IMPLfiles.cpp
├── ImgDat.cpp
├── ImgDat.h
├── ImgDisp.cpp
├── ImgDisp.h
├── ImgDumpBmp.cpp
├── ImgDumpBmp.h
├── ImgInfoList.cpp
├── ImgInfoList.h
├── ImgOutDlg.cpp
├── ImgOutDlg.h
├── Junk.cpp
├── Junk.h
├── MUI-PalMod.sln
├── MUI-PalMod.vcxproj
├── MUI-PalMod.vcxproj.filters
├── PALfiles.cpp
├── PNGfiles.cpp
├── PS3OEfiles.cpp
├── PalMod.cpp
├── PalMod.h
├── PalMod.rc
├── PalMod.sln
├── PalMod.vcproj
├── PalMod.vcxproj
├── PalMod.vcxproj.filters
├── PalMod.vcxproj.user
├── PalModDlg.cpp
├── PalModDlg.h
├── PalModDlg_Color.cpp
├── PalModDlg_Config.cpp
├── PalModDlg_Edit.cpp
├── PalModDlg_File.cpp
├── PalModDlg_General.cpp
├── PalModDlg_Menu.cpp
├── PalTool.cpp
├── PalTool.h
├── PreviewDlg.cpp
├── PreviewDlg.h
├── RLEData.cpp
├── RLEData.h
├── RegProc.cpp
├── RegProc.h
├── Release
├── CodeAnalysisResultManifest.txt
├── KIE.txt
├── PalMod.exe.recipe
└── bgbmp.bmp
├── SettDlg.cpp
├── SettDlg.h
├── UndoRedo.cpp
├── UndoRedo.h
├── debugutil.cpp
├── debugutil.h
├── lodepng
├── LICENSE
├── Makefile
├── README.md
├── examples
│ ├── example_4bit_palette.cpp
│ ├── example_bmp2png.cpp
│ ├── example_decode.c
│ ├── example_decode.cpp
│ ├── example_encode.c
│ ├── example_encode.cpp
│ ├── example_encode_type.cpp
│ ├── example_gzip.cpp
│ ├── example_opengl.cpp
│ ├── example_optimize_png.cpp
│ ├── example_png2bmp.cpp
│ ├── example_png_info.cpp
│ ├── example_reencode.cpp
│ ├── example_sdl.c
│ └── example_sdl.cpp
├── lodepng.cpp
├── lodepng.h
├── lodepng_benchmark.cpp
├── lodepng_fuzzer.cpp
├── lodepng_unittest.cpp
├── lodepng_util.cpp
├── lodepng_util.h
└── pngdetail.cpp
├── mui.rcconfig
├── newgamedummy
├── Game_NEWGAME_A.h
└── NEWGAME_A_DEF.h
├── res
├── PalMod.ico
├── PalMod.rc2
└── palmod.manifest
├── resource.h
├── stdafx.cpp
├── stdafx.h
└── targetver.h
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PalMod
2 | Palette-editing software for classic fighting games, mostly centered around Capcom games.
3 |
4 | PalMod is the active branch. That's where I'm releasing binaries from. Daily betas are published to https://zachd.com/palmod/releases .
5 |
6 | LKG is a mirror of the 2008 version of this code. This was version "1.22". There are a number of variants of 1.22: some binary hacks of it, and a couple recompiles. In all cases I have folded every positive change I know of into the active branch. There is also a very similar version of "1.22" at DrewDos's PalMod branch on GitHub.
7 |
--------------------------------------------------------------------------------
/en-gb/en-gb.cpp:
--------------------------------------------------------------------------------
1 | // en-gb.cpp : Defines the functions for the static library.
2 | //
3 |
4 | #include "pch.h"
5 | #include "framework.h"
6 |
7 | // TODO: This is an example of a library function
8 | void fnengb()
9 | {
10 | }
11 |
--------------------------------------------------------------------------------
/en-gb/en-gb.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Header Files
20 |
21 |
22 | Header Files
23 |
24 |
25 |
26 |
27 | Source Files
28 |
29 |
30 | Source Files
31 |
32 |
33 |
34 |
35 | Resource Files
36 |
37 |
38 |
--------------------------------------------------------------------------------
/en-gb/en-gb.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/en-gb/framework.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
4 |
--------------------------------------------------------------------------------
/en-gb/pch.cpp:
--------------------------------------------------------------------------------
1 | // pch.cpp: source file corresponding to the pre-compiled header
2 |
3 | #include "pch.h"
4 |
5 | // When you are using pre-compiled headers, this source file is necessary for compilation to succeed.
6 |
--------------------------------------------------------------------------------
/en-gb/pch.h:
--------------------------------------------------------------------------------
1 | // pch.h: This is a precompiled header file.
2 | // Files listed below are compiled only once, improving build performance for future builds.
3 | // This also affects IntelliSense performance, including code completion and many code browsing features.
4 | // However, files listed here are ALL re-compiled if any one of them is updated between builds.
5 | // Do not add files here that you will be updating frequently as this negates the performance advantage.
6 |
7 | #ifndef PCH_H
8 | #define PCH_H
9 |
10 | // add headers that you want to pre-compile here
11 | #include "framework.h"
12 |
13 | #endif //PCH_H
14 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Default.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_DESC 48
4 | #define MAX_FILENAME 16
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/DescTree.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Default.h"
3 |
4 | #define DESC_NODETYPE_TREE 0
5 | #define DESC_NODETYPE_NODE 1
6 |
7 | #define DESC_ENDGET -1
8 |
9 | //Description tree definition
10 |
11 | struct sDescNode
12 | {
13 | CHAR szDesc[MAX_DESC];
14 |
15 | UINT8 uUnitId;
16 | UINT16 uPalId;
17 | };
18 |
19 | struct sDescTreeNode
20 | {
21 | CHAR szDesc[MAX_DESC];
22 |
23 | UINT8 uChildType;
24 | void * ChildNodes;
25 | UINT16 uChildAmt;
26 | };
27 |
28 | class CDescTree
29 | {
30 | private:
31 | sDescTreeNode * RootTree;
32 | public:
33 | CDescTree(sDescTreeNode * InputTree = NULL);
34 | ~CDescTree(void);
35 |
36 | void SetRootTree(sDescTreeNode * NewTree){ RootTree = NewTree;};
37 | void FlushTree(sDescTreeNode * CurrTree);
38 | void FlushRootTree();
39 | sDescNode * GetDescNode(int nChildId, ...);
40 | sDescTreeNode * GetDescTree(int nChildId, ...);
41 | };
42 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/Default.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_DESC 48
4 | #define MAX_FILENAME 16
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/DescTree.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Default.h"
3 |
4 | #define DESC_NODETYPE_TREE 0
5 | #define DESC_NODETYPE_NODE 1
6 |
7 | #define DESC_ENDGET -1
8 |
9 | //Description tree definition
10 |
11 | struct sDescNode
12 | {
13 | CHAR szDesc[MAX_DESC];
14 |
15 | UINT8 uUnitId;
16 | UINT16 uPalId;
17 | };
18 |
19 | struct sDescTreeNode
20 | {
21 | CHAR szDesc[MAX_DESC];
22 |
23 | UINT8 uChildType;
24 | void * ChildNodes;
25 | UINT16 uChildAmt;
26 | };
27 |
28 | class CDescTree
29 | {
30 | private:
31 | sDescTreeNode * RootTree;
32 | public:
33 | CDescTree(sDescTreeNode * InputTree = NULL);
34 | ~CDescTree(void);
35 |
36 | void SetRootTree(sDescTreeNode * NewTree){ RootTree = NewTree;};
37 | void FlushTree(sDescTreeNode * CurrTree);
38 | void FlushRootTree();
39 | sDescNode * GetDescNode(int nChildId, ...);
40 | sDescTreeNode * GetDescTree(int nChildId, ...);
41 | };
42 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/GameDef.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //A = Arcade
4 | //X = XBox
5 | //D = Dreamcast
6 | //P = Playstation 2
7 |
8 | //Game Definitions
9 | #define NUM_GAMES 8
10 |
11 |
12 |
13 | #define MVC2_D 0
14 | #define SFIII3_A 1
15 | #define MVC2_P 2
16 | #define SSF2T_A 3
17 | #define SFA3_A 4
18 | #define XMVSF_A 5
19 | #define MVC_A 6
20 | #define SFIII3_D 7
21 |
22 | //Images
23 |
24 | #define IMG4 0 //Image Game Flag
25 | #define IMG5 1 //Image Game Flag
26 |
27 | //Size of image per image game flag
28 | const int IMGAMT[2] =
29 | {
30 | 0x3B + 0x11,
31 | 0x14
32 | };
33 |
34 | //Display types (used for image out)
35 | enum eDispType
36 | {
37 | DISP_DEF,
38 | DISP_ALT
39 | };
40 |
41 | //Basic button labels
42 | #define BUTTON6 6
43 | #define BUTTON7 7
44 |
45 | const CHAR DEF_BUTTONLABEL6[6][3] =
46 | {
47 | "LP", "MP", "HP", "LK", "MK", "HK"
48 | };
49 |
50 | const CHAR DEF_BUTTONLABEL6ALT[6][3] =
51 | {
52 | "LP", "LK", "HP", "HK", "A1", "A2"
53 | };
54 |
55 | const CHAR DEF_BUTTONLABEL7[7][3] =
56 | {
57 | "LP", "MP", "HP", "LK", "MK", "HK", "EX"
58 | };
59 |
60 | #define DESC2 2
61 | #define DESC6 6
62 | //Primary / Secondary descriptions
63 |
64 | const CHAR DEF_DESCPRISEC[3][16] =
65 | {
66 | "Primary", "Secondary"
67 | };
68 |
69 | //Street Fighter Alpha 3 descriptions
70 | const CHAR DEF_DESCSFA3[6][16] =
71 | {
72 | "Primary", "Secondary", "Primary", "Secondary", "Primary", "Secondary"
73 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/GameLoad.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "GameClass.h"
4 |
5 | class CGameLoad
6 | {
7 | private:
8 | BOOL SetGame(int nGameFlag);
9 |
10 | UINT8 (*GetRuleCtr)(void);
11 | void (*ResetRuleCtr)(void);
12 | sFileRule (*GetNextRule)(void);
13 | sFileRule (*GetRule)(int);
14 | CGameClass * CreateGame(int nGameFlag);
15 |
16 | CString szLoadSaveStr;
17 |
18 | int nSaveLoadCount;
19 | int nSaveLoadSucc;
20 | int nSaveLoadErr;
21 | public:
22 | CGameLoad(void);
23 | ~CGameLoad(void);
24 |
25 | CGameClass * LoadFile(int nGameFlag, CHAR * szLoadFile);
26 | CGameClass * LoadDir(int nGameFlag, CHAR * szLoadDir);
27 | void SaveGame(CGameClass * CurrGame);
28 |
29 | int GetErrCt(){return nSaveLoadErr;};
30 | CString GetLoadSaveStr(){return szLoadSaveStr;};
31 | };
32 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/Game_MVC2_P.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_MVC2_P.h"
3 |
4 | UINT8 CGame_MVC2_P::uRuleCtr = 0;
5 |
6 |
7 | CGame_MVC2_P::CGame_MVC2_P(void)
8 | {
9 | //CGame_MVC2_D();
10 |
11 | nGameFlag = MVC2_P;
12 | }
13 |
14 | CGame_MVC2_P::~CGame_MVC2_P(void)
15 | {
16 | //~CGame_MVC2_D();
17 | }
18 |
19 |
20 |
21 |
22 |
23 | sFileRule CGame_MVC2_P::GetRule(int nRuleId)
24 | {
25 | sFileRule NewFileRule;
26 |
27 | nRuleId = (nRuleId & 0xFF00) == 0xFF00 ? (nRuleId & 0x00FF) : MVC2_D_UNITSORT[nRuleId];
28 | sprintf_s(NewFileRule.szFileName, MAX_FILENAME, "PL%02XPAK.BIN", nRuleId);
29 |
30 | NewFileRule.uUnitId = nRuleId;
31 | NewFileRule.uVerifyVar = (short int) -1;
32 |
33 | return NewFileRule;
34 | }
35 |
36 | sFileRule CGame_MVC2_P::GetNextRule()
37 | {
38 |
39 |
40 | sFileRule NewFileRule = GetRule(uRuleCtr);
41 |
42 | uRuleCtr++;
43 |
44 | if(uRuleCtr >= MVC2_D_NUMUNIT)
45 | {
46 | uRuleCtr = 0xFF;
47 | }
48 |
49 | return NewFileRule;
50 | }
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/Game_MVC2_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_MVC2_D.h"
3 |
4 | class CGame_MVC2_P :
5 | public CGame_MVC2_D
6 | {
7 | public:
8 | CGame_MVC2_P(void);
9 | ~CGame_MVC2_P(void);
10 |
11 | //Static functions
12 | static UINT8 uRuleCtr;
13 |
14 | static UINT8 GetRuleCtr(){return uRuleCtr;};
15 | static void ResetRuleCtr(){uRuleCtr = 0;};
16 |
17 | static sFileRule GetNextRule();
18 | static sFileRule GetRule(int nRuleId);
19 | };
20 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/Game_MVC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "MVC_A_DEF.h"
4 |
5 |
6 | class CGame_MVC_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_MVC_A(void);
28 | ~CGame_MVC_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | static int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/Game_SFA3_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SFA3_A_DEF.h"
4 |
5 |
6 | class CGame_SFA3_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SFA3_A(void);
28 | ~CGame_SFA3_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/Game_SSF2T_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SSF2T_A_DEF.h"
4 |
5 |
6 | class CGame_SSF2T_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SSF2T_A(void);
28 | ~CGame_SSF2T_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 | static int GetPalCt(int nUnitId);
41 |
42 | static void LoadExtraFile();
43 |
44 | //Normal functions
45 | CDescTree * GetMainTree();
46 |
47 |
48 |
49 | void CreateDefPal(sDescNode * srcNode, int nSepId);
50 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
51 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
52 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
53 |
54 | COLORREF * CreatePal(int nUnitId, int nPalId);
55 |
56 | void UpdatePalData();
57 |
58 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
59 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
60 |
61 |
62 | };
63 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/ImgTicket.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | struct sImgTicket
4 | {
5 |
6 |
7 | int nUnitId;
8 | int nImgId;
9 |
10 | int nXOffs;
11 | int nYOffs;
12 |
13 | sImgTicket * NextTicket;
14 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/SFA3_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFA3_A_NUMUNIT 28
4 | #define SFA3_A_PALSZ 16
5 |
6 | #define SFA3_A_IMGSTART 0x3B + 0x11
7 |
8 | const UINT16 SFA3_A_IMGREDIR[SFA3_A_NUMUNIT] =
9 | {
10 | 0x00,
11 | 0x27,
12 | 0x1E,
13 | 0x21,
14 | SFA3_A_IMGSTART + 0x00,
15 | SFA3_A_IMGSTART + 0x01,
16 | SFA3_A_IMGSTART + 0x02,
17 | SFA3_A_IMGSTART + 0x03,
18 | SFA3_A_IMGSTART + 0x04,
19 | SFA3_A_IMGSTART + 0x05,
20 | 0x26,
21 | SFA3_A_IMGSTART + 0x06,
22 | 0x23,
23 | 0x22,
24 | SFA3_A_IMGSTART + 0x07,
25 | 0x25,
26 | 0x01,
27 | SFA3_A_IMGSTART + 0x08,
28 | SFA3_A_IMGSTART + 0x09,
29 | 0x24,
30 | SFA3_A_IMGSTART + 0x0A,
31 | SFA3_A_IMGSTART + 0x0B,
32 | SFA3_A_IMGSTART + 0x0C,
33 | SFA3_A_IMGSTART + 0x0D,
34 | SFA3_A_IMGSTART + 0x0E,
35 | SFA3_A_IMGSTART + 0x0F,
36 | SFA3_A_IMGSTART + 0x10,
37 | SFA3_A_IMGSTART + 0x11,
38 |
39 | };
40 |
41 | const CHAR SFA3_A_UNITDESC[SFA3_A_NUMUNIT][16] =
42 | {
43 | "Ryu",
44 | "Ken",
45 | "Gouki",
46 | "Charlie",
47 | "Chun-Li",
48 | "Adon",
49 | "Sodom",
50 | "Guy",
51 | "Birdie",
52 | "Rose",
53 | "M. Bison",
54 | "Sagat",
55 | "Dan",
56 | "Sakura",
57 | "Rolento",
58 | "Dhalsim",
59 | "Zangief",
60 | "Gen",
61 | "Balrog",
62 | "Cammy",
63 | "E. Honda",
64 | "Blanka",
65 | "R. Mika",
66 | "Cody",
67 | "Vega",
68 | "Karin",
69 | "Juni",
70 | "Juli"
71 |
72 |
73 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/SFIII3_D_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFIII3_D_NUMUNIT 0x14
4 | #define SFIII3_D_PALSZ 64
5 |
6 | const char SFIII3_D_UNITDESC[SFIII3_D_NUMUNIT][16] =
7 | {
8 | //"Gill", //0x
9 | "Alex", //0x00
10 | "Ryu", //0x01
11 | "Yun", //0x02
12 | "Dudley", //0x03
13 | "Necro", //0x04
14 | "Hugo", //0x05
15 | "Ibuki", //0x06
16 | "Elena", //0x07
17 | "Oro", //0x08
18 | "Yang", //0x09
19 | "Ken", //0x0A
20 | "Sean", //0x0B
21 | "Urien", //0x0C
22 | "Gouki", //0x0D
23 | "Shin-Gouki", //0x0E
24 | "Chun-Li", //0x0F
25 | "Makoto", //0x10
26 | "Q", //0x11
27 | "Twelve", //0x12
28 | "Remy" //0x13
29 | };
30 |
31 | const UINT8 SFIII3_D_UNITSORT[SFIII3_D_NUMUNIT] = //Plus 1 for the extra palettes
32 | {
33 | 0x00,
34 | 0x0F,
35 | 0x03,
36 | 0x07,
37 | 0x0D,
38 | 0x05,
39 | 0x06,
40 | 0x0A,
41 | 0x10,
42 | 0x04,
43 | 0x08,
44 | 0x11,
45 | 0x13,
46 | 0x01,
47 | 0x0B,
48 | 0x0E,
49 | 0x12,
50 | 0x0C,
51 | 0x09,
52 | 0x02
53 |
54 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/SSF2T_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SSF2T_A_NUMUNIT 17
4 | #define SSF2T_A_PALSZ 16
5 |
6 | #define SSF2T_A_IMGOFFSET 0x3B
7 |
8 | const CHAR SSF2T_A_UNITDESC[SSF2T_A_NUMUNIT][16] =
9 | {
10 | "Ryu",
11 | "E-Honda",
12 | "Blanka",
13 | "Guile",
14 | "Ken",
15 | "Chun-Li",
16 | "Zangief",
17 | "Dhalsim",
18 | "M.Bison",
19 | "Sagat",
20 | "Balrog",
21 | "Vega",
22 | "Cammy",
23 | "T-Hawk",
24 | "Fei Long",
25 | "Dee Jay",
26 | "Gouki"
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/ShellSort.h:
--------------------------------------------------------------------------------
1 | //#pragma once
2 |
3 | void ShellSort(double * fpSrc, double * fpExtra1, double * fpExtra2, int * pPalette, UINT16 * pTable, int max);
4 | void ccRGBtoXYZ(double r, double g, double b, double* x, double* y, double* z);
5 | void SpecialSort(double * fpSrc, int * pPalette, UINT16 * pTable, int nSize);
6 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game/XMVSF_A_DEF.h:
--------------------------------------------------------------------------------
1 | #define XMVSF_A_NUMUNIT 19
2 | #define XMVSF_A_PALSZ 16
3 | #define XMVSF_A_IMGSTART (0x3B + 0x11 + 0x11) //MVC2, then SSF2T, then SFA3
4 |
5 |
6 | const UINT8 XMVSF_A_IMGREDIR[XMVSF_A_NUMUNIT] =
7 | {
8 | 0x07,
9 | 0x06,
10 | 0x2A,
11 | 0x0A,
12 | 0x28,
13 | 0x2B,
14 | 0x29,
15 | 0x2C,
16 | XMVSF_A_IMGSTART,
17 | 0x00,
18 | 0x27,
19 | 0x1B,
20 | 0x25,
21 | 0x01,
22 | 0x26,
23 | 0x1E,
24 | 0x21,
25 | 0x24,
26 | 0x3B + 0x11 // Chun Li's image in SFA3
27 |
28 | };
29 |
30 | const CHAR XMVSF_A_UNITDESC[XMVSF_A_NUMUNIT][16] =
31 | {
32 | "Wolverine",
33 | "Cyclops",
34 | "Storm",
35 | "Rogue",
36 | "Gambit",
37 | "Sabretooth",
38 | "Juggernaut",
39 | "Magneto",
40 | "Apocalypse",
41 | "Ryu",
42 | "Ken",
43 | "Chun-Li",
44 | "Dhalsim",
45 | "Zangief",
46 | "M. Bison",
47 | "Gouki",
48 | "Charlie",
49 | "Cammy",
50 | "Chun-Li (SFA)"
51 | };
52 |
53 | const UINT32 XMVSF_A_UNITLOC[XMVSF_A_NUMUNIT + 1] =
54 | {
55 | 0x14D7C,
56 | 0x14E3C,
57 | 0x14FBC,
58 | 0x1531C,
59 | 0x153DC, //GAMBIT
60 | 0x1549C,
61 | 0x1559C,
62 | 0x156BC,
63 | 0x157DC,
64 | 0x1589C,
65 | 0x15A1C,
66 | 0x15B9C,
67 | 0x15C5C,
68 | 0x15D5C,
69 | 0x15FDC,
70 | 0x1609C,
71 | 0x1621C,
72 | 0x1639C,
73 | 0x164BC,
74 | 0x1657C,
75 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/GameDef.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //A = Arcade
4 | //X = XBox
5 | //D = Dreamcast
6 | //P = Playstation 2
7 |
8 | //Game Definitions
9 | #define NUM_GAMES 8
10 |
11 |
12 |
13 | #define MVC2_D 0
14 | #define SFIII3_A 1
15 | #define MVC2_P 2
16 | #define SSF2T_A 3
17 | #define SFA3_A 4
18 | #define XMVSF_A 5
19 | #define MVC_A 6
20 | #define SFIII3_D 7
21 |
22 | //Images
23 |
24 | #define IMG4 0 //Image Game Flag
25 | #define IMG5 1 //Image Game Flag
26 |
27 | //Size of image per image game flag
28 | const int IMGAMT[2] =
29 | {
30 | 0x3B + 0x11,
31 | 0x14
32 | };
33 |
34 | //Display types (used for image out)
35 | enum eDispType
36 | {
37 | DISP_DEF,
38 | DISP_ALT
39 | };
40 |
41 | //Basic button labels
42 | #define BUTTON6 6
43 | #define BUTTON7 7
44 |
45 | const CHAR DEF_BUTTONLABEL6[6][3] =
46 | {
47 | "LP", "MP", "HP", "LK", "MK", "HK"
48 | };
49 |
50 | const CHAR DEF_BUTTONLABEL6ALT[6][3] =
51 | {
52 | "LP", "LK", "HP", "HK", "A1", "A2"
53 | };
54 |
55 | const CHAR DEF_BUTTONLABEL7[7][3] =
56 | {
57 | "LP", "MP", "HP", "LK", "MK", "HK", "EX"
58 | };
59 |
60 | #define DESC2 2
61 | #define DESC6 6
62 | //Primary / Secondary descriptions
63 |
64 | const CHAR DEF_DESCPRISEC[3][16] =
65 | {
66 | "Primary", "Secondary"
67 | };
68 |
69 | //Street Fighter Alpha 3 descriptions
70 | const CHAR DEF_DESCSFA3[6][16] =
71 | {
72 | "Primary", "Secondary", "Primary", "Secondary", "Primary", "Secondary"
73 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/GameLoad.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "GameClass.h"
4 |
5 | class CGameLoad
6 | {
7 | private:
8 | BOOL SetGame(int nGameFlag);
9 |
10 | UINT8 (*GetRuleCtr)(void);
11 | void (*ResetRuleCtr)(void);
12 | sFileRule (*GetNextRule)(void);
13 | sFileRule (*GetRule)(int);
14 | CGameClass * CreateGame(int nGameFlag);
15 |
16 | CString szLoadSaveStr;
17 |
18 | int nSaveLoadCount;
19 | int nSaveLoadSucc;
20 | int nSaveLoadErr;
21 | public:
22 | CGameLoad(void);
23 | ~CGameLoad(void);
24 |
25 | CGameClass * LoadFile(int nGameFlag, CHAR * szLoadFile);
26 | CGameClass * LoadDir(int nGameFlag, CHAR * szLoadDir);
27 | void SaveGame(CGameClass * CurrGame);
28 |
29 | int GetErrCt(){return nSaveLoadErr;};
30 | CString GetLoadSaveStr(){return szLoadSaveStr;};
31 | };
32 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game_MVC2_P.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_MVC2_P.h"
3 |
4 | UINT8 CGame_MVC2_P::uRuleCtr = 0;
5 |
6 |
7 | CGame_MVC2_P::CGame_MVC2_P(void)
8 | {
9 | //CGame_MVC2_D();
10 |
11 | nGameFlag = MVC2_P;
12 | }
13 |
14 | CGame_MVC2_P::~CGame_MVC2_P(void)
15 | {
16 | //~CGame_MVC2_D();
17 | }
18 |
19 |
20 |
21 |
22 |
23 | sFileRule CGame_MVC2_P::GetRule(int nRuleId)
24 | {
25 | sFileRule NewFileRule;
26 |
27 | nRuleId = (nRuleId & 0xFF00) == 0xFF00 ? (nRuleId & 0x00FF) : MVC2_D_UNITSORT[nRuleId];
28 | sprintf_s(NewFileRule.szFileName, MAX_FILENAME, "PL%02XPAK.BIN", nRuleId);
29 |
30 | NewFileRule.uUnitId = nRuleId;
31 | NewFileRule.uVerifyVar = (short int) -1;
32 |
33 | return NewFileRule;
34 | }
35 |
36 | sFileRule CGame_MVC2_P::GetNextRule()
37 | {
38 |
39 |
40 | sFileRule NewFileRule = GetRule(uRuleCtr);
41 |
42 | uRuleCtr++;
43 |
44 | if(uRuleCtr >= MVC2_D_NUMUNIT)
45 | {
46 | uRuleCtr = 0xFF;
47 | }
48 |
49 | return NewFileRule;
50 | }
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game_MVC2_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_MVC2_D.h"
3 |
4 | class CGame_MVC2_P :
5 | public CGame_MVC2_D
6 | {
7 | public:
8 | CGame_MVC2_P(void);
9 | ~CGame_MVC2_P(void);
10 |
11 | //Static functions
12 | static UINT8 uRuleCtr;
13 |
14 | static UINT8 GetRuleCtr(){return uRuleCtr;};
15 | static void ResetRuleCtr(){uRuleCtr = 0;};
16 |
17 | static sFileRule GetNextRule();
18 | static sFileRule GetRule(int nRuleId);
19 | };
20 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game_MVC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "MVC_A_DEF.h"
4 |
5 |
6 | class CGame_MVC_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_MVC_A(void);
28 | ~CGame_MVC_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | static int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game_SFA3_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SFA3_A_DEF.h"
4 |
5 |
6 | class CGame_SFA3_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SFA3_A(void);
28 | ~CGame_SFA3_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/Game_SSF2T_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SSF2T_A_DEF.h"
4 |
5 |
6 | class CGame_SSF2T_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SSF2T_A(void);
28 | ~CGame_SSF2T_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 | static int GetPalCt(int nUnitId);
41 |
42 | static void LoadExtraFile();
43 |
44 | //Normal functions
45 | CDescTree * GetMainTree();
46 |
47 |
48 |
49 | void CreateDefPal(sDescNode * srcNode, int nSepId);
50 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
51 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
52 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
53 |
54 | COLORREF * CreatePal(int nUnitId, int nPalId);
55 |
56 | void UpdatePalData();
57 |
58 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
59 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
60 |
61 |
62 | };
63 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/ImgDat.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_GAMES 4
4 | #define MAX_IMAGE 16
5 |
6 |
7 |
8 | struct sImgDef
9 | {
10 | UINT16 uImgWidth;
11 | UINT16 uImgHeight;
12 |
13 | UINT8 bCompressed;
14 | UINT32 uDataSize;
15 | UINT32 uThisImgLoc;
16 | UINT8 * pImgData;
17 |
18 |
19 |
20 | };
21 |
22 | class CImgDat
23 | {
24 | private:
25 | sImgDef *** ppImgData;
26 |
27 | sImgDef * pLastImg[MAX_IMAGE];
28 | int nLastImgCt;
29 |
30 | UINT8 uCurrUnitAmt;
31 | UINT8 uCurrImgAmt;
32 |
33 | UINT8 uReadGameFlag, uReadBPP;
34 | UINT16 uReadNumImgs;
35 | UINT32 uNextImgLoc;
36 |
37 | int nCurrGFlag;
38 |
39 | void PrepImageBuffer(UINT8 uUnitAmt, UINT8 uImgAmt);
40 |
41 | CFile ImgDatFile;
42 |
43 | BOOL bOnTheFly;
44 |
45 | public:
46 | CImgDat(void);
47 | ~CImgDat(void);
48 |
49 | BOOL LoadImage(CHAR * lpszLoadFile, UINT8 uGameFlag, UINT8 uUnitAmt, UINT16 uImgAmt = MAX_IMAGE, BOOL bLoadAll = TRUE);
50 | sImgDef * GetImageDef(UINT8 uUnitId, UINT8 uImgId);
51 | void FlushImageBuffer();
52 | UINT8 * DecodeImg(UINT8 * pSrcImgData, UINT32 uiDataSz, UINT16 uiImgWidth, UINT16 uiImgHeight, UINT8 uiBPP);
53 |
54 | int GetCurrGFlag(){return nCurrGFlag;};
55 | UINT8 * GetImgData(sImgDef * pCurrImg);
56 |
57 | void CloseImgFile();
58 | void FlushLastImg();
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/ImgTicket.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | struct sImgTicket
4 | {
5 |
6 |
7 | int nUnitId;
8 | int nImgId;
9 |
10 | int nXOffs;
11 | int nYOffs;
12 |
13 | sImgTicket * NextTicket;
14 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/Notes.txt:
--------------------------------------------------------------------------------
1 | Set gouki's offset correctly on SSF2T
2 | Get portraits for the new games
3 | test out each game's palettes
4 | add fixed up a past eerror between games and alpha flags
5 |
6 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/PalMod.aps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/2014-12-26/PalMod.aps
--------------------------------------------------------------------------------
/lkg/2014-12-26/PalModDlg_Config.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "PalMod.h"
3 | #include "PalModDlg.h"
4 |
5 | #include "Game\Game_MVC2_D.h"
6 | #include "RegProc.h"
7 |
8 |
9 | void CPalModDlg::LoadSettings()
10 | {
11 | CRegProc RegSett(REG_MAIN);
12 |
13 | //Get main program data
14 | bGetCol = RegSett.main_bGetColor;
15 | CGame_MVC2_D::bAlphaTrans = RegSett.main_bAlphaTrans;
16 | bShow32 = RegSett.main_bShow32;
17 | CGameClass::bPostSetPalProc = RegSett.main_bProcSupp;
18 | bAutoSetCol = RegSett.bAutoSetCol;
19 | }
20 |
21 | void CPalModDlg::SaveSettings()
22 | {
23 |
24 | CRegProc RegSett;
25 |
26 | RegSett.main_bGetColor = bGetCol;
27 | RegSett.main_bAlphaTrans = CGame_MVC2_D::bAlphaTrans;
28 | RegSett.main_bShow32 = bShow32;
29 | RegSett.main_bProcSupp = CGameClass::bPostSetPalProc;;
30 | RegSett.bAutoSetCol = bAutoSetCol;
31 |
32 | RegSett.SaveReg(REG_MAIN);
33 |
34 | }
--------------------------------------------------------------------------------
/lkg/2014-12-26/PalModDlg_Debug.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "PalMod.h"
3 | #include "PalModDlg.h"
4 |
5 | #include "Game\Game_MVC2_D.h"
6 |
7 | void CPalModDlg::OnBnClickedBEidrian2()
8 | {
9 | // TODO: Add your control notification handler code here
10 |
11 | UpdateData();
12 |
13 | if(bRGB)
14 | {
15 |
16 | ((CGame_MVC2_D *)GetHost()->GetCurrGame())->ForEidrian(0,
17 | RGB(
18 | (int)round(m_RHSlider.GetPos()*nRMul),
19 | (int)round(m_GSSlider.GetPos()*nGMul),
20 | (int)round(m_BLSlider.GetPos()*nBMul)) | (UINT32)((m_ASlider.GetPos() * 17) << 24));
21 |
22 | }
23 |
24 | UpdateData(FALSE);
25 | }
26 |
27 | void CPalModDlg::OnBnClickedBEidrian1()
28 | {
29 | // TODO: Add your control notification handler code here
30 |
31 | ((CGame_MVC2_D *)GetHost()->GetCurrGame())->ForEidrian(1);
32 | }
33 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/RegProc.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define REG_MAIN 0
4 | #define REG_PREV 1
5 | #define REG_IMGOUT 2
6 |
7 | #define RECT_STRSZ 256
8 |
9 | #define BGBMPFILE "bgbmp.bmp"
10 |
11 | class CRegProc
12 | {
13 | public:
14 | CRegProc(int nSrcType = -1);
15 | ~CRegProc(void);
16 |
17 | void LoadReg(int src);
18 | void SaveReg(int src);
19 |
20 | //Main
21 |
22 | RECT main_szpos;
23 |
24 | //CString main_lastdirdir;
25 | //CString main_lastfiledir;
26 |
27 | BOOL main_bGetColor;
28 | BOOL main_bAlphaTrans;
29 | BOOL main_bShow32;
30 | BOOL main_bProcSupp;
31 |
32 | BOOL bAutoSetCol;
33 |
34 | //Preview
35 |
36 | RECT prev_szpos;
37 |
38 | COLORREF prev_bgcol;
39 | COLORREF prev_blinkcol;
40 | float prev_zoom;
41 |
42 | CHAR szPrevBGLoc[MAX_PATH];
43 | int nBGXOffs;
44 | int nBGYOffs;
45 | BOOL bTileBG;
46 | BOOL bUseBGCol;
47 |
48 | //New Image
49 |
50 | RECT imgout_szpos;
51 | COLORREF imgout_bgcol;
52 | DWORD imgout_border;
53 | DWORD imgout_zoomindex;
54 | BOOL bTransPNG;
55 |
56 |
57 |
58 | };
59 |
60 | CString RectToStr(RECT in_rect);
61 | RECT StrToRect(CString in_str);
62 |
63 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/SFA3_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFA3_A_NUMUNIT 28
4 | #define SFA3_A_PALSZ 16
5 |
6 | #define SFA3_A_IMGSTART 0x3B + 0x11
7 |
8 | const UINT16 SFA3_A_IMGREDIR[SFA3_A_NUMUNIT] =
9 | {
10 | 0x00,
11 | 0x27,
12 | 0x1E,
13 | 0x21,
14 | SFA3_A_IMGSTART + 0x00,
15 | SFA3_A_IMGSTART + 0x01,
16 | SFA3_A_IMGSTART + 0x02,
17 | SFA3_A_IMGSTART + 0x03,
18 | SFA3_A_IMGSTART + 0x04,
19 | SFA3_A_IMGSTART + 0x05,
20 | 0x26,
21 | SFA3_A_IMGSTART + 0x06,
22 | 0x23,
23 | 0x22,
24 | SFA3_A_IMGSTART + 0x07,
25 | 0x25,
26 | 0x01,
27 | SFA3_A_IMGSTART + 0x08,
28 | SFA3_A_IMGSTART + 0x09,
29 | 0x24,
30 | SFA3_A_IMGSTART + 0x0A,
31 | SFA3_A_IMGSTART + 0x0B,
32 | SFA3_A_IMGSTART + 0x0C,
33 | SFA3_A_IMGSTART + 0x0D,
34 | SFA3_A_IMGSTART + 0x0E,
35 | SFA3_A_IMGSTART + 0x0F,
36 | SFA3_A_IMGSTART + 0x10,
37 | SFA3_A_IMGSTART + 0x11,
38 |
39 | };
40 |
41 | const CHAR SFA3_A_UNITDESC[SFA3_A_NUMUNIT][16] =
42 | {
43 | "Ryu",
44 | "Ken",
45 | "Gouki",
46 | "Charlie",
47 | "Chun-Li",
48 | "Adon",
49 | "Sodom",
50 | "Guy",
51 | "Birdie",
52 | "Rose",
53 | "M. Bison",
54 | "Sagat",
55 | "Dan",
56 | "Sakura",
57 | "Rolento",
58 | "Dhalsim",
59 | "Zangief",
60 | "Gen",
61 | "Balrog",
62 | "Cammy",
63 | "E. Honda",
64 | "Blanka",
65 | "R. Mika",
66 | "Cody",
67 | "Vega",
68 | "Karin",
69 | "Juni",
70 | "Juli"
71 |
72 |
73 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/SFIII3_D_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFIII3_D_NUMUNIT 0x14
4 | #define SFIII3_D_PALSZ 64
5 |
6 | const char SFIII3_D_UNITDESC[SFIII3_D_NUMUNIT][16] =
7 | {
8 | //"Gill", //0x
9 | "Alex", //0x00
10 | "Ryu", //0x01
11 | "Yun", //0x02
12 | "Dudley", //0x03
13 | "Necro", //0x04
14 | "Hugo", //0x05
15 | "Ibuki", //0x06
16 | "Elena", //0x07
17 | "Oro", //0x08
18 | "Yang", //0x09
19 | "Ken", //0x0A
20 | "Sean", //0x0B
21 | "Urien", //0x0C
22 | "Gouki", //0x0D
23 | "Shin-Gouki", //0x0E
24 | "Chun-Li", //0x0F
25 | "Makoto", //0x10
26 | "Q", //0x11
27 | "Twelve", //0x12
28 | "Remy" //0x13
29 | };
30 |
31 | const UINT8 SFIII3_D_UNITSORT[SFIII3_D_NUMUNIT] = //Plus 1 for the extra palettes
32 | {
33 | 0x00,
34 | 0x0F,
35 | 0x03,
36 | 0x07,
37 | 0x0D,
38 | 0x05,
39 | 0x06,
40 | 0x0A,
41 | 0x10,
42 | 0x04,
43 | 0x08,
44 | 0x11,
45 | 0x13,
46 | 0x01,
47 | 0x0B,
48 | 0x0E,
49 | 0x12,
50 | 0x0C,
51 | 0x09,
52 | 0x02
53 |
54 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/SSF2T_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SSF2T_A_NUMUNIT 17
4 | #define SSF2T_A_PALSZ 16
5 |
6 | #define SSF2T_A_IMGOFFSET 0x3B
7 |
8 | const CHAR SSF2T_A_UNITDESC[SSF2T_A_NUMUNIT][16] =
9 | {
10 | "Ryu",
11 | "E-Honda",
12 | "Blanka",
13 | "Guile",
14 | "Ken",
15 | "Chun-Li",
16 | "Zangief",
17 | "Dhalsim",
18 | "M.Bison",
19 | "Sagat",
20 | "Balrog",
21 | "Vega",
22 | "Cammy",
23 | "T-Hawk",
24 | "Fei Long",
25 | "Dee Jay",
26 | "Gouki"
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/SettDlg.cpp:
--------------------------------------------------------------------------------
1 | // SettDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "PalMod.h"
6 | #include "SettDlg.h"
7 |
8 |
9 | // CSettDlg dialog
10 |
11 | IMPLEMENT_DYNAMIC(CSettDlg, CDialog)
12 |
13 | CSettDlg::CSettDlg(CWnd* pParent /*=NULL*/)
14 | : CDialog(CSettDlg::IDD, pParent)
15 | , m_bAlphaTrans(FALSE)
16 | , m_bUpdSupp(FALSE)
17 | {
18 |
19 | }
20 |
21 | CSettDlg::~CSettDlg()
22 | {
23 | }
24 |
25 | void CSettDlg::DoDataExchange(CDataExchange* pDX)
26 | {
27 | CDialog::DoDataExchange(pDX);
28 | DDX_Check(pDX, IDC_CALPHATRANS, m_bAlphaTrans);
29 | DDX_Check(pDX, IDC_CUPDSUPP, m_bUpdSupp);
30 | }
31 |
32 |
33 | BEGIN_MESSAGE_MAP(CSettDlg, CDialog)
34 | END_MESSAGE_MAP()
35 |
36 |
37 | // CSettDlg message handlers
38 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/SettDlg.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 | // CSettDlg dialog
5 |
6 | class CSettDlg : public CDialog
7 | {
8 | DECLARE_DYNAMIC(CSettDlg)
9 |
10 | public:
11 | CSettDlg(CWnd* pParent = NULL); // standard constructor
12 | virtual ~CSettDlg();
13 |
14 | // Dialog Data
15 | enum { IDD = IDD_SETT_DIALOG };
16 |
17 | protected:
18 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
19 |
20 | DECLARE_MESSAGE_MAP()
21 | public:
22 | BOOL m_bAlphaTrans;
23 | BOOL m_bUpdSupp;
24 | };
25 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/ShellSort.h:
--------------------------------------------------------------------------------
1 | //#pragma once
2 |
3 | void ShellSort(double * fpSrc, double * fpExtra1, double * fpExtra2, int * pPalette, UINT16 * pTable, int max);
4 | void ccRGBtoXYZ(double r, double g, double b, double* x, double* y, double* z);
5 | void SpecialSort(double * fpSrc, int * pPalette, UINT16 * pTable, int nSize);
6 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/XMVSF_A_DEF.h:
--------------------------------------------------------------------------------
1 | #define XMVSF_A_NUMUNIT 19
2 | #define XMVSF_A_PALSZ 16
3 | #define XMVSF_A_IMGSTART (0x3B + 0x11 + 0x11) //MVC2, then SSF2T, then SFA3
4 |
5 |
6 | const UINT8 XMVSF_A_IMGREDIR[XMVSF_A_NUMUNIT] =
7 | {
8 | 0x07,
9 | 0x06,
10 | 0x2A,
11 | 0x0A,
12 | 0x28,
13 | 0x2B,
14 | 0x29,
15 | 0x2C,
16 | XMVSF_A_IMGSTART,
17 | 0x00,
18 | 0x27,
19 | 0x1B,
20 | 0x25,
21 | 0x01,
22 | 0x26,
23 | 0x1E,
24 | 0x21,
25 | 0x24,
26 | 0x3B + 0x11 // Chun Li's image in SFA3
27 |
28 | };
29 |
30 | const CHAR XMVSF_A_UNITDESC[XMVSF_A_NUMUNIT][16] =
31 | {
32 | "Wolverine",
33 | "Cyclops",
34 | "Storm",
35 | "Rogue",
36 | "Gambit",
37 | "Sabretooth",
38 | "Juggernaut",
39 | "Magneto",
40 | "Apocalypse",
41 | "Ryu",
42 | "Ken",
43 | "Chun-Li",
44 | "Dhalsim",
45 | "Zangief",
46 | "M. Bison",
47 | "Gouki",
48 | "Charlie",
49 | "Cammy",
50 | "Chun-Li (SFA)"
51 | };
52 |
53 | const UINT32 XMVSF_A_UNITLOC[XMVSF_A_NUMUNIT + 1] =
54 | {
55 | 0x14D7C,
56 | 0x14E3C,
57 | 0x14FBC,
58 | 0x1531C,
59 | 0x153DC, //GAMBIT
60 | 0x1549C,
61 | 0x1559C,
62 | 0x156BC,
63 | 0x157DC,
64 | 0x1589C,
65 | 0x15A1C,
66 | 0x15B9C,
67 | 0x15C5C,
68 | 0x15D5C,
69 | 0x15FDC,
70 | 0x1609C,
71 | 0x1621C,
72 | 0x1639C,
73 | 0x164BC,
74 | 0x1657C,
75 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/newgamedummy/Game_MVC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SSF2T_A_DEF.h"
4 |
5 |
6 | class CGame_SSF2T_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SSF2T_A(void);
28 | ~CGame_SSF2T_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/newgamedummy/MVC_A_DEF.h:
--------------------------------------------------------------------------------
1 | #define SSF2T_A_NUMUNIT 17
2 | #define SSF2T_A_PALSZ 16
3 |
4 | const CHAR SSF2T_A_UNITDESC[SSF2T_A_NUMUNIT][16] =
5 | {
6 | "Ryu",
7 | "E-Honda",
8 | "Blanka",
9 | "Guile",
10 | "Ken",
11 | "Chun-Li",
12 | "Zangief",
13 | "Dhalsim",
14 | "M.Bison",
15 | "Sagat",
16 | "Balrog",
17 | "Vega",
18 | "Cammy",
19 | "T-Hawk",
20 | "Fei Long",
21 | "Dee Jay",
22 | "Gouki"
23 | };
--------------------------------------------------------------------------------
/lkg/2014-12-26/res/PalMod.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/2014-12-26/res/PalMod.ico
--------------------------------------------------------------------------------
/lkg/2014-12-26/res/PalMod.rc2:
--------------------------------------------------------------------------------
1 | //
2 | // PalMod.RC2 - resources Microsoft Visual C++ does not edit directly
3 | //
4 |
5 | #ifdef APSTUDIO_INVOKED
6 | #error this file is not editable by Microsoft Visual C++
7 | #endif //APSTUDIO_INVOKED
8 |
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // Add manually edited resources here...
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // PalMod.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lkg/2014-12-26/targetver.h:
--------------------------------------------------------------------------------
1 |
2 | #pragma once
3 |
4 | // The following macros define the minimum required platform. The minimum required platform
5 | // is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
6 | // your application. The macros work by enabling all features available on platform versions up to and
7 | // including the version specified.
8 |
9 | // Modify the following defines if you have to target a platform prior to the ones specified below.
10 | // Refer to MSDN for the latest info on corresponding values for different platforms.
11 | #ifndef WINVER // Specifies that the minimum required platform is Windows Vista.
12 | #define WINVER 0x0600 // Change this to the appropriate value to target other versions of Windows.
13 | #endif
14 |
15 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista.
16 | #define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows.
17 | #endif
18 |
19 | #ifndef _WIN32_WINDOWS // Specifies that the minimum required platform is Windows 98.
20 | #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
21 | #endif
22 |
23 | #ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 7.0.
24 | #define _WIN32_IE 0x0700 // Change this to the appropriate value to target other versions of IE.
25 | #endif
26 |
27 |
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.exe.embed.manifest:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.exe.embed.manifest
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.exe.embed.manifest.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.exe.embed.manifest.res
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.ilk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.ilk
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.log:
--------------------------------------------------------------------------------
1 | ColorScale.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/SAFESEH' specification
2 | PalMod.vcxproj -> C:\Users\preppy\Desktop\PalMod\drew\palmod2014\Debug\PalMod.exe
3 |
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.pdb
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.res
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/CL.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/CL.command.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/CL.read.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/CL.write.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/PalMod.lastbuildstate:
--------------------------------------------------------------------------------
1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v142:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0
2 | Debug|Win32|C:\Users\preppy\Desktop\PalMod\drew\palmod2014\|
3 |
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/link.command.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/link.read.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/link.write.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/rc.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/rc.command.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/rc.read.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod.tlog/rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod.tlog/rc.write.1.tlog
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/PalMod_manifest.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/PalMod_manifest.rc
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/vc142.idb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/vc142.idb
--------------------------------------------------------------------------------
/lkg/gitversion/Debug/vc142.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/Debug/vc142.pdb
--------------------------------------------------------------------------------
/lkg/gitversion/Default.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_DESC 48
4 | #define MAX_FILENAME 16
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lkg/gitversion/DescTree.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Default.h"
3 |
4 | #define DESC_NODETYPE_TREE 0
5 | #define DESC_NODETYPE_NODE 1
6 |
7 | #define DESC_ENDGET -1
8 |
9 | //Description tree definition
10 |
11 | struct sDescNode
12 | {
13 | CHAR szDesc[MAX_DESC];
14 |
15 | UINT8 uUnitId;
16 | UINT16 uPalId;
17 | };
18 |
19 | struct sDescTreeNode
20 | {
21 | CHAR szDesc[MAX_DESC];
22 |
23 | UINT8 uChildType;
24 | void * ChildNodes;
25 | UINT16 uChildAmt;
26 | };
27 |
28 | class CDescTree
29 | {
30 | private:
31 | sDescTreeNode * RootTree;
32 | public:
33 | CDescTree(sDescTreeNode * InputTree = NULL);
34 | ~CDescTree(void);
35 |
36 | void SetRootTree(sDescTreeNode * NewTree){ RootTree = NewTree;};
37 | void FlushTree(sDescTreeNode * CurrTree);
38 | void FlushRootTree();
39 | sDescNode * GetDescNode(int nChildId, ...);
40 | sDescTreeNode * GetDescTree(int nChildId, ...);
41 | };
42 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/Default.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_DESC 48
4 | #define MAX_FILENAME 16
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/DescTree.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Default.h"
3 |
4 | #define DESC_NODETYPE_TREE 0
5 | #define DESC_NODETYPE_NODE 1
6 |
7 | #define DESC_ENDGET -1
8 |
9 | //Description tree definition
10 |
11 | struct sDescNode
12 | {
13 | CHAR szDesc[MAX_DESC];
14 |
15 | UINT8 uUnitId;
16 | UINT16 uPalId;
17 | };
18 |
19 | struct sDescTreeNode
20 | {
21 | CHAR szDesc[MAX_DESC];
22 |
23 | UINT8 uChildType;
24 | void * ChildNodes;
25 | UINT16 uChildAmt;
26 | };
27 |
28 | class CDescTree
29 | {
30 | private:
31 | sDescTreeNode * RootTree;
32 | public:
33 | CDescTree(sDescTreeNode * InputTree = NULL);
34 | ~CDescTree(void);
35 |
36 | void SetRootTree(sDescTreeNode * NewTree){ RootTree = NewTree;};
37 | void FlushTree(sDescTreeNode * CurrTree);
38 | void FlushRootTree();
39 | sDescNode * GetDescNode(int nChildId, ...);
40 | sDescTreeNode * GetDescTree(int nChildId, ...);
41 | };
42 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/GameDef.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //A = Arcade
4 | //X = XBox
5 | //D = Dreamcast
6 | //P = Playstation 2
7 |
8 | //Game Definitions
9 | #define NUM_GAMES 8
10 |
11 |
12 |
13 | #define MVC2_D 0
14 | #define SFIII3_A 1
15 | #define MVC2_P 2
16 | #define SSF2T_A 3
17 | #define SFA3_A 4
18 | #define XMVSF_A 5
19 | #define MVC_A 6
20 | #define SFIII3_D 7
21 |
22 | //Images
23 |
24 | #define IMG4 0 //Image Game Flag
25 | #define IMG5 1 //Image Game Flag
26 |
27 | //Size of image per image game flag
28 | const int IMGAMT[2] =
29 | {
30 | 0x3B + 0x11,
31 | 0x14
32 | };
33 |
34 | //Display types (used for image out)
35 | enum eDispType
36 | {
37 | DISP_DEF,
38 | DISP_ALT
39 | };
40 |
41 | //Basic button labels
42 | #define BUTTON6 6
43 | #define BUTTON7 7
44 |
45 | const CHAR DEF_BUTTONLABEL6[6][3] =
46 | {
47 | "LP", "MP", "HP", "LK", "MK", "HK"
48 | };
49 |
50 | const CHAR DEF_BUTTONLABEL6ALT[6][3] =
51 | {
52 | "LP", "LK", "HP", "HK", "A1", "A2"
53 | };
54 |
55 | const CHAR DEF_BUTTONLABEL7[7][3] =
56 | {
57 | "LP", "MP", "HP", "LK", "MK", "HK", "EX"
58 | };
59 |
60 | #define DESC2 2
61 | #define DESC6 6
62 | //Primary / Secondary descriptions
63 |
64 | const CHAR DEF_DESCPRISEC[3][16] =
65 | {
66 | "Primary", "Secondary"
67 | };
68 |
69 | //Street Fighter Alpha 3 descriptions
70 | const CHAR DEF_DESCSFA3[6][16] =
71 | {
72 | "Primary", "Secondary", "Primary", "Secondary", "Primary", "Secondary"
73 | };
--------------------------------------------------------------------------------
/lkg/gitversion/Game/GameLoad.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "GameClass.h"
4 |
5 | class CGameLoad
6 | {
7 | private:
8 | BOOL SetGame(int nGameFlag);
9 |
10 | UINT8 (*GetRuleCtr)(void);
11 | void (*ResetRuleCtr)(void);
12 | sFileRule (*GetNextRule)(void);
13 | sFileRule (*GetRule)(int);
14 | CGameClass * CreateGame(int nGameFlag);
15 |
16 | CString szLoadSaveStr;
17 |
18 | int nSaveLoadCount;
19 | int nSaveLoadSucc;
20 | int nSaveLoadErr;
21 | public:
22 | CGameLoad(void);
23 | ~CGameLoad(void);
24 |
25 | CGameClass * LoadFile(int nGameFlag, CHAR * szLoadFile);
26 | CGameClass * LoadDir(int nGameFlag, CHAR * szLoadDir);
27 | void SaveGame(CGameClass * CurrGame);
28 |
29 | int GetErrCt(){return nSaveLoadErr;};
30 | CString GetLoadSaveStr(){return szLoadSaveStr;};
31 | };
32 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/Game_MVC2_P.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_MVC2_P.h"
3 |
4 | UINT8 CGame_MVC2_P::uRuleCtr = 0;
5 |
6 |
7 | CGame_MVC2_P::CGame_MVC2_P(void)
8 | {
9 | //CGame_MVC2_D();
10 |
11 | nGameFlag = MVC2_P;
12 | }
13 |
14 | CGame_MVC2_P::~CGame_MVC2_P(void)
15 | {
16 | //~CGame_MVC2_D();
17 | }
18 |
19 |
20 |
21 |
22 |
23 | sFileRule CGame_MVC2_P::GetRule(int nRuleId)
24 | {
25 | sFileRule NewFileRule;
26 |
27 | nRuleId = (nRuleId & 0xFF00) == 0xFF00 ? (nRuleId & 0x00FF) : MVC2_D_UNITSORT[nRuleId];
28 | sprintf_s(NewFileRule.szFileName, MAX_FILENAME, "PL%02XPAK.BIN", nRuleId);
29 |
30 | NewFileRule.uUnitId = nRuleId;
31 | NewFileRule.uVerifyVar = (short int) -1;
32 |
33 | return NewFileRule;
34 | }
35 |
36 | sFileRule CGame_MVC2_P::GetNextRule()
37 | {
38 |
39 |
40 | sFileRule NewFileRule = GetRule(uRuleCtr);
41 |
42 | uRuleCtr++;
43 |
44 | if(uRuleCtr >= MVC2_D_NUMUNIT)
45 | {
46 | uRuleCtr = 0xFF;
47 | }
48 |
49 | return NewFileRule;
50 | }
--------------------------------------------------------------------------------
/lkg/gitversion/Game/Game_MVC2_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_MVC2_D.h"
3 |
4 | class CGame_MVC2_P :
5 | public CGame_MVC2_D
6 | {
7 | public:
8 | CGame_MVC2_P(void);
9 | ~CGame_MVC2_P(void);
10 |
11 | //Static functions
12 | static UINT8 uRuleCtr;
13 |
14 | static UINT8 GetRuleCtr(){return uRuleCtr;};
15 | static void ResetRuleCtr(){uRuleCtr = 0;};
16 |
17 | static sFileRule GetNextRule();
18 | static sFileRule GetRule(int nRuleId);
19 | };
20 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/Game_MVC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "MVC_A_DEF.h"
4 |
5 |
6 | class CGame_MVC_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_MVC_A(void);
28 | ~CGame_MVC_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | static int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/Game_SFA3_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SFA3_A_DEF.h"
4 |
5 |
6 | class CGame_SFA3_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SFA3_A(void);
28 | ~CGame_SFA3_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/Game_SSF2T_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SSF2T_A_DEF.h"
4 |
5 |
6 | class CGame_SSF2T_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SSF2T_A(void);
28 | ~CGame_SSF2T_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 | static int GetPalCt(int nUnitId);
41 |
42 | static void LoadExtraFile();
43 |
44 | //Normal functions
45 | CDescTree * GetMainTree();
46 |
47 |
48 |
49 | void CreateDefPal(sDescNode * srcNode, int nSepId);
50 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
51 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
52 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
53 |
54 | COLORREF * CreatePal(int nUnitId, int nPalId);
55 |
56 | void UpdatePalData();
57 |
58 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
59 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
60 |
61 |
62 | };
63 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/ImgTicket.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | struct sImgTicket
4 | {
5 |
6 |
7 | int nUnitId;
8 | int nImgId;
9 |
10 | int nXOffs;
11 | int nYOffs;
12 |
13 | sImgTicket * NextTicket;
14 | };
--------------------------------------------------------------------------------
/lkg/gitversion/Game/SFA3_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFA3_A_NUMUNIT 28
4 | #define SFA3_A_PALSZ 16
5 |
6 | #define SFA3_A_IMGSTART 0x3B + 0x11
7 |
8 | const UINT16 SFA3_A_IMGREDIR[SFA3_A_NUMUNIT] =
9 | {
10 | 0x00,
11 | 0x27,
12 | 0x1E,
13 | 0x21,
14 | SFA3_A_IMGSTART + 0x00,
15 | SFA3_A_IMGSTART + 0x01,
16 | SFA3_A_IMGSTART + 0x02,
17 | SFA3_A_IMGSTART + 0x03,
18 | SFA3_A_IMGSTART + 0x04,
19 | SFA3_A_IMGSTART + 0x05,
20 | 0x26,
21 | SFA3_A_IMGSTART + 0x06,
22 | 0x23,
23 | 0x22,
24 | SFA3_A_IMGSTART + 0x07,
25 | 0x25,
26 | 0x01,
27 | SFA3_A_IMGSTART + 0x08,
28 | SFA3_A_IMGSTART + 0x09,
29 | 0x24,
30 | SFA3_A_IMGSTART + 0x0A,
31 | SFA3_A_IMGSTART + 0x0B,
32 | SFA3_A_IMGSTART + 0x0C,
33 | SFA3_A_IMGSTART + 0x0D,
34 | SFA3_A_IMGSTART + 0x0E,
35 | SFA3_A_IMGSTART + 0x0F,
36 | SFA3_A_IMGSTART + 0x10,
37 | SFA3_A_IMGSTART + 0x11,
38 |
39 | };
40 |
41 | const CHAR SFA3_A_UNITDESC[SFA3_A_NUMUNIT][16] =
42 | {
43 | "Ryu",
44 | "Ken",
45 | "Gouki",
46 | "Charlie",
47 | "Chun-Li",
48 | "Adon",
49 | "Sodom",
50 | "Guy",
51 | "Birdie",
52 | "Rose",
53 | "M. Bison",
54 | "Sagat",
55 | "Dan",
56 | "Sakura",
57 | "Rolento",
58 | "Dhalsim",
59 | "Zangief",
60 | "Gen",
61 | "Balrog",
62 | "Cammy",
63 | "E. Honda",
64 | "Blanka",
65 | "R. Mika",
66 | "Cody",
67 | "Vega",
68 | "Karin",
69 | "Juni",
70 | "Juli"
71 |
72 |
73 | };
--------------------------------------------------------------------------------
/lkg/gitversion/Game/SFIII3_D_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFIII3_D_NUMUNIT 0x14
4 | #define SFIII3_D_PALSZ 64
5 |
6 | const char SFIII3_D_UNITDESC[SFIII3_D_NUMUNIT][16] =
7 | {
8 | //"Gill", //0x
9 | "Alex", //0x00
10 | "Ryu", //0x01
11 | "Yun", //0x02
12 | "Dudley", //0x03
13 | "Necro", //0x04
14 | "Hugo", //0x05
15 | "Ibuki", //0x06
16 | "Elena", //0x07
17 | "Oro", //0x08
18 | "Yang", //0x09
19 | "Ken", //0x0A
20 | "Sean", //0x0B
21 | "Urien", //0x0C
22 | "Gouki", //0x0D
23 | "Shin-Gouki", //0x0E
24 | "Chun-Li", //0x0F
25 | "Makoto", //0x10
26 | "Q", //0x11
27 | "Twelve", //0x12
28 | "Remy" //0x13
29 | };
30 |
31 | const UINT8 SFIII3_D_UNITSORT[SFIII3_D_NUMUNIT] = //Plus 1 for the extra palettes
32 | {
33 | 0x00,
34 | 0x0F,
35 | 0x03,
36 | 0x07,
37 | 0x0D,
38 | 0x05,
39 | 0x06,
40 | 0x0A,
41 | 0x10,
42 | 0x04,
43 | 0x08,
44 | 0x11,
45 | 0x13,
46 | 0x01,
47 | 0x0B,
48 | 0x0E,
49 | 0x12,
50 | 0x0C,
51 | 0x09,
52 | 0x02
53 |
54 | };
--------------------------------------------------------------------------------
/lkg/gitversion/Game/SSF2T_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SSF2T_A_NUMUNIT 17
4 | #define SSF2T_A_PALSZ 16
5 |
6 | #define SSF2T_A_IMGOFFSET 0x3B
7 |
8 | const CHAR SSF2T_A_UNITDESC[SSF2T_A_NUMUNIT][16] =
9 | {
10 | "Ryu",
11 | "E-Honda",
12 | "Blanka",
13 | "Guile",
14 | "Ken",
15 | "Chun-Li",
16 | "Zangief",
17 | "Dhalsim",
18 | "M.Bison",
19 | "Sagat",
20 | "Balrog",
21 | "Vega",
22 | "Cammy",
23 | "T-Hawk",
24 | "Fei Long",
25 | "Dee Jay",
26 | "Gouki"
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/ShellSort.h:
--------------------------------------------------------------------------------
1 | //#pragma once
2 |
3 | void ShellSort(double * fpSrc, double * fpExtra1, double * fpExtra2, int * pPalette, UINT16 * pTable, int max);
4 | void ccRGBtoXYZ(double r, double g, double b, double* x, double* y, double* z);
5 | void SpecialSort(double * fpSrc, int * pPalette, UINT16 * pTable, int nSize);
6 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game/XMVSF_A_DEF.h:
--------------------------------------------------------------------------------
1 | #define XMVSF_A_NUMUNIT 19
2 | #define XMVSF_A_PALSZ 16
3 | #define XMVSF_A_IMGSTART (0x3B + 0x11 + 0x11) //MVC2, then SSF2T, then SFA3
4 |
5 |
6 | const UINT8 XMVSF_A_IMGREDIR[XMVSF_A_NUMUNIT] =
7 | {
8 | 0x07,
9 | 0x06,
10 | 0x2A,
11 | 0x0A,
12 | 0x28,
13 | 0x2B,
14 | 0x29,
15 | 0x2C,
16 | XMVSF_A_IMGSTART,
17 | 0x00,
18 | 0x27,
19 | 0x1B,
20 | 0x25,
21 | 0x01,
22 | 0x26,
23 | 0x1E,
24 | 0x21,
25 | 0x24,
26 | 0x3B + 0x11 // Chun Li's image in SFA3
27 |
28 | };
29 |
30 | const CHAR XMVSF_A_UNITDESC[XMVSF_A_NUMUNIT][16] =
31 | {
32 | "Wolverine",
33 | "Cyclops",
34 | "Storm",
35 | "Rogue",
36 | "Gambit",
37 | "Sabretooth",
38 | "Juggernaut",
39 | "Magneto",
40 | "Apocalypse",
41 | "Ryu",
42 | "Ken",
43 | "Chun-Li",
44 | "Dhalsim",
45 | "Zangief",
46 | "M. Bison",
47 | "Gouki",
48 | "Charlie",
49 | "Cammy",
50 | "Chun-Li (SFA)"
51 | };
52 |
53 | const UINT32 XMVSF_A_UNITLOC[XMVSF_A_NUMUNIT + 1] =
54 | {
55 | 0x14D7C,
56 | 0x14E3C,
57 | 0x14FBC,
58 | 0x1531C,
59 | 0x153DC, //GAMBIT
60 | 0x1549C,
61 | 0x1559C,
62 | 0x156BC,
63 | 0x157DC,
64 | 0x1589C,
65 | 0x15A1C,
66 | 0x15B9C,
67 | 0x15C5C,
68 | 0x15D5C,
69 | 0x15FDC,
70 | 0x1609C,
71 | 0x1621C,
72 | 0x1639C,
73 | 0x164BC,
74 | 0x1657C,
75 | };
--------------------------------------------------------------------------------
/lkg/gitversion/GameDef.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //A = Arcade
4 | //X = XBox
5 | //D = Dreamcast
6 | //P = Playstation 2
7 |
8 | //Game Definitions
9 | #define NUM_GAMES 8
10 |
11 |
12 |
13 | #define MVC2_D 0
14 | #define SFIII3_A 1
15 | #define MVC2_P 2
16 | #define SSF2T_A 3
17 | #define SFA3_A 4
18 | #define XMVSF_A 5
19 | #define MVC_A 6
20 | #define SFIII3_D 7
21 |
22 | //Images
23 |
24 | #define IMG4 0 //Image Game Flag
25 | #define IMG5 1 //Image Game Flag
26 |
27 | //Size of image per image game flag
28 | const int IMGAMT[2] =
29 | {
30 | 0x3B + 0x11,
31 | 0x14
32 | };
33 |
34 | //Display types (used for image out)
35 | enum eDispType
36 | {
37 | DISP_DEF,
38 | DISP_ALT
39 | };
40 |
41 | //Basic button labels
42 | #define BUTTON6 6
43 | #define BUTTON7 7
44 |
45 | const CHAR DEF_BUTTONLABEL6[6][3] =
46 | {
47 | "LP", "MP", "HP", "LK", "MK", "HK"
48 | };
49 |
50 | const CHAR DEF_BUTTONLABEL6ALT[6][3] =
51 | {
52 | "LP", "LK", "HP", "HK", "A1", "A2"
53 | };
54 |
55 | const CHAR DEF_BUTTONLABEL7[7][3] =
56 | {
57 | "LP", "MP", "HP", "LK", "MK", "HK", "EX"
58 | };
59 |
60 | #define DESC2 2
61 | #define DESC6 6
62 | //Primary / Secondary descriptions
63 |
64 | const CHAR DEF_DESCPRISEC[3][16] =
65 | {
66 | "Primary", "Secondary"
67 | };
68 |
69 | //Street Fighter Alpha 3 descriptions
70 | const CHAR DEF_DESCSFA3[6][16] =
71 | {
72 | "Primary", "Secondary", "Primary", "Secondary", "Primary", "Secondary"
73 | };
--------------------------------------------------------------------------------
/lkg/gitversion/GameLoad.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "GameClass.h"
4 |
5 | class CGameLoad
6 | {
7 | private:
8 | BOOL SetGame(int nGameFlag);
9 |
10 | UINT8 (*GetRuleCtr)(void);
11 | void (*ResetRuleCtr)(void);
12 | sFileRule (*GetNextRule)(void);
13 | sFileRule (*GetRule)(int);
14 | CGameClass * CreateGame(int nGameFlag);
15 |
16 | CString szLoadSaveStr;
17 |
18 | int nSaveLoadCount;
19 | int nSaveLoadSucc;
20 | int nSaveLoadErr;
21 | public:
22 | CGameLoad(void);
23 | ~CGameLoad(void);
24 |
25 | CGameClass * LoadFile(int nGameFlag, CHAR * szLoadFile);
26 | CGameClass * LoadDir(int nGameFlag, CHAR * szLoadDir);
27 | void SaveGame(CGameClass * CurrGame);
28 |
29 | int GetErrCt(){return nSaveLoadErr;};
30 | CString GetLoadSaveStr(){return szLoadSaveStr;};
31 | };
32 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game_MVC2_P.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_MVC2_P.h"
3 |
4 | UINT8 CGame_MVC2_P::uRuleCtr = 0;
5 |
6 |
7 | CGame_MVC2_P::CGame_MVC2_P(void)
8 | {
9 | //CGame_MVC2_D();
10 |
11 | nGameFlag = MVC2_P;
12 | }
13 |
14 | CGame_MVC2_P::~CGame_MVC2_P(void)
15 | {
16 | //~CGame_MVC2_D();
17 | }
18 |
19 |
20 |
21 |
22 |
23 | sFileRule CGame_MVC2_P::GetRule(int nRuleId)
24 | {
25 | sFileRule NewFileRule;
26 |
27 | nRuleId = (nRuleId & 0xFF00) == 0xFF00 ? (nRuleId & 0x00FF) : MVC2_D_UNITSORT[nRuleId];
28 | sprintf_s(NewFileRule.szFileName, MAX_FILENAME, "PL%02XPAK.BIN", nRuleId);
29 |
30 | NewFileRule.uUnitId = nRuleId;
31 | NewFileRule.uVerifyVar = (short int) -1;
32 |
33 | return NewFileRule;
34 | }
35 |
36 | sFileRule CGame_MVC2_P::GetNextRule()
37 | {
38 |
39 |
40 | sFileRule NewFileRule = GetRule(uRuleCtr);
41 |
42 | uRuleCtr++;
43 |
44 | if(uRuleCtr >= MVC2_D_NUMUNIT)
45 | {
46 | uRuleCtr = 0xFF;
47 | }
48 |
49 | return NewFileRule;
50 | }
--------------------------------------------------------------------------------
/lkg/gitversion/Game_MVC2_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_MVC2_D.h"
3 |
4 | class CGame_MVC2_P :
5 | public CGame_MVC2_D
6 | {
7 | public:
8 | CGame_MVC2_P(void);
9 | ~CGame_MVC2_P(void);
10 |
11 | //Static functions
12 | static UINT8 uRuleCtr;
13 |
14 | static UINT8 GetRuleCtr(){return uRuleCtr;};
15 | static void ResetRuleCtr(){uRuleCtr = 0;};
16 |
17 | static sFileRule GetNextRule();
18 | static sFileRule GetRule(int nRuleId);
19 | };
20 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game_MVC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "MVC_A_DEF.h"
4 |
5 |
6 | class CGame_MVC_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_MVC_A(void);
28 | ~CGame_MVC_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | static int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game_SFA3_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SFA3_A_DEF.h"
4 |
5 |
6 | class CGame_SFA3_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SFA3_A(void);
28 | ~CGame_SFA3_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/gitversion/Game_SSF2T_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SSF2T_A_DEF.h"
4 |
5 |
6 | class CGame_SSF2T_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SSF2T_A(void);
28 | ~CGame_SSF2T_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 | static int GetPalCt(int nUnitId);
41 |
42 | static void LoadExtraFile();
43 |
44 | //Normal functions
45 | CDescTree * GetMainTree();
46 |
47 |
48 |
49 | void CreateDefPal(sDescNode * srcNode, int nSepId);
50 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
51 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
52 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
53 |
54 | COLORREF * CreatePal(int nUnitId, int nPalId);
55 |
56 | void UpdatePalData();
57 |
58 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
59 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
60 |
61 |
62 | };
63 |
--------------------------------------------------------------------------------
/lkg/gitversion/ImgDat.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_GAMES 4
4 | #define MAX_IMAGE 16
5 |
6 |
7 |
8 | struct sImgDef
9 | {
10 | UINT16 uImgWidth;
11 | UINT16 uImgHeight;
12 |
13 | UINT8 bCompressed;
14 | UINT32 uDataSize;
15 | UINT32 uThisImgLoc;
16 | UINT8 * pImgData;
17 |
18 |
19 |
20 | };
21 |
22 | class CImgDat
23 | {
24 | private:
25 | sImgDef *** ppImgData;
26 |
27 | sImgDef * pLastImg[MAX_IMAGE];
28 | int nLastImgCt;
29 |
30 | UINT8 uCurrUnitAmt;
31 | UINT8 uCurrImgAmt;
32 |
33 | UINT8 uReadGameFlag, uReadBPP;
34 | UINT16 uReadNumImgs;
35 | UINT32 uNextImgLoc;
36 |
37 | int nCurrGFlag;
38 |
39 | void PrepImageBuffer(UINT8 uUnitAmt, UINT8 uImgAmt);
40 |
41 | CFile ImgDatFile;
42 |
43 | BOOL bOnTheFly;
44 |
45 | public:
46 | CImgDat(void);
47 | ~CImgDat(void);
48 |
49 | BOOL LoadImage(CHAR * lpszLoadFile, UINT8 uGameFlag, UINT8 uUnitAmt, UINT16 uImgAmt = MAX_IMAGE, BOOL bLoadAll = TRUE);
50 | sImgDef * GetImageDef(UINT8 uUnitId, UINT8 uImgId);
51 | void FlushImageBuffer();
52 | UINT8 * DecodeImg(UINT8 * pSrcImgData, UINT32 uiDataSz, UINT16 uiImgWidth, UINT16 uiImgHeight, UINT8 uiBPP);
53 |
54 | int GetCurrGFlag(){return nCurrGFlag;};
55 | UINT8 * GetImgData(sImgDef * pCurrImg);
56 |
57 | void CloseImgFile();
58 | void FlushLastImg();
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/gitversion/ImgTicket.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | struct sImgTicket
4 | {
5 |
6 |
7 | int nUnitId;
8 | int nImgId;
9 |
10 | int nXOffs;
11 | int nYOffs;
12 |
13 | sImgTicket * NextTicket;
14 | };
--------------------------------------------------------------------------------
/lkg/gitversion/Notes.txt:
--------------------------------------------------------------------------------
1 | Set gouki's offset correctly on SSF2T
2 | Get portraits for the new games
3 | test out each game's palettes
4 | add fixed up a past eerror between games and alpha flags
5 |
6 |
--------------------------------------------------------------------------------
/lkg/gitversion/PalMod.aps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/PalMod.aps
--------------------------------------------------------------------------------
/lkg/gitversion/PalMod.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/lkg/gitversion/PalModDlg_Config.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "PalMod.h"
3 | #include "PalModDlg.h"
4 |
5 | #include "Game\Game_MVC2_D.h"
6 | #include "RegProc.h"
7 |
8 |
9 | void CPalModDlg::LoadSettings()
10 | {
11 | CRegProc RegSett(REG_MAIN);
12 |
13 | //Get main program data
14 | bGetCol = RegSett.main_bGetColor;
15 | CGame_MVC2_D::bAlphaTrans = RegSett.main_bAlphaTrans;
16 | bShow32 = RegSett.main_bShow32;
17 | CGameClass::bPostSetPalProc = RegSett.main_bProcSupp;
18 | bAutoSetCol = RegSett.bAutoSetCol;
19 | }
20 |
21 | void CPalModDlg::SaveSettings()
22 | {
23 |
24 | CRegProc RegSett;
25 |
26 | RegSett.main_bGetColor = bGetCol;
27 | RegSett.main_bAlphaTrans = CGame_MVC2_D::bAlphaTrans;
28 | RegSett.main_bShow32 = bShow32;
29 | RegSett.main_bProcSupp = CGameClass::bPostSetPalProc;;
30 | RegSett.bAutoSetCol = bAutoSetCol;
31 |
32 | RegSett.SaveReg(REG_MAIN);
33 |
34 | }
--------------------------------------------------------------------------------
/lkg/gitversion/PalModDlg_Debug.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "PalMod.h"
3 | #include "PalModDlg.h"
4 |
5 | #include "Game\Game_MVC2_D.h"
6 |
7 | void CPalModDlg::OnBnClickedBEidrian2()
8 | {
9 | // TODO: Add your control notification handler code here
10 |
11 | UpdateData();
12 |
13 | if(bRGB)
14 | {
15 |
16 | ((CGame_MVC2_D *)GetHost()->GetCurrGame())->ForEidrian(0,
17 | RGB(
18 | (int)round(m_RHSlider.GetPos()*nRMul),
19 | (int)round(m_GSSlider.GetPos()*nGMul),
20 | (int)round(m_BLSlider.GetPos()*nBMul)) | (UINT32)((m_ASlider.GetPos() * 17) << 24));
21 |
22 | }
23 |
24 | UpdateData(FALSE);
25 | }
26 |
27 | void CPalModDlg::OnBnClickedBEidrian1()
28 | {
29 | // TODO: Add your control notification handler code here
30 |
31 | ((CGame_MVC2_D *)GetHost()->GetCurrGame())->ForEidrian(1);
32 | }
33 |
--------------------------------------------------------------------------------
/lkg/gitversion/RegProc.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define REG_MAIN 0
4 | #define REG_PREV 1
5 | #define REG_IMGOUT 2
6 |
7 | #define RECT_STRSZ 256
8 |
9 | #define BGBMPFILE "bgbmp.bmp"
10 |
11 | class CRegProc
12 | {
13 | public:
14 | CRegProc(int nSrcType = -1);
15 | ~CRegProc(void);
16 |
17 | void LoadReg(int src);
18 | void SaveReg(int src);
19 |
20 | //Main
21 |
22 | RECT main_szpos;
23 |
24 | //CString main_lastdirdir;
25 | //CString main_lastfiledir;
26 |
27 | BOOL main_bGetColor;
28 | BOOL main_bAlphaTrans;
29 | BOOL main_bShow32;
30 | BOOL main_bProcSupp;
31 |
32 | BOOL bAutoSetCol;
33 |
34 | //Preview
35 |
36 | RECT prev_szpos;
37 |
38 | COLORREF prev_bgcol;
39 | COLORREF prev_blinkcol;
40 | float prev_zoom;
41 |
42 | CHAR szPrevBGLoc[MAX_PATH];
43 | int nBGXOffs;
44 | int nBGYOffs;
45 | BOOL bTileBG;
46 | BOOL bUseBGCol;
47 |
48 | //New Image
49 |
50 | RECT imgout_szpos;
51 | COLORREF imgout_bgcol;
52 | DWORD imgout_border;
53 | DWORD imgout_zoomindex;
54 | BOOL bTransPNG;
55 |
56 |
57 |
58 | };
59 |
60 | CString RectToStr(RECT in_rect);
61 | RECT StrToRect(CString in_str);
62 |
63 |
--------------------------------------------------------------------------------
/lkg/gitversion/SFA3_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFA3_A_NUMUNIT 28
4 | #define SFA3_A_PALSZ 16
5 |
6 | #define SFA3_A_IMGSTART 0x3B + 0x11
7 |
8 | const UINT16 SFA3_A_IMGREDIR[SFA3_A_NUMUNIT] =
9 | {
10 | 0x00,
11 | 0x27,
12 | 0x1E,
13 | 0x21,
14 | SFA3_A_IMGSTART + 0x00,
15 | SFA3_A_IMGSTART + 0x01,
16 | SFA3_A_IMGSTART + 0x02,
17 | SFA3_A_IMGSTART + 0x03,
18 | SFA3_A_IMGSTART + 0x04,
19 | SFA3_A_IMGSTART + 0x05,
20 | 0x26,
21 | SFA3_A_IMGSTART + 0x06,
22 | 0x23,
23 | 0x22,
24 | SFA3_A_IMGSTART + 0x07,
25 | 0x25,
26 | 0x01,
27 | SFA3_A_IMGSTART + 0x08,
28 | SFA3_A_IMGSTART + 0x09,
29 | 0x24,
30 | SFA3_A_IMGSTART + 0x0A,
31 | SFA3_A_IMGSTART + 0x0B,
32 | SFA3_A_IMGSTART + 0x0C,
33 | SFA3_A_IMGSTART + 0x0D,
34 | SFA3_A_IMGSTART + 0x0E,
35 | SFA3_A_IMGSTART + 0x0F,
36 | SFA3_A_IMGSTART + 0x10,
37 | SFA3_A_IMGSTART + 0x11,
38 |
39 | };
40 |
41 | const CHAR SFA3_A_UNITDESC[SFA3_A_NUMUNIT][16] =
42 | {
43 | "Ryu",
44 | "Ken",
45 | "Gouki",
46 | "Charlie",
47 | "Chun-Li",
48 | "Adon",
49 | "Sodom",
50 | "Guy",
51 | "Birdie",
52 | "Rose",
53 | "M. Bison",
54 | "Sagat",
55 | "Dan",
56 | "Sakura",
57 | "Rolento",
58 | "Dhalsim",
59 | "Zangief",
60 | "Gen",
61 | "Balrog",
62 | "Cammy",
63 | "E. Honda",
64 | "Blanka",
65 | "R. Mika",
66 | "Cody",
67 | "Vega",
68 | "Karin",
69 | "Juni",
70 | "Juli"
71 |
72 |
73 | };
--------------------------------------------------------------------------------
/lkg/gitversion/SFIII3_D_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SFIII3_D_NUMUNIT 0x14
4 | #define SFIII3_D_PALSZ 64
5 |
6 | const char SFIII3_D_UNITDESC[SFIII3_D_NUMUNIT][16] =
7 | {
8 | //"Gill", //0x
9 | "Alex", //0x00
10 | "Ryu", //0x01
11 | "Yun", //0x02
12 | "Dudley", //0x03
13 | "Necro", //0x04
14 | "Hugo", //0x05
15 | "Ibuki", //0x06
16 | "Elena", //0x07
17 | "Oro", //0x08
18 | "Yang", //0x09
19 | "Ken", //0x0A
20 | "Sean", //0x0B
21 | "Urien", //0x0C
22 | "Gouki", //0x0D
23 | "Shin-Gouki", //0x0E
24 | "Chun-Li", //0x0F
25 | "Makoto", //0x10
26 | "Q", //0x11
27 | "Twelve", //0x12
28 | "Remy" //0x13
29 | };
30 |
31 | const UINT8 SFIII3_D_UNITSORT[SFIII3_D_NUMUNIT] = //Plus 1 for the extra palettes
32 | {
33 | 0x00,
34 | 0x0F,
35 | 0x03,
36 | 0x07,
37 | 0x0D,
38 | 0x05,
39 | 0x06,
40 | 0x0A,
41 | 0x10,
42 | 0x04,
43 | 0x08,
44 | 0x11,
45 | 0x13,
46 | 0x01,
47 | 0x0B,
48 | 0x0E,
49 | 0x12,
50 | 0x0C,
51 | 0x09,
52 | 0x02
53 |
54 | };
--------------------------------------------------------------------------------
/lkg/gitversion/SSF2T_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define SSF2T_A_NUMUNIT 17
4 | #define SSF2T_A_PALSZ 16
5 |
6 | #define SSF2T_A_IMGOFFSET 0x3B
7 |
8 | const CHAR SSF2T_A_UNITDESC[SSF2T_A_NUMUNIT][16] =
9 | {
10 | "Ryu",
11 | "E-Honda",
12 | "Blanka",
13 | "Guile",
14 | "Ken",
15 | "Chun-Li",
16 | "Zangief",
17 | "Dhalsim",
18 | "M.Bison",
19 | "Sagat",
20 | "Balrog",
21 | "Vega",
22 | "Cammy",
23 | "T-Hawk",
24 | "Fei Long",
25 | "Dee Jay",
26 | "Gouki"
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/lkg/gitversion/SettDlg.cpp:
--------------------------------------------------------------------------------
1 | // SettDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "PalMod.h"
6 | #include "SettDlg.h"
7 |
8 |
9 | // CSettDlg dialog
10 |
11 | IMPLEMENT_DYNAMIC(CSettDlg, CDialog)
12 |
13 | CSettDlg::CSettDlg(CWnd* pParent /*=NULL*/)
14 | : CDialog(CSettDlg::IDD, pParent)
15 | , m_bAlphaTrans(FALSE)
16 | , m_bUpdSupp(FALSE)
17 | {
18 |
19 | }
20 |
21 | CSettDlg::~CSettDlg()
22 | {
23 | }
24 |
25 | void CSettDlg::DoDataExchange(CDataExchange* pDX)
26 | {
27 | CDialog::DoDataExchange(pDX);
28 | DDX_Check(pDX, IDC_CALPHATRANS, m_bAlphaTrans);
29 | DDX_Check(pDX, IDC_CUPDSUPP, m_bUpdSupp);
30 | }
31 |
32 |
33 | BEGIN_MESSAGE_MAP(CSettDlg, CDialog)
34 | END_MESSAGE_MAP()
35 |
36 |
37 | // CSettDlg message handlers
38 |
--------------------------------------------------------------------------------
/lkg/gitversion/SettDlg.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 | // CSettDlg dialog
5 |
6 | class CSettDlg : public CDialog
7 | {
8 | DECLARE_DYNAMIC(CSettDlg)
9 |
10 | public:
11 | CSettDlg(CWnd* pParent = NULL); // standard constructor
12 | virtual ~CSettDlg();
13 |
14 | // Dialog Data
15 | enum { IDD = IDD_SETT_DIALOG };
16 |
17 | protected:
18 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
19 |
20 | DECLARE_MESSAGE_MAP()
21 | public:
22 | BOOL m_bAlphaTrans;
23 | BOOL m_bUpdSupp;
24 | };
25 |
--------------------------------------------------------------------------------
/lkg/gitversion/ShellSort.h:
--------------------------------------------------------------------------------
1 | //#pragma once
2 |
3 | void ShellSort(double * fpSrc, double * fpExtra1, double * fpExtra2, int * pPalette, UINT16 * pTable, int max);
4 | void ccRGBtoXYZ(double r, double g, double b, double* x, double* y, double* z);
5 | void SpecialSort(double * fpSrc, int * pPalette, UINT16 * pTable, int nSize);
6 |
--------------------------------------------------------------------------------
/lkg/gitversion/UpgradeLog.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/UpgradeLog.htm
--------------------------------------------------------------------------------
/lkg/gitversion/XMVSF_A_DEF.h:
--------------------------------------------------------------------------------
1 | #define XMVSF_A_NUMUNIT 19
2 | #define XMVSF_A_PALSZ 16
3 | #define XMVSF_A_IMGSTART (0x3B + 0x11 + 0x11) //MVC2, then SSF2T, then SFA3
4 |
5 |
6 | const UINT8 XMVSF_A_IMGREDIR[XMVSF_A_NUMUNIT] =
7 | {
8 | 0x07,
9 | 0x06,
10 | 0x2A,
11 | 0x0A,
12 | 0x28,
13 | 0x2B,
14 | 0x29,
15 | 0x2C,
16 | XMVSF_A_IMGSTART,
17 | 0x00,
18 | 0x27,
19 | 0x1B,
20 | 0x25,
21 | 0x01,
22 | 0x26,
23 | 0x1E,
24 | 0x21,
25 | 0x24,
26 | 0x3B + 0x11 // Chun Li's image in SFA3
27 |
28 | };
29 |
30 | const CHAR XMVSF_A_UNITDESC[XMVSF_A_NUMUNIT][16] =
31 | {
32 | "Wolverine",
33 | "Cyclops",
34 | "Storm",
35 | "Rogue",
36 | "Gambit",
37 | "Sabretooth",
38 | "Juggernaut",
39 | "Magneto",
40 | "Apocalypse",
41 | "Ryu",
42 | "Ken",
43 | "Chun-Li",
44 | "Dhalsim",
45 | "Zangief",
46 | "M. Bison",
47 | "Gouki",
48 | "Charlie",
49 | "Cammy",
50 | "Chun-Li (SFA)"
51 | };
52 |
53 | const UINT32 XMVSF_A_UNITLOC[XMVSF_A_NUMUNIT + 1] =
54 | {
55 | 0x14D7C,
56 | 0x14E3C,
57 | 0x14FBC,
58 | 0x1531C,
59 | 0x153DC, //GAMBIT
60 | 0x1549C,
61 | 0x1559C,
62 | 0x156BC,
63 | 0x157DC,
64 | 0x1589C,
65 | 0x15A1C,
66 | 0x15B9C,
67 | 0x15C5C,
68 | 0x15D5C,
69 | 0x15FDC,
70 | 0x1609C,
71 | 0x1621C,
72 | 0x1639C,
73 | 0x164BC,
74 | 0x1657C,
75 | };
--------------------------------------------------------------------------------
/lkg/gitversion/newgamedummy/Game_MVC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 | #include "SSF2T_A_DEF.h"
4 |
5 |
6 | class CGame_SSF2T_A : public CGameClass
7 | {
8 | private:
9 |
10 | //Used for image selection
11 | int nTargetImgId;
12 | int nNormalPalAmt;
13 |
14 | //Used for GetPalOffset
15 |
16 | int nCurrPalOffs;
17 | int nCurrPalSz;
18 |
19 | UINT16 ***pppDataBuffer;
20 |
21 | void GetPalOffsSz(int nUnitId, int nPalId);
22 |
23 | void InitDataBuffer();
24 | void ClearDataBuffer();
25 |
26 | public:
27 | CGame_SSF2T_A(void);
28 | ~CGame_SSF2T_A(void);
29 |
30 | //Static functions / variables
31 | static CDescTree MainDescTree;
32 |
33 | // static CDescTree * GetMainTree();
34 | static CDescTree InitDescTree();
35 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
36 | static sFileRule GetRule(int nUnitId);
37 |
38 | //Extra palette function
39 | static int GetBasicAmt(int nUnitId);
40 |
41 | static void LoadExtraFile();
42 |
43 | //Normal functions
44 | CDescTree * GetMainTree();
45 |
46 | int GetPalCt(int nUnitId);
47 |
48 | void CreateDefPal(sDescNode * srcNode, int nSepId);
49 | BOOL LoadFile(CFile * LoadedFile, int nUnitId = 0);
50 | BOOL SaveFile(CFile * SaveFile, int nUnitId = 0);
51 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
52 |
53 | COLORREF * CreatePal(int nUnitId, int nPalId);
54 |
55 | void UpdatePalData();
56 |
57 | void FlushUnitFile(){if(bFileChanged){delete bFileChanged; bFileChanged = NULL;}};
58 | void PrepUnitFile(){if(!bFileChanged){ bFileChanged = new UINT8;}};
59 |
60 |
61 | };
62 |
--------------------------------------------------------------------------------
/lkg/gitversion/newgamedummy/MVC_A_DEF.h:
--------------------------------------------------------------------------------
1 | #define SSF2T_A_NUMUNIT 17
2 | #define SSF2T_A_PALSZ 16
3 |
4 | const CHAR SSF2T_A_UNITDESC[SSF2T_A_NUMUNIT][16] =
5 | {
6 | "Ryu",
7 | "E-Honda",
8 | "Blanka",
9 | "Guile",
10 | "Ken",
11 | "Chun-Li",
12 | "Zangief",
13 | "Dhalsim",
14 | "M.Bison",
15 | "Sagat",
16 | "Balrog",
17 | "Vega",
18 | "Cammy",
19 | "T-Hawk",
20 | "Fei Long",
21 | "Dee Jay",
22 | "Gouki"
23 | };
--------------------------------------------------------------------------------
/lkg/gitversion/palmod/palmod/res/palmod_.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 | Your app description here
10 |
11 |
12 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/lkg/gitversion/palmod/res/palmod_.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 | Your app description here
10 |
11 |
12 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/lkg/gitversion/res/PalMod.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/lkg/gitversion/res/PalMod.ico
--------------------------------------------------------------------------------
/lkg/gitversion/res/PalMod.rc2:
--------------------------------------------------------------------------------
1 | //
2 | // PalMod.RC2 - resources Microsoft Visual C++ does not edit directly
3 | //
4 |
5 | #ifdef APSTUDIO_INVOKED
6 | #error this file is not editable by Microsoft Visual C++
7 | #endif //APSTUDIO_INVOKED
8 |
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // Add manually edited resources here...
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 |
--------------------------------------------------------------------------------
/lkg/gitversion/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // PalMod.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lkg/gitversion/targetver.h:
--------------------------------------------------------------------------------
1 |
2 | #pragma once
3 |
4 | // The following macros define the minimum required platform. The minimum required platform
5 | // is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
6 | // your application. The macros work by enabling all features available on platform versions up to and
7 | // including the version specified.
8 |
9 | // Modify the following defines if you have to target a platform prior to the ones specified below.
10 | // Refer to MSDN for the latest info on corresponding values for different platforms.
11 | #ifndef WINVER // Specifies that the minimum required platform is Windows Vista.
12 | #define WINVER 0x0600 // Change this to the appropriate value to target other versions of Windows.
13 | #endif
14 |
15 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista.
16 | #define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows.
17 | #endif
18 |
19 | #ifndef _WIN32_WINDOWS // Specifies that the minimum required platform is Windows 98.
20 | #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
21 | #endif
22 |
23 | #ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 7.0.
24 | #define _WIN32_IE 0x0700 // Change this to the appropriate value to target other versions of IE.
25 | #endif
26 |
27 |
--------------------------------------------------------------------------------
/lkg/palmod/res/palmod_.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 | Your app description here
10 |
11 |
12 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/palmod/CRC32.h:
--------------------------------------------------------------------------------
1 | unsigned long CRC32_BlockChecksum(CFile *pFile, int length);
2 | unsigned long CRC32_BlockChecksum(unsigned char* buf, int length);
3 |
4 | void CRC32_InitChecksum(unsigned long& crcvalue);
5 | void CRC32_UpdateChecksum(unsigned long& crcvalue, unsigned char* pInBuffer, int length);
6 | void CRC32_FinishChecksum(unsigned long& crcvalue);
7 |
--------------------------------------------------------------------------------
/palmod/Debug/PalMod.exe.recipe:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | C:\Users\preppy\Desktop\PalMod\drew\palmod\Debug\PalMod.exe
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/palmod/Debug/bgbmp.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/palmod/Debug/bgbmp.bmp
--------------------------------------------------------------------------------
/palmod/Game/DescTree.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Default.h"
3 |
4 | constexpr auto DESC_NODETYPE_TREE = 0;
5 | constexpr auto DESC_NODETYPE_NODE = 1;
6 |
7 | //Description tree definition
8 |
9 | struct sDescNode
10 | {
11 | wchar_t szDesc[MAX_DESCRIPTION_LENGTH] = L"uninit";
12 |
13 | uint32_t uUnitId = INVALID_UNIT_VALUE;
14 | uint32_t uPalId = 0;
15 | };
16 |
17 | struct sDescTreeNode
18 | {
19 | wchar_t szDesc[MAX_DESCRIPTION_LENGTH] = L"uninit";
20 |
21 | uint8_t uChildType = DESC_NODETYPE_TREE;
22 | void* ChildNodes = nullptr;
23 | uint32_t uChildAmt = 0;
24 | // Solely used within CGameClassByDir
25 | // Allows for reusing units from loose ROM sets by specifying their offset location
26 | // within the new monolithic ROM composition
27 | size_t nROMShift = 0;
28 | };
29 |
30 | class CDescTree
31 | {
32 | private:
33 | sDescTreeNode* RootTree = nullptr;
34 | bool m_isInitialized = false;
35 |
36 | public:
37 | CDescTree(sDescTreeNode* InputTree = NULL);
38 | ~CDescTree();
39 |
40 | void SetRootTree(sDescTreeNode* NewTree);
41 | void DumpTree(const sDescTreeNode* pTreeOfInterest);
42 | void FlushTree(sDescTreeNode* CurrTree);
43 | void FlushRootTree();
44 | sDescNode* GetDescNode(int nChildId, ...);
45 | sDescTreeNode* GetDescTree(int nChildId, ...);
46 | };
47 |
--------------------------------------------------------------------------------
/palmod/Game/DevMode_DIR_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | const sGame_PaletteDataset DevMode_DIR_STUB_PALETTE[] =
4 | {
5 | { L"Configure your Extras file and then reload!", 0x0, 0x20 },
6 | };
7 |
8 | const sDescTreeNode DevMode_DIR_STUB_COLLECTION[] =
9 | {
10 | { L"Configure your Extras file", DESC_NODETYPE_TREE, (void*)DevMode_DIR_STUB_PALETTE, ARRAYSIZE(DevMode_DIR_STUB_PALETTE) },
11 | };
12 |
13 | const sDescTreeNode DevMode_DIR_UNITS[] =
14 | {
15 | { L"Test only - Don't edit!", DESC_NODETYPE_TREE, (void*)DevMode_DIR_STUB_COLLECTION, ARRAYSIZE(DevMode_DIR_STUB_COLLECTION) },
16 | };
17 |
18 | const stExtraDef UNKNOWN_GAME_DIR_EXTRAS_LIST[] =
19 | {
20 | // Start
21 | { UNIT_START_VALUE },
22 |
23 | { 0, L"Configure your Extras file.", 0, 0x20 },
24 |
25 | { INVALID_UNIT_VALUE }
26 | };
27 |
--------------------------------------------------------------------------------
/palmod/Game/GameLoad.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "GameClass.h"
4 |
5 | class CGameLoad
6 | {
7 | private:
8 | BOOL SetGame(int nGameFlag);
9 |
10 | uint32_t(*GetRuleCtr)() = {};
11 | void (*ResetRuleCtr)() = {};
12 | sFileRule(*GetNextRule)() = {};
13 | sFileRule(*GetRule)(uint32_t) = {};
14 | CGameClass* CreateGame(int nGameFlag, uint32_t nConfirmedROMSize, int nExtraGameData = 0, LPCWSTR pszFilePath = nullptr);
15 |
16 | bool IsLocationOnReadOnlyDrive(LPCWSTR pszLocation, LPWSTR pszDrivePath = nullptr, uint32_t ccPathSize = 0);
17 | bool VerifyLocationIsUsable(LPCWSTR pszLocation);
18 | bool IsGameUnitMvC2TeamView(int eGameID, uint32_t nGameUnit);
19 |
20 | CString strLoadSaveStr = L"";
21 |
22 | int nSaveLoadCount = 0;
23 | int nSaveLoadSucc = 0;
24 | int nSaveLoadErr = 0;
25 |
26 | public:
27 | CGameLoad() {};
28 | ~CGameLoad() {};
29 |
30 | CGameClass* LoadFile(int nGameFlag, wchar_t* pszLoadFile);
31 | CGameClass* LoadDir(int nGameFlag, wchar_t* pszLoadDir);
32 | bool SaveGame(CGameClass* CurrGame);
33 | void SavePatchFile(CGameClass* CurrGame);
34 | void SaveMultiplePatchFiles(CGameClass* CurrGame, CString strTargetDirectory);
35 | void CrosscopyGame_DCPS2(CGameClass* CurrGame);
36 | void CrosscopyGame_SteamToDC(CGameClass* CurrGame);
37 | void CrosscopyGame_ToSteam(CGameClass* CurrGame);
38 |
39 | int GetErrCt() { return nSaveLoadErr; };
40 | int GetChangedCt() { return nSaveLoadSucc; };
41 | CString GetLoadSaveStr() { return strLoadSaveStr; };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/GameRegistry.h:
--------------------------------------------------------------------------------
1 | #include "GameDef.h"
2 | #include "GameClass.h"
3 |
4 | using GameConstructor = CGameClass * (*)(uint32_t, int, LPCWSTR);
5 | using GetRuleFunc = sFileRule(*)(uint32_t);
6 | using GetNextRuleFunc = sFileRule(*)();
7 | using GetRuleCtrFunc = uint32_t(*)();
8 | using ResetRuleCtrFunc = void (*)();
9 |
10 | namespace KnownGameInfo
11 | {
12 | LPCWSTR GetGameNameForGameID(int nGameID);
13 | bool FindConstructorForGameID(int nGameID, GameConstructor& gameConstructor);
14 | bool FindRuleDataForGameID(int nGameID, GetRuleFunc& GetRule, GetNextRuleFunc& GetNextRule, GetRuleCtrFunc& GetRuleCtr, ResetRuleCtrFunc& ResetRuleCtr);
15 |
16 | std::vector& GetGameToFileMap();
17 |
18 | void SetExtraLoadingDataForGame(int nGameFlag, LPCWSTR pszFileNameLowercase, int& nGameRule);
19 | };
20 |
--------------------------------------------------------------------------------
/palmod/Game/Game_BASARA_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "BASARA_P_DEF.h"
4 |
5 | class CGame_BASARA_P : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"BSR.bin", 0x1b206800 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Sengoku BASARA X (PS2)",
19 | BASARA_P,
20 | IMGDAT_SECTION_ARCSYS,
21 | BASARA_P_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_BASARA,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB555_BE,
27 | m_sFileLoadingData,
28 | {},
29 | BASARA_P_UNITS,
30 | ARRAYSIZE(BASARA_P_UNITS),
31 | L"BSRE.txt", // Extra filename
32 | 176, // Count of palettes listed in the header
33 | 0x30, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_BASARA_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_BSSMSJR_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "BSSMSJR_SNES_DEF.h"
4 |
5 | class CGame_BSSMSJR_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Bishoujo Senshi Sailor Moon S - Jougai Rantou! Shuyaku Soudatsusen (Japan).sfc", 0x280000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Bishojo Senshi Sailor Moon S - JR (SNES)",
19 | BSSMSJR_SNES,
20 | IMGDAT_SECTION_SNES,
21 | BSSMSJR_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2_AB,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | BSSMSJR_SNES_UNITS,
30 | ARRAYSIZE(BSSMSJR_SNES_UNITS),
31 | L"BSSMSJRE.txt", // Extra filename
32 | 18, // Count of palettes listed in the header
33 | 0x20057e, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_BSSMSJR_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_BlazBlueCF_S.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "BlazBlueCF_S_DEF.h"
3 |
4 | class CGame_BlazBlueCF_S : public CGameClassPerUnitPerFile
5 | {
6 | private:
7 | const sGCPUPF_CoreGameData m_sCoreGameData
8 | {
9 | L"BlazBlue Central Fiction (Steam)",
10 | BlazBlueCF_S,
11 | IMGDAT_SECTION_ARCSYS,
12 | BlazBlueCF_S_IMGIDS_USED,
13 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
14 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
15 | AlphaMode::GameUsesVariableAlpha,
16 | ColMode::COLMODE_BGRA8888_LE,
17 | BlazBlueCF_S_CharacterData,
18 | PaletteArrangementStyle::OneButtonLabelEntryPerEachNode,
19 | };
20 |
21 | public:
22 | CGame_BlazBlueCF_S(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_BlazBlueCF_S() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, BlazBlueCF_S_CharacterData); };
26 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(BlazBlueCF_S_CharacterData); };
27 | };
28 |
--------------------------------------------------------------------------------
/palmod/Game/Game_BtlKRoad_A_DIR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "BtlKRoad_A_DIR_DEF.h"
4 |
5 | class CGame_BtlKRoad_A_DIR : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"4-u46.bin", 0x40000 },
12 | { L"5-u39.bin", 0x40000 },
13 | },
14 | FileReadType::Interleaved_Read2Bytes_BE,
15 | };
16 |
17 | const sCoreGameData m_sCoreGameData
18 | {
19 | L"Battle K-Road (Psikyo)",
20 | BtlKRoad_A,
21 | IMGDAT_SECTION_OTHER,
22 | BtlKRoad_A_IMGIDS_USED,
23 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
24 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
25 | DEF_NOBUTTONS,
26 | AlphaMode::GameUsesFixedAlpha,
27 | ColMode::COLMODE_RGB555_BE,
28 | m_sFileLoadingData,
29 | {},
30 | BtlKRoad_A_UNITS,
31 | ARRAYSIZE(BtlKRoad_A_UNITS),
32 | L"BtlKRoadE.txt", // Extra filename
33 | 48, // Count of palettes listed in the header
34 | 0xaed0, // Lowest known location used for palettes
35 | };
36 |
37 | public:
38 | CGame_BtlKRoad_A_DIR(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
39 |
40 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
41 | static sFileRule GetNextRule() { return CGameClassByDir::GetNextRule(m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_CFTE_SNES.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/palmod/Game/Game_CFTE_SNES.cpp
--------------------------------------------------------------------------------
/palmod/Game/Game_CFTE_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "CFTE_SNES_DEF.h"
4 |
5 | class CGame_CFTE_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Clay Fighter - Tournament Edition (USA).sfc", 0x300000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Clay Fighter: TE", L"Clay Fighter - Tournament Edition (USA).sfc", 0xb360f7af, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Clay Fighter: TE (SNES)",
24 | CFTE_SNES,
25 | IMGDAT_SECTION_SNES,
26 | CFTE_SNES_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_NOBUTTONS,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_BGR555_LE,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | CFTE_SNES_UNITS,
35 | ARRAYSIZE(CFTE_SNES_UNITS),
36 | L"CFTEe.txt", // Extra filename
37 | 56, // Count of palettes listed in the header
38 | 0x10000, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_CFTE_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_DBFCI_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "DBFCI_S_DEF.h"
4 |
5 | class CGame_DBFCI_A : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Dengeki Bunko Fighting Climax Ignition (Arcade)",
11 | DBFCI_A,
12 | IMGDAT_SECTION_FRENCHBREAD,
13 | DBFCI_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameDoesNotUseAlpha,
17 | ColMode::COLMODE_RGBA8881,
18 | DBFCICharacterData,
19 | };
20 |
21 | public:
22 | CGame_DBFCI_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_DBFCI_A() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | int PostSetPal(uint32_t nUnitId, uint32_t nPalId) override;
26 |
27 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, DBFCICharacterData); };
28 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(DBFCICharacterData); };
29 | };
30 |
--------------------------------------------------------------------------------
/palmod/Game/Game_DaemonBrideAG_NL.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByFile.h"
3 | #include "DaemonBrideAG_NL_DEF.h"
4 |
5 | class CGame_DaemonBrideAG_NL : public CGameClassByFile
6 | {
7 | private:
8 | const sGCBF_CoreGameData m_sCoreGameData
9 | {
10 | L"Daemon Bride: Additional Gain (NESICAxLive)",
11 | DaemonBrideAG_NL,
12 | IMGDAT_SECTION_OTHER,
13 | DaemonBrideAG_NL_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | DEF_BUTTONLABEL_NEOGEO,
16 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
17 | AlphaMode::GameUsesVariableAlpha,
18 | ColMode::COLMODE_RGB555_BE,
19 | DAEMONBRIDEAG_NL_UNITS,
20 | };
21 |
22 | public:
23 | CGame_DaemonBrideAG_NL(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
24 | ~CGame_DaemonBrideAG_NL() { ClearDataBuffer(); FlushChangeTrackingArray(); };
25 |
26 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByFile::GetRule(nRuleId, DAEMONBRIDEAG_NL_UNITS); };
27 | static sFileRule GetNextRule() { return CGameClassByFile::GetNextRule(DAEMONBRIDEAG_NL_UNITS); };
28 | };
29 |
--------------------------------------------------------------------------------
/palmod/Game/Game_DaemonBride_NL.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByFile.h"
3 | #include "DaemonBride_NL_DEF.h"
4 |
5 | class CGame_DaemonBride_NL : public CGameClassByFile
6 | {
7 | private:
8 | const sGCBF_CoreGameData m_sCoreGameData
9 | {
10 | L"Daemon Bride (NESICAxLive)",
11 | DaemonBride_NL,
12 | IMGDAT_SECTION_OTHER,
13 | DaemonBride_NL_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | DEF_BUTTONLABEL_NEOGEO,
16 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
17 | AlphaMode::GameUsesVariableAlpha,
18 | ColMode::COLMODE_RGB555_BE,
19 | DAEMONBRIDE_NL_UNITS,
20 | };
21 |
22 | public:
23 | CGame_DaemonBride_NL(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
24 | ~CGame_DaemonBride_NL() { ClearDataBuffer(); FlushChangeTrackingArray(); };
25 |
26 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByFile::GetRule(nRuleId, DAEMONBRIDE_NL_UNITS); };
27 | static sFileRule GetNextRule() { return CGameClassByFile::GetNextRule(DAEMONBRIDE_NL_UNITS); };
28 | };
29 |
--------------------------------------------------------------------------------
/palmod/Game/Game_FatalFury2_A.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_FatalFury2_A.h"
3 |
4 | CGame_FatalFury2_A::FF2LoadingKey CGame_FatalFury2_A::m_eVersionToLoad = FF2LoadingKey::Normal;
5 |
6 | void CGame_FatalFury2_A::SetSpecialRuleForFileName(std::wstring strFileName)
7 | {
8 | const std::map m_rgFileNameToVersion =
9 | {
10 | // these should be all lower case
11 | { L"047-p1.bin", FF2LoadingKey::Normal },
12 | { L"047-epr.ep1", FF2LoadingKey::Normal },
13 | { L"047-p1.p1", FF2LoadingKey::Jumbo },
14 | };
15 |
16 | CString strFileNameLowerCase = strFileName.c_str();
17 | strFileNameLowerCase.MakeLower();
18 |
19 | auto result = m_rgFileNameToVersion.find(strFileNameLowerCase.GetString());
20 |
21 | if (result != m_rgFileNameToVersion.end())
22 | {
23 | m_eVersionToLoad = result->second;
24 | }
25 | else
26 | {
27 | m_eVersionToLoad = FF2LoadingKey::Normal;
28 | }
29 |
30 | return;
31 | }
32 |
33 | CGame_FatalFury2_A::CGame_FatalFury2_A(uint32_t nConfirmedROMSize /*= -1*/)
34 | {
35 | InitializeGame(nConfirmedROMSize, (m_eVersionToLoad == FF2LoadingKey::Normal) ? m_sCoreGameData_Normal : m_sCoreGameData_Alt);
36 | }
37 |
38 | sFileRule CGame_FatalFury2_A::GetRule(uint32_t nRuleId)
39 | {
40 | return CGameClassByDir::GetRule(nRuleId, (m_eVersionToLoad == FF2LoadingKey::Normal) ? FatalFury2_A_FileLoadingData_Normal : FatalFury2_A_FileLoadingData_Alt);
41 | }
42 |
--------------------------------------------------------------------------------
/palmod/Game/Game_FightFever_A.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_FightFever_A.h"
3 |
4 | CGame_FightFever_A::FFLoadingKey CGame_FightFever_A::m_eVersionToLoad = FFLoadingKey::Set2;
5 |
6 | void CGame_FightFever_A::SetSpecialRuleForFileName(std::wstring strFileName)
7 | {
8 | const std::map m_rgFileNameToVersion =
9 | {
10 | // these should be all lower case
11 | { L"060-p1.bin", FFLoadingKey::Set1 },
12 | { L"060-p1.p1", FFLoadingKey::Set2 },
13 | { L"060-p1.rom", FFLoadingKey::Set2 }, // Unclear if this is ever actually used
14 | };
15 |
16 | CString strFileNameLowerCase = strFileName.c_str();
17 | strFileNameLowerCase.MakeLower();
18 |
19 | auto result = m_rgFileNameToVersion.find(strFileNameLowerCase.GetString());
20 |
21 | if (result != m_rgFileNameToVersion.end())
22 | {
23 | m_eVersionToLoad = result->second;
24 | }
25 | else
26 | {
27 | m_eVersionToLoad = FFLoadingKey::Set2;
28 | }
29 |
30 | return;
31 | }
32 |
33 | CGame_FightFever_A::CGame_FightFever_A(uint32_t nConfirmedROMSize /*= -1*/)
34 | {
35 | InitializeGame(nConfirmedROMSize, (m_eVersionToLoad == FFLoadingKey::Set1) ? m_sCoreGameData_Set1 : m_sCoreGameData_Set2);
36 | }
37 |
38 | sFileRule CGame_FightFever_A::GetRule(uint32_t nRuleId)
39 | {
40 | return CGameClassByDir::GetRule(nRuleId, (m_eVersionToLoad == FFLoadingKey::Set1) ? m_sFileLoadingData_Set1 : m_sFileLoadingData_Set2);
41 | }
42 |
--------------------------------------------------------------------------------
/palmod/Game/Game_FotNS_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "FotNS_P_DEF.h"
4 |
5 | class CGame_FotNS_P : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"HK_B.bin", 0x24706800 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Hokuto no Ken (PS2)",
19 | FotNS_P,
20 | IMGDAT_SECTION_ARCSYS,
21 | FotNS_P_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_FotNS,
25 | AlphaMode::GameUsesFixedAlpha,
26 | ColMode::COLMODE_RGB555_BE,
27 | m_sFileLoadingData,
28 | {},
29 | FotNS_P_UNITS,
30 | ARRAYSIZE(FotNS_P_UNITS),
31 | L"HK_BE.txt", // Extra filename
32 | 88, // Count of palettes listed in the header
33 | 0x30, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_FotNS_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_GGML_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "GGML_P_DEF.h"
4 |
5 | class CGame_GGML_P : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Guilty Gear: The Missing Link (PS1)",
11 | GGML_P,
12 | IMGDAT_SECTION_GUILTYGEAR,
13 | GGML_P_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | // PS1 alpha value is a transparency bit, with valid settings being 0 / 1.
17 | // That affects how the colors are blended during special transparency effects.
18 | AlphaMode::GameUsesSTPNotAlpha,
19 | ColMode::COLMODE_BGR555_LE,
20 | GGML_P_CharacterData,
21 | PaletteArrangementStyle::EachBasicNodeContainsAFullButtonLabelSet,
22 | 0x20, // Core Palette Sizes, we want 16 colours instead of the full table
23 | BlendMode::PS1SemiTransparencyOff,
24 | };
25 |
26 | public:
27 | CGame_GGML_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
28 | ~CGame_GGML_P() { ClearDataBuffer(); FlushChangeTrackingArray(); };
29 |
30 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, GGML_P_CharacterData); };
31 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(GGML_P_CharacterData); };
32 | };
33 |
--------------------------------------------------------------------------------
/palmod/Game/Game_GGXXACP_Wii.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "GameClassByUnitPerFile.h"
4 | #include "GGXXACP_Wii_DEF.h"
5 |
6 | class CGame_GGXXACP_Wii : public CGameClassPerUnitPerFile
7 | {
8 | private:
9 | const sGCPUPF_CoreGameData m_sCoreGameData
10 | {
11 | L"GGXX:AC+ (Wii, ID:R3NEXS)",
12 | GGXXACP_Wii,
13 | IMGDAT_SECTION_GUILTYGEAR,
14 | GGXX_ACR_IMGIDS_USED,
15 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
16 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
17 | AlphaMode::GameUsesVariableAlpha,
18 | ColMode::COLMODE_RGBA8887,
19 | GGXXACP_Wii_CharacterData,
20 | };
21 |
22 | public:
23 | CGame_GGXXACP_Wii(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
24 | ~CGame_GGXXACP_Wii() { ClearDataBuffer(); FlushChangeTrackingArray(); };
25 |
26 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, GGXXACP_Wii_CharacterData); };
27 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(GGXXACP_Wii_CharacterData); };
28 | };
29 |
--------------------------------------------------------------------------------
/palmod/Game/Game_GGXXACR_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "GGXXACR_P_DEF.h"
4 |
5 | class CGame_GGXXACR_P : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"GGXX:AC+R (PlayStation 3)",
11 | GGXXACR_P,
12 | IMGDAT_SECTION_GUILTYGEAR,
13 | GGXX_ACR_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesVariableAlpha,
17 | ColMode::COLMODE_RGBA8887,
18 | GGXXACR_P_CharacterData,
19 | };
20 | public:
21 | CGame_GGXXACR_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
22 | ~CGame_GGXXACR_P() { ClearDataBuffer(); FlushChangeTrackingArray(); };
23 |
24 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, GGXXACR_P_CharacterData); };
25 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(GGXXACR_P_CharacterData); };
26 | };
27 |
--------------------------------------------------------------------------------
/palmod/Game/Game_GGXXR_S.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "GGXXR_S_DEF.h"
4 |
5 | class CGame_GGXXR_S : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"GGXX #Reload (Steam: JPN/Netplay Patch)",
11 | GGXXR_S,
12 | IMGDAT_SECTION_GUILTYGEAR,
13 | GGXX_Rld_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesVariableAlpha,
17 | ColMode::COLMODE_RGBA8887,
18 | GGXXR_S_CharacterData,
19 | };
20 |
21 | public:
22 | CGame_GGXXR_S(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_GGXXR_S() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, GGXXR_S_CharacterData); };
26 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(GGXXR_S_CharacterData); };
27 | };
28 |
--------------------------------------------------------------------------------
/palmod/Game/Game_GalaxyFight_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "GalaxyFight_A_DEF.h"
4 |
5 | class CGame_GalaxyFight_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"078-p1.p1", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Galaxy Fight: Universal Warriors (Neo-Geo)", L"078-p1.p1", 0x45906309, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Galaxy Fight: Universal Warriors (Neo-Geo)",
24 | GalaxyFight_A,
25 | IMGDAT_SECTION_NEOGEO,
26 | GalaxyFight_A_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_NOBUTTONS,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_RGB666_NEOGEO,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | GalaxyFight_A_UNITS,
35 | ARRAYSIZE(GalaxyFight_A_UNITS),
36 | L"GalaxyFightE.txt", // Extra filename
37 | 628, // Count of palettes listed in the header
38 | 0x114a9e, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_GalaxyFight_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_Gowcaizer_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "Gowcaizer_A_DEF.h"
4 |
5 | class CGame_Gowcaizer_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"094-p1.p1", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Voltage Fighter Gowcaizer (Neo-Geo)", L"094-p1.p1", 0x33019545, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Voltage Fighter Gowcaizer (Neo-Geo)",
24 | Gowcaizer_A,
25 | IMGDAT_SECTION_NEOGEO,
26 | Gowcaizer_A_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_BUTTONLABEL_2,
30 | AlphaMode::GameUsesFixedAlpha,
31 | ColMode::COLMODE_RGB666_NEOGEO,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | Gowcaizer_A_UNITS,
35 | ARRAYSIZE(Gowcaizer_A_UNITS),
36 | L"GowcaizerE.txt", // Extra filename
37 | 291, // Count of palettes listed in the header
38 | 0x1354c0, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_Gowcaizer_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_JOJOS_A_DIR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_JOJOS_A.h"
3 |
4 | class CGame_JOJOS_A_DIR : public CGame_JOJOS_A
5 | {
6 | private:
7 | static sFileRule GetNextRuleInternal(JojosLoadingKey nVersionToLoad);
8 | static sFileRule GetRuleInternal(uint32_t nRuleId, JojosLoadingKey nVersionToLoad);
9 |
10 | public:
11 | CGame_JOJOS_A_DIR(uint32_t nConfirmedROMSize, JojosLoadingKey nJojosModeToLoad);
12 |
13 | static sFileRule GetNextRule50() { return GetNextRuleInternal(JojosLoadingKey::JOJOS_A_50_ROMKEY_RERIP); };
14 | static sFileRule GetRule50(uint32_t nRuleId) { return GetRuleInternal(nRuleId, JojosLoadingKey::JOJOS_A_50_ROMKEY_RERIP); };
15 | static sFileRule GetNextRule51() { return GetNextRuleInternal(JojosLoadingKey::JOJOS_A_51_ROMKEY_RERIP); };
16 | static sFileRule GetRule51(uint32_t nRuleId) { return GetRuleInternal(nRuleId, JojosLoadingKey::JOJOS_A_51_ROMKEY_RERIP); };
17 | static sFileRule GetNextRule51RegOn() { return GetNextRuleInternal(JojosLoadingKey::JOJOS_US_A_51_ROMKEY_RERIP); };
18 | static sFileRule GetRule51RegOn(uint32_t nRuleId) { return GetRuleInternal(nRuleId, JojosLoadingKey::JOJOS_US_A_51_ROMKEY_RERIP); };
19 |
20 | uint32_t SaveMultiplePatchFiles(CString strTargetDirectory) override;
21 | };
22 |
--------------------------------------------------------------------------------
/palmod/Game/Game_JojosRPG_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "JOJOSRPG_SNES_DEF.h"
4 |
5 | class CGame_JOJOSRPG_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"jojo no kimyou na bouken (japan).sfc", 0x100000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Jojo's Bizarre Adventure (SNES)",
19 | JOJOSRPG_SNES,
20 | IMGDAT_SECTION_SNES,
21 | JOJOSRPG_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_NOBUTTONS,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | JOJOSRPG_SNES_UNITS,
30 | ARRAYSIZE(JOJOSRPG_SNES_UNITS),
31 | L"JojosRPGE.txt", // Extra filename
32 | 37, // Count of palettes listed in the header
33 | 0x817a, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_JOJOSRPG_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_JusticeLeagueTF_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "JusticeLeagueTF_SNES_DEF.h"
4 |
5 | class CGame_JusticeLeagueTF_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"justice league task force (usa).sfc", 0x280000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Justice League Task Force (USA SNES)",
19 | JusticeLeagueTF_SNES,
20 | IMGDAT_SECTION_SNES,
21 | JusticeLeagueTF_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | JusticeLeagueTF_SNES_UNITS,
30 | ARRAYSIZE(JusticeLeagueTF_SNES_UNITS),
31 | L"JusticeLeagueTFE.txt", // Extra filename
32 | 82, // Count of palettes listed in the header
33 | 0x1a92a, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_JusticeLeagueTF_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_KOF00N_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "KOF00N_A_DEF.h"
4 |
5 | class CGame_KOF00N_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"257-pg2.sp2", 0x400000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"King of Fighters 2000n (Neo-Geo)",
19 | KOF00N_A,
20 | IMGDAT_SECTION_KOF,
21 | KOF00N_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2_AB,
25 | AlphaMode::GameUsesFixedAlpha,
26 | ColMode::COLMODE_RGB666_NEOGEO,
27 | m_sFileLoadingData,
28 | {},
29 | KOF00N_A_UNITS,
30 | ARRAYSIZE(KOF00N_A_UNITS),
31 | L"KOF00nE.txt", // Extra filename
32 | 1160, // Count of palettes listed in the header
33 | 0xc97f0, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_KOF00N_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_KOF02PS2_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "KOF02PS2_A_DEF.h"
4 |
5 | class CGame_KOF02PS2_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"265ps2-p2.bin", 0x500000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"King of Fighters 2002PS2 (Neo-Geo hack)",
19 | KOF02PS2_A,
20 | IMGDAT_SECTION_KOF,
21 | KOF02PS2_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_NEOGEO,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB666_NEOGEO,
27 | m_sFileLoadingData,
28 | {},
29 | KOF02PS2_A_UNITS,
30 | ARRAYSIZE(KOF02PS2_A_UNITS),
31 | L"KOF02PS2E.txt", // Extra filename
32 | 2195, // Count of palettes listed in the header
33 | 0x388c00, // Lowest known location used for palettes
34 | };
35 |
36 | static void DumpAllCharacters();
37 |
38 | public:
39 | CGame_KOF02PS2_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
40 |
41 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_KOF98AE2016_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "KOF98AE2016_A_DEF.h"
4 |
5 | class CGame_KOF98AE2016_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"242ae-p2.sp2", 0x600000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"KOF98AE2016 (Romhack)", L"242ae-p2.sp2", 0xAC1E9E79, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"KOF98AE2016 (Romhack)",
24 | KOF98AE2016_A,
25 | IMGDAT_SECTION_KOF,
26 | KOF98ae_A_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_BUTTONLABEL_NEOGEO,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_RGB666_NEOGEO,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | KOF98AE2016_A_UNITS,
35 | ARRAYSIZE(KOF98AE2016_A_UNITS),
36 | L"KOF98AE2016E.txt", // Extra filename
37 | 2188, // Count of palettes listed in the header
38 | 0x1b97f0, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_KOF98AE2016_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_KOFXI_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "KOFXI_A_DEF.h"
4 |
5 | class CGame_KOFXI_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"gdrom_KOFXI_v5_AllFighters.bin", 0xf000000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"King of Fighters XI (Atomiswave)",
19 | KOFXI_A,
20 | IMGDAT_SECTION_KOF,
21 | KOFXI_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_KOFXI,
25 | AlphaMode::GameUsesFixedAlpha,
26 | ColMode::COLMODE_RGB555_BE,
27 | m_sFileLoadingData,
28 | {},
29 | KOFXI_A_UNITS,
30 | ARRAYSIZE(KOFXI_A_UNITS),
31 | L"KOFXIe.txt", // Extra filename
32 | 7680, // Count of palettes listed in the header
33 | 0x1011000, // Lowest known location used for palettes
34 | };
35 |
36 | static void DumpAllCharacters();
37 |
38 | public:
39 | CGame_KOFXI_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
40 |
41 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_KabukiKlash_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "KabukiKlash_A_DEF.h"
4 |
5 | class CGame_KabukiKlash_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"092-p1.p1", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Kabuki Klash: Far East of Eden (Neo-Geo)",
19 | KabukiKlash_A,
20 | IMGDAT_SECTION_NEOGEO,
21 | KabukiKlash_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB666_NEOGEO,
27 | m_sFileLoadingData,
28 | {},
29 | KabukiKlash_A_UNITS,
30 | ARRAYSIZE(KabukiKlash_A_UNITS),
31 | L"KabukiKlashE.txt", // Extra filename
32 | 604, // Count of palettes listed in the header
33 | 0x1f5bc0, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_KabukiKlash_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_LASTBLADE2_A.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "GameDef.h"
3 | #include "Game_LASTBLADE2_A.h"
4 |
5 | CGame_LASTBLADE2_A::CGame_LASTBLADE2_A(uint32_t nConfirmedROMSize, SupportedGamesList nROMToLoad /*= LASTBLADE2_A */)
6 | {
7 | InitializeGame(nConfirmedROMSize, (nROMToLoad == LASTBLADE2_A) ? m_sCoreGameData_NeoGeo : m_sCoreGameData_Steam);
8 | }
9 |
10 | sFileRule CGame_LASTBLADE2_A::GetRule(SupportedGamesList nGameId, uint32_t nUnitId)
11 | {
12 | sFileRule NewFileRule;
13 |
14 | if (nGameId == LASTBLADE2_S)
15 | {
16 | _snwprintf_s(NewFileRule.szFileName, ARRAYSIZE(NewFileRule.szFileName), _TRUNCATE, LASTBLADE2_A_FileLoadingData_Steam.rgRuleList.at(0).szFileName); // Update with the primary expected ROM name here.
17 | NewFileRule.uVerifyVar = static_cast(LASTBLADE2_A_FileLoadingData_Steam.rgRuleList.at(0).uVerifyVar);
18 | }
19 | else
20 | {
21 | _snwprintf_s(NewFileRule.szFileName, ARRAYSIZE(NewFileRule.szFileName), _TRUNCATE, LASTBLADE2_A_FileLoadingData_NeoGeo.rgRuleList.at(0).szFileName); // Update with the primary expected ROM name here.
22 | NewFileRule.uVerifyVar = static_cast(LASTBLADE2_A_FileLoadingData_NeoGeo.rgRuleList.at(0).uVerifyVar);
23 | }
24 |
25 | NewFileRule.uUnitId = 0;
26 |
27 | return NewFileRule;
28 | }
29 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MAAB_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "MAAB_A_DEF.h"
4 |
5 | class CGame_MAAB_A : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Million Arthur Arcana Blood (Steam)",
11 | MAAB_A,
12 | IMGDAT_SECTION_ARCANA,
13 | MAAB_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_BGRA8888_LE,
18 | MAAB_A_CharacterData,
19 | };
20 |
21 | public:
22 | CGame_MAAB_A(uint32_t nConfirmedROMSize) { m_fGameUsesAlphaValue = true; InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_MAAB_A() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, MAAB_A_CharacterData); };
26 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(MAAB_A_CharacterData); };
27 | };
28 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MBAACC_S.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "MBAACC_S_DEF.h"
4 |
5 | class CGame_MBAACC_S : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Melty Blood Actress Again Current Code (Steam)",
11 | MBAACC_S,
12 | IMGDAT_SECTION_FRENCHBREAD,
13 | MBAACC_S_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_RGBA8881_32STEPS,
18 | MBAACCCharacterData,
19 | };
20 |
21 | public:
22 | CGame_MBAACC_S(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_MBAACC_S() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, MBAACCCharacterData); };
26 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(MBAACCCharacterData); };
27 | };
28 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MBTL_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "MBTL_S_DEF.h"
4 |
5 | class CGame_MBTL_A : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Melty Blood: Type Lumina (Steam)",
11 | MBTL_A,
12 | IMGDAT_SECTION_FRENCHBREAD,
13 | MBTL_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_RGBA8888_LE,
18 | MBTLCharacterData,
19 | };
20 |
21 | public:
22 | CGame_MBTL_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_MBTL_A() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | int PostSetPal(uint32_t nUnitId, uint32_t nPalId) override;
26 |
27 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, MBTLCharacterData); };
28 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(MBTLCharacterData); };
29 | };
30 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MK1_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "MK1_SNES_DEF.h"
4 |
5 | class CGame_MK1_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Mortal Kombat (USA).sfc", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Mortal Kombat (SNES)",
19 | MK1_SNES,
20 | IMGDAT_SECTION_SNES,
21 | MK1_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | MK1_SNES_UNITS,
30 | ARRAYSIZE(MK1_SNES_UNITS),
31 | L"MK1_SNES_E.txt", // Extra filename
32 | 54, // Count of palettes listed in the header
33 | 0x1c16, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_MK1_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MK2_SNES.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "GameDef.h"
3 | #include "Game_MK2_SNES.h"
4 |
5 | MK2LoadingKey CGame_MK2_SNES::m_eVersionToLoad = MK2LoadingKey::Version1dot0;
6 |
7 | void CGame_MK2_SNES::SetSpecialRuleForFileName(std::wstring strFileName)
8 | {
9 | const std::map m_rgFileNameToVersion =
10 | {
11 | // these should be all lower case
12 | { L"mortal kombat ii (usa).sfc", MK2LoadingKey::Version1dot0 },
13 | { L"mortal_kombat_ii_usa.sfc", MK2LoadingKey::Version1dot1 },
14 | { L"mortal kombat ii (usa) (rev 1).sfc", MK2LoadingKey::Version1dot1 },
15 | };
16 |
17 | CString strFileNameLowerCase = strFileName.c_str();
18 | strFileNameLowerCase.MakeLower();
19 |
20 | auto result = m_rgFileNameToVersion.find(strFileNameLowerCase.GetString());
21 |
22 | if (result != m_rgFileNameToVersion.end())
23 | {
24 | m_eVersionToLoad = result->second;
25 | }
26 | else
27 | {
28 | m_eVersionToLoad = MK2LoadingKey::Version1dot0;
29 | }
30 |
31 | return;
32 | }
33 |
34 | sFileRule CGame_MK2_SNES::GetRule(uint32_t nRuleId)
35 | {
36 | return CGameClassByDir::GetRule(nRuleId, (m_eVersionToLoad == MK2LoadingKey::Version1dot0) ? MK2_SNES_FileLoadingData_V1dot0 : MK2_SNES_FileLoadingData_V1dot1);
37 | }
38 |
39 | CGame_MK2_SNES::CGame_MK2_SNES(uint32_t nConfirmedROMSize)
40 | {
41 | InitializeGame(nConfirmedROMSize, (m_eVersionToLoad == MK2LoadingKey::Version1dot0) ? m_sCoreGameData_V1dot0 : m_sCoreGameData_V1dot1);
42 | }
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MMX2_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "MMX2_SNES_DEF.h"
4 |
5 | class CGame_MMX2_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"megaman x2 (usa).sfc", 0x180000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Mega Man X2 (SNES)",
19 | MMX2_SNES,
20 | IMGDAT_SECTION_SNES,
21 | MMX2_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_NOBUTTONS,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | MMX2_SNES_UNITS,
30 | ARRAYSIZE(MMX2_SNES_UNITS),
31 | L"MMX2E.txt", // Extra filename
32 | 14, // Count of palettes listed in the header
33 | 0x2b160, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_MMX2_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MMX3_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "MMX3_SNES_DEF.h"
4 |
5 | class CGame_MMX3_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"megaman x3 (usa).sfc", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Mega Man X3 (SNES)",
19 | MMX3_SNES,
20 | IMGDAT_SECTION_SNES,
21 | MMX3_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_NOBUTTONS,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | MMX3_SNES_UNITS,
30 | ARRAYSIZE(MMX3_SNES_UNITS),
31 | L"MMX3E.txt", // Extra filename
32 | 17, // Count of palettes listed in the header
33 | 0x62400, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_MMX3_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MMX_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "MMX_SNES_DEF.h"
4 |
5 | class CGame_MMX_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | // We don't supply a size here because there are are a couple different ROMs that have different sizes
12 | { L"megaman x (usa).sfc", static_cast(-1) },
13 | },
14 | FileReadType::Sequential,
15 | };
16 |
17 | const sCoreGameData m_sCoreGameData
18 | {
19 | L"Mega Man X (SNES)",
20 | MMX_SNES,
21 | IMGDAT_SECTION_SNES,
22 | MMX_SNES_IMGIDS_USED,
23 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
24 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
25 | DEF_NOBUTTONS,
26 | AlphaMode::GameDoesNotUseAlpha,
27 | ColMode::COLMODE_BGR555_LE,
28 | m_sFileLoadingData,
29 | {},
30 | MMX_SNES_UNITS,
31 | ARRAYSIZE(MMX_SNES_UNITS),
32 | L"MMXE.txt", // Extra filename
33 | 89, // Count of palettes listed in the header
34 | 0x2b700, // Lowest known location used for palettes
35 | };
36 |
37 | public:
38 | CGame_MMX_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
39 |
40 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
41 | };
42 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MSHVSF_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByFile.h"
3 | #include "MSHVSF_P_DEF.h"
4 |
5 | class CGame_MSHVSF_P : public CGameClassByFile
6 | {
7 | private:
8 | const sGCBF_CoreGameData m_sCoreGameData
9 | {
10 | L"MSHVSF (PSX)",
11 | MSHVSF_P,
12 | IMGDAT_SECTION_CPS2,
13 | MSHVSF_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
15 | DEF_BUTTONLABEL_4_VS_HOME,
16 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
17 | AlphaMode::GameDoesNotUseAlpha,
18 | ColMode::COLMODE_BGR555_LE,
19 | MSHVSF_P_UNITS,
20 | };
21 |
22 | public:
23 | CGame_MSHVSF_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
24 | ~CGame_MSHVSF_P() { ClearDataBuffer(); FlushChangeTrackingArray(); };
25 |
26 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByFile::GetRule(nRuleId, MSHVSF_P_UNITS); };
27 | static sFileRule GetNextRule() { return CGameClassByFile::GetNextRule(MSHVSF_P_UNITS); };
28 | };
29 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MVC2_A_DIR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_MVC2_A.h"
3 |
4 | class CGame_MVC2_A_DIR :
5 | public CGame_MVC2_A
6 | {
7 | public:
8 | CGame_MVC2_A_DIR(uint32_t nConfirmedROMSize);
9 | ~CGame_MVC2_A_DIR();
10 |
11 | inline uint32_t GetLocationWithinSIMM(uint32_t nSIMMSetLocation);
12 | inline uint8_t GetSIMMSetForROMLocation(uint32_t nROMLocation);
13 |
14 | //Static functions
15 | static uint32_t m_uRuleCtr;
16 |
17 | static uint32_t GetRuleCtr() { return m_uRuleCtr; };
18 | static void ResetRuleCtr() { m_uRuleCtr = 0; };
19 |
20 | static sFileRule GetNextRule();
21 | static sFileRule GetRule(uint32_t nRuleId);
22 |
23 | BOOL LoadFile(CFile* LoadedFile, uint32_t nSIMMNumber) override;
24 | BOOL SaveFile(CFile* SaveFile, uint32_t nSaveUnit) override;
25 | };
26 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MVC2_P.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_MVC2_P.h"
3 |
4 | CGame_MVC2_P::CGame_MVC2_P(uint32_t nConfirmedROMSize) : CGame_MVC2_D(nConfirmedROMSize, MVC2_P)
5 | {
6 | }
7 |
8 | CGame_MVC2_P::~CGame_MVC2_P()
9 | {
10 | //~CGame_MVC2_D();
11 | }
12 |
13 | sFileRule CGame_MVC2_P::GetRule(uint32_t nRuleId)
14 | {
15 | sFileRule NewFileRule;
16 |
17 | nRuleId = (nRuleId & RULE_COUNTER_MASK) == RULE_COUNTER_MASK ? (nRuleId & RULE_COUNTER_DEMASK) : MVC2_D_UNITSORT[nRuleId];
18 | _snwprintf_s(NewFileRule.szFileName, ARRAYSIZE(NewFileRule.szFileName), _TRUNCATE, L"PL%02XPAK.BIN", nRuleId);
19 |
20 | NewFileRule.uUnitId = nRuleId;
21 | NewFileRule.uVerifyVar = (short int)-1;
22 |
23 | return NewFileRule;
24 | }
25 |
26 | sFileRule CGame_MVC2_P::GetNextRule()
27 | {
28 | sFileRule NewFileRule = GetRule(m_uRuleCtr);
29 |
30 | m_uRuleCtr++;
31 |
32 | if (m_uRuleCtr >= MVC2_D_NUMUNIT_WITH_TEAMVIEW)
33 | {
34 | m_uRuleCtr = INVALID_UNIT_VALUE;
35 | }
36 |
37 | return NewFileRule;
38 | }
39 |
40 | LPCWSTR CGame_MVC2_P::GetGameName()
41 | {
42 | return L"MvC2 (Playstation 2)";
43 | }
44 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MVC2_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_MVC2_D.h"
3 |
4 | class CGame_MVC2_P :
5 | public CGame_MVC2_D
6 | {
7 | public:
8 | CGame_MVC2_P(uint32_t nConfirmedROMSize);
9 | ~CGame_MVC2_P();
10 |
11 | //Static functions
12 | static sFileRule GetNextRule();
13 | static sFileRule GetRule(uint32_t nRuleId);
14 |
15 | LPCWSTR GetGameName() override;
16 | };
17 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MWarr_A_DIR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "MWarr_A_DIR_DEF.h"
4 |
5 | class CGame_MWarr_A_DIR : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"prg_ev", 0x80000 },
12 | { L"prg_od", 0x80000 },
13 | },
14 | FileReadType::Interleaved_2FileSets,
15 | };
16 |
17 | const sCoreGameData m_sCoreGameData
18 | {
19 | L"Mighty Warriors (Elettronica Video Games)",
20 | MWARR_A,
21 | IMGDAT_SECTION_OTHER,
22 | MWarr_A_IMGIDS_USED,
23 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
24 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
25 | DEF_NOBUTTONS,
26 | AlphaMode::GameDoesNotUseAlpha,
27 | ColMode::COLMODE_BGR555_BE,
28 | m_sFileLoadingData,
29 | {},
30 | MWarr_A_UNITS,
31 | ARRAYSIZE(MWarr_A_UNITS),
32 | L"MWarrE.txt", // Extra filename
33 | 24, // Count of palettes listed in the header
34 | 0x92BB6, // Lowest known location used for palettes
35 | };
36 |
37 | public:
38 | CGame_MWarr_A_DIR(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
39 |
40 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
41 | static sFileRule GetNextRule() { return CGameClassByDir::GetNextRule(m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MartialMasters_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "MartialMasters_A_DEF.h"
4 |
5 | class CGame_MartialMasters_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"v104_32m.u9", 0x400000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Martial Masters (PGM)", L"v104_32m.u9", 0xcfd9dff4, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Martial Masters (PGM)",
24 | MartialMasters_A,
25 | IMGDAT_SECTION_PGM,
26 | MartialMasters_A_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_NOBUTTONS,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_RGB555_BE,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | MartialMasters_A_UNITS,
35 | ARRAYSIZE(MartialMasters_A_UNITS),
36 | L"MartialMastersE.txt", // Extra filename
37 | 323, // Count of palettes listed in the header
38 | 0xa9600, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_MartialMasters_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_Matrimelee_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "Matrimelee_A_DEF.h"
4 |
5 | class CGame_Matrimelee_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"066-p1.p1", 0x400000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Matrimelee (Neo-Geo)",
19 | MATRIMELEE_A,
20 | IMGDAT_SECTION_MATRIM,
21 | MATRIM_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_NEOGEO,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB555_BE,
27 | m_sFileLoadingData,
28 | {},
29 | Matrimelee_A_UNITS,
30 | ARRAYSIZE(Matrimelee_A_UNITS),
31 | L"MatrimeleeE.txt", // Extra filename
32 | 791, // Count of palettes listed in the header
33 | 0x72ba, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_Matrimelee_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_MvC_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "MvC_P_DEF.h"
4 |
5 | class CGame_MVC_P : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Marvel vs Capcom (USA Playstation)",
11 | MVC_P,
12 | IMGDAT_SECTION_CPS2,
13 | MVC_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameDoesNotUseAlpha,
17 | ColMode::COLMODE_BGR555_LE,
18 | MVC_P_CharacterData,
19 | PaletteArrangementStyle::OneButtonLabelEntryPerEachNode,
20 | 0x20
21 | };
22 |
23 | public:
24 | CGame_MVC_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
25 | ~CGame_MVC_P() { ClearDataBuffer(); FlushChangeTrackingArray(); };
26 |
27 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, MVC_P_CharacterData); };
28 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(MVC_P_CharacterData); };
29 | };
30 |
--------------------------------------------------------------------------------
/palmod/Game/Game_NGBC_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "NGBC_A_DEF.h"
4 |
5 | class CGame_NGBC_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"NeoGeoBattleColliseum.bin", 0xf000000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"NGBC (Atomiswave)",
19 | NGBC_A,
20 | IMGDAT_SECTION_KOF,
21 | NGBC_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_KOFXI,
25 | AlphaMode::GameUsesFixedAlpha,
26 | ColMode::COLMODE_RGB555_BE,
27 | m_sFileLoadingData,
28 | {},
29 | NGBC_A_UNITS,
30 | ARRAYSIZE(NGBC_A_UNITS),
31 | L"NGBCe.txt", // Extra filename
32 | 3848, // Count of palettes listed in the header
33 | 0x1013000, // Lowest known location used for palettes
34 | };
35 |
36 | void DumpAllCharacters();
37 |
38 | public:
39 | CGame_NGBC_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
40 |
41 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_NeoBomberman_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "NeoBomberman_A_DEF.h"
4 |
5 | class CGame_NeoBomberman_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"093-p1.p1", 0x100000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Neo Bomberman (Neo-Geo)",
19 | NeoBomberman_A,
20 | IMGDAT_SECTION_NEOGEO,
21 | NEOBOMBERMAN_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_NOBUTTONS,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB666_NEOGEO,
27 | m_sFileLoadingData,
28 | {},
29 | NeoBomberman_A_UNITS,
30 | ARRAYSIZE(NeoBomberman_A_UNITS),
31 | L"NeoBombermanE.txt", // Extra filename
32 | 43, // Count of palettes listed in the header
33 | 0xc14ea, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_NeoBomberman_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_P4AU_FightClub.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "P4AU_FightClub_DEF.h"
4 |
5 | class CGame_P4AU_FightClub : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Persona Fight Club Modpack",
11 | P4AU_FightClub,
12 | IMGDAT_SECTION_ARCSYS,
13 | P4AU_S_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_BGRA8888_LE,
18 | PersonaCharacterData_FightClub,
19 | PaletteArrangementStyle::OneButtonLabelEntryPerEachNode,
20 | };
21 |
22 | public:
23 | CGame_P4AU_FightClub(uint32_t nConfirmedROMSize) { m_fGameUsesAlphaValue = true; InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
24 | ~CGame_P4AU_FightClub() { ClearDataBuffer(); FlushChangeTrackingArray(); };
25 |
26 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, PersonaCharacterData_FightClub); };
27 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(PersonaCharacterData_FightClub); };
28 | };
29 |
--------------------------------------------------------------------------------
/palmod/Game/Game_P4AU_NESICA.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "P4AU_NESICA_DEF.h"
4 |
5 | class CGame_P4AU_NESICA : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Persona 4 Arena Ultimax 2.0 (NESICA)",
11 | P4AU_NESICA,
12 | IMGDAT_SECTION_ARCSYS,
13 | P4AU_S_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_BGRA8888_LE,
18 | PersonaCharacterData_NESICA,
19 | PaletteArrangementStyle::OneButtonLabelEntryPerEachNode,
20 | };
21 | public:
22 | CGame_P4AU_NESICA(uint32_t nConfirmedROMSize) { m_fGameUsesAlphaValue = true; InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_P4AU_NESICA() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, PersonaCharacterData_NESICA); };
26 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(PersonaCharacterData_NESICA); };
27 | };
28 |
--------------------------------------------------------------------------------
/palmod/Game/Game_P4AU_STEAM.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "P4AU_STEAM_DEF.h"
4 |
5 | class CGame_P4AU_STEAM : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Persona 4 Arena Ultimax (Steam)",
11 | P4AU_STEAM,
12 | IMGDAT_SECTION_ARCSYS,
13 | P4AU_S_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_BGRA8888_LE,
18 | PersonaCharacterData_Steam,
19 | PaletteArrangementStyle::OneButtonLabelEntryPerEachNode,
20 | };
21 | public:
22 | CGame_P4AU_STEAM(uint32_t nConfirmedROMSize) { m_fGameUsesAlphaValue = true; InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_P4AU_STEAM() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, PersonaCharacterData_Steam); };
26 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(PersonaCharacterData_Steam); };
27 | };
28 |
--------------------------------------------------------------------------------
/palmod/Game/Game_PrimalRage_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "PrimalRage_SNES_DEF.h"
4 |
5 | class CGame_PrimalRage_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Primal Rage (USA).sfc", 0x300000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Primal Rage (SNES)",
19 | PrimalRage_SNES,
20 | IMGDAT_SECTION_SNES,
21 | PrimalRage_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_PRIMALRAGE,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | PrimalRage_SNES_UNITS,
30 | ARRAYSIZE(PrimalRage_SNES_UNITS),
31 | L"PrimalRageE.txt", // Extra filename
32 | 31, // Count of palettes listed in the header
33 | 0x19071, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_PrimalRage_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_RODSM2_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "RODSM2_A_DEF.h"
4 |
5 | class CGame_RODSM2_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"smbe.05b", 0x80000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Ring of Destruction: Slam Masters 2 (CPS2)", L"smbe.05b", 0x0, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Ring of Destruction: Slam Masters 2 (CPS2)",
24 | RODSM2_A,
25 | IMGDAT_SECTION_CPS2,
26 | RODSM2_A_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_BUTTONLABEL_2,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_RGB444_BE,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | RODSM2_A_UNITS,
35 | ARRAYSIZE(RODSM2_A_UNITS),
36 | L"SlamMasters2E.txt", // Extra filename
37 | 202, // Count of palettes listed in the header
38 | 0x7ce08, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_RODSM2_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_RanmaCRH_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "RANMACRH_SNES_DEF.h"
4 |
5 | class CGame_RANMACRH_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Ranma Nibunnoichi - Chougi Ranbu Hen (J).sfc", 0x280000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Ranma Nibunnoichi: Chougi Ranbu Hen (SNES)",
19 | RANMACRH_SNES,
20 | IMGDAT_SECTION_SNES,
21 | RANMACRH_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_4P,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | RANMACRH_SNES_UNITS,
30 | ARRAYSIZE(RANMACRH_SNES_UNITS),
31 | L"RanmaCRHE.txt", // Extra filename
32 | 52, // Count of palettes listed in the header
33 | 0x62be2, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_RANMACRH_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_RanmaHB_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "RANMAHB_SNES_DEF.h"
4 |
5 | class CGame_RANMAHB_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"ranma 1-2 - hard battle (usa).sfc", 0x180000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Ranma Nibunnoichi: Hard Battle (SNES)",
19 | RANMAHB_SNES,
20 | IMGDAT_SECTION_SNES,
21 | RANMAHB_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | RANMAHB_SNES_UNITS,
30 | ARRAYSIZE(RANMAHB_SNES_UNITS),
31 | L"RanmaHBE.txt", // Extra filename
32 | 24, // Count of palettes listed in the header
33 | 0x181e1, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_RANMAHB_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_SAMSHO3_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "SAMSHO3_A_DEF.h"
4 |
5 | class CGame_SAMSHO3_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"087-p5.p5", 0x100000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Samurai Shodown III (Neo-Geo)",
19 | SAMSHO3_A,
20 | IMGDAT_SECTION_SAMSHO,
21 | SAMSHO3_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_SAMSHO3,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB666_NEOGEO,
27 | m_sFileLoadingData,
28 | {},
29 | SAMSHO3_A_UNITS,
30 | ARRAYSIZE(SAMSHO3_A_UNITS),
31 | L"SAMSHO3E.txt", // Extra filename
32 | 942, // Count of palettes listed in the header
33 | 0x0, // Lowest known location used for palettes
34 | };
35 |
36 | static void DumpPaletteHeaders();
37 |
38 | public:
39 | CGame_SAMSHO3_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
40 |
41 | BOOL UpdatePalImg(int Node01, int Node02, int Node03, int Node04);
42 |
43 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
44 | };
45 |
--------------------------------------------------------------------------------
/palmod/Game/Game_SFIII1_A_DIR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Game_SFIII1_A.h"
3 |
4 | class CGame_SFIII1_A_DIR :
5 | public CGame_SFIII1_A
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"sfiii-simm5.0", 0x200000 },
12 | { L"sfiii-simm5.1", 0x200000 },
13 | },
14 | FileReadType::Interleaved_2FileSets,
15 | };
16 |
17 | const sCoreGameData m_sCoreGameData
18 | {
19 | L"SFIII:New Generation (Arcade Rerip)",
20 | SFIII1_A_DIR,
21 | IMGDAT_SECTION_SF3,
22 | SFIII1_A_IMGIDS_USED,
23 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
24 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
25 | DEF_BUTTONLABEL6,
26 | AlphaMode::GameUsesFixedAlpha,
27 | ColMode::COLMODE_RGB555_LE,
28 | m_sFileLoadingData,
29 | {},
30 | SFIII1_A_50_UNITS,
31 | ARRAYSIZE(SFIII1_A_50_UNITS),
32 | L"SFIII1e.txt", // Extra filename
33 | 631, // Count of palettes listed in the header
34 | 0x3b0000, // Lowest known location used for palettes
35 | };
36 |
37 | public:
38 | CGame_SFIII1_A_DIR(uint32_t nConfirmedROMSize) : CGame_SFIII1_A(nConfirmedROMSize, false) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
39 |
40 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
41 | static sFileRule GetNextRule() { return CGameClassByDir::GetNextRule(m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_SFIII3_D.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "gameclass.h"
3 |
4 | class CGame_SFIII3_D : public CGameClass
5 | {
6 | private:
7 | //Used for GetPalOffset
8 | int m_nCurrentPaletteROMLocation = 0;
9 | int m_nCurrPalSz = 0;
10 |
11 | void GetPalOffsSz(uint32_t nUnitId, uint32_t nPalId);
12 |
13 | static void InitializeStatics();
14 |
15 | public:
16 | CGame_SFIII3_D();
17 | ~CGame_SFIII3_D();
18 |
19 | //Static functions / variables
20 | static CDescTree m_MainDescTree;
21 |
22 | // static CDescTree * GetMainTree();
23 | static sDescTreeNode* InitDescTree();
24 | //static void SetExtraDesc(sDescTreeNode * srcNode, int nButtonIndex);
25 |
26 | static uint32_t m_uRuleCtr;
27 | static sFileRule GetNextRule();
28 | static sFileRule GetRule(uint32_t nUnitId);
29 |
30 | static uint32_t GetRuleCtr() { return m_uRuleCtr; };
31 | static void ResetRuleCtr() { m_uRuleCtr = 0; };
32 |
33 | //Extra palette function
34 | static uint32_t GetBasicAmt(uint32_t nUnitId);
35 |
36 | //Normal functions
37 | CDescTree* GetMainTree();
38 |
39 | uint32_t GetPaletteCountForUnit(uint32_t nUnitId) override;
40 |
41 | void CreateDefPal(sDescNode* srcNode, uint32_t nSepId) override;
42 | BOOL LoadFile(CFile* LoadedFile, uint32_t nUnitId = 0) override;
43 | BOOL SaveFile(CFile* SaveFile, uint32_t nUnitId = 0) override;
44 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
45 |
46 | COLORREF* CreatePal(uint32_t nUnitId, uint32_t nPalId) override;
47 | };
48 |
--------------------------------------------------------------------------------
/palmod/Game/Game_SHAQFU_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "SHAQFU_SNES_DEF.h"
4 |
5 | class CGame_SHAQFU_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Shaq Fu (USA).sfc", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Shaq Fu (SNES)",
19 | SHAQFU_SNES,
20 | IMGDAT_SECTION_SNES,
21 | SHAQFU_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | SHAQFU_SNES_UNITS,
30 | ARRAYSIZE(SHAQFU_SNES_UNITS),
31 | L"ShaqFu_SNES_E.txt", // Extra filename
32 | 34, // Count of palettes listed in the header
33 | 0x13ffac, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_SHAQFU_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_SVG_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "SVG_SNES_DEF.h"
4 |
5 | class CGame_SVG_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Super Variable Geo (J).sfc", 0x300000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Super Variable Geo (SNES)",
19 | SVG_SNES,
20 | IMGDAT_SECTION_SNES,
21 | SVG_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | SVG_SNES_UNITS,
30 | ARRAYSIZE(SVG_SNES_UNITS),
31 | L"SVGE.txt", // Extra filename
32 | 45, // Count of palettes listed in the header
33 | 0xb870, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_SVG_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_SavageReign_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "SAVAGEREIGN_A_DEF.h"
4 |
5 | class CGame_SAVAGEREIGN_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"059-p1.p1", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Savage Reign (Neo-Geo)", L"059-p1.p1", 0x01d4e9c0, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Savage Reign (Neo-Geo)",
24 | SAVAGEREIGN_A,
25 | IMGDAT_SECTION_NEOGEO,
26 | SAVAGEREIGN_A_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_BUTTONLABEL_2_AB,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_RGB666_NEOGEO,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | SAVAGEREIGN_A_UNITS,
35 | ARRAYSIZE(SAVAGEREIGN_A_UNITS),
36 | L"SavageReignE.txt", // Extra filename
37 | 308, // Count of palettes listed in the header
38 | 0xa3000, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_SAVAGEREIGN_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_TMNTTF_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "TMNTTF_SNES_DEF.h"
4 |
5 | class CGame_TMNTTF_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"sns-ky-0.u1", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"TMNT: Tournament Fighters (SNES)",
19 | TMNTTF_SNES,
20 | IMGDAT_SECTION_SNES,
21 | TMNTTF_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | TMNTTF_SNES_UNITS,
30 | ARRAYSIZE(TMNTTF_SNES_UNITS),
31 | L"TMNTTFE.txt", // Extra filename
32 | 211, // Count of palettes listed in the header
33 | 0x8000, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_TMNTTF_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | BOOL UpdatePalImg(int Node01 = -1, int Node02 = -1, int Node03 = -1, int Node04 = -1);
40 |
41 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
42 | };
43 |
--------------------------------------------------------------------------------
/palmod/Game/Game_TattooAsns_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "TattooAsns_A_DEF.h"
4 |
5 | class CGame_TattooAsns_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"pp44.cpu", 0x80000 },
12 | { L"pp45.cpu", 0x80000 },
13 | },
14 | FileReadType::Interleaved_Read2Bytes_LE,
15 | };
16 |
17 | const sCoreGameData m_sCoreGameData
18 | {
19 | L"Tattoo Assassins (DECO32)",
20 | TattooAsns_A,
21 | IMGDAT_SECTION_OTHER,
22 | TattooAsns_A_IMGIDS_USED,
23 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
24 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
25 | DEF_BUTTONLABEL7_TattooAsns,
26 | AlphaMode::GameDoesNotUseAlpha,
27 | ColMode::COLMODE_BGR888,
28 | m_sFileLoadingData,
29 | {},
30 | TattooAsns_A_UNITS,
31 | ARRAYSIZE(TattooAsns_A_UNITS),
32 | L"TattooAsns_A_E.txt", // Extra filename
33 | 71, // Count of palettes listed in the header
34 | 0x2b81c, // Lowest known location used for palettes
35 | };
36 |
37 |
38 | public:
39 | CGame_TattooAsns_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
40 |
41 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
42 | static sFileRule GetNextRule() { return CGameClassByDir::GetNextRule(m_sFileLoadingData); };
43 | };
44 |
--------------------------------------------------------------------------------
/palmod/Game/Game_TopF2005_Sega.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "TOPF2005_SEGA_DEF.h"
4 |
5 | class CGame_TOPF2005_SEGA : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"top fighter 2005 (unl).bin", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const std::vector m_rgCRC32Data =
17 | {
18 | { L"Top Fighter 2005 (Mega Drive)", L"top fighter 2005 (unl).bin", 0x174DEFE6, 0 },
19 | };
20 |
21 | const sCoreGameData m_sCoreGameData
22 | {
23 | L"Top Fighter 2005 (Mega Drive)",
24 | TOPF2005_SEGA,
25 | IMGDAT_SECTION_SEGA,
26 | TOPF2005_SEGA_IMGIDS_USED,
27 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
28 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
29 | DEF_BUTTONLABEL_NEOGEO,
30 | AlphaMode::GameDoesNotUseAlpha,
31 | ColMode::COLMODE_RGB333,
32 | m_sFileLoadingData,
33 | m_rgCRC32Data,
34 | TOPF2005_UNITS,
35 | ARRAYSIZE(TOPF2005_UNITS),
36 | L"TOPF2005e.txt", // Extra filename
37 | 32, // Count of palettes listed in the header
38 | 0x24798, // Lowest known location used for palettes
39 | };
40 |
41 | public:
42 | CGame_TOPF2005_SEGA(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
43 |
44 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
45 | };
46 |
--------------------------------------------------------------------------------
/palmod/Game/Game_UMK3_DS.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "UMK3_DS_DEF.h"
4 |
5 | class CGame_UMK3_DS : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Ultimate Mortal Kombat (USA) (En,Fr,De,Es,It).nds", 0x4000000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Ultimate Mortal Kombat 3 (USA DS)",
19 | UMK3_DS,
20 | IMGDAT_SECTION_DS,
21 | UMK3_DS_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB555_BE,
27 | m_sFileLoadingData,
28 | {},
29 | UMK3_DS_UNITS,
30 | ARRAYSIZE(UMK3_DS_UNITS),
31 | L"UMK3_DS_E.txt", // Extra filename
32 | 45, // Count of palettes listed in the header
33 | 0x1b26a0, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_UMK3_DS(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_UMK3_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "UMK3_SNES_DEF.h"
4 |
5 | class CGame_UMK3_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"Ultimate Mortal Kombat 3 (USA).sfc", 0x400000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Ultimate Mortal Kombat 3 (USA SNES)",
19 | UMK3_SNES,
20 | IMGDAT_SECTION_SNES,
21 | UMK3_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | UMK3_SNES_UNITS,
30 | ARRAYSIZE(UMK3_SNES_UNITS),
31 | L"UMK3_SNES_E.txt", // Extra filename
32 | 70, // Count of palettes listed in the header
33 | 0x7155, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_UMK3_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_UNICLR_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByUnitPerFile.h"
3 | #include "UNICLR_S_DEF.h"
4 |
5 | class CGame_UNICLR_A : public CGameClassPerUnitPerFile
6 | {
7 | private:
8 | const sGCPUPF_CoreGameData m_sCoreGameData
9 | {
10 | L"Under Night In-Birth Exe:Late[cl-r] (Steam)",
11 | UNICLR_A,
12 | IMGDAT_SECTION_FRENCHBREAD,
13 | UNICLR_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_MAX },
15 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
16 | AlphaMode::GameUsesFixedAlpha,
17 | ColMode::COLMODE_RGBA8888_LE,
18 | UNICLRCharacterData,
19 | };
20 |
21 | public:
22 | CGame_UNICLR_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
23 | ~CGame_UNICLR_A() { ClearDataBuffer(); FlushChangeTrackingArray(); };
24 |
25 | int PostSetPal(uint32_t nUnitId, uint32_t nPalId) override;
26 |
27 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassPerUnitPerFile::GetRule(nRuleId, UNICLRCharacterData); };
28 | static sFileRule GetNextRule() { return CGameClassPerUnitPerFile::GetNextRule(UNICLRCharacterData); };
29 | };
30 |
--------------------------------------------------------------------------------
/palmod/Game/Game_Venture_A.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_VENTURE_A.h"
3 |
4 | CGame_VENTURE_A::VentureLoadingKey CGame_VENTURE_A::m_eVersionToLoad = VentureLoadingKey::ROM50;
5 |
6 | void CGame_VENTURE_A::SetSpecialRuleForFileName(std::wstring strFileName)
7 | {
8 | const std::map m_rgFileNameToVersion =
9 | {
10 | // these should be all lower case
11 | { L"31", VentureLoadingKey::ROM31 },
12 | { L"50", VentureLoadingKey::ROM50 },
13 | };
14 |
15 | CString strFileNameLowerCase = strFileName.c_str();
16 | strFileNameLowerCase.MakeLower();
17 |
18 | auto result = m_rgFileNameToVersion.find(strFileNameLowerCase.GetString());
19 |
20 | if (result != m_rgFileNameToVersion.end())
21 | {
22 | m_eVersionToLoad = result->second;
23 | }
24 | else
25 | {
26 | m_eVersionToLoad = VentureLoadingKey::ROM50;
27 | }
28 |
29 | return;
30 | }
31 |
32 | CGame_VENTURE_A::CGame_VENTURE_A(uint32_t nConfirmedROMSize)
33 | {
34 | InitializeGame(nConfirmedROMSize, (m_eVersionToLoad == VentureLoadingKey::ROM31) ? m_sCoreGameData_31 : m_sCoreGameData_50);
35 | }
36 |
37 | sFileRule CGame_VENTURE_A::GetRule(uint32_t nRuleId)
38 | {
39 | return CGameClassByDir::GetRule(nRuleId, (m_eVersionToLoad == VentureLoadingKey::ROM31) ? m_sFileLoadingData_31 : m_sFileLoadingData_50);
40 | }
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_WakuWaku7_A.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 | #include "Game_WakuWaku7_A.h"
3 |
4 | BOOL CGame_WakuWaku7_A::UpdatePalImg(int Node01, int Node02, int Node03, int Node04)
5 | {
6 | ClearSrcPal();
7 |
8 | if (Node01 == -1)
9 | {
10 | return FALSE;
11 | }
12 |
13 | sDescNode* NodeGet = GetMainTree()->GetDescNode(Node01, Node02, Node03, Node04);
14 |
15 | if (NodeGet == nullptr)
16 | {
17 | return FALSE;
18 | }
19 |
20 | // Waku uses a custom UpdatePalImg because the paired palette count varies between 4 and 5
21 | switch (GetCollectionCountForUnit(NodeGet->uUnitId))
22 | {
23 | case 5: // A/B/C/D/Bonus
24 | m_pButtonLabelSet = DEF_BUTTONLABEL_NEOGEO;
25 | break;
26 | case 6: // A/B/C/D/Dark/Bonus
27 | default:
28 | m_pButtonLabelSet = DEF_BUTTONLABEL_WAKUWAKU7_FIVE;
29 | break;
30 | }
31 |
32 | return CGameClassByDir::UpdatePalImg(Node01, Node02, Node03, Node04);
33 | }
34 |
--------------------------------------------------------------------------------
/palmod/Game/Game_Windjammers_A.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "Windjammers_A_DEF.h"
4 |
5 | class CGame_Windjammers_A : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"066-p1.p1", 0x100000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"Windjammers (Neo-Geo)",
19 | WINDJAMMERS_A,
20 | IMGDAT_SECTION_WINDJAMMERS,
21 | WINDJAMMERS_A_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_BUTTONLABEL_2,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_RGB666_NEOGEO,
27 | m_sFileLoadingData,
28 | {},
29 | Windjammers_A_UNITS,
30 | ARRAYSIZE(Windjammers_A_UNITS),
31 | L"WindjammersE.txt", // Extra filename
32 | 35, // Count of palettes listed in the header
33 | 0x30080, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_Windjammers_A(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_XMMA_SNES.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByDir.h"
3 | #include "XMMA_SNES_DEF.h"
4 |
5 | class CGame_XMMA_SNES : public CGameClassByDir
6 | {
7 | private:
8 | static inline const sDirectoryLoadingData m_sFileLoadingData =
9 | {
10 | {
11 | { L"X-Men - Mutant Apocalypse (USA).sfc", 0x200000 },
12 | },
13 | FileReadType::Sequential,
14 | };
15 |
16 | const sCoreGameData m_sCoreGameData
17 | {
18 | L"X-Men: Mutant Apocalypse (SNES)",
19 | XMMA_SNES,
20 | IMGDAT_SECTION_SNES,
21 | XMMA_SNES_IMGIDS_USED,
22 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
23 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
24 | DEF_NOBUTTONS,
25 | AlphaMode::GameDoesNotUseAlpha,
26 | ColMode::COLMODE_BGR555_LE,
27 | m_sFileLoadingData,
28 | {},
29 | XMMA_SNES_UNITS,
30 | ARRAYSIZE(XMMA_SNES_UNITS),
31 | L"XMMAE.txt", // Extra filename
32 | 65, // Count of palettes listed in the header
33 | 0xa860, // Lowest known location used for palettes
34 | };
35 |
36 | public:
37 | CGame_XMMA_SNES(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
38 |
39 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByDir::GetRule(nRuleId, m_sFileLoadingData); };
40 | };
41 |
--------------------------------------------------------------------------------
/palmod/Game/Game_XMVSF_P.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "GameClassByFile.h"
3 | #include "XMVSF_P_DEF.h"
4 |
5 | class CGame_XMVSF_P : public CGameClassByFile
6 | {
7 | private:
8 | const sGCBF_CoreGameData m_sCoreGameData
9 | {
10 | L"XMvSF (PSX)",
11 | XMVSF_P,
12 | IMGDAT_SECTION_CPS2,
13 | XMVSF_A_IMGIDS_USED,
14 | { NO_SPECIAL_OPTIONS, PALWriteOutputOptions::WRITE_16 },
15 | DEF_BUTTONLABEL_4_VS_HOME,
16 | eImageOutputSpriteDisplay::DISPLAY_SPRITES_LEFTTORIGHT,
17 | AlphaMode::GameDoesNotUseAlpha,
18 | ColMode::COLMODE_BGR555_LE,
19 | XMVSF_P_UNITS,
20 | };
21 |
22 | public:
23 | CGame_XMVSF_P(uint32_t nConfirmedROMSize) { InitializeGame(nConfirmedROMSize, m_sCoreGameData); };
24 | ~CGame_XMVSF_P() { ClearDataBuffer(); FlushChangeTrackingArray(); };
25 |
26 | static sFileRule GetRule(uint32_t nRuleId) { return CGameClassByFile::GetRule(nRuleId, XMVSF_P_UNITS); };
27 | static sFileRule GetNextRule() { return CGameClassByFile::GetNextRule(XMVSF_P_UNITS); };
28 | };
29 |
--------------------------------------------------------------------------------
/palmod/Game/ImgTicket.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | struct sImgTicket
4 | {
5 | int32_t nUnitId = 0;
6 | int32_t nImgId = 0;
7 |
8 | int nXOffs = 0;
9 | int nYOffs = 0;
10 |
11 | BlendMode nBlendMode = BlendMode::Alpha;
12 |
13 | sImgTicket* NextTicket = nullptr;
14 | };
15 |
--------------------------------------------------------------------------------
/palmod/Game/KOF02PS2_A_DEF.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/palmod/Game/KOF02PS2_A_DEF.h
--------------------------------------------------------------------------------
/palmod/Game/KOF02UM_S_DEF.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/palmod/Game/KOF02UM_S_DEF.h
--------------------------------------------------------------------------------
/palmod/Game/KOF02UM_S_DIR_DEF.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/palmod/Game/KOF02UM_S_DIR_DEF.h
--------------------------------------------------------------------------------
/palmod/Game/NEOGEO_A_DEF.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | const sGame_PaletteDataset NEOGEO_A_STUB_PALETTE[] =
4 | {
5 | { L"Test Only - Don't Edit", 0x0, 0x20 },
6 | };
7 |
8 | const sDescTreeNode NEOGEO_A_STUB_COLLECTION[] =
9 | {
10 | { L"Stub Palette Set", DESC_NODETYPE_TREE, (void*)NEOGEO_A_STUB_PALETTE, ARRAYSIZE(NEOGEO_A_STUB_PALETTE) },
11 | };
12 |
13 | const sDescTreeNode NEOGEO_A_UNITS[] =
14 | {
15 | { L"Stub Unit", DESC_NODETYPE_TREE, (void*)NEOGEO_A_STUB_COLLECTION, ARRAYSIZE(NEOGEO_A_STUB_COLLECTION) },
16 | };
17 |
18 | // We want the user to use the extras file, so don't preload.
19 | constexpr auto NEOGEO_A_NUMUNIT = 0;
20 |
21 | const stExtraDef UNKNOWN_GAME_EXTRAS_LIST[] =
22 | {
23 | // Start
24 | { UNIT_START_VALUE },
25 |
26 | { 0, L"Configure your Extras file.", 0, 0x20 },
27 |
28 | { INVALID_UNIT_VALUE }
29 | };
30 |
--------------------------------------------------------------------------------
/palmod/Game/ROTD_A_DEF.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Preppy/PalMod/e2b68605c7b4c1eef62311be176d2ddda8c58402/palmod/Game/ROTD_A_DEF.h
--------------------------------------------------------------------------------
/palmod/Game/ShellSort.h:
--------------------------------------------------------------------------------
1 | //#pragma once
2 |
3 | void ShellSort(double * fpSrc, double * fpExtra1, double * fpExtra2, int * pPalette, UINT16 * pTable, int max);
4 | void ccRGBtoXYZ(double r, double g, double b, double* x, double* y, double* z);
5 |
--------------------------------------------------------------------------------
/palmod/Game/mvc2_validate.h:
--------------------------------------------------------------------------------
1 |
2 | void dump_palettes(UINT16 char_id, UINT16 source_palette, UINT16 compare_char, UINT16 destination_palette);
3 | void DumpAllPalettes();
4 | bool IsPaletteOutOfSync(UINT16 char_id, UINT16 source_palette, UINT16 compare_char, UINT16 destination_palette);
5 | void ValidateAllPalettes(BOOL& fChangesWereMade, std::vector& rgPaletteChangeArray);
6 | void FixAllProblemPalettes(std::vector& rgPaletteChangeArray);
7 |
--------------------------------------------------------------------------------
/palmod/ImgDat.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define MAX_GAMES 4
4 | #define MAX_IMAGE 16
5 |
6 | #include