From 3a1d89e39b86788addd3374fbf39ea8f4cfd808a Mon Sep 17 00:00:00 2001
From: gocha <gochaism@gmail.com>
Date: Sun, 16 Jan 2011 11:00:12 +0900
Subject: [PATCH 1/3] Add Lua 5.1 script engine (diff only, no additional libs/sources contained)
---
win32/CDirect3D.cpp | 3 +-
win32/rsrc/resource.h | 12 ++++-
win32/rsrc/snes9x.rc | 21 ++++++++
win32/snes9xw.vcproj | 134 ++++++++++++++++++++++++++----------------------
win32/wsnes9x.cpp | 22 ++++++++
5 files changed, 129 insertions(+), 63 deletions(-)
diff --git a/win32/CDirect3D.cpp b/win32/CDirect3D.cpp
index e60a2bc..8887850 100644
--- a/win32/CDirect3D.cpp
+++ b/win32/CDirect3D.cpp
@@ -259,7 +259,8 @@ bool CDirect3D::Initialize(HWND hWnd)
HRESULT hr = pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
- D3DCREATE_MIXED_VERTEXPROCESSING,
+ D3DCREATE_MIXED_VERTEXPROCESSING
+ | D3DCREATE_FPU_PRESERVE, // for lua
&dPresentParams,
&pDevice);
if(FAILED(hr)) {
diff --git a/win32/rsrc/resource.h b/win32/rsrc/resource.h
index d6603e0..5c239d9 100644
--- a/win32/rsrc/resource.h
+++ b/win32/rsrc/resource.h
@@ -20,6 +20,7 @@
#define IDB_CDDRIVE 113
#define IDB_NETDRIVE 114
#define IDB_HARDDRIVE 115
+#define IDD_LUA 116
#define IDD_NEWDISPLAY 123
#define IDD_NETPLAYPROGRESS 124
#define IDD_INPUTCONFIG 125
@@ -350,6 +351,15 @@
#define IDC_SHADER_HLSL_BROWSE 3016
#define IDC_SHADER_GROUP 3017
#define IDC_SHADER_GLSL_BROWSE 3018
+#define IDC_BUTTON_LUARUN 3019
+#define IDC_BUTTON_LUASTOP 3020
+#define IDC_LUACONSOLE 3021
+#define IDC_BUTTON_LUAEDIT 3022
+#define IDC_NOTIFY_SUBSERVIENT 3023
+#define IDC_EDIT_LUAPATH 3024
+#define IDC_BUTTON_LUABROWSE 3025
+#define IDC_NEW_LUA_SCRIPT 3026
+#define IDC_CLOSE_LUA_SCRIPTS 3027
#define ID_FILE_EXIT 40001
#define ID_WINDOW_HIDEMENUBAR 40004
#define ID_FILE_AVI_RECORDING 40005
@@ -488,7 +498,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 151
#define _APS_NEXT_COMMAND_VALUE 40173
-#define _APS_NEXT_CONTROL_VALUE 3018
+#define _APS_NEXT_CONTROL_VALUE 3028
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/win32/rsrc/snes9x.rc b/win32/rsrc/snes9x.rc
index d25649f..045c5b4 100644
--- a/win32/rsrc/snes9x.rc
+++ b/win32/rsrc/snes9x.rc
@@ -536,6 +536,21 @@ BEGIN
LTEXT "not found",IDC_MULTICART_BIOSNOTFOUND,280,50,54,8
END
+IDD_LUA DIALOGEX 0, 0, 270, 150
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
+CAPTION "Lua Script"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ PUSHBUTTON "Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16
+ PUSHBUTTON "Run",IDC_BUTTON_LUARUN,213,31,50,16
+ PUSHBUTTON "Stop",IDC_BUTTON_LUASTOP,160,31,50,16
+ EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL
+ EDITTEXT IDC_LUACONSOLE,7,61,256,81,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
+ LTEXT "Output Console",IDC_STATIC,7,51,51,8
+ LTEXT "Script File",IDC_STATIC,7,7,32,8
+ PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16
+END
+
/////////////////////////////////////////////////////////////////////////////
//
@@ -839,6 +854,12 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "AVI Recording", ID_FILE_AVI_RECORDING
MENUITEM SEPARATOR
+ POPUP "Lua Scripting"
+ BEGIN
+ MENUITEM "New Lua Script Window...", IDC_NEW_LUA_SCRIPT, GRAYED
+ MENUITEM "Close All Script Windows", IDC_CLOSE_LUA_SCRIPTS, GRAYED
+ END
+ MENUITEM SEPARATOR
MENUITEM "&Reset Game", ID_FILE_RESET
MENUITEM "E&xit\tAlt+F4", ID_FILE_EXIT
END
diff --git a/win32/snes9xw.vcproj b/win32/snes9xw.vcproj
index 8d59551..3c79f91 100644
--- a/win32/snes9xw.vcproj
+++ b/win32/snes9xw.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="Snes9X"
ProjectGUID="{B86059D8-C9A6-46BE-8FBA-3170C54F1DFD}"
RootNamespace="Snes9X"
@@ -56,8 +56,8 @@
FavorSizeOrSpeed="1"
OmitFramePointers="true"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;HAVE_LUA"
StringPooling="true"
RuntimeLibrary="0"
StructMemberAlignment="0"
@@ -85,12 +85,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmt.lib msxml2.lib"
+ AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmt.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\win32""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x.pdb"
SubSystem="2"
@@ -158,8 +158,8 @@
FavorSizeOrSpeed="1"
OmitFramePointers="true"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;HAVE_LUA"
StringPooling="true"
RuntimeLibrary="0"
StructMemberAlignment="0"
@@ -187,12 +187,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmtx64.lib msxml2.lib"
+ AdditionalDependencies="libpngmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmtx64.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-x64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\x64""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-x64.pdb"
SubSystem="2"
@@ -255,8 +255,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;SPC700_C;JMA_SUPPORT;SDD1_DECOMP;CORRECT_VRAM_READS;SPC700_SHUTDOWN;CPU_SHUTDOWN;ZLIB;VAR_CYCLES;UNZIP_SUPPORT;EXECUTE_SUPERFX_PER_LINE;__WIN32__;__MSC__;NEW_COLOUR_BLENDING;USE_OPENGL;NETPLAY_SUPPORT;USE_DIRECTX3D;FMODEX_SUPPORT"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;SPC700_C;JMA_SUPPORT;SDD1_DECOMP;CORRECT_VRAM_READS;SPC700_SHUTDOWN;CPU_SHUTDOWN;ZLIB;VAR_CYCLES;UNZIP_SUPPORT;EXECUTE_SUPERFX_PER_LINE;__WIN32__;__MSC__;NEW_COLOUR_BLENDING;USE_OPENGL;NETPLAY_SUPPORT;USE_DIRECTX3D;FMODEX_SUPPORT;HAVE_LUA"
RuntimeLibrary="1"
StructMemberAlignment="0"
UsePrecompiledHeader="0"
@@ -284,13 +284,13 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngdmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmt.lib msxml2.lib"
+ AdditionalDependencies="libpngdmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmt.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-debug.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\win32""
EnableUAC="false"
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-debug.pdb"
GenerateMapFile="false"
@@ -354,8 +354,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;HAVE_LUA"
RuntimeLibrary="1"
StructMemberAlignment="0"
UsePrecompiledHeader="0"
@@ -383,13 +383,13 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngdmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmtx64.lib msxml2.lib"
+ AdditionalDependencies="libpngdmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmtx64.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-debug-x64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\x64""
EnableUAC="false"
- DelayLoadDLLs="fmodex64.dll"
+ DelayLoadDLLs="fmodex64.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-debug-x64.pdb"
GenerateMapFile="false"
@@ -452,8 +452,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x""
- PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;ZSNES_FX;ZSNES_C4"
+ AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x";"$(ProjectDir)..\..\lua""
+ PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;ZSNES_FX;ZSNES_C4;HAVE_LUA"
RuntimeLibrary="1"
StructMemberAlignment="0"
UsePrecompiledHeader="0"
@@ -480,12 +480,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmt.lib msxml2.lib"
+ AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmt.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-debug.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\win32""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-debug.pdb"
GenerateMapFile="false"
@@ -548,8 +548,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x""
- PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;ZSNES_FX;ZSNES_C4"
+ AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x";"$(ProjectDir)..\..\lua""
+ PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;ZSNES_FX;ZSNES_C4;HAVE_LUA"
RuntimeLibrary="1"
StructMemberAlignment="0"
UsePrecompiledHeader="0"
@@ -576,12 +576,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib xapobase.lib zlibdmt.lib"
+ AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib xapobase.lib zlibdmt.lib lua51.lib"
OutputFile=".\snes9x-debug-x64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\x64""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug+ASM/Snes9x.pdb"
GenerateMapFile="false"
@@ -647,8 +647,8 @@
Optimization="3"
InlineFunctionExpansion="0"
FavorSizeOrSpeed="1"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;ZSNES_FX;ZSNES_C4"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;ZSNES_FX;ZSNES_C4;HAVE_LUA"
StringPooling="true"
RuntimeLibrary="0"
StructMemberAlignment="0"
@@ -676,12 +676,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmt.lib msxml2.lib"
+ AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmt.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\win32""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x.pdb"
SubSystem="2"
@@ -746,8 +746,8 @@
Optimization="3"
InlineFunctionExpansion="0"
FavorSizeOrSpeed="1"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;ZSNES_FX;ZSNES_C4"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;ZSNES_FX;ZSNES_C4;HAVE_LUA"
StringPooling="true"
RuntimeLibrary="0"
StructMemberAlignment="0"
@@ -775,12 +775,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib xapobase.lib zlibmt.lib"
+ AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib xapobase.lib zlibmt.lib lua51.lib"
OutputFile=".\snes9x-x64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\x64""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Release/snes9x.pdb"
SubSystem="2"
@@ -843,8 +843,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..\";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x""
- PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO"
+ AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..\";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x";"$(ProjectDir)..\..\lua""
+ PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;HAVE_LUA"
RuntimeLibrary="1"
StructMemberAlignment="0"
UsePrecompiledHeader="0"
@@ -872,13 +872,13 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngdmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmtu.lib msxml2.lib"
+ AdditionalDependencies="libpngdmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmtu.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-debug.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\win32""
EnableUAC="false"
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-debug.pdb"
GenerateMapFile="false"
@@ -943,8 +943,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..\";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x""
- PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO"
+ AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..\";"$(ProjectDir)..\..\";"$(ProjectDir)..\..\zLib";"$(ProjectDir)..\unzip";"$(ProjectDir)..\..\FMOD\api\inc";"$(ProjectDir)..\..\libPNG\src";"$(ProjectDir)..\snes9x";"$(ProjectDir)..\..\lua""
+ PreprocessorDefinitions="_DEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;NETPLAY_SUPPORT;FMODEX_SUPPORT;D3D_DEBUG_INFO;HAVE_LUA"
RuntimeLibrary="1"
StructMemberAlignment="0"
UsePrecompiledHeader="0"
@@ -973,13 +973,13 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngdmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmtux64.lib msxml2.lib"
+ AdditionalDependencies="libpngdmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibdmtux64.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-debug-x64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\x64""
EnableUAC="false"
- DelayLoadDLLs="fmodex64.dll"
+ DelayLoadDLLs="fmodex64.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-debug-x64.pdb"
GenerateMapFile="false"
@@ -1050,8 +1050,8 @@
FavorSizeOrSpeed="1"
OmitFramePointers="true"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;HAVE_LUA"
StringPooling="true"
RuntimeLibrary="0"
StructMemberAlignment="0"
@@ -1080,12 +1080,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmtu.lib msxml2.lib"
+ AdditionalDependencies="libpngmt.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmtu.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\win32""
+ DelayLoadDLLs="fmod.dll;fmodex.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x.pdb"
SubSystem="2"
@@ -1155,8 +1155,8 @@
FavorSizeOrSpeed="1"
OmitFramePointers="true"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x"
- PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT"
+ AdditionalIncludeDirectories="$(ProjectDir),$(ProjectDir)..\,$(ProjectDir)..\..\,$(ProjectDir)..\..\zLib,$(ProjectDir)..\unzip,$(ProjectDir)..\..\FMOD\api\inc,$(ProjectDir)..\..\libPNG\src,$(ProjectDir)..\snes9x,$(ProjectDir)..\..\lua"
+ PreprocessorDefinitions="NDEBUG;HAVE_LIBPNG;JMA_SUPPORT;CORRECT_VRAM_READS;CPU_SHUTDOWN;ZLIB;UNZIP_SUPPORT;__WIN32__;FMODEX_SUPPORT;NETPLAY_SUPPORT;HAVE_LUA"
StringPooling="true"
RuntimeLibrary="0"
StructMemberAlignment="0"
@@ -1185,12 +1185,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="libpngmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmtux64.lib msxml2.lib"
+ AdditionalDependencies="libpngmtx64.lib comctl32.lib winmm.lib opengl32.lib glu32.lib wsock32.lib ddraw.lib dsound.lib dxguid.lib delayimp.lib vfw32.lib zlibmtux64.lib msxml2.lib lua51.lib"
OutputFile=".\snes9x-x64.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib""
- DelayLoadDLLs="fmod.dll;fmodex64.dll"
+ AdditionalLibraryDirectories=""$(ProjectDir)..\..\FMOD\api\lib";"$(ProjectDir)..\..\FMODEx_x64\api\lib";"$(ProjectDir)..\..\FMODEx\api\lib";"$(ProjectDir)..\i386";"$(ProjectDir)..\..\zlib\lib";"$(ProjectDir)..\..\libPNG\lib";"$(ProjectDir)..\..\lua\x64""
+ DelayLoadDLLs="fmod.dll;fmodex64.dll;lua51.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)/snes9x-x64.pdb"
SubSystem="2"
@@ -2667,6 +2667,14 @@
</FileConfiguration>
</File>
<File
+ RelativePath="..\lua-engine.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\lua-engine.h"
+ >
+ </File>
+ <File
RelativePath="..\memmap.cpp"
>
</File>
@@ -4393,6 +4401,10 @@
>
</File>
<File
+ RelativePath=".\luaconsole.cpp"
+ >
+ </File>
+ <File
RelativePath=".\render.cpp"
>
</File>
diff --git a/win32/wsnes9x.cpp b/win32/wsnes9x.cpp
index cba682b..32dc4b5 100644
--- a/win32/wsnes9x.cpp
+++ b/win32/wsnes9x.cpp
@@ -276,6 +276,9 @@ INT_PTR CALLBACK DlgCreateMovie(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lPara
INT_PTR CALLBACK DlgOpenMovie(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
HRESULT CALLBACK EnumModesCallback( LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext);
+LRESULT CALLBACK LuaScriptProc(HWND, UINT, WPARAM, LPARAM);
+std::vector<HWND> LuaScriptHWnds;
+
INT_PTR CALLBACK test(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
#define NOTKNOWN "Unknown Company "
@@ -1575,6 +1578,20 @@ LRESULT CALLBACK WinProc(
RestoreSNESDisplay ();// re-enter after dialog
}
break;
+ case IDC_NEW_LUA_SCRIPT:
+ {
+ if(LuaScriptHWnds.size() < 16)
+ {
+ CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_LUA), GUI.hWnd, (DLGPROC) LuaScriptProc);
+ }
+ }
+ break;
+ case IDC_CLOSE_LUA_SCRIPTS:
+ {
+ for(int i=(int)LuaScriptHWnds.size()-1; i>=0; i--)
+ SendMessage(LuaScriptHWnds[i], WM_CLOSE, 0,0);
+ }
+ break;
case ID_FILE_MOVIE_RECORD:
{
RestoreGUIDisplay (); //exit DirectX
@@ -3783,6 +3800,11 @@ static void CheckMenuStates ()
mii.fState = (S9xMovieActive () && !Settings.StopEmulation) ? MFS_ENABLED : MFS_DISABLED;
SetMenuItemInfo (GUI.hMenu, ID_FILE_MOVIE_STOP, FALSE, &mii);
+ mii.fState = 0;
+ SetMenuItemInfo (GUI.hMenu, IDC_NEW_LUA_SCRIPT, FALSE, &mii);
+ mii.fState = (LuaScriptHWnds.size() > 0 ? 0 : MFS_DISABLED);
+ SetMenuItemInfo (GUI.hMenu, IDC_CLOSE_LUA_SCRIPTS, FALSE, &mii);
+
mii.fState = (GUI.SoundChannelEnable & (1 << 0)) ? MFS_CHECKED : MFS_UNCHECKED;
SetMenuItemInfo (GUI.hMenu, ID_CHANNELS_CHANNEL1, FALSE, &mii);
mii.fState = (GUI.SoundChannelEnable & (1 << 1)) ? MFS_CHECKED : MFS_UNCHECKED;
--
1.7.3.1.msysgit.0