diff --git a/angelscript/projects/gnuc/FAQ b/angelscript/projects/gnuc/FAQ
new file mode 100644
index 0000000..d6eca65
--- /dev/null
+++ b/angelscript/projects/gnuc/FAQ
@@ -0,0 +1,89 @@
+** (UN)FREQUENTLY ASKED QUESTIONS **
+
+1. Why do you have to specify PREFIX= even when building
+when overriding the default ?
+
+2. Why is it angelscript_s and not just angelscript (as some
+might expect) ?
+
+3. When overriding the default prefix, how do you compile
+and link my program ?
+
+--
+1. Why do you have to specify PREFIX= even when building,
+  when overriding the default ?
+
+Because it allows easier linking. The way the Linux
+link loader works, if the library name has a slash in it,
+then it resolves it that way. If it doesn't it goes through
+a series of steps which tries to find it. However, without
+updating a certain file it won't find it under '/usr/local'
+(and similar with '/tmp'). Therefore, as long as you have
+the same PREFIX= (or don't specify it at all), all you need
+to do to link to the shared version is link to it (and any
+other dependencies; -lpthread comes to mind here). For
+example the link options might be :
+-langelscript_s -lpthread
+
+--
+2. Why is it angelscript_s and not just angelscript
+(like one might expect) ?
+
+In the case you want to statically link (generally in
+Linux it is preferred to use shared linking but there is
+always an exception) you would have a problem with the
+same name and path (name of library, two different
+types: archive and shared object). Since some might
+want to link statically and since Andreas told me that
+is the recommended way, I opted for angelscript_s for
+the shared object name.
+
+--
+3. When overriding the default prefix, how do you compile
+and link my program ?
+
+An example scenario is the following :
+You installed into /opt which means the following
+files should exist :
+
+/opt/include/angelscript.h
+/opt/lib/libangelscript_s.so (which is a symbolic link
+to the current version installed)
+/opt/lib/libangelscript.a (the static library).
+
+If you #include angelscript.h you might normally
+have :
+
+#include <angelscript.h>
+
+However, when that file is not in the standard directories
+the compiler searches, you have to either use :
+
+#include "/opt/include/angelscript.h"
+(method one)
+or alternatively keep the include (using the angel brackets)
+but pass the include path (or paths actually but in this case
+path) to the compiler so it knows to search an additional
+location. If you're using g++ then the following option
+will work (it also works for gcc but I am assuming you
+are using C++) :
+
+-I/opt/include
+
+You must however still link. You therefore must pass another
+option to the compiler (which will pass it to the linker)
+and the option os -L which is used like so (to follow the
+scenario) :
+
+-L/opt/lib
+
+The rest is the same.
+
+CONTACT INFO:
+If you have any questions or concerns, by all
+means have Andreas contact me (at this time I
+don't have an email I feel okay sharing - if it
+seems this is of use to others I will likely
+create an email on my server for this very
+purpose). For now Andreas can forward the
+message to me.
diff --git a/angelscript/projects/gnuc/Makefile b/angelscript/projects/gnuc/Makefile
new file mode 100644
index 0000000..a35ba10
--- /dev/null
+++ b/angelscript/projects/gnuc/Makefile
@@ -0,0 +1,172 @@
+# AngelScript makefile for Linux.
+# Type 'make' then 'make install' to complete
+# the installation of the library. You no
+# longer have to specify SHARED=1 VERSION=x.y.z
+# (the Makefile automatically determines it
+# and builds it and the static library).
+# See README for how to use the shared library
+# instead of the static. The README also
+# contains other information and in particular
+# specifies on how to override the install
+# location should you desire this (you don't
+# have to - nor should you - edit this
+# file).
+#
+# One note: I don't have a way to test
+# the phone builds. I am an old-timer
+# and I _still_ miss customer-owned
+# coin-operated telephones. In fact
+# I still _miss_ the rotary telephone!
+
+LIBNAME=libangelscript
+SHLIB=$(LIBNAME)_s.so
+ARLIB=$(LIBNAME).a
+
+ifeq ($(PREFIX),)
+PREFIX=/usr/local
+endif
+INCLUDEDEST=$(PREFIX)/include/
+LIBRARYDEST=$(PREFIX)/lib/
+
+HEADER = angelscript.h
+SRCDIR = ../../source
+INCDIR = ../../include
+
+ifeq ($(TARGETPLATFORM), iphone)
+	IPHONEBIN =  /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
+	OBJDIR = obj-iphone
+	LIBDIR = ../../lib-iphone
+	CXX ?= $(IPHONEBIN)/clang++
+	CXXFLAGS += -Wall -fPIC -fno-strict-aliasing -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -miphoneos-version-min=3.0
+else ifeq ($(TARGETPLATFORM), iphonesimulator)
+	IPHONEBIN =  /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin
+	OBJDIR = obj-iphone
+	LIBDIR = ../../lib-iphone
+	CXX ?= $(IPHONEBIN)/clang++
+	CXXFLAGS += -Wall -fPIC -fno-strict-aliasing -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -miphoneos-version-min=3.0
+else ifeq ($(TARGETPLATFORM), android)
+	ANDROIDNDKROOT = /cygdrive/c/android/android-ndk-1.6_r1
+	ANDROIDBIN = $(ANDROIDNDKROOT)/build/prebuilt/windows/arm-eabi-4.2.1/bin
+	SYSROOT = $(ANDROIDNDKROOT)/build/platforms/android-4/arch-arm
+	OBJDIR = obj-android
+	LIBDIR = ../../lib-android
+	CXX ?= $(ANDROIDBIN)/arm-eabi-gcc
+	CXXFLAGS += -I$(SYSROOT)/usr/include \
+	-Wall \
+	-DANDROID \
+	-fno-exceptions \
+	-march=armv6 -mthumb-interwork \
+	-mfloat-abi=softfp -fno-rtti
+else
+	OBJDIR = obj
+	LIBDIR = ../../lib
+	CXX ?= g++
+	# On i686 architecture you may need to add -march=i686 if you get 
+	# an undefined symbol for __sync_sub_and_fetch_4 in as_atomic.cpp.
+	CXXFLAGS += -Wall -fPIC -fno-strict-aliasing
+endif
+
+
+AR ?= ar
+RANLIB ?= ranlib
+
+SRCNAMES = \
+  as_atomic.cpp \
+  as_builder.cpp  \
+  as_bytecode.cpp \
+  as_callfunc.cpp \
+  as_callfunc_arm.cpp \
+  as_callfunc_mips.cpp \
+  as_callfunc_ppc.cpp \
+  as_callfunc_ppc_64.cpp \
+  as_callfunc_sh4.cpp \
+  as_callfunc_x86.cpp \
+  as_callfunc_x64_gcc.cpp \
+  as_callfunc_x64_mingw.cpp \
+  as_compiler.cpp \
+  as_context.cpp \
+  as_configgroup.cpp \
+  as_datatype.cpp \
+  as_generic.cpp \
+  as_gc.cpp \
+  as_globalproperty.cpp \
+  as_memory.cpp \
+  as_module.cpp \
+  as_objecttype.cpp \
+  as_outputbuffer.cpp \
+  as_parser.cpp \
+  as_restore.cpp \
+  as_scriptcode.cpp \
+  as_scriptengine.cpp \
+  as_scriptfunction.cpp \
+  as_scriptnode.cpp \
+  as_scriptobject.cpp \
+  as_string.cpp \
+  as_string_util.cpp \
+  as_thread.cpp \
+  as_tokenizer.cpp \
+  as_typeinfo.cpp \
+  as_variablescope.cpp \
+
+OBJ = $(addprefix $(OBJDIR)/, $(notdir $(SRCNAMES:.cpp=.o)))
+
+ifeq ($(TARGETPLATFORM), iphone)
+	OBJ += $(OBJDIR)/as_callfunc_arm_xcode.o
+else 
+	OBJ += $(OBJDIR)/as_callfunc_arm_gcc.o
+endif
+
+default: all
+
+all: $(OBJDIR) $(LIBDIR) $(OBJ)
+	$(MAKE) $(OBJDIR) $(LIBDIR) $(OBJ)
+	$(AR) r $(LIBDIR)/$(ARLIB) $(OBJ)
+	$(RANLIB) $(LIBDIR)/$(ARLIB)
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-soname,$(LIBRARYDEST)$(LIBNAME)_s.so -o $(LIBDIR)/$(SHLIB) $(OBJ)
+	@echo -------------------------------------------------------------------
+	@echo Done. As root, type 'make install' to install the library.
+
+$(OBJDIR):
+	mkdir -p $(OBJDIR)
+
+$(LIBDIR):
+	mkdir -p $(LIBDIR)
+
+$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
+	$(CXX) $(CXXFLAGS) -o $@ -c $<
+
+$(OBJDIR)/%.o: $(SRCDIR)/%.S
+	$(CXX) $(CXXFLAGS) -o $@ -c $<
+
+$(OBJDIR)/%.o: $(SRCDIR)/%.s
+	$(CXX) $(CXXFLAGS) -o $@ -c $<
+
+install_shared:
+	@ver=`awk -F\" '/#define ANGELSCRIPT_VERSION_STRING/{print $$2}' ../../include/angelscript.h | cut -d" " -f1`; \
+	if [ "$$ver" = "" ]; then \
+		echo "Skipping creation of symbolic links..."; \
+	else \
+		( install -Dm 755 $(LIBDIR)/$(SHLIB) $(LIBRARYDEST)$(LIBNAME)_s-$$ver.so && \
+		ln -fs $(LIBRARYDEST)$(LIBNAME)_s-$$ver.so $(LIBRARYDEST)$(SHLIB) && \
+		ln -fs $(LIBRARYDEST)$(LIBNAME)_s-$$ver.so $(LIBRARYDEST)$(SHLIB).$$ver ) \
+	fi ;
+
+
+clean:
+	rm -f $(OBJ) $(LIBDIR)/$(ARLIB) $(LIBDIR)/$(SHLIB)
+
+install: $(LIBDIR)/$(ARLIB) $(LIBDIR)/$(SHLIB)
+	@echo Installing to: $(LIBRARYDEST) and $(INCLUDEDEST)...
+	@echo -------------------------------------------------------------------
+	install -Dm 644 $(LIBDIR)/$(ARLIB) $(LIBRARYDEST)$(ARLIB)
+	install -Dm 644 $(INCDIR)/$(HEADER) $(INCLUDEDEST)$(HEADER)
+	$(MAKE) install_shared
+	@echo -------------------------------------------------------------------
+	@echo Angelscript library installed. Enjoy!
+
+uninstall:
+	rm -f $(INCLUDEDEST)$(HEADER) $(LIBRARYDEST)$(LIBNAME)*
+	@echo -------------------------------------------------------------------
+	@echo Angelscript library uninstalled.
+
+.PHONY: all clean install uninstall
diff --git a/angelscript/projects/gnuc/README b/angelscript/projects/gnuc/README
new file mode 100644
index 0000000..837bc11
--- /dev/null
+++ b/angelscript/projects/gnuc/README
@@ -0,0 +1,63 @@
+If you want to override /usr/local as the default prefix
+(which means /usr/local/include would have the header file and
+/usr/local/lib would have the library files), then run
+make, make install and make uninstall (to build, to
+install and uninstall respectively - you need it for
+all three as I explain below) :
+
+make PREFIX=/tmp
+make PREFIX=/tmp install
+make PREFIX=/tmp uninstall
+
+The last two will of course have to be done
+as root if you need permissions to write to
+the directory (for /tmp you wouldn't unless
+the files already existed by someone else and
+you didn't have permission).
+
+In any case, the above would install header file
+under '/tmp/include' and the library file(s) under
+'/tmp/lib'.
+
+If you want to know the technical details as to why
+you have to (when overriding the install location)
+specify PREFIX= even when building, see the FAQ
+file (summary: it makes it easier for you when linking
+in the shared library).
+
+A word of caution to those overriding prefix :
+--
+You are more than welcome to disregard this but I feel
+it is something I should bring up. If you do override
+the prefix I strongly recommend you do not specify
+'/usr'. Why one might ask. The typical way is
+that user-compiled programs/libraries/etc. go under
+'/usr/local' (other times '/opt'). This has multiple
+benefits: you keep '/usr' clean and if you have a
+package manager then it makes it easy to say:
+"The only files under /usr/include and /usr/lib are
+those that belong to a package."
+In other words it is easier to maintain integrity
+and verify everything. Most important of it all
+(aside the security implications) is this:
+You have less chance of name clashes. If there ever
+is a package that installs to /usr and it includes
+the files (maybe a package for AngelScript) then you
+will have issues.
+--
+
+Lastly: I don't have a way to test the phone builds
+so I cannot verify the build process (it really
+depends on the environment and architecture, like
+most things); I'm an old-timer that hates the
+"smart" trend (besides: it is a horrible misuse
+of the world 'smart').
+
+CONTACT:
+If you have any questions or concerns, by all
+means have Andreas contact me (at this time I
+don't have an email I feel okay sharing - if it
+seems this is of use to others I will likely
+create an email on my server for this very
+purpose). For now Andreas can forward the
+message to me.
diff --git a/angelscript/projects/gnuc/obj/delete.me b/angelscript/projects/gnuc/obj/delete.me
new file mode 100644
index 0000000..0e1ca2b
--- /dev/null
+++ b/angelscript/projects/gnuc/obj/delete.me
@@ -0,0 +1,2 @@
+This file is here just in case your unarchiver does not extract empty directories.
+Feel free to remove it.
\ No newline at end of file
diff --git a/main.cpp b/main.cpp
index ddc3075..d969f31 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,4 +1,4 @@
-#define BUILD_WIN32	//enable to build win32 version without the console window
+#undef BUILD_WIN32	//enable to build win32 version without the console window
 
 #ifdef BUILD_WIN32
 #define _CRT_SECURE_NO_WARNINGS
@@ -9,7 +9,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <math.h>
-#include <direct.h>
+#include <sys/stat.h>
 #include <time.h>
 #include <string>
 #include <vector>
@@ -1145,7 +1145,7 @@ int main(int argc, char* argv[])
 		{
 			if((SDL_GetTicks()-backupPrevTime)>=(backupPeriod*1000*60))
 			{
-				_mkdir(backupDirectory);
+				mkdir(backupDirectory,0777);
 
 				time(&rawTime);
 				timeInfo=localtime(&rawTime);
diff --git a/makefile b/makefile
index a156bbb..6dcd813 100644
--- a/makefile
+++ b/makefile
@@ -1,5 +1,6 @@
-CPPFLAGS=-I./angelscript -I/usr/include/SDL -I/usr/include
-LDFLAGS=-lSDL -langelscript
+CPPFLAGS=-I./angelscript -I./angelscript/include -I./angelscript_jit -I/usr/include/SDL -I/usr/include
+CXXFLAGS+=-std=c++11
+LDFLAGS=-L./angelscript/lib -lSDL -langelscript -lpthread
 
 %.o: %.cpp
 	g++ -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $^
@@ -50,10 +51,14 @@ LDFLAGS=-lSDL -langelscript
 1tracker: gme/Ay_Emu.o
 1tracker: gme/Ay_Cpu.o
 1tracker: gme/Ay_Apu.o
+1tracker: gme/Spc_Filter.o
 1tracker: angelscript/scriptstdstring/scriptstdstring_utils.o
 1tracker: angelscript/scriptstdstring/scriptstdstring.o
 1tracker: angelscript/scriptbuilder/scriptbuilder.o
 1tracker: angelscript/scriptarray/scriptarray.o
+1tracker: angelscript_jit/as_jit.o
+1tracker: angelscript_jit/virtual_asm_linux.o
+1tracker: angelscript_jit/virtual_asm_x64.o
 	g++ -o $@ $^ $(LDFLAGS)
 
 main.o: main.cpp
@@ -102,7 +107,11 @@ gme/Blip_Buffer.o: gme/Blip_Buffer.cpp
 gme/Ay_Emu.o: gme/Ay_Emu.cpp
 gme/Ay_Cpu.o: gme/Ay_Cpu.cpp
 gme/Ay_Apu.o: gme/Ay_Apu.cpp
+gme/Spc_Filter.o: gme/Spc_Filter.cpp
 angelscript/scriptstdstring/scriptstdstring_utils.o: angelscript/scriptstdstring/scriptstdstring_utils.cpp
 angelscript/scriptstdstring/scriptstdstring.o: angelscript/scriptstdstring/scriptstdstring.cpp
 angelscript/scriptbuilder/scriptbuilder.o: angelscript/scriptbuilder/scriptbuilder.cpp
 angelscript/scriptarray/scriptarray.o: angelscript/scriptarray/scriptarray.cpp
+angelscript_jit/as_jit.o: angelscript_jit/as_jit.cpp
+angelscript_jit/virtual_asm_linux.o: angelscript_jit/virtual_asm_linux.cpp
+angelscript_jit/virtual_asm_x64.o: angelscript_jit/virtual_asm_x64.cpp
