1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
struct Program : ares::Platform {
auto create() -> void;
auto main() -> void;
auto quit() -> void;
//platform.cpp
auto attach(ares::Node::Object) -> void override;
auto detach(ares::Node::Object) -> void override;
auto pak(ares::Node::Object) -> shared_pointer<vfs::directory> override;
auto event(ares::Event) -> void override;
auto log(string_view message) -> void override;
auto video(ares::Node::Video::Screen, const u32* data, u32 pitch, u32 width, u32 height) -> void override;
auto audio(ares::Node::Audio::Stream) -> void override;
auto input(ares::Node::Input::Input) -> void override;
//load.cpp
auto identify(const string& filename) -> shared_pointer<Emulator>;
auto load(shared_pointer<Emulator> emulator, string location = {}) -> bool;
auto unload() -> void;
//states.cpp
auto stateSave(u32 slot) -> bool;
auto stateLoad(u32 slot) -> bool;
//status.cpp
auto updateMessage() -> void;
auto showMessage(const string&) -> void;
//utility.cpp
auto pause(bool) -> void;
auto paletteUpdate() -> void;
auto runAheadUpdate() -> void;
auto captureScreenshot(const u32* data, u32 pitch, u32 width, u32 height) -> void;
auto openFile(BrowserDialog&) -> string;
auto selectFolder(BrowserDialog&) -> string;
//drivers.cpp
auto videoDriverUpdate() -> void;
auto videoMonitorUpdate() -> void;
auto videoFormatUpdate() -> void;
auto videoFullScreenToggle() -> void;
auto audioDriverUpdate() -> void;
auto audioDeviceUpdate() -> void;
auto audioFrequencyUpdate() -> void;
auto audioLatencyUpdate() -> void;
auto inputDriverUpdate() -> void;
bool startFullScreen = false;
string startGameLoad;
vector<ares::Node::Video::Screen> screens;
vector<ares::Node::Audio::Stream> streams;
bool paused = false;
bool fastForwarding = false;
bool rewinding = false;
bool runAhead = false;
bool requestScreenshot = false;
struct State {
u32 slot = 1;
} state;
//rewind.cpp
struct Rewind {
enum class Mode : u32 { Playing, Rewinding } mode = Mode::Playing;
vector<serializer> history;
u32 length = 0;
u32 frequency = 0;
u32 counter = 0;
} rewind;
auto rewindSetMode(Rewind::Mode) -> void;
auto rewindReset() -> void;
auto rewindRun() -> void;
struct Message {
u64 timestamp = 0;
string text;
maybe<u64> framesPerSecond;
} message;
};
extern Program program;
|