added system.h to project
This commit is contained in:
parent
8bb0c457bc
commit
c71868a6b1
5 changed files with 88 additions and 23 deletions
|
@ -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" />
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -29,14 +29,26 @@ namespace Core {
|
|||
|
||||
/// Start the core
|
||||
void Start() {
|
||||
// TODO(ShizZy): ImplementMe
|
||||
}
|
||||
|
||||
/// Run the core CPU loop
|
||||
void RunLoop() {
|
||||
// TODO(ShizZy): ImplementMe
|
||||
}
|
||||
|
||||
/// Step the CPU one instruction
|
||||
void SingleStep() {
|
||||
}
|
||||
|
||||
/// Halt the core
|
||||
void Halt() {
|
||||
// TODO(ShizZy): ImplementMe
|
||||
}
|
||||
|
||||
/// Kill the core
|
||||
void Kill() {
|
||||
}
|
||||
|
||||
/// Stop the core
|
||||
void Stop() {
|
||||
// TODO(ShizZy): ImplementMe
|
||||
}
|
||||
|
||||
/// Initialize the core
|
||||
|
|
|
@ -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();
|
||||
|
||||
/// Stop the core
|
||||
/// Step the CPU one instruction
|
||||
void SingleStep();
|
||||
|
||||
/// 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
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
61
src/core/src/system.h
Normal file
61
src/core/src/system.h
Normal file
|
@ -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_
|
||||
|
Loading…
Reference in a new issue