yaze
0.3.2
Link to the Past ROM Editor
Loading...
Searching...
No Matches
emulator_types.h
Go to the documentation of this file.
1
#ifndef YAZE_APP_EMU_EMULATOR_TYPES_H_
2
#define YAZE_APP_EMU_EMULATOR_TYPES_H_
3
4
// Native C++ domain types for the emulator interface.
5
//
6
// These replace direct proto type usage in IEmulator so the interface
7
// compiles and is testable without gRPC/protobuf. The gRPC service layer
8
// converts between these types and proto types in its own translation unit.
9
10
#include <cstdint>
11
#include <string>
12
#include <vector>
13
14
namespace
yaze::emu
{
15
16
// ============================================================================
17
// Input
18
// ============================================================================
19
20
enum class
InputButton
{
21
kUnspecified
= 0,
22
kA
= 1,
23
kB
= 2,
24
kX
= 3,
25
kY
= 4,
26
kL
= 5,
27
kR
= 6,
28
kSelect
= 7,
29
kStart
= 8,
30
kUp
= 9,
31
kDown
= 10,
32
kLeft
= 11,
33
kRight
= 12,
34
};
35
36
// ============================================================================
37
// Breakpoints
38
// ============================================================================
39
40
enum class
BreakpointKind
{
41
kUnspecified
= 0,
42
kExecute
= 1,
43
kRead
= 2,
44
kWrite
= 3,
45
kAccess
= 4,
46
kConditional
= 5,
47
};
48
49
enum class
CpuKind
{
50
kUnspecified
= 0,
51
k65816
= 1,
52
kSpc700
= 2,
53
};
54
55
struct
BreakpointDescriptor
{
56
uint32_t
address
= 0;
57
BreakpointKind
kind
=
BreakpointKind::kUnspecified
;
58
CpuKind
cpu
=
CpuKind::kUnspecified
;
59
std::string
condition
;
60
std::string
description
;
61
};
62
63
struct
BreakpointSnapshot
{
64
uint32_t
id
= 0;
65
uint32_t
address
= 0;
66
BreakpointKind
kind
=
BreakpointKind::kUnspecified
;
67
CpuKind
cpu
=
CpuKind::kUnspecified
;
68
bool
enabled
=
true
;
69
std::string
condition
;
70
std::string
description
;
71
uint32_t
hit_count
= 0;
72
};
73
74
// ============================================================================
75
// CPU State
76
// ============================================================================
77
78
struct
CpuStateSnapshot
{
79
uint32_t
a
= 0;
80
uint32_t
x
= 0;
81
uint32_t
y
= 0;
82
uint32_t
sp
= 0;
83
uint32_t
pc
= 0;
84
uint32_t
db
= 0;
85
uint32_t
pb
= 0;
86
uint32_t
d
= 0;
87
uint32_t
status
= 0;
88
bool
flag_n
=
false
;
89
bool
flag_v
=
false
;
90
bool
flag_z
=
false
;
91
bool
flag_c
=
false
;
92
uint64_t
cycles
= 0;
93
};
94
95
// ============================================================================
96
// Game State (ALTTP-specific)
97
// ============================================================================
98
99
struct
GameSnapshot
{
100
uint32_t
game_mode
= 0;
101
uint32_t
link_state
= 0;
102
uint32_t
link_pos_x
= 0;
103
uint32_t
link_pos_y
= 0;
104
uint32_t
link_health
= 0;
105
std::vector<uint8_t>
screenshot_png
;
106
};
107
108
// ============================================================================
109
// Breakpoint Hit Result
110
// ============================================================================
111
112
struct
BreakpointHitResult
{
113
bool
hit
=
false
;
114
BreakpointSnapshot
breakpoint
;
115
CpuStateSnapshot
cpu_state
;
116
};
117
118
// ============================================================================
119
// Feature Capability Query
120
// ============================================================================
121
126
enum class
EmulatorFeature
{
127
kCollisionOverlay
,
128
kSaveState
,
129
kLoadState
,
130
kScreenshot
,
131
kEventSubscription
,
132
kDisassembly
,
133
kTraceLog
,
134
};
135
136
}
// namespace yaze::emu
137
138
#endif
// YAZE_APP_EMU_EMULATOR_TYPES_H_
yaze::emu
SNES Emulation and debugging tools.
Definition
editor.h:30
yaze::emu::EmulatorFeature
EmulatorFeature
Features that emulator backends may optionally support. Use with IEmulator::SupportsFeature() to quer...
Definition
emulator_types.h:126
yaze::emu::EmulatorFeature::kEventSubscription
@ kEventSubscription
yaze::emu::EmulatorFeature::kScreenshot
@ kScreenshot
yaze::emu::EmulatorFeature::kDisassembly
@ kDisassembly
yaze::emu::EmulatorFeature::kSaveState
@ kSaveState
yaze::emu::EmulatorFeature::kTraceLog
@ kTraceLog
yaze::emu::EmulatorFeature::kLoadState
@ kLoadState
yaze::emu::EmulatorFeature::kCollisionOverlay
@ kCollisionOverlay
yaze::emu::BreakpointKind
BreakpointKind
Definition
emulator_types.h:40
yaze::emu::BreakpointKind::kAccess
@ kAccess
yaze::emu::BreakpointKind::kConditional
@ kConditional
yaze::emu::BreakpointKind::kUnspecified
@ kUnspecified
yaze::emu::BreakpointKind::kRead
@ kRead
yaze::emu::BreakpointKind::kExecute
@ kExecute
yaze::emu::BreakpointKind::kWrite
@ kWrite
yaze::emu::CpuKind
CpuKind
Definition
emulator_types.h:49
yaze::emu::CpuKind::kSpc700
@ kSpc700
yaze::emu::CpuKind::kUnspecified
@ kUnspecified
yaze::emu::CpuKind::k65816
@ k65816
yaze::emu::InputButton
InputButton
Definition
emulator_types.h:20
yaze::emu::InputButton::kX
@ kX
yaze::emu::InputButton::kSelect
@ kSelect
yaze::emu::InputButton::kStart
@ kStart
yaze::emu::InputButton::kLeft
@ kLeft
yaze::emu::InputButton::kRight
@ kRight
yaze::emu::InputButton::kA
@ kA
yaze::emu::InputButton::kY
@ kY
yaze::emu::InputButton::kDown
@ kDown
yaze::emu::InputButton::kB
@ kB
yaze::emu::InputButton::kL
@ kL
yaze::emu::InputButton::kUnspecified
@ kUnspecified
yaze::emu::InputButton::kUp
@ kUp
yaze::emu::InputButton::kR
@ kR
yaze::emu::BreakpointDescriptor
Definition
emulator_types.h:55
yaze::emu::BreakpointDescriptor::description
std::string description
Definition
emulator_types.h:60
yaze::emu::BreakpointDescriptor::cpu
CpuKind cpu
Definition
emulator_types.h:58
yaze::emu::BreakpointDescriptor::kind
BreakpointKind kind
Definition
emulator_types.h:57
yaze::emu::BreakpointDescriptor::address
uint32_t address
Definition
emulator_types.h:56
yaze::emu::BreakpointDescriptor::condition
std::string condition
Definition
emulator_types.h:59
yaze::emu::BreakpointHitResult
Definition
emulator_types.h:112
yaze::emu::BreakpointHitResult::breakpoint
BreakpointSnapshot breakpoint
Definition
emulator_types.h:114
yaze::emu::BreakpointHitResult::cpu_state
CpuStateSnapshot cpu_state
Definition
emulator_types.h:115
yaze::emu::BreakpointHitResult::hit
bool hit
Definition
emulator_types.h:113
yaze::emu::BreakpointSnapshot
Definition
emulator_types.h:63
yaze::emu::BreakpointSnapshot::cpu
CpuKind cpu
Definition
emulator_types.h:67
yaze::emu::BreakpointSnapshot::hit_count
uint32_t hit_count
Definition
emulator_types.h:71
yaze::emu::BreakpointSnapshot::enabled
bool enabled
Definition
emulator_types.h:68
yaze::emu::BreakpointSnapshot::condition
std::string condition
Definition
emulator_types.h:69
yaze::emu::BreakpointSnapshot::address
uint32_t address
Definition
emulator_types.h:65
yaze::emu::BreakpointSnapshot::kind
BreakpointKind kind
Definition
emulator_types.h:66
yaze::emu::BreakpointSnapshot::description
std::string description
Definition
emulator_types.h:70
yaze::emu::CpuStateSnapshot
Definition
emulator_types.h:78
yaze::emu::CpuStateSnapshot::flag_n
bool flag_n
Definition
emulator_types.h:88
yaze::emu::CpuStateSnapshot::x
uint32_t x
Definition
emulator_types.h:80
yaze::emu::CpuStateSnapshot::cycles
uint64_t cycles
Definition
emulator_types.h:92
yaze::emu::CpuStateSnapshot::status
uint32_t status
Definition
emulator_types.h:87
yaze::emu::CpuStateSnapshot::pb
uint32_t pb
Definition
emulator_types.h:85
yaze::emu::CpuStateSnapshot::y
uint32_t y
Definition
emulator_types.h:81
yaze::emu::CpuStateSnapshot::d
uint32_t d
Definition
emulator_types.h:86
yaze::emu::CpuStateSnapshot::pc
uint32_t pc
Definition
emulator_types.h:83
yaze::emu::CpuStateSnapshot::flag_z
bool flag_z
Definition
emulator_types.h:90
yaze::emu::CpuStateSnapshot::flag_c
bool flag_c
Definition
emulator_types.h:91
yaze::emu::CpuStateSnapshot::sp
uint32_t sp
Definition
emulator_types.h:82
yaze::emu::CpuStateSnapshot::flag_v
bool flag_v
Definition
emulator_types.h:89
yaze::emu::CpuStateSnapshot::a
uint32_t a
Definition
emulator_types.h:79
yaze::emu::CpuStateSnapshot::db
uint32_t db
Definition
emulator_types.h:84
yaze::emu::GameSnapshot
Definition
emulator_types.h:99
yaze::emu::GameSnapshot::game_mode
uint32_t game_mode
Definition
emulator_types.h:100
yaze::emu::GameSnapshot::link_health
uint32_t link_health
Definition
emulator_types.h:104
yaze::emu::GameSnapshot::screenshot_png
std::vector< uint8_t > screenshot_png
Definition
emulator_types.h:105
yaze::emu::GameSnapshot::link_state
uint32_t link_state
Definition
emulator_types.h:101
yaze::emu::GameSnapshot::link_pos_x
uint32_t link_pos_x
Definition
emulator_types.h:102
yaze::emu::GameSnapshot::link_pos_y
uint32_t link_pos_y
Definition
emulator_types.h:103
src
app
emu
emulator_types.h
Generated by
1.10.0