--- /dev/null
+# Build Common Sourcecode Project, Agar.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of XM7/SDL, but license is apache 2.2,
+# this part was written only me.
+
+cmake_minimum_required (VERSION 2.6)
+cmake_policy(SET CMP0011 NEW)
+
+message("")
+message("** Start of configure CommonSourceProject,X1, Agar **")
+message("")
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+
+project (emux1turboz)
+
+set(EXEC_TARGET emux1turboz)
+
+set(LOCAL_LIBS vm_x1
+ vm_vm
+ common_common
+ vm_fmgen
+ common_scaler-generic
+ agar_ui
+ agar_x1t
+ agar_menu
+ )
+
+
+set(BUILD_SHARED_LIBS OFF)
+set(USE_OPENMP ON CACHE BOOL "Build using OpenMP")
+set(USE_OPENCL ON CACHE BOOL "Build using OpenCL")
+set(USE_OPENGL ON CACHE BOOL "Build using OpenGL")
+set(XM7_VERSION 3)
+#set(WITH_DEBUGGER ON CACHE BOOL "Build witn XM7 Debugger.")
+
+include(detect_target_cpu)
+#include(windows-mingw-cross)
+# set entry
+set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE STRING "Set processor to build.")
+
+
+add_definitions(-D_X1TURBOZ)
+#add_definitions(-DUSE_TAPE)
+#add_definitions(-DUSE_FD1)
+#add_definitions(-DUSE_FD1)
+
+include(config_commonsource)
+
+
+#include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/x1)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/fmgen)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/agar/x1turbo)
+
+
+
+if(USE_SSE2)
+# include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/fm7/vram/sse2)
+# add_subdirectory(../../src/vm/fm7/vram/sse2 vm/fm7/vram/sse2)
+endif()
+
+
+if(USE_SSE2)
+# include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/agar/common/scaler/sse2)
+endif()
+
+add_subdirectory(../../src/vm/x1 vm/x1)
+add_subdirectory(../../src/vm/fmgen vm/fmgen)
+add_subdirectory(../../src/agar/x1turbo agar/x1turbo)
+
+set(BUNDLE_LIBS
+ ${AGAR_LIBS}
+ ${OPENGL_LIBRARY}
+ ${OPENCL_LIBRARY}
+ ${GETTEXT_LIBRARY}
+ ${OPENMP_LIBRARY}
+ ${SDL_LIBRARY}
+ ${THREADS_LIBRARY}
+ fontconfig
+ freetype
+ ${AGAR_DEPLIBS}
+)
+
+
+add_subdirectory(../../src/agar/common agar/common)
+
+
+
+if(LIB_RT_HAS_NANOSLEEP)
+ add_target_library(emux1 rt)
+endif(LIB_RT_HAS_NANOSLEEP)
+
--- /dev/null
+message("* agar/x1")
+
+#set(CMAKE_BUILD_SETTING_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -msse -mmmx")
+
+add_library(agar_x1t
+ menu_x1t.cpp
+)
--- /dev/null
+/*
+ Skelton for retropc emulator
+
+ Author : K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ Date : 2015.01.07
+
+ [Menu / X1]
+*/
+
+#include <stdio.h>
+#include <string>
+#include <vector>
+#include "common.h"
+#include "emu.h"
+#include "agar_main.h"
+#include "menu_common.h"
+
+void ControlMenu(AG_MenuItem *parent)
+{
+ AG_MenuItem *item;
+
+ item = AG_MenuAction(parent, _N("Reset"), NULL, OnReset, NULL);
+ item = AG_MenuAction(parent, _N("NMI Reset"), NULL, OnSpecialReset, NULL);
+ AG_MenuSeparator(parent);
+
+ item = AG_MenuAction(parent, _N("CPU x1"), NULL, OnCpuPower, "%i", 0);
+ item = AG_MenuAction(parent, _N("CPU x2"), NULL, OnCpuPower, "%i", 1);
+ item = AG_MenuAction(parent, _N("CPU x4"), NULL, OnCpuPower, "%i", 2);
+ item = AG_MenuAction(parent, _N("CPU x8"), NULL, OnCpuPower, "%i", 3);
+ item = AG_MenuAction(parent, _N("CPU x16"), NULL, OnCpuPower, "%i", 4);
+ AG_MenuSeparator(parent);
+
+#ifdef USE_AUTO_KEY
+ item = AG_MenuAction(parent, _N("Paste"), NULL, OnStartAutoKey, NULL);
+ item = AG_MenuAction(parent, _N("Stop"), NULL, OnStopAutoKey, NULL);
+ AG_MenuSeparator(parent);
+#endif
+#ifdef USE_STATE
+ item = AG_MenuAction(parent, _N("Save State"), NULL, OnSaveState, NULL);
+ item = AG_MenuAction(parent, _N("Load State"), NULL, OnLoadState, NULL);
+ AG_MenuSeparator(parent);
+#endif
+#ifdef USE_DEBUGGER
+ item = AG_MenuAction(parent, _N("Debug Main CPU"), NULL, OnOpenDebugger, "%i", 0);
+ item = AG_MenuAction(parent, _N("Debug Sub CPU"), NULL, OnOpenDebugger, "%i", 1);
+ item = AG_MenuAction(parent, _N("Debug Keyboard CPU"), NULL, OnOpenDebugger, "%i", 2);
+ item = AG_MenuAction(parent, _N("Close Debugger"), NULL, OnCloseDebugger, NULL);
+ AG_MenuSeparator(parent);
+#endif
+ item = AG_MenuAction(parent, _N("Exit Emulator"), NULL, OnGuiExit, NULL);
+
+}
+
+AG_Menu *AGAR_MainMenu(AG_Widget *parent)
+{
+ AG_Menu *menu = AG_MenuNew(parent, AG_MENU_HFILL);
+
+ MenuNode_Control = AG_MenuNode(menu->root, _N("File"), NULL);
+ ControlMenu(MenuNode_Control);
+
+#ifdef USE_FD1
+ MenuNode_FD_1.Node = AG_MenuNode(menu->root, _N("Drive 0"), NULL);
+ FloppyMenu(&MenuNode_FD_1, 0);
+#endif
+#ifdef USE_FD2
+ MenuNode_FD_2.Node = AG_MenuNode(menu->root, _N("Drive 1"), NULL);
+ FloppyMenu(&MenuNode_FD_2, 1);
+#endif
+#ifdef USE_FD3
+ MenuNode_FD_3.Node = AG_MenuNode(menu->root, _N("Drive 2"), NULL);
+ FloppyMenu(&MenuNode_FD_3, 2);
+#endif
+#ifdef USE_FD4
+ MenuNode_FD_4.Node = AG_MenuNode(menu->root, _N("Drive 3"), NULL);
+ FloppyMenu(&MenuNode_FD_4, 3);
+#endif
+#ifdef USE_TAPE
+ MenuNode_Tape.Node = AG_MenuNode(menu->root, _N("CMT"), NULL);
+ TapeMenu(&MenuNode_Tape);
+#endif
+
+}
--- /dev/null
+message("* agar/x1")
+
+#set(CMAKE_BUILD_SETTING_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -msse -mmmx")
+
+add_library(agar_x1t
+ menu_x1t.cpp
+)
--- /dev/null
+/*
+ Skelton for retropc emulator
+
+ Author : K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ Date : 2015.01.07
+
+ [Menu / X1]
+*/
+
+#include <stdio.h>
+#include <string>
+#include <vector>
+#include "common.h"
+#include "emu.h"
+#include "agar_main.h"
+#include "menu_common.h"
+
+void ControlMenu(AG_MenuItem *parent)
+{
+ AG_MenuItem *item;
+
+ item = AG_MenuAction(parent, _N("Reset"), NULL, OnReset, NULL);
+ item = AG_MenuAction(parent, _N("NMI Reset"), NULL, OnSpecialReset, NULL);
+ AG_MenuSeparator(parent);
+
+ item = AG_MenuAction(parent, _N("CPU x1"), NULL, OnCpuPower, "%i", 0);
+ item = AG_MenuAction(parent, _N("CPU x2"), NULL, OnCpuPower, "%i", 1);
+ item = AG_MenuAction(parent, _N("CPU x4"), NULL, OnCpuPower, "%i", 2);
+ item = AG_MenuAction(parent, _N("CPU x8"), NULL, OnCpuPower, "%i", 3);
+ item = AG_MenuAction(parent, _N("CPU x16"), NULL, OnCpuPower, "%i", 4);
+ AG_MenuSeparator(parent);
+
+#ifdef USE_AUTO_KEY
+ item = AG_MenuAction(parent, _N("Paste"), NULL, OnStartAutoKey, NULL);
+ item = AG_MenuAction(parent, _N("Stop"), NULL, OnStopAutoKey, NULL);
+ AG_MenuSeparator(parent);
+#endif
+#ifdef USE_STATE
+ item = AG_MenuAction(parent, _N("Save State"), NULL, OnSaveState, NULL);
+ item = AG_MenuAction(parent, _N("Load State"), NULL, OnLoadState, NULL);
+ AG_MenuSeparator(parent);
+#endif
+#ifdef USE_DEBUGGER
+ item = AG_MenuAction(parent, _N("Debug Main CPU"), NULL, OnOpenDebugger, "%i", 0);
+ item = AG_MenuAction(parent, _N("Debug Sub CPU"), NULL, OnOpenDebugger, "%i", 1);
+ item = AG_MenuAction(parent, _N("Debug Keyboard CPU"), NULL, OnOpenDebugger, "%i", 2);
+ item = AG_MenuAction(parent, _N("Close Debugger"), NULL, OnCloseDebugger, NULL);
+ AG_MenuSeparator(parent);
+#endif
+ item = AG_MenuAction(parent, _N("Exit Emulator"), NULL, OnGuiExit, NULL);
+
+}
+
+AG_Menu *AGAR_MainMenu(AG_Widget *parent)
+{
+ AG_Menu *menu = AG_MenuNew(parent, AG_MENU_HFILL);
+
+ MenuNode_Control = AG_MenuNode(menu->root, _N("File"), NULL);
+ ControlMenu(MenuNode_Control);
+
+#ifdef USE_FD1
+ MenuNode_FD_1.Node = AG_MenuNode(menu->root, _N("Drive 0"), NULL);
+ FloppyMenu(&MenuNode_FD_1, 0);
+#endif
+#ifdef USE_FD2
+ MenuNode_FD_2.Node = AG_MenuNode(menu->root, _N("Drive 1"), NULL);
+ FloppyMenu(&MenuNode_FD_2, 1);
+#endif
+#ifdef USE_FD3
+ MenuNode_FD_3.Node = AG_MenuNode(menu->root, _N("Drive 2"), NULL);
+ FloppyMenu(&MenuNode_FD_3, 2);
+#endif
+#ifdef USE_FD4
+ MenuNode_FD_4.Node = AG_MenuNode(menu->root, _N("Drive 3"), NULL);
+ FloppyMenu(&MenuNode_FD_4, 3);
+#endif
+#ifdef USE_TAPE
+ MenuNode_Tape.Node = AG_MenuNode(menu->root, _N("CMT"), NULL);
+ TapeMenu(&MenuNode_Tape);
+#endif
+
+}