summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/core.vcxproj3
-rw-r--r--src/core/core.vcxproj.filters3
-rw-r--r--src/core/src/core.cpp48
-rw-r--r--src/core/src/core.h70
-rw-r--r--src/core/src/mem_map.cpp52
-rw-r--r--src/core/src/mem_map.h58
6 files changed, 232 insertions, 2 deletions
diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj
index b413beba9..cd167af47 100644
--- a/src/core/core.vcxproj
+++ b/src/core/core.vcxproj
@@ -183,9 +183,12 @@
<ItemGroup>
<ClCompile Include="src\arm\disassembler\arm_disasm.cpp" />
<ClCompile Include="src\core.cpp" />
+ <ClCompile Include="src\mem_map.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\arm\disassembler\arm_disasm.h" />
+ <ClInclude Include="src\core.h" />
+ <ClInclude Include="src\mem_map.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/src/core/core.vcxproj.filters b/src/core/core.vcxproj.filters
index 3c0ae8786..9d981b995 100644
--- a/src/core/core.vcxproj.filters
+++ b/src/core/core.vcxproj.filters
@@ -5,6 +5,7 @@
<ClCompile Include="src\arm\disassembler\arm_disasm.cpp">
<Filter>arm\disassembler</Filter>
</ClCompile>
+ <ClCompile Include="src\mem_map.cpp" />
</ItemGroup>
<ItemGroup>
<Filter Include="arm">
@@ -18,5 +19,7 @@
<ClInclude Include="src\arm\disassembler\arm_disasm.h">
<Filter>arm\disassembler</Filter>
</ClInclude>
+ <ClInclude Include="src\mem_map.h" />
+ <ClInclude Include="src\core.h" />
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/core/src/core.cpp b/src/core/src/core.cpp
index b5ac85648..4e956fde3 100644
--- a/src/core/src/core.cpp
+++ b/src/core/src/core.cpp
@@ -1,2 +1,46 @@
-void null() {
-} \ No newline at end of file
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file core.cpp
+ * @author ShizZy <shizzy247@gmail.com>
+ * @date 2013-09-04
+ * @brief Core of emulator
+ *
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details at
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Official project repository can be found at:
+ * http://code.google.com/p/gekko-gc-emu/
+ */
+
+#include "core.h"
+
+namespace Core {
+
+/// Start the core
+void Start() {
+}
+
+/// Kill the core
+void Kill() {
+}
+
+/// Stop the core
+void Stop() {
+}
+
+/// Initialize the core
+int Init(EmuWindow* emu_window) {
+ return 0;
+}
+
+} // namespace
diff --git a/src/core/src/core.h b/src/core/src/core.h
new file mode 100644
index 000000000..41429e8a3
--- /dev/null
+++ b/src/core/src/core.h
@@ -0,0 +1,70 @@
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file core.h
+ * @author ShizZy <shizzy247@gmail.com>
+ * @date 2013-09-04
+ * @brief Core of emulator
+ *
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details at
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Official project repository can be found at:
+ * http://code.google.com/p/gekko-gc-emu/
+ */
+
+#ifndef CORE_CORE_H_
+#define CORE_CORE_H_
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#include "common.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+class EmuWindow;
+
+namespace Core {
+
+// State of the full emulator
+typedef enum {
+ SYS_NULL = 0, ///< System is in null state, nothing initialized
+ SYS_IDLE, ///< System is in an initialized state, but not running
+ SYS_RUNNING, ///< System is running
+ SYS_LOADING, ///< System is loading a ROM
+ SYS_HALTED, ///< System is halted (error)
+ SYS_STALLED, ///< System is stalled (unused)
+ SYS_DEBUG, ///< System is in a special debug mode (unused)
+ SYS_DIE ///< System is shutting down
+} SystemState;
+
+
+/// Start the core
+void Start();
+
+/// Kill the core
+void Kill();
+
+/// Stop the core
+void Stop();
+
+/// Initialize the core
+int Init(EmuWindow* emu_window);
+
+extern SystemState g_state; ///< State of the emulator
+extern bool g_started; ///< Whether or not the emulator has been started
+
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#endif // CORE_CORE_H_
diff --git a/src/core/src/mem_map.cpp b/src/core/src/mem_map.cpp
new file mode 100644
index 000000000..3ff516cbd
--- /dev/null
+++ b/src/core/src/mem_map.cpp
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file mem_map.cpp
+ * @author ShizZy <shizzy247@gmail.com>
+ * @date 2013-09-05
+ * @brief Memory map - handles virtual to physical memory access
+ *
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details at
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Official project repository can be found at:
+ * http://code.google.com/p/gekko-gc-emu/
+ */
+
+#include "mem_map.h"
+
+namespace Memory {
+
+u8 Read8(const u32 addr) {
+ return 0xDE;
+}
+
+u16 Read16(const u32 addr) {
+ return 0xDEAD;
+}
+
+u32 Read32(const u32 addr) {
+ return 0xDEADBEEF;
+}
+
+void Write8(const u32 addr, const u32 data) {
+}
+
+void Write16(const u32 addr, const u32 data) {
+}
+
+void Write32(const u32 addr, const u32 data) {
+}
+
+
+
+} // namespace
diff --git a/src/core/src/mem_map.h b/src/core/src/mem_map.h
new file mode 100644
index 000000000..8ef6e58a2
--- /dev/null
+++ b/src/core/src/mem_map.h
@@ -0,0 +1,58 @@
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file mem_map.h
+ * @author ShizZy <shizzy247@gmail.com>
+ * @date 2013-09-05
+ * @brief Memory map - handles virtual to physical memory access
+ *
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details at
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Official project repository can be found at:
+ * http://code.google.com/p/gekko-gc-emu/
+ */
+
+#ifndef CORE_MEM_MAP_H_
+#define CORE_MEM_MAP_H_
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#include "common.h"
+#include "common_types.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+namespace Memory {
+
+extern u8* g_ram;
+extern u8* g_vram;
+
+extern u32 g_memory_size;
+extern u32 g_memory_mask;
+
+void Init();
+void Shutdown();
+
+u8 Read8(const u32 addr);
+u16 Read16(const u32 addr);
+u32 Read32(const u32 addr);
+
+void Write8(const u32 addr, const u32 data);
+void Write16(const u32 addr, const u32 data);
+void Write32(const u32 addr, const u32 data);
+
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#endif // CORE_MEM_MAP_H_ \ No newline at end of file