Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/gameboy/system/system.cpp
2 views
1
#include <gameboy/gameboy.hpp>
2
3
#define SYSTEM_CPP
4
namespace GameBoy {
5
6
#include "bootrom-dmg.cpp"
7
#include "bootrom-sgb.cpp"
8
#include "bootrom-cgb.cpp"
9
#include "serialization.cpp"
10
System system;
11
12
void System::run() {
13
scheduler.sync = Scheduler::SynchronizeMode::None;
14
15
scheduler.enter();
16
if(scheduler.exit_reason() == Scheduler::ExitReason::FrameEvent) {
17
}
18
}
19
20
void System::runtosave() {
21
scheduler.sync = Scheduler::SynchronizeMode::CPU;
22
runthreadtosave();
23
24
scheduler.active_thread = lcd.thread;
25
runthreadtosave();
26
}
27
28
void System::runthreadtosave() {
29
while(true) {
30
scheduler.enter();
31
if(scheduler.exit_reason() == Scheduler::ExitReason::SynchronizeEvent) break;
32
if(scheduler.exit_reason() == Scheduler::ExitReason::FrameEvent) {
33
}
34
}
35
}
36
37
void System::init() {
38
assert(interface != 0);
39
}
40
41
void System::load(Revision revision) {
42
this->revision = revision;
43
serialize_init();
44
}
45
46
void System::power() {
47
bus.power();
48
cartridge.power();
49
cpu.power();
50
apu.power();
51
lcd.power();
52
scheduler.init();
53
54
clocks_executed = 0;
55
}
56
57
}
58
59