Initial commit that can build a static library from recompiled functions

This commit is contained in:
Mr-Wiseguy 2023-02-19 03:28:39 -05:00
commit 7847975e57
9 changed files with 1309 additions and 0 deletions

52
.gitignore vendored Normal file
View File

@ -0,0 +1,52 @@
# VSCode file settings
.vscode/settings.json
# Input elf and rom files
*.elf
*.z64
# Output C files
RecompiledFuncs/
# Linux build output
build/
*.o
# Windows build output
*.exe
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Libraries (binaries that aren't in the repo)
Lib
# RT64 (since it's not public yet)
RT64
# Runtime files
imgui.ini
rt64.log

41
MMRecomp.sln Normal file
View File

@ -0,0 +1,41 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MMRecomp", "MMRecomp.vcxproj", "{14B47028-6A86-4660-A86D-2E69F229E110}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RecompiledFuncs", "RecompiledFuncs.vcxproj", "{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{14B47028-6A86-4660-A86D-2E69F229E110}.Debug|x64.ActiveCfg = Debug|x64
{14B47028-6A86-4660-A86D-2E69F229E110}.Debug|x64.Build.0 = Debug|x64
{14B47028-6A86-4660-A86D-2E69F229E110}.Debug|x86.ActiveCfg = Debug|Win32
{14B47028-6A86-4660-A86D-2E69F229E110}.Debug|x86.Build.0 = Debug|Win32
{14B47028-6A86-4660-A86D-2E69F229E110}.Release|x64.ActiveCfg = Release|x64
{14B47028-6A86-4660-A86D-2E69F229E110}.Release|x64.Build.0 = Release|x64
{14B47028-6A86-4660-A86D-2E69F229E110}.Release|x86.ActiveCfg = Release|Win32
{14B47028-6A86-4660-A86D-2E69F229E110}.Release|x86.Build.0 = Release|Win32
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Debug|x64.ActiveCfg = Debug|x64
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Debug|x64.Build.0 = Debug|x64
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Debug|x86.ActiveCfg = Debug|Win32
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Debug|x86.Build.0 = Debug|Win32
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Release|x64.ActiveCfg = Release|x64
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Release|x64.Build.0 = Release|x64
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Release|x86.ActiveCfg = Release|Win32
{7BF5E3F9-C49F-4C84-AB64-7681F028CAC2}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {39A9C7D9-F465-4453-BEEE-2DDC43DA95F4}
EndGlobalSection
EndGlobal

150
MMRecomp.vcxproj Normal file
View File

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{14b47028-6a86-4660-a86d-2e69f229e110}</ProjectGuid>
<RootNamespace>MMRecomp</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared" >
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup></ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

17
MMRecomp.vcxproj.filters Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
</Project>

170
RecompiledFuncs.vcxproj Normal file
View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{7bf5e3f9-c49f-4c84-ab64-7681f028cac2}</ProjectGuid>
<RootNamespace>RecompiledFuncs</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>$(Platform)\$(Configuration)\RecompFuncs\</IntDir>
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>$(Platform)\$(Configuration)\RecompFuncs\</IntDir>
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>
</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>
</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>
</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level1</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>
</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<_WildCardClCompile Include="RecompiledFuncs\*.c" />
<ClCompile Include="@(_WildCardClCompile)" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@ -0,0 +1,4 @@
#ifdef __clang__
#pragma clang diagnostic ignored "-Wunused-variable"
#pragma clang diagnostic ignored "-Wimplicit-function-declaration"
#endif

239
include/recomp.h Normal file
View File

@ -0,0 +1,239 @@
#ifndef __RECOMP_H__
#define __RECOMP_H__
#include <stdint.h>
#include <math.h>
#include <assert.h>
#include <setjmp.h>
#include <malloc.h>
#if 0 // treat GPRs as 32-bit, should be better codegen
typedef uint32_t gpr;
#define SIGNED(val) \
((int32_t)(val))
#else
typedef uint64_t gpr;
#define SIGNED(val) \
((int64_t)(val))
#endif
#define ADD32(a, b) \
((gpr)(int32_t)((a) + (b)))
#define SUB32(a, b) \
((gpr)(int32_t)((a) - (b)))
#define MEM_W(offset, reg) \
(*(int32_t*)(rdram + ((((reg) + (offset))) - 0xFFFFFFFF80000000)))
//(*(int32_t*)(rdram + ((((reg) + (offset))) & 0x3FFFFFF)))
#define MEM_H(offset, reg) \
(*(int16_t*)(rdram + ((((reg) + (offset)) ^ 2) - 0xFFFFFFFF80000000)))
//(*(int16_t*)(rdram + ((((reg) + (offset)) ^ 2) & 0x3FFFFFF)))
#define MEM_B(offset, reg) \
(*(int8_t*)(rdram + ((((reg) + (offset)) ^ 3) - 0xFFFFFFFF80000000)))
//(*(int8_t*)(rdram + ((((reg) + (offset)) ^ 3) & 0x3FFFFFF)))
#define MEM_HU(offset, reg) \
(*(uint16_t*)(rdram + ((((reg) + (offset)) ^ 2) - 0xFFFFFFFF80000000)))
//(*(uint16_t*)(rdram + ((((reg) + (offset)) ^ 2) & 0x3FFFFFF)))
#define MEM_BU(offset, reg) \
(*(uint8_t*)(rdram + ((((reg) + (offset)) ^ 3) - 0xFFFFFFFF80000000)))
//(*(uint8_t*)(rdram + ((((reg) + (offset)) ^ 3) & 0x3FFFFFF)))
#define SD(val, offset, reg) { \
*(uint32_t*)(rdram + ((((reg) + (offset) + 4)) - 0xFFFFFFFF80000000)) = (uint32_t)((val) >> 0); \
*(uint32_t*)(rdram + ((((reg) + (offset) + 0)) - 0xFFFFFFFF80000000)) = (uint32_t)((val) >> 32); \
}
//#define SD(val, offset, reg) { \
// *(uint32_t*)(rdram + ((((reg) + (offset) + 4)) & 0x3FFFFFF)) = (uint32_t)((val) >> 32); \
// *(uint32_t*)(rdram + ((((reg) + (offset) + 0)) & 0x3FFFFFF)) = (uint32_t)((val) >> 0); \
//}
static inline uint64_t load_doubleword(uint8_t* rdram, gpr reg, gpr offset) {
uint64_t ret = 0;
uint64_t lo = (uint64_t)(uint32_t)MEM_W(reg, offset + 4);
uint64_t hi = (uint64_t)(uint32_t)MEM_W(reg, offset + 0);
ret = (lo << 0) | (hi << 32);
return ret;
}
#define LD(offset, reg) \
load_doubleword(rdram, offset, reg)
// TODO proper lwl/lwr/swl/swr
static inline void do_swl(uint8_t* rdram, gpr offset, gpr reg, gpr val) {
uint8_t byte0 = (uint8_t)(val >> 24);
uint8_t byte1 = (uint8_t)(val >> 16);
uint8_t byte2 = (uint8_t)(val >> 8);
uint8_t byte3 = (uint8_t)(val >> 0);
MEM_B(offset + 0, reg) = byte0;
MEM_B(offset + 1, reg) = byte1;
MEM_B(offset + 2, reg) = byte2;
MEM_B(offset + 3, reg) = byte3;
}
static inline gpr do_lwl(uint8_t* rdram, gpr offset, gpr reg) {
uint8_t byte0 = MEM_B(offset + 0, reg);
uint8_t byte1 = MEM_B(offset + 1, reg);
uint8_t byte2 = MEM_B(offset + 2, reg);
uint8_t byte3 = MEM_B(offset + 3, reg);
// Cast to int32_t to sign extend first
return (gpr)(int32_t)((byte0 << 24) | (byte1 << 16) | (byte2 << 8) | (byte3 << 0));
}
#define S32(val) \
((int32_t)(val))
#define U32(val) \
((uint32_t)(val))
#define S64(val) \
((int64_t)(val))
#define U64(val) \
((uint64_t)(val))
#define MUL_S(val1, val2) \
((val1) * (val2))
#define MUL_D(val1, val2) \
((val1) * (val2))
#define DIV_S(val1, val2) \
((val1) / (val2))
#define DIV_D(val1, val2) \
((val1) / (val2))
#define CVT_S_W(val) \
((float)((int32_t)(val)))
#define CVT_D_W(val) \
((double)((int32_t)(val)))
#define CVT_D_S(val) \
((double)(val))
#define CVT_S_D(val) \
((float)(val))
#define TRUNC_W_S(val) \
((int32_t)(val))
#define TRUNC_W_D(val) \
((int32_t)(val))
#define TRUNC_L_S(val) \
((int64_t)(val))
#define TRUNC_L_D(val) \
((int64_t)(val))
// TODO rounding mode
#define CVT_W_S(val) \
((int32_t)(val))
#define CVT_W_D(val) \
((int32_t)(val))
#define NAN_CHECK(val) \
assert(val == val)
//#define NAN_CHECK(val)
typedef union {
double d;
struct {
float fl;
float fh;
};
struct {
uint32_t u32l;
uint32_t u32h;
};
uint64_t u64;
} fpr;
typedef struct {
gpr r0, r1, r2, r3, r4, r5, r6, r7,
r8, r9, r10, r11, r12, r13, r14, r15,
r16, r17, r18, r19, r20, r21, r22, r23,
r24, r25, r26, r27, r28, r29, r30, r31;
fpr f0, f2, f4, f6, f8, f10, f12, f14,
f16, f18, f20, f22, f24, f26, f28, f30;
uint64_t hi, lo;
} recomp_context;
#ifdef __cplusplus
extern "C" {
#endif
void switch_error(const char* func, uint32_t vram, uint32_t jtbl);
void do_break(uint32_t vram);
typedef void (recomp_func_t)(uint8_t* rdram, recomp_context* ctx);
recomp_func_t* get_function(int32_t vram);
#define LOOKUP_FUNC(val) \
get_function((int32_t)(val))
extern int32_t section_addresses[];
#define LO16(x) \
((x) & 0xFFFF)
#define HI16(x) \
(((x) >> 16) + (((x) >> 15) & 1))
#define RELOC_HI16(section_index, offset) \
HI16(section_addresses[section_index] + (offset))
#define RELOC_LO16(section_index, offset) \
LO16(section_addresses[section_index] + (offset))
// For the Mario Party games (not working)
//// This has to be in this file so it can be inlined
//struct jmp_buf_storage {
// jmp_buf buffer;
//};
//
//struct RecompJmpBuf {
// int32_t owner;
// struct jmp_buf_storage* storage;
// uint64_t magic;
//};
//
//// Randomly generated constant
//#define SETJMP_MAGIC 0xe17afdfa939a437bu
//
//int32_t osGetThreadEx(void);
//
//#define setjmp_recomp(rdram, ctx) { \
// struct RecompJmpBuf* buf = (struct RecompJmpBuf*)(&rdram[(uint64_t)ctx->r4 - 0xFFFFFFFF80000000]); \
// \
// /* Check if this jump buffer was previously set up */ \
// if (buf->magic == SETJMP_MAGIC) { \
// /* If so, free the old jmp_buf */ \
// free(buf->storage); \
// } \
// \
// buf->magic = SETJMP_MAGIC; \
// buf->owner = osGetThreadEx(); \
// buf->storage = (struct jmp_buf_storage*)calloc(1, sizeof(struct jmp_buf_storage)); \
// ctx->r2 = setjmp(buf->storage->buffer); \
//}
#ifdef __cplusplus
}
#endif
#endif

617
rev1_overlays.txt Normal file
View File

@ -0,0 +1,617 @@
..ovl_title
..ovl_select
..ovl_opening
..ovl_file_choose
..ovl_daytelop
..ovl_kaleido_scope
..ovl_player_actor
..ovl_En_Test
..ovl_En_GirlA
..ovl_En_Part
..ovl_En_Light
..ovl_En_Door
..ovl_En_Box
..ovl_En_Pametfrog
..ovl_En_Okuta
..ovl_En_Bom
..ovl_En_Wallmas
..ovl_En_Dodongo
..ovl_En_Firefly
..ovl_En_Horse
..ovl_En_Arrow
..ovl_En_Elf
..ovl_En_Niw
..ovl_En_Tite
..ovl_En_Peehat
..ovl_En_Holl
..ovl_En_Dinofos
..ovl_En_Hata
..ovl_En_Zl1
..ovl_En_Viewer
..ovl_En_Bubble
..ovl_Door_Shutter
..ovl_En_Boom
..ovl_En_Torch2
..ovl_En_Minifrog
..ovl_En_St
..ovl_Obj_Wturn
..ovl_En_River_Sound
..ovl_En_Ossan
..ovl_En_Famos
..ovl_En_Bombf
..ovl_En_Am
..ovl_En_Dekubaba
..ovl_En_M_Fire1
..ovl_En_M_Thunder
..ovl_Bg_Breakwall
..ovl_Door_Warp1
..ovl_Obj_Syokudai
..ovl_Item_B_Heart
..ovl_En_Dekunuts
..ovl_En_Bbfall
..ovl_Arms_Hook
..ovl_En_Bb
..ovl_Bg_Keikoku_Spr
..ovl_En_Wood02
..ovl_En_Death
..ovl_En_Minideath
..ovl_En_Vm
..ovl_Demo_Effect
..ovl_Demo_Kankyo
..ovl_En_Floormas
..ovl_En_Rd
..ovl_Bg_F40_Flift
..ovl_Obj_Mure
..ovl_En_Sw
..ovl_Object_Kankyo
..ovl_En_Horse_Link_Child
..ovl_Door_Ana
..ovl_En_Encount1
..ovl_Demo_Tre_Lgt
..ovl_En_Encount2
..ovl_En_Fire_Rock
..ovl_Bg_Ctower_Rot
..ovl_Mir_Ray
..ovl_En_Sb
..ovl_En_Bigslime
..ovl_En_Karebaba
..ovl_En_In
..ovl_En_Bom_Chu
..ovl_En_Horse_Game_Check
..ovl_En_Rr
..ovl_En_Fr
..ovl_En_Fishing
..ovl_Obj_Oshihiki
..ovl_Eff_Dust
..ovl_Bg_Umajump
..ovl_En_Insect
..ovl_En_Butte
..ovl_En_Fish
..ovl_Item_Etcetera
..ovl_Arrow_Fire
..ovl_Arrow_Ice
..ovl_Arrow_Light
..ovl_Obj_Kibako
..ovl_Obj_Tsubo
..ovl_En_Ik
..ovl_Demo_Shd
..ovl_En_Dns
..ovl_Elf_Msg
..ovl_En_Honotrap
..ovl_En_Tubo_Trap
..ovl_Obj_Ice_Poly
..ovl_En_Fz
..ovl_En_Kusa
..ovl_Obj_Bean
..ovl_Obj_Bombiwa
..ovl_Obj_Switch
..ovl_Obj_Lift
..ovl_Obj_Hsblock
..ovl_En_Okarina_Tag
..ovl_En_Goroiwa
..ovl_En_Daiku
..ovl_En_Nwc
..ovl_Item_Inbox
..ovl_En_Ge1
..ovl_Obj_Blockstop
..ovl_En_Sda
..ovl_En_Clear_Tag
..ovl_En_Gm
..ovl_En_Ms
..ovl_En_Hs
..ovl_Bg_Ingate
..ovl_En_Kanban
..ovl_En_Attack_Niw
..ovl_En_Mk
..ovl_En_Owl
..ovl_En_Ishi
..ovl_Obj_Hana
..ovl_Obj_Lightswitch
..ovl_Obj_Mure2
..ovl_En_Fu
..ovl_En_Stream
..ovl_En_Mm
..ovl_En_Weather_Tag
..ovl_En_Ani
..ovl_En_Js
..ovl_En_Okarina_Effect
..ovl_En_Mag
..ovl_Elf_Msg2
..ovl_Bg_F40_Swlift
..ovl_En_Kakasi
..ovl_Obj_Makeoshihiki
..ovl_Oceff_Spot
..ovl_En_Torch
..ovl_Shot_Sun
..ovl_Obj_Roomtimer
..ovl_En_Ssh
..ovl_Oceff_Wipe
..ovl_Effect_Ss_Dust
..ovl_Effect_Ss_Kirakira
..ovl_Effect_Ss_Bomb2
..ovl_Effect_Ss_Blast
..ovl_Effect_Ss_G_Spk
..ovl_Effect_Ss_D_Fire
..ovl_Effect_Ss_Bubble
..ovl_Effect_Ss_G_Ripple
..ovl_Effect_Ss_G_Splash
..ovl_Effect_Ss_G_Fire
..ovl_Effect_Ss_Lightning
..ovl_Effect_Ss_Dt_Bubble
..ovl_Effect_Ss_Hahen
..ovl_Effect_Ss_Stick
..ovl_Effect_Ss_Sibuki
..ovl_Effect_Ss_Stone1
..ovl_Effect_Ss_Hitmark
..ovl_Effect_Ss_Fhg_Flash
..ovl_Effect_Ss_K_Fire
..ovl_Effect_Ss_Solder_Srch_Ball
..ovl_Effect_Ss_Kakera
..ovl_Effect_Ss_Ice_Piece
..ovl_Effect_Ss_En_Ice
..ovl_Effect_Ss_Fire_Tail
..ovl_Effect_Ss_En_Fire
..ovl_Effect_Ss_Extra
..ovl_Effect_Ss_Dead_Db
..ovl_Effect_Ss_Dead_Dd
..ovl_Effect_Ss_Dead_Ds
..ovl_Oceff_Storm
..ovl_Obj_Demo
..ovl_En_Minislime
..ovl_En_Nutsball
..ovl_Oceff_Wipe2
..ovl_Oceff_Wipe3
..ovl_En_Dg
..ovl_En_Si
..ovl_Obj_Comb
..ovl_Obj_Kibako2
..ovl_En_Hs2
..ovl_Obj_Mure3
..ovl_En_Tg
..ovl_En_Wf
..ovl_En_Skb
..ovl_En_Gs
..ovl_Obj_Sound
..ovl_En_Crow
..ovl_En_Cow
..ovl_Oceff_Wipe4
..ovl_En_Zo
..ovl_Effect_Ss_Ice_Smoke
..ovl_Obj_Makekinsuta
..ovl_En_Ge3
..ovl_Obj_Hamishi
..ovl_En_Zl4
..ovl_En_Mm2
..ovl_Door_Spiral
..ovl_Obj_Pzlblock
..ovl_Obj_Toge
..ovl_Obj_Armos
..ovl_Obj_Boyo
..ovl_En_Grasshopper
..ovl_Obj_Grass
..ovl_Obj_Grass_Carry
..ovl_Obj_Grass_Unit
..ovl_Bg_Fire_Wall
..ovl_En_Bu
..ovl_En_Encount3
..ovl_En_Jso
..ovl_Obj_Chikuwa
..ovl_En_Knight
..ovl_En_Warp_tag
..ovl_En_Aob_01
..ovl_En_Boj_01
..ovl_En_Boj_02
..ovl_En_Boj_03
..ovl_En_Encount4
..ovl_En_Bom_Bowl_Man
..ovl_En_Syateki_Man
..ovl_Bg_Icicle
..ovl_En_Syateki_Crow
..ovl_En_Boj_04
..ovl_En_Cne_01
..ovl_En_Bba_01
..ovl_En_Bji_01
..ovl_Bg_Spdweb
..ovl_En_Mt_tag
..ovl_Boss_01
..ovl_Boss_02
..ovl_Boss_03
..ovl_Boss_04
..ovl_Boss_05
..ovl_Boss_06
..ovl_Boss_07
..ovl_Bg_Dy_Yoseizo
..ovl_En_Boj_05
..ovl_En_Sob1
..ovl_En_Go
..ovl_En_Raf
..ovl_Obj_Funen
..ovl_Obj_Raillift
..ovl_Bg_Numa_Hana
..ovl_Obj_Flowerpot
..ovl_Obj_Spinyroll
..ovl_Dm_Hina
..ovl_En_Syateki_Wf
..ovl_Obj_Skateblock
..ovl_Effect_En_Ice_Block
..ovl_Obj_Iceblock
..ovl_En_Bigpamet
..ovl_Bg_Dblue_Movebg
..ovl_En_Syateki_Dekunuts
..ovl_Elf_Msg3
..ovl_En_Fg
..ovl_Dm_Ravine
..ovl_Dm_Sa
..ovl_En_Slime
..ovl_En_Pr
..ovl_Obj_Toudai
..ovl_Obj_Entotu
..ovl_Obj_Bell
..ovl_En_Syateki_Okuta
..ovl_Obj_Shutter
..ovl_Dm_Zl
..ovl_En_Ru
..ovl_En_Elfgrp
..ovl_Dm_Tsg
..ovl_En_Baguo
..ovl_Obj_Vspinyroll
..ovl_Obj_Smork
..ovl_En_Test2
..ovl_En_Test3
..ovl_En_Test4
..ovl_En_Bat
..ovl_En_Sekihi
..ovl_En_Wiz
..ovl_En_Wiz_Brock
..ovl_En_Wiz_Fire
..ovl_Eff_Change
..ovl_Dm_Statue
..ovl_Obj_Fireshield
..ovl_Bg_Ladder
..ovl_En_Mkk
..ovl_Demo_Getitem
..ovl_En_Dnb
..ovl_En_Dnh
..ovl_En_Dnk
..ovl_En_Dnq
..ovl_Bg_Keikoku_Saku
..ovl_Obj_Hugebombiwa
..ovl_En_Firefly2
..ovl_En_Rat
..ovl_En_Water_Effect
..ovl_En_Kusa2
..ovl_Bg_Spout_Fire
..ovl_En_Dy_Extra
..ovl_En_Bal
..ovl_En_Ginko_Man
..ovl_En_Warp_Uzu
..ovl_Obj_Driftice
..ovl_En_Look_Nuts
..ovl_En_Mushi2
..ovl_En_Fall
..ovl_En_Mm3
..ovl_Bg_Crace_Movebg
..ovl_En_Dno
..ovl_En_Pr2
..ovl_En_Prz
..ovl_En_Jso2
..ovl_Obj_Etcetera
..ovl_En_Egol
..ovl_Obj_Mine
..ovl_Obj_Purify
..ovl_En_Tru
..ovl_En_Trt
..ovl_En_Test5
..ovl_En_Test6
..ovl_En_Az
..ovl_En_Estone
..ovl_Bg_Hakugin_Post
..ovl_Dm_Opstage
..ovl_Dm_Stk
..ovl_Dm_Char00
..ovl_Dm_Char01
..ovl_Dm_Char02
..ovl_Dm_Char03
..ovl_Dm_Char04
..ovl_Dm_Char05
..ovl_Dm_Char06
..ovl_Dm_Char07
..ovl_Dm_Char08
..ovl_Dm_Char09
..ovl_Obj_Tokeidai
..ovl_En_Mnk
..ovl_En_Egblock
..ovl_En_Guard_Nuts
..ovl_Bg_Hakugin_Bombwall
..ovl_Obj_Tokei_Tobira
..ovl_Bg_Hakugin_Elvpole
..ovl_En_Ma4
..ovl_En_Twig
..ovl_En_Po_Fusen
..ovl_En_Door_Etc
..ovl_En_Bigokuta
..ovl_Bg_Icefloe
..ovl_fbdemo_triforce
..ovl_fbdemo_wipe1
..ovl_fbdemo_wipe3
..ovl_fbdemo_wipe4
..ovl_fbdemo_wipe5
..ovl_Effect_Ss_Sbn
..ovl_Obj_Ocarinalift
..ovl_En_Time_Tag
..ovl_Bg_Open_Shutter
..ovl_Bg_Open_Spot
..ovl_Bg_Fu_Kaiten
..ovl_Obj_Aqua
..ovl_En_Elforg
..ovl_En_Elfbub
..ovl_En_Fu_Mato
..ovl_En_Fu_Kago
..ovl_En_Osn
..ovl_Bg_Ctower_Gear
..ovl_En_Trt2
..ovl_Obj_Tokei_Step
..ovl_Bg_Lotus
..ovl_En_Kame
..ovl_Obj_Takaraya_Wall
..ovl_Bg_Fu_Mizu
..ovl_En_Sellnuts
..ovl_Bg_Dkjail_Ivy
..ovl_Obj_Visiblock
..ovl_En_Takaraya
..ovl_En_Tsn
..ovl_En_Ds2n
..ovl_En_Fsn
..ovl_En_Shn
..ovl_En_Stop_heishi
..ovl_Obj_Bigicicle
..ovl_En_Lift_Nuts
..ovl_En_Tk
..ovl_Bg_Market_Step
..ovl_Obj_Lupygamelift
..ovl_En_Test7
..ovl_Obj_Lightblock
..ovl_Mir_Ray2
..ovl_En_Wdhand
..ovl_En_Gamelupy
..ovl_Bg_Danpei_Movebg
..ovl_En_Snowwd
..ovl_En_Pm
..ovl_En_Gakufu
..ovl_Elf_Msg4
..ovl_Elf_Msg5
..ovl_En_Col_Man
..ovl_En_Talk_Gibud
..ovl_En_Giant
..ovl_Obj_Snowball
..ovl_Boss_Hakugin
..ovl_En_Gb2
..ovl_En_Onpuman
..ovl_Bg_Tobira01
..ovl_En_Tag_Obj
..ovl_Obj_Dhouse
..ovl_Obj_Hakaisi
..ovl_Bg_Hakugin_Switch
..ovl_En_Snowman
..ovl_TG_Sw
..ovl_En_Po_Sisters
..ovl_En_Pp
..ovl_En_Hakurock
..ovl_En_Hanabi
..ovl_Obj_Dowsing
..ovl_Obj_Wind
..ovl_En_Racedog
..ovl_En_Kendo_Js
..ovl_Bg_Botihasira
..ovl_En_Fish2
..ovl_En_Pst
..ovl_En_Poh
..ovl_Obj_Spidertent
..ovl_En_Zoraegg
..ovl_En_Kbt
..ovl_En_Gg
..ovl_En_Maruta
..ovl_Obj_Snowball2
..ovl_En_Gg2
..ovl_Obj_Ghaka
..ovl_En_Dnp
..ovl_En_Dai
..ovl_Bg_Goron_Oyu
..ovl_En_Kgy
..ovl_En_Invadepoh
..ovl_En_Gk
..ovl_En_An
..ovl_En_Bee
..ovl_En_Ot
..ovl_En_Dragon
..ovl_Obj_Dora
..ovl_En_Bigpo
..ovl_Obj_Kendo_Kanban
..ovl_Obj_Hariko
..ovl_En_Sth
..ovl_Bg_Sinkai_Kabe
..ovl_Bg_Haka_Curtain
..ovl_Bg_Kin2_Bombwall
..ovl_Bg_Kin2_Fence
..ovl_Bg_Kin2_Picture
..ovl_Bg_Kin2_Shelf
..ovl_En_Rail_Skb
..ovl_En_Jg
..ovl_En_Tru_Mt
..ovl_Obj_Um
..ovl_En_Neo_Reeba
..ovl_Bg_Mbar_Chair
..ovl_Bg_Ikana_Block
..ovl_Bg_Ikana_Mirror
..ovl_Bg_Ikana_Rotaryroom
..ovl_Bg_Dblue_Balance
..ovl_Bg_Dblue_Waterfall
..ovl_En_Kaizoku
..ovl_En_Ge2
..ovl_En_Ma_Yts
..ovl_En_Ma_Yto
..ovl_Obj_Tokei_Turret
..ovl_Bg_Dblue_Elevator
..ovl_Obj_Warpstone
..ovl_En_Zog
..ovl_Obj_Rotlift
..ovl_Obj_Jg_Gakki
..ovl_Bg_Inibs_Movebg
..ovl_En_Zot
..ovl_Obj_Tree
..ovl_Obj_Y2lift
..ovl_Obj_Y2shutter
..ovl_Obj_Boat
..ovl_Obj_Taru
..ovl_Obj_Hunsui
..ovl_En_Jc_Mato
..ovl_Mir_Ray3
..ovl_En_Zob
..ovl_Elf_Msg6
..ovl_Obj_Nozoki
..ovl_En_Toto
..ovl_En_Railgibud
..ovl_En_Baba
..ovl_En_Suttari
..ovl_En_Zod
..ovl_En_Kujiya
..ovl_En_Geg
..ovl_Obj_Kinoko
..ovl_Obj_Yasi
..ovl_En_Tanron1
..ovl_En_Tanron2
..ovl_En_Tanron3
..ovl_Obj_Chan
..ovl_En_Zos
..ovl_En_S_Goro
..ovl_En_Nb
..ovl_En_Ja
..ovl_Bg_F40_Block
..ovl_Bg_F40_Switch
..ovl_En_Po_Composer
..ovl_En_Guruguru
..ovl_Oceff_Wipe5
..ovl_En_Stone_heishi
..ovl_Oceff_Wipe6
..ovl_En_Scopenuts
..ovl_En_Scopecrow
..ovl_Oceff_Wipe7
..ovl_Eff_Kamejima_Wave
..ovl_En_Hg
..ovl_En_Hgo
..ovl_En_Zov
..ovl_En_Ah
..ovl_Obj_Hgdoor
..ovl_Bg_Ikana_Bombwall
..ovl_Bg_Ikana_Ray
..ovl_Bg_Ikana_Shutter
..ovl_Bg_Haka_Bombwall
..ovl_Bg_Haka_Tomb
..ovl_En_Sc_Ruppe
..ovl_Bg_Iknv_Doukutu
..ovl_Bg_Iknv_Obj
..ovl_En_Pamera
..ovl_Obj_HsStump
..ovl_En_Hidden_Nuts
..ovl_En_Zow
..ovl_En_Talk
..ovl_En_Al
..ovl_En_Tab
..ovl_En_Nimotsu
..ovl_En_Hit_Tag
..ovl_En_Ruppecrow
..ovl_En_Tanron4
..ovl_En_Tanron5
..ovl_En_Tanron6
..ovl_En_Daiku2
..ovl_En_Muto
..ovl_En_Baisen
..ovl_En_Heishi
..ovl_En_Demo_heishi
..ovl_En_Dt
..ovl_En_Cha
..ovl_Obj_Dinner
..ovl_Eff_Lastday
..ovl_Bg_Ikana_Dharma
..ovl_En_Akindonuts
..ovl_Eff_Stk
..ovl_En_Ig
..ovl_En_Rg
..ovl_En_Osk
..ovl_En_Sth2
..ovl_En_Yb
..ovl_En_Rz
..ovl_En_Scopecoin
..ovl_En_Bjt
..ovl_En_Bomjima
..ovl_En_Bomjimb
..ovl_En_Bombers
..ovl_En_Bombers2
..ovl_En_Bombal
..ovl_Obj_Moon_Stone
..ovl_Obj_Mu_Pict
..ovl_Bg_Ikninside
..ovl_Eff_Zoraband
..ovl_Obj_Kepn_Koya
..ovl_Obj_Usiyane
..ovl_En_Nnh
..ovl_Obj_Kzsaku
..ovl_Obj_Milk_Bin
..ovl_En_Kitan
..ovl_Bg_Astr_Bombwall
..ovl_Bg_Iknin_Susceil
..ovl_En_Bsb
..ovl_En_Recepgirl
..ovl_En_Thiefbird
..ovl_En_Jgame_Tsn
..ovl_Obj_Jgame_Light
..ovl_Obj_Yado
..ovl_Demo_Syoten
..ovl_Demo_Moonend
..ovl_Bg_Lbfshot
..ovl_Bg_Last_Bwall
..ovl_En_And
..ovl_En_Invadepoh_Demo
..ovl_Obj_Danpeilift
..ovl_En_Fall2
..ovl_Dm_Al
..ovl_Dm_An
..ovl_Dm_Ah
..ovl_Dm_Nb
..ovl_En_Drs
..ovl_En_Ending_Hero
..ovl_Dm_Bal
..ovl_En_Paper
..ovl_En_Hint_Skb
..ovl_Dm_Tag
..ovl_En_Bh
..ovl_En_Ending_Hero2
..ovl_En_Ending_Hero3
..ovl_En_Ending_Hero4
..ovl_En_Ending_Hero5
..ovl_En_Ending_Hero6
..ovl_Dm_Gm
..ovl_Obj_Swprize
..ovl_En_Invisible_Ruppe
..ovl_Obj_Ending
..ovl_En_Rsn