diff --git a/BizHawk.MultiClient/output/dll/libmeteor.dll b/BizHawk.MultiClient/output/dll/libmeteor.dll
new file mode 100644
index 0000000000..54d5a771fe
Binary files /dev/null and b/BizHawk.MultiClient/output/dll/libmeteor.dll differ
diff --git a/libmeteor/Makefile b/libmeteor/Makefile
new file mode 100644
index 0000000000..3d6a1c16c5
--- /dev/null
+++ b/libmeteor/Makefile
@@ -0,0 +1,109 @@
+# this was modified at one point so that it would compile in our bizhawk project, but isn't in
+# use at the moment. tread carefully
+
+ifeq ($(platform),)
+platform = unix
+ifeq ($(shell uname -a),)
+ platform = win
+else ifneq ($(findstring MINGW,$(shell uname -a)),)
+ platform = win
+else ifneq ($(findstring Darwin,$(shell uname -a)),)
+ platform = osx
+else ifneq ($(findstring win,$(shell uname -a)),)
+ platform = win
+endif
+endif
+
+ifeq ($(platform), unix)
+ TARGET := libmeteor.so
+ fpic := -fPIC
+ SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined
+else ifeq ($(platform), osx)
+ TARGET := libmeteor.dylib
+ fpic := -fPIC
+ SHARED := -dynamiclib
+else
+ TARGET := libmeteor.dll
+ CXX = g++
+# SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=link.T -Wl,--no-undefined
+ SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--no-undefined
+ CXXFLAGS += -DNO_MEMMEM
+endif
+
+#CXXFLAGS += -Wall -pedantic -I. -I../ameteor/include -pipe -D__LIBRETRO__ -Wno-parentheses -fno-exceptions -fno-rtti
+CXXFLAGS += -Wall -pedantic -I. -Iinclude -pipe -D__LIBRETRO__ -Wno-parentheses -fno-exceptions -fno-rtti
+
+ifeq ($(DEBUG), 1)
+ CFLAGS += -O0 -g
+ CXXFLAGS += -O0 -g
+else
+ CFLAGS += -O3
+ CXXFLAGS += -O3
+endif
+
+#SRCDIR := ../ameteor/source
+SRCDIR := ./source
+
+SOURCES := \
+ $(SRCDIR)/audio/dsound.cpp \
+ $(SRCDIR)/audio/sound1.cpp \
+ $(SRCDIR)/audio/sound2.cpp \
+ $(SRCDIR)/audio/sound4.cpp \
+ $(SRCDIR)/audio/speaker.cpp \
+ $(SRCDIR)/disassembler/argimmediate.cpp \
+ $(SRCDIR)/disassembler/argmulregisters.cpp \
+ $(SRCDIR)/disassembler/argpsr.cpp \
+ $(SRCDIR)/disassembler/argregister.cpp \
+ $(SRCDIR)/disassembler/argrelative.cpp \
+ $(SRCDIR)/disassembler/argshift.cpp \
+ $(SRCDIR)/disassembler/arguimmediate.cpp \
+ $(SRCDIR)/disassembler/arguments.cpp \
+ $(SRCDIR)/disassembler/instruction.cpp \
+ $(SRCDIR)/graphics/bglayer.cpp \
+ $(SRCDIR)/graphics/object.cpp \
+ $(SRCDIR)/graphics/objects.cpp \
+ $(SRCDIR)/graphics/renderer.cpp \
+ $(SRCDIR)/graphics/screen.cpp \
+ $(SRCDIR)/ameteor.cpp \
+ $(SRCDIR)/bios.cpp \
+ $(SRCDIR)/clock.cpp \
+ $(SRCDIR)/cpu.cpp \
+ $(SRCDIR)/debug.cpp \
+ $(SRCDIR)/dma.cpp \
+ $(SRCDIR)/eeprom.cpp \
+ $(SRCDIR)/flash.cpp \
+ $(SRCDIR)/cartmem.cpp \
+ $(SRCDIR)/interpreter.cpp \
+ $(SRCDIR)/interpreter_arm.cpp \
+ $(SRCDIR)/interpreter_thumb.cpp \
+ $(SRCDIR)/io.cpp \
+ $(SRCDIR)/keypad.cpp \
+ $(SRCDIR)/lcd.cpp \
+ $(SRCDIR)/memory.cpp \
+ $(SRCDIR)/sound.cpp \
+ $(SRCDIR)/sram.cpp \
+ $(SRCDIR)/timer.cpp \
+ cinterface.cpp
+# video.cpp \
+# audio.cpp \
+# input.cpp \
+# libretro.cpp
+
+OBJ := $(SOURCES:.cpp=.o)
+
+all: $(TARGET)
+
+$(TARGET): $(OBJ)
+ @$(CXX) -o $@ $^ $(SHARED) $(LDFLAGS) $(LIBS)
+ @echo LD $(notdir $@)
+
+%.o: %.cpp
+ @$(CXX) -o $@ -c $< $(CXXFLAGS) $(fpic)
+ @echo CXX $(notdir $<)
+
+clean:
+ rm -f $(TARGET)
+ rm -f $(OBJ)
+
+.PHONY: clean
+
diff --git a/libmeteor/cinterface.cpp b/libmeteor/cinterface.cpp
index aea61202ba..530f3352ae 100644
--- a/libmeteor/cinterface.cpp
+++ b/libmeteor/cinterface.cpp
@@ -16,7 +16,7 @@ void videocb(const uint16_t *frame)
const uint16_t *src = frame;
for (int i = 0; i < 240 * 160; i++, src++, dest++)
{
- uint16_t c = *frame;
+ uint16_t c = *src;
uint16_t b = c >> 10 & 31;
uint16_t g = c >> 5 & 31;
uint16_t r = c & 31;
diff --git a/libmeteor/libmeteor.sln b/libmeteor/libmeteor.sln
new file mode 100644
index 0000000000..f9def63ac7
--- /dev/null
+++ b/libmeteor/libmeteor.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmeteor", "libmeteor.vcxproj", "{EE01E7C1-6FC4-497F-82CC-C7C64E3BF9D1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EE01E7C1-6FC4-497F-82CC-C7C64E3BF9D1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE01E7C1-6FC4-497F-82CC-C7C64E3BF9D1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE01E7C1-6FC4-497F-82CC-C7C64E3BF9D1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE01E7C1-6FC4-497F-82CC-C7C64E3BF9D1}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/libmeteor/libmeteor.vcxproj b/libmeteor/libmeteor.vcxproj
new file mode 100644
index 0000000000..63084fdf02
--- /dev/null
+++ b/libmeteor/libmeteor.vcxproj
@@ -0,0 +1,165 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {EE01E7C1-6FC4-497F-82CC-C7C64E3BF9D1}
+ Win32Proj
+ libmeteor
+
+
+
+ DynamicLibrary
+ true
+ Unicode
+
+
+ DynamicLibrary
+ false
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(DXSDK_DIR)Include;$(IncludePath);include;include\ameteor
+
+
+ false
+ $(DXSDK_DIR)Include;$(IncludePath);include;include\ameteor
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBMETEOR_EXPORTS;%(PreprocessorDefinitions);METDEBUG
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBMETEOR_EXPORTS;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libmeteor/libmeteor.vcxproj.filters b/libmeteor/libmeteor.vcxproj.filters
new file mode 100644
index 0000000000..d7e6d24e13
--- /dev/null
+++ b/libmeteor/libmeteor.vcxproj.filters
@@ -0,0 +1,288 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {93df073d-6997-45f7-b85f-a285bca7b310}
+
+
+ {f134ab18-d00a-4652-ad25-5179aac22dbc}
+
+
+ {b152e4ad-8658-48a8-a214-3d9d1282fc70}
+
+
+ {63c54b4d-45ec-46f4-923e-38f486e19909}
+
+
+ {e3ba08fe-cf72-4aed-857c-697b3e437472}
+
+
+ {486541a1-445b-4012-8c31-218e65ea1e0b}
+
+
+ {66d5a4ba-681b-448c-8912-ecbb110d4896}
+
+
+ {a989399f-ba01-4804-ae68-ba5f363a2f9f}
+
+
+ {05542396-9b85-441b-beb8-8c49f126a881}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files\audio
+
+
+ Source Files\audio
+
+
+ Source Files\audio
+
+
+ Source Files\audio
+
+
+ Source Files\audio
+
+
+ Source Files\graphics
+
+
+ Source Files\graphics
+
+
+ Source Files\graphics
+
+
+ Source Files\graphics
+
+
+ Source Files\graphics
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\disassembler
+
+
+ Source Files\cinterface
+
+
+
+
+ Header Files
+
+
+ Header Files\syg
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor\audio
+
+
+ Header Files\ameteor\audio
+
+
+ Header Files\ameteor\audio
+
+
+ Header Files\ameteor\audio
+
+
+ Header Files\ameteor\audio
+
+
+ Header Files\ameteor\graphics
+
+
+ Header Files\ameteor\graphics
+
+
+ Header Files\ameteor\graphics
+
+
+ Header Files\ameteor\graphics
+
+
+ Header Files\ameteor\graphics
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor\disassembler
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+ Header Files\ameteor
+
+
+
\ No newline at end of file