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\file_sys\meta_file_system.h" />
|
||||||
<ClInclude Include="src\loader.h" />
|
<ClInclude Include="src\loader.h" />
|
||||||
<ClInclude Include="src\mem_map.h" />
|
<ClInclude Include="src\mem_map.h" />
|
||||||
|
<ClInclude Include="src\system.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="CMakeLists.txt" />
|
<None Include="CMakeLists.txt" />
|
||||||
|
|
|
@ -87,6 +87,7 @@
|
||||||
<ClInclude Include="src\file_sys\meta_file_system.h">
|
<ClInclude Include="src\file_sys\meta_file_system.h">
|
||||||
<Filter>file_sys</Filter>
|
<Filter>file_sys</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="src\system.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="CMakeLists.txt" />
|
<None Include="CMakeLists.txt" />
|
||||||
|
|
|
@ -29,14 +29,26 @@ namespace Core {
|
||||||
|
|
||||||
/// Start the core
|
/// Start the core
|
||||||
void Start() {
|
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
|
/// Kill the core
|
||||||
void Kill() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Stop the core
|
|
||||||
void Stop() {
|
void Stop() {
|
||||||
|
// TODO(ShizZy): ImplementMe
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Initialize the core
|
/// Initialize the core
|
||||||
|
|
|
@ -35,34 +35,24 @@ class EmuWindow;
|
||||||
|
|
||||||
namespace Core {
|
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
|
/// Start the core
|
||||||
void Start();
|
void Start();
|
||||||
|
|
||||||
/// Kill the core
|
/// Run the core CPU loop
|
||||||
void Kill();
|
void RunLoop();
|
||||||
|
|
||||||
/// Stop the core
|
/// Step the CPU one instruction
|
||||||
|
void SingleStep();
|
||||||
|
|
||||||
|
/// Halt the core
|
||||||
|
void Halt();
|
||||||
|
|
||||||
|
/// Kill the core
|
||||||
void Stop();
|
void Stop();
|
||||||
|
|
||||||
/// Initialize the core
|
/// Initialize the core
|
||||||
int Init(EmuWindow* emu_window);
|
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
|
} // 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