diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/core.vcxproj | 3 | ||||
-rw-r--r-- | src/core/core.vcxproj.filters | 3 | ||||
-rw-r--r-- | src/core/src/core.cpp | 48 | ||||
-rw-r--r-- | src/core/src/core.h | 70 | ||||
-rw-r--r-- | src/core/src/mem_map.cpp | 52 | ||||
-rw-r--r-- | src/core/src/mem_map.h | 58 |
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 |