SVI-3x8エミュレータをつくる その1

まずはSource Code Archive (12/9/2018)をダウンロードします。

http://takeda-toshiya.my.coocan.jp/common/index.html

好きなディレクトリに展開して、以下のプロジェクトを開きます。

source\vc++2008\msx1.vcproj

追加のインクルードディレクトリとライブラリディレクトリを指定してビルドできるはずです。

C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (December 2004)\include
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (December 2004)\lib\x86

Common Source Code Projectのmsx1をコピーして編集していきます。

source\vc++2008\msx1.vcprj
source\src\res\msx1.rc
              \msx1.ico
source\src\vm\vm.h
source\src\vm\msx\joystick.cpp
                  joystick.h
                  kanjirom.cpp
                  kanjirom.h
                  keyboard.cpp
                  keyboard.h
                  memory.cpp
                  memory.h
                  memory_ex.cpp
                  memory_ex.h
                  msx.cpp
                  msx.h
                  msx_ex.cpp
                  msx_ex.h
                  printer.cpp
                  printer.h
                  psg_stereo.cpp
                  psg_stereo.h
                  romtype1.h
                  romtype2.h
                  rtcif.cpp
                  rtcif.h
                  scc.cpp
                  scc.h
                  sound_cart.cpp
                  sound_cart.h

ディレクトリ構成は以下のようになります。

source\vc++2008\svi3x8.vcprj
source\src\res\svi3x8.rc
              \svi3x8.ico
source\src\vm\vm.h
source\src\vm\svi3x8\joystick.cpp
                     joystick.h
                     keyboard.cpp
                     keyboard.h
                     memory.cpp
                     memory.h
                     memory_ex.cpp
                     memory_ex.h
                     msx_ex.cpp
                     msx_ex.h

svi3x8.vcprj

<?xml version="1.0" encoding="shift_jis"?>
<VisualStudioProject
	ProjectType="Visual C++"
	Version="9.00"
	Name="svi3x8"
	ProjectGUID="{F62D036D-7569-431B-9C55-C056A4D3145A}"
	RootNamespace="svi3x8"
	TargetFrameworkVersion="131072"
	>
	<Platforms>
		<Platform
			Name="Win32"
		/>
	</Platforms>
	<ToolFiles>
	</ToolFiles>
	<Configurations>
		<Configuration
			Name="Debug|Win32"
			OutputDirectory=".\Debug"
			IntermediateDirectory=".\Debug"
			ConfigurationType="1"
			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="false"
			CharacterSet="2"
			>
			<Tool
				Name="VCPreBuildEventTool"
			/>
			<Tool
				Name="VCCustomBuildTool"
			/>
			<Tool
				Name="VCXMLDataGeneratorTool"
			/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"
			/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="_DEBUG"
				MkTypLibCompatible="true"
				SuppressStartupBanner="true"
				TargetEnvironment="1"
				TypeLibraryName=".\Debug/svi3x8.tlb"
				HeaderFileName=""
			/>
			<Tool
				Name="VCCLCompilerTool"
				Optimization="0"
				AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (December 2004)\Include""
				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_SVI3X8"
				MinimalRebuild="true"
				BasicRuntimeChecks="3"
				RuntimeLibrary="1"
				PrecompiledHeaderFile=".\Debug/svi3x8.pch"
				AssemblerListingLocation=".\Debug/"
				ObjectFile=".\Debug/"
				ProgramDataBaseFileName=".\Debug/"
				BrowseInformation="1"
				WarningLevel="3"
				SuppressStartupBanner="true"
				DebugInformationFormat="4"
			/>
			<Tool
				Name="VCManagedResourceCompilerTool"
			/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="_DEBUG"
				Culture="1041"
			/>
			<Tool
				Name="VCPreLinkEventTool"
			/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib imm32.lib"
				OutputFile=".\Debug/svi3x8.exe"
				LinkIncremental="2"
				SuppressStartupBanner="true"
				AdditionalLibraryDirectories=""C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (December 2004)\Lib\x86""
				GenerateManifest="false"
				GenerateDebugInformation="true"
				ProgramDatabaseFile=".\Debug/svi3x8.pdb"
				SubSystem="2"
				RandomizedBaseAddress="1"
				DataExecutionPrevention="0"
				TargetMachine="1"
			/>
			<Tool
				Name="VCALinkTool"
			/>
			<Tool
				Name="VCManifestTool"
			/>
			<Tool
				Name="VCXDCMakeTool"
			/>
			<Tool
				Name="VCBscMakeTool"
				SuppressStartupBanner="true"
				OutputFile=".\Debug/svi3x8.bsc"
			/>
			<Tool
				Name="VCFxCopTool"
			/>
			<Tool
				Name="VCAppVerifierTool"
			/>
			<Tool
				Name="VCPostBuildEventTool"
			/>
		</Configuration>
		<Configuration
			Name="Release|Win32"
			OutputDirectory=".\Release"
			IntermediateDirectory=".\Release"
			ConfigurationType="1"
			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="false"
			CharacterSet="2"
			>
			<Tool
				Name="VCPreBuildEventTool"
			/>
			<Tool
				Name="VCCustomBuildTool"
			/>
			<Tool
				Name="VCXMLDataGeneratorTool"
			/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"
			/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="NDEBUG"
				MkTypLibCompatible="true"
				SuppressStartupBanner="true"
				TargetEnvironment="1"
				TypeLibraryName=".\Release/svi3x8.tlb"
				HeaderFileName=""
			/>
			<Tool
				Name="VCCLCompilerTool"
				Optimization="2"
				InlineFunctionExpansion="2"
				AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (December 2004)\Include""
				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SVI3X8"
				StringPooling="true"
				RuntimeLibrary="0"
				EnableFunctionLevelLinking="true"
				EnableEnhancedInstructionSet="2"
				PrecompiledHeaderFile=".\Release/svi3x8.pch"
				AssemblerListingLocation=".\Release/"
				ObjectFile=".\Release/"
				ProgramDataBaseFileName=".\Release/"
				BrowseInformation="1"
				WarningLevel="3"
				SuppressStartupBanner="true"
			/>
			<Tool
				Name="VCManagedResourceCompilerTool"
			/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="NDEBUG"
				Culture="1033"
			/>
			<Tool
				Name="VCPreLinkEventTool"
			/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib imm32.lib"
				OutputFile=".\Release/svi3x8.exe"
				LinkIncremental="1"
				SuppressStartupBanner="true"
				AdditionalLibraryDirectories=""C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (December 2004)\Lib\x86""
				GenerateManifest="false"
				ProgramDatabaseFile=".\Release/svi3x8.pdb"
				SubSystem="2"
				RandomizedBaseAddress="1"
				DataExecutionPrevention="0"
				TargetMachine="1"
			/>
			<Tool
				Name="VCALinkTool"
			/>
			<Tool
				Name="VCManifestTool"
			/>
			<Tool
				Name="VCXDCMakeTool"
			/>
			<Tool
				Name="VCBscMakeTool"
				SuppressStartupBanner="true"
				OutputFile=".\Release/svi3x8.bsc"
			/>
			<Tool
				Name="VCFxCopTool"
			/>
			<Tool
				Name="VCAppVerifierTool"
			/>
			<Tool
				Name="VCPostBuildEventTool"
			/>
		</Configuration>
	</Configurations>
	<References>
	</References>
	<Files>
		<Filter
			Name="Source Files"
			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
			>
			<File
				RelativePath="..\src\common.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath="..\src\config.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath="..\src\fifo.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath="..\src\fileio.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						PreprocessorDefinitions=""
					/>
				</FileConfiguration>
			</File>
			<Filter
				Name="EMU Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="..\src\debugger.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\emu.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
			<Filter
				Name="OSD Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="..\src\win32\osd.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\win32\osd_console.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\win32\osd_input.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\win32\osd_screen.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\win32\osd_sound.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\win32\winmain.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
			<Filter
				Name="VM Common Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="..\src\vm\ay_3_891x.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\datarec.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\disk.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\event.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\i8255.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\io.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\noise.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\not.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\pcm1bit.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\prnfile.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\tms9918a.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\ym2413.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\z80.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<Filter
					Name="fmgen Source Files"
					Filter="cpp"
					>
					<File
						RelativePath="..\src\vm\fmgen\fmgen.cpp"
						>
						<FileConfiguration
							Name="Debug|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
						<FileConfiguration
							Name="Release|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\fmtimer.cpp"
						>
						<FileConfiguration
							Name="Debug|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
						<FileConfiguration
							Name="Release|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\opna.cpp"
						>
						<FileConfiguration
							Name="Debug|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
						<FileConfiguration
							Name="Release|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\psg.cpp"
						>
						<FileConfiguration
							Name="Debug|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
						<FileConfiguration
							Name="Release|Win32"
							>
							<Tool
								Name="VCCLCompilerTool"
								PreprocessorDefinitions=""
							/>
						</FileConfiguration>
					</File>
				</Filter>
			</Filter>
			<Filter
				Name="VM Driver Source Files"
				Filter="cpp"
				>
				<File
					RelativePath="..\src\vm\svi3x8\joystick.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\svi3x8\keyboard.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\svi3x8\memory_ex.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
				<File
					RelativePath="..\src\vm\svi3x8\msx_ex.cpp"
					>
					<FileConfiguration
						Name="Debug|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
					<FileConfiguration
						Name="Release|Win32"
						>
						<Tool
							Name="VCCLCompilerTool"
							PreprocessorDefinitions=""
						/>
					</FileConfiguration>
				</File>
			</Filter>
		</Filter>
		<Filter
			Name="Header Files"
			Filter="h;hpp;hxx;hm;inl"
			>
			<File
				RelativePath="..\src\common.h"
				>
			</File>
			<File
				RelativePath="..\src\config.h"
				>
			</File>
			<File
				RelativePath="..\src\fifo.h"
				>
			</File>
			<File
				RelativePath="..\src\fileio.h"
				>
			</File>
			<Filter
				Name="EMU Header Files"
				Filter="h"
				>
				<File
					RelativePath="..\src\emu.h"
					>
				</File>
			</Filter>
			<Filter
				Name="OSD Header Files"
				Filter="h"
				>
				<File
					RelativePath="..\src\win32\osd.h"
					>
				</File>
			</Filter>
			<Filter
				Name="VM Common Header Files"
				Filter="h"
				>
				<File
					RelativePath="..\src\vm\ay_3_891x.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\datarec.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\debugger.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\device.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\disk.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\event.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\i8255.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\io.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\noise.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\not.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\pcm1bit.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\prnfile.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\tms9918a.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\vm.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\vm_template.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\ym2413.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\z80.h"
					>
				</File>
				<Filter
					Name="fmgen Header Files"
					>
					<File
						RelativePath="..\src\vm\fmgen\diag.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\fmgen.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\fmgeninl.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\fmtimer.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\headers.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\misc.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\opna.h"
						>
					</File>
					<File
						RelativePath="..\src\vm\fmgen\psg.h"
						>
					</File>
				</Filter>
			</Filter>
			<Filter
				Name="VM Driver Header Files"
				Filter="h"
				>
				<File
					RelativePath="..\src\vm\svi3x8\joystick.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\svi3x8\keyboard.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\svi3x8\memory_ex.h"
					>
				</File>
				<File
					RelativePath="..\src\vm\svi3x8\msx_ex.h"
					>
				</File>
			</Filter>
		</Filter>
		<Filter
			Name="Resource Files"
			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
			>
			<File
				RelativePath="..\src\res\indicator\access_off.bmp"
				>
			</File>
			<File
				RelativePath="..\src\res\indicator\access_on.bmp"
				>
			</File>
			<File
				RelativePath="..\src\res\resource.h"
				>
			</File>
			<File
				RelativePath="..\src\res\svi3x8.ico"
				>
			</File>
			<File
				RelativePath="..\src\res\svi3x8.rc"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCResourceCompilerTool"
						PreprocessorDefinitions=""
						AdditionalIncludeDirectories="..\src\res"
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCResourceCompilerTool"
						PreprocessorDefinitions=""
						AdditionalIncludeDirectories="..\src\res"
					/>
				</FileConfiguration>
			</File>
		</Filter>
	</Files>
	<Globals>
	</Globals>
</VisualStudioProject>

svi3x8.rc

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Japanese resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE DISCARDABLE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // Japanese resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE 
BEGIN
    VK_RETURN,      ID_ACCEL_SCREEN,        VIRTKEY, ALT, NOINVERT
    VK_APPS,        ID_ACCEL_SPEED,         VIRTKEY, NOINVERT
    VK_APPS,        ID_ACCEL_ROMAJI,        VIRTKEY, CONTROL, NOINVERT
END


/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDR_MENU1 MENU DISCARDABLE 
BEGIN
    POPUP "Control"
    BEGIN
        MENUITEM "Reset",                       ID_RESET
        MENUITEM SEPARATOR
        MENUITEM "CPU x1",                      ID_CPU_POWER0
        MENUITEM "CPU x2",                      ID_CPU_POWER1
        MENUITEM "CPU x4",                      ID_CPU_POWER2
        MENUITEM "CPU x8",                      ID_CPU_POWER3
        MENUITEM "CPU x16",                     ID_CPU_POWER4
        MENUITEM "Full Speed",                  ID_FULL_SPEED
        MENUITEM SEPARATOR
        MENUITEM "Paste",                       ID_AUTOKEY_START
        MENUITEM "Stop",                        ID_AUTOKEY_STOP
        MENUITEM "Romaji to Kana",              ID_ROMAJI_TO_KANA
        MENUITEM SEPARATOR
        POPUP "Save State"
        BEGIN
            MENUITEM "State 0",                 ID_SAVE_STATE0
            MENUITEM "State 1",                 ID_SAVE_STATE1
            MENUITEM "State 2",                 ID_SAVE_STATE2
            MENUITEM "State 3",                 ID_SAVE_STATE3
            MENUITEM "State 4",                 ID_SAVE_STATE4
            MENUITEM "State 5",                 ID_SAVE_STATE5
            MENUITEM "State 6",                 ID_SAVE_STATE6
            MENUITEM "State 7",                 ID_SAVE_STATE7
            MENUITEM "State 8",                 ID_SAVE_STATE8
            MENUITEM "State 9",                 ID_SAVE_STATE9
        END
        POPUP "Load State"
        BEGIN
            MENUITEM "State 0",                 ID_LOAD_STATE0
            MENUITEM "State 1",                 ID_LOAD_STATE1
            MENUITEM "State 2",                 ID_LOAD_STATE2
            MENUITEM "State 3",                 ID_LOAD_STATE3
            MENUITEM "State 4",                 ID_LOAD_STATE4
            MENUITEM "State 5",                 ID_LOAD_STATE5
            MENUITEM "State 6",                 ID_LOAD_STATE6
            MENUITEM "State 7",                 ID_LOAD_STATE7
            MENUITEM "State 8",                 ID_LOAD_STATE8
            MENUITEM "State 9",                 ID_LOAD_STATE9
        END
        MENUITEM SEPARATOR
        MENUITEM "Debug Main CPU",              ID_OPEN_DEBUGGER0
        MENUITEM "Close Debugger",              ID_CLOSE_DEBUGGER
        MENUITEM SEPARATOR
        MENUITEM "Exit",                        ID_EXIT
    END
    POPUP "Cart #1"
    BEGIN
        MENUITEM "Insert",                      ID_OPEN_CART1
        MENUITEM "Eject",                       ID_CLOSE_CART1
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_CART1
    END
    POPUP "Cart #2"
    BEGIN
        MENUITEM "Insert",                      ID_OPEN_CART2
        MENUITEM "Eject",                       ID_CLOSE_CART2
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_CART2
    END
    POPUP "CMT"
    BEGIN
        MENUITEM "Play",                        ID_PLAY_TAPE1
        MENUITEM "Rec",                         ID_REC_TAPE1
        MENUITEM "Eject",                       ID_CLOSE_TAPE1
        MENUITEM SEPARATOR
        MENUITEM "Play Button",                 ID_PLAY_BUTTON1
        MENUITEM "Stop Button",                 ID_STOP_BUTTON1
        MENUITEM "Fast Forward",                ID_FAST_FORWARD1
        MENUITEM "Fast Rewind",                 ID_FAST_REWIND1
        MENUITEM SEPARATOR
        MENUITEM "Waveform Shaper",             ID_USE_WAVE_SHAPER1
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_TAPE1
    END
    POPUP "FD1"
    BEGIN
        MENUITEM "Insert",                      ID_OPEN_FD1
        MENUITEM "Eject",                       ID_CLOSE_FD1
        MENUITEM SEPARATOR
        MENUITEM "Write Protected",             ID_WRITE_PROTECT_FD1
        MENUITEM "Ignore CRC Errors",           ID_IGNORE_CRC_FD1
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_FD1
    END
    POPUP "FD2"
    BEGIN
        MENUITEM "Insert",                      ID_OPEN_FD2
        MENUITEM "Eject",                       ID_CLOSE_FD2
        MENUITEM SEPARATOR
        MENUITEM "Write Protected",             ID_WRITE_PROTECT_FD2
        MENUITEM "Ignore CRC Errors",           ID_IGNORE_CRC_FD2
        MENUITEM SEPARATOR
        MENUITEM "Recent",                      ID_RECENT_FD2
    END
    POPUP "Device"
    BEGIN
        POPUP "Sound"
        BEGIN
            MENUITEM "Play FDD Noise",          ID_VM_SOUND_NOISE_FDD, GRAYED
            MENUITEM "Play CMT Noise",          ID_VM_SOUND_NOISE_CMT
            MENUITEM "Play CMT Sound",          ID_VM_SOUND_PLAY_TAPE
        END
        POPUP "Printer"
        BEGIN
            MENUITEM "Write Printer to File",   ID_VM_PRINTER_TYPE0
            MENUITEM "Printer",             ID_VM_PRINTER_TYPE1, GRAYED
            MENUITEM "PC-PR201",                ID_VM_PRINTER_TYPE2, GRAYED
            MENUITEM "None",                    ID_VM_PRINTER_TYPE3
        END
    END
    POPUP "Host"
    BEGIN
        MENUITEM "Rec Movie 60fps",             ID_HOST_REC_MOVIE_60FPS
        MENUITEM "Rec Movie 30fps",             ID_HOST_REC_MOVIE_30FPS
        MENUITEM "Rec Movie 15fps",             ID_HOST_REC_MOVIE_15FPS
        MENUITEM "Rec Sound",                   ID_HOST_REC_SOUND
        MENUITEM "Stop",                        ID_HOST_REC_STOP
        MENUITEM "Capture Screen",              ID_HOST_CAPTURE_SCREEN
        MENUITEM SEPARATOR
        POPUP "Screen"
        BEGIN
            MENUITEM "Window x1",               ID_SCREEN_WINDOW
            MENUITEM "Fullscreen 640x400",      ID_SCREEN_FULLSCREEN
            MENUITEM SEPARATOR
            MENUITEM "Window Stretch 1",        ID_SCREEN_WINDOW_STRETCH
            MENUITEM "Window Stretch 2",        ID_SCREEN_WINDOW_ASPECT
            MENUITEM SEPARATOR
            MENUITEM "Fullscreen Stretch 1",    ID_SCREEN_FULLSCREEN_DOTBYDOT
            MENUITEM "Fullscreen Stretch 2",    ID_SCREEN_FULLSCREEN_STRETCH
            MENUITEM "Fullscreen Stretch 3",    ID_SCREEN_FULLSCREEN_ASPECT
            MENUITEM "Fullscreen Stretch 4",    ID_SCREEN_FULLSCREEN_FILL
            MENUITEM SEPARATOR
            MENUITEM "Rotate 0deg",             ID_SCREEN_ROTATE_0
            MENUITEM "Rotate +90deg",           ID_SCREEN_ROTATE_90
            MENUITEM "Rotate 180deg",           ID_SCREEN_ROTATE_180
            MENUITEM "Rotate -90deg",           ID_SCREEN_ROTATE_270
        END
        POPUP "Sound"
        BEGIN
            MENUITEM "2000Hz",                  ID_SOUND_FREQ0
            MENUITEM "4000Hz",                  ID_SOUND_FREQ1
            MENUITEM "8000Hz",                  ID_SOUND_FREQ2
            MENUITEM "11025Hz",                 ID_SOUND_FREQ3
            MENUITEM "22050Hz",                 ID_SOUND_FREQ4
            MENUITEM "44100Hz",                 ID_SOUND_FREQ5
            MENUITEM "48000Hz",                 ID_SOUND_FREQ6
            MENUITEM "96000Hz",                 ID_SOUND_FREQ7
            MENUITEM SEPARATOR
            MENUITEM "50msec",                  ID_SOUND_LATE0
            MENUITEM "100msec",                 ID_SOUND_LATE1
            MENUITEM "200msec",                 ID_SOUND_LATE2
            MENUITEM "300msec",                 ID_SOUND_LATE3
            MENUITEM "400msec",                 ID_SOUND_LATE4
            MENUITEM SEPARATOR
            MENUITEM "Realtime Mix",            ID_SOUND_STRICT_RENDER
            MENUITEM "Light Weight Mix",        ID_SOUND_LIGHT_RENDER
            MENUITEM SEPARATOR
            MENUITEM "Volume",                  ID_SOUND_VOLUME
        END
        POPUP "Input"
        BEGIN
            MENUITEM "Joystick #1",             ID_INPUT_JOYSTICK0
            MENUITEM "Joystick #2",             ID_INPUT_JOYSTICK1
        END
        MENUITEM SEPARATOR
        MENUITEM "Use Direct3D9",               ID_HOST_USE_D3D9
        MENUITEM "Wait Vsync",                  ID_HOST_WAIT_VSYNC
        MENUITEM "Use DirectInput",             ID_HOST_USE_DINPUT
        MENUITEM "Disable Windows 8 DWM",       ID_HOST_DISABLE_DWM
        MENUITEM "Show Status Bar",             ID_HOST_SHOW_STATUS_BAR
    END
END


/////////////////////////////////////////////////////////////////////////////
//
// Image
//

IDI_BITMAP_ACCESS_OFF   BITMAP  DISCARDABLE     "indicator/access_off.bmp"
IDI_BITMAP_ACCESS_ON    BITMAP  DISCARDABLE     "indicator/access_on.bmp"


/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1               ICON    DISCARDABLE     "svi3x8.ico"
#endif    // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_VOLUME DIALOG DISCARDABLE  0, 0, 250, 240
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Volume"
FONT 9, "MS PGothic"
BEGIN
    LTEXT           "Sound Device #1",IDC_VOLUME_CAPTION0,6,6,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L0,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,6,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R0,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,21,175,12
    LTEXT           "Sound Device #2",IDC_VOLUME_CAPTION1,6,36,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L1,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,36,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R1,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,51,175,12
    LTEXT           "Sound Device #3",IDC_VOLUME_CAPTION2,6,66,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L2,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,66,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R2,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,81,175,12
    LTEXT           "Sound Device #4",IDC_VOLUME_CAPTION3,6,96,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L3,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,96,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R3,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,111,175,12
    LTEXT           "Sound Device #5",IDC_VOLUME_CAPTION4,6,126,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L4,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,126,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R4,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,141,175,12
    LTEXT           "Sound Device #6",IDC_VOLUME_CAPTION5,6,156,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L5,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,156,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R5,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,171,175,12
    LTEXT           "Sound Device #7",IDC_VOLUME_CAPTION6,6,186,60,8
    CONTROL         "",IDC_VOLUME_PARAM_L6,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,186,175,12
    CONTROL         "",IDC_VOLUME_PARAM_R6,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,70,201,175,12
    DEFPUSHBUTTON   "OK",IDOK,70,220,50,14
    DEFPUSHBUTTON   "Reset",IDC_VOLUME_RESET,130,220,50,14
END

IDD_JOYSTICK DIALOG DISCARDABLE  0, 0, 175, 120
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Joystick #1"
FONT 9, "MS PGothic"
BEGIN
    LTEXT           "Button #1",IDC_JOYSTICK_CAPTION0,6,6,40,8
    EDITTEXT        IDC_JOYSTICK_PARAM0,50,4,120,14,ES_MULTILINE
    LTEXT           "Button #2",IDC_JOYSTICK_CAPTION1,6,21,40,8
    EDITTEXT        IDC_JOYSTICK_PARAM1,50,19,120,14,ES_MULTILINE
    LTEXT           "Button #3",IDC_JOYSTICK_CAPTION2,6,36,40,8
    EDITTEXT        IDC_JOYSTICK_PARAM2,50,34,120,14,ES_MULTILINE
    LTEXT           "Button #4",IDC_JOYSTICK_CAPTION3,6,51,40,8
    EDITTEXT        IDC_JOYSTICK_PARAM3,50,49,120,14,ES_MULTILINE
    LTEXT           "Button #5",IDC_JOYSTICK_CAPTION4,6,66,40,8
    EDITTEXT        IDC_JOYSTICK_PARAM4,50,64,120,14,ES_MULTILINE
    LTEXT           "Button #6",IDC_JOYSTICK_CAPTION5,6,81,40,8
    EDITTEXT        IDC_JOYSTICK_PARAM5,50,79,120,14,ES_MULTILINE
    DEFPUSHBUTTON   "OK",IDOK,35,100,50,14
    DEFPUSHBUTTON   "Reset",IDC_JOYSTICK_RESET,90,100,50,14
END



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED