diff options
author | ShizZy <shizzy@6bit.net> | 2013-09-27 04:01:09 +0200 |
---|---|---|
committer | ShizZy <shizzy@6bit.net> | 2013-09-27 04:01:09 +0200 |
commit | c71868a6b192f6893f41afe415a2b11ba0edb403 (patch) | |
tree | f93e2314683b8bdbf2be22dfd1f231a02caede23 | |
parent | renamed from citrus to citra (diff) | |
download | yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.tar yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.tar.gz yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.tar.bz2 yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.tar.lz yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.tar.xz yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.tar.zst yuzu-c71868a6b192f6893f41afe415a2b11ba0edb403.zip |
-rw-r--r-- | src/core/core.vcxproj | 1 | ||||
-rw-r--r-- | src/core/core.vcxproj.filters | 1 | ||||
-rw-r--r-- | src/core/src/core.cpp | 18 | ||||
-rw-r--r-- | src/core/src/core.h | 28 | ||||
-rw-r--r-- | src/core/src/system.h | 61 |
5 files changed, 87 insertions, 22 deletions
diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj index c771f2e2d..90d0628f2 100644 --- a/src/core/core.vcxproj +++ b/src/core/core.vcxproj @@ -163,6 +163,7 @@ <ClInclude Include="src\file_sys\meta_file_system.h" /> <ClInclude Include="src\loader.h" /> <ClInclude Include="src\mem_map.h" /> + <ClInclude Include="src\system.h" /> </ItemGroup> <ItemGroup> <None Include="CMakeLists.txt" /> diff --git a/src/core/core.vcxproj.filters b/src/core/core.vcxproj.filters index f75e6305c..039373047 100644 --- a/src/core/core.vcxproj.filters +++ b/src/core/core.vcxproj.filters @@ -87,6 +87,7 @@ <ClInclude Include="src\file_sys\meta_file_system.h"> <Filter>file_sys</Filter> </ClInclude> + <ClInclude Include="src\system.h" /> </ItemGroup> <ItemGroup> <None Include="CMakeLists.txt" /> diff --git a/src/core/src/core.cpp b/src/core/src/core.cpp index 7f6bb2b0e..a748ebbd7 100644 --- a/src/core/src/core.cpp +++ b/src/core/src/core.cpp @@ -29,14 +29,26 @@ namespace Core { /// Start the core void Start() { + // TODO(ShizZy): ImplementMe } -/// Kill the core -void Kill() { +/// Run the core CPU loop +void RunLoop() { + // TODO(ShizZy): ImplementMe +} + +/// Step the CPU one instruction +void SingleStep() { } -/// Stop the core +/// Halt the core +void Halt() { + // TODO(ShizZy): ImplementMe +} + +/// Kill the core void Stop() { + // TODO(ShizZy): ImplementMe } /// Initialize the core diff --git a/src/core/src/core.h b/src/core/src/core.h index 2270e46e2..f018ff6ed 100644 --- a/src/core/src/core.h +++ b/src/core/src/core.h @@ -35,34 +35,24 @@ 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(); +/// Run the core CPU loop +void RunLoop(); + +/// Step the CPU one instruction +void SingleStep(); -/// Stop the core +/// Halt the core +void Halt(); + +/// Kill 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 //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/core/src/system.h b/src/core/src/system.h new file mode 100644 index 000000000..d35515c66 --- /dev/null +++ b/src/core/src/system.h @@ -0,0 +1,61 @@ +/** + * Copyright (C) 2013 Citrus Emulator + * + * @file system.h + * @author ShizZy <shizzy247@gmail.com> + * @date 2013-09-26 + * @brief Emulation of main system + * + * @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_SYSTEM_H_ +#define CORE_SYSTEM_H_ + +#include "file_sys/meta_file_system.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +namespace System { + +extern MetaFileSystem g_ctr_file_system; + +// State of the full emulator +typedef enum { + STATE_NULL = 0, ///< System is in null state, nothing initialized + STATE_IDLE, ///< System is in an initialized state, but not running + STATE_RUNNING, ///< System is running + STATE_LOADING, ///< System is loading a ROM + STATE_HALTED, ///< System is halted (error) + STATE_STALLED, ///< System is stalled (unused) + STATE_DEBUG, ///< System is in a special debug mode (unused) + STATE_DIE ///< System is shutting down +} State; + +extern volatile State g_state; + +void UpdateState(State state); +void Init(); +void RunLoopFor(int cycles); +void RunLoopUntil(u64 global_cycles); +void Shutdown(); + +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#endif // CORE_SYSTEM_H_ +
\ No newline at end of file |