VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
VirtualC64.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2// This file is part of VirtualC64
3//
4// Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de
5// This FILE is dual-licensed. You are free to choose between:
6//
7// - The GNU General Public License v3 (or any later version)
8// - The Mozilla Public License v2
9//
10// SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0
11// -----------------------------------------------------------------------------
13
14#pragma once
15
16#include "VirtualC64Types.h"
17#include "Error.h"
18#include "MediaFile.h"
19#include <filesystem>
20
21namespace vc64 {
22
23using peddle::Guard;
24
25//
26// Public API
27//
28
29class API {
30
31public:
32
33 class Emulator *emu = nullptr;
34
35 API() { }
36 API(Emulator *emu) : emu(emu) { }
37
38 void suspend();
39 void resume();
40
41 bool isUserThread() const;
42};
43
46struct MemoryAPI : API {
47
48 class C64Memory *mem = nullptr;
49
52 const MemConfig &getConfig() const;
53
56 const MemInfo &getInfo() const;
57 const MemInfo &getCachedInfo() const;
58
61 string memdump(u16 addr, isize num, bool hex, isize pads, MemoryType src) const;
62 string txtdump(u16 addr, isize num, MemoryType src) const;
63
66 void drawHeatmap(u32 *buffer, isize width, isize height) const;
67
68};
69
70
73struct CPUAPI : API {
74
75 class CPU *cpu = nullptr;
76
79 const CPUInfo &getInfo() const;
80 const CPUInfo &getCachedInfo() const;
81
88 isize loggedInstructions() const;
89
92 void clearLog();
93
98 void setNumberFormat(peddle::DasmNumberFormat instrFormat, peddle::DasmNumberFormat dataFormat);
99
106 isize disassemble(char *dst, const char *fmt, u16 addr) const;
107
114 isize disassembleRecorded(char *dst, const char *fmt, isize nr) const;
115
120 peddle::Guard *breakpointNr(long nr) const;
121
126 Guard *breakpointAt(u32 addr) const;
127
132 Guard *watchpointNr(long nr) const;
133
138 Guard *watchpointAt(u32 addr) const;
139
140};
141
142
145struct CIAAPI : API {
146
147 class CIA *cia = nullptr;
148
151 const CIAConfig &getConfig() const;
152
155 const CIAInfo &getInfo() const;
156 const CIAInfo &getCachedInfo() const;
157
160 CIAStats getStats() const;
161
162};
163
164
167struct VICIIAPI : API {
168
169 class VICII *vicii = nullptr;
170
173 const VICIITraits &getTraits() const;
174
177 const VICIIConfig &getConfig() const;
178
181 const VICIIInfo &getInfo() const;
182 const VICIIInfo &getCachedInfo() const;
183
187 SpriteInfo getSpriteInfo(isize nr) const;
188
191 u32 getColor(isize nr) const;
192
195 u32 getColor(isize nr, Palette palette) const;
196
197};
198
199
202struct SIDAPI : API {
203
204 class SIDBridge *sidBridge = nullptr;
205
209 SIDInfo getInfo(isize nr) const;
210 SIDInfo getCachedInfo(isize nr) const;
211
215
219 float draw(u32 *buffer, isize width, isize height,
220 float maxAmp, u32 color, isize sid = -1) const;
222
223};
224
225
228struct AudioPortAPI : API {
229
230 class AudioPort *audioPort = nullptr;
231
234 AudioPortStats getStats() const;
235
236
240
249 isize copyMono(float *buffer, isize n);
250
257 isize copyStereo(float *left, float *right, isize n);
258
268 isize copyInterleaved(float *buffer, isize n);
269
273
277 float draw(u32 *buffer, isize width, isize height,
278 float maxAmp, u32 color, isize sid = -1) const;
280
281};
282
283
286struct VideoPortAPI : API {
287
288 class VideoPort *videoPort = nullptr;
289
293
300 u32 *getTexture() const;
301 u32 *getDmaTexture() const;
302
303};
304
305
308struct DmaDebuggerAPI : API {
309
310 class DmaDebugger *dmaDebugger = nullptr;
311
314 const DmaDebuggerConfig &getConfig() const;
315
316};
317
318
321struct KeyboardAPI : API {
322
323 class Keyboard *keyboard = nullptr;
324
337 void press(C64Key key, double delay = 0.0) const;
338
347 void release(C64Key key, double delay = 0.0) const;
348
352 bool isPressed(C64Key key) const;
353
357 void autoType(const string &text);
358
361 void abortAutoTyping();
362
363};
364
365
368struct MouseAPI : API {
369
370 class Mouse *mouse = nullptr;
371
381 bool detectShakeXY(double x, double y);
382
394 bool detectShakeDxDy(double dx, double dy);
395};
396
397
400struct JoystickAPI : API {
401
402 class Joystick *joystick = nullptr;
403
406 const JoystickInfo &getInfo() const;
407 const JoystickInfo &getCachedInfo() const;
408};
409
410
413struct PaddleAPI : API {
414
415 class Paddle *paddle = nullptr;
416
419 const PaddleInfo &getInfo() const;
420 const PaddleInfo &getCachedInfo() const;
421};
422
423
426struct DatasetteAPI : API {
427
428 class Datasette *datasette = nullptr;
429
432 const DatasetteInfo &getInfo() const;
433 const DatasetteInfo &getCachedInfo() const;
434
438 void insertTape(MediaFile &file);
439
443 void ejectTape();
444
445};
446
447
450struct ControlPortAPI : API {
451
452 class ControlPort *controlPort = nullptr;
453
457
461
465};
466
467
470struct RecorderAPI : API {
471
472 class Recorder *recorder = nullptr;
473
476 const RecorderConfig &getConfig() const;
477
480 const RecorderInfo &getInfo() const;
481 const RecorderInfo &getCachedInfo() const;
482
485 const fs::path getExecPath() const;
486
489 void setExecPath(const std::filesystem::path &path);
490
497 void startRecording(isize x1, isize y1, isize x2, isize y2);
498
501 void stopRecording();
502
507 bool exportAs(const std::filesystem::path &path);
508
509};
510
511
514struct ExpansionPortAPI : API {
515
516 class ExpansionPort *expansionPort = nullptr;
517
520
523 CartridgeTraits getCartridgeTraits() const;
524
527 const CartridgeInfo &getInfo() const;
528 const CartridgeInfo &getCachedInfo() const;
529
533 CartridgeRomInfo getRomInfo(isize nr) const;
534
538
541 void attachCartridge(const std::filesystem::path &path, bool reset = true);
542
545 void attachCartridge(const MediaFile &c, bool reset = true);
546
549 // void attachCartridge(Cartridge *c);
550
553 void attachReu(isize capacity);
554
557 void attachGeoRam(isize capacity);
558
562
565 void detachCartridge();
566
568
569};
570
571
572//
573// Serial port (IEC bus)
574//
575
576struct SerialPortAPI : API {
577
578 class SerialPort *serialPort = nullptr;
579
580};
581
582
583//
584// Disk
585//
586
589struct DiskAPI : API {
590
591 class Drive *drive = nullptr;
592
596 class Disk *get();
597};
598
599
600//
601// Drive
602//
603
606struct DriveAPI : API {
607
608 class Drive *drive = nullptr;
609
610 DiskAPI disk;
611
614 const DriveConfig &getConfig() const;
615
618 const DriveInfo &getInfo() const;
619 const DriveInfo &getCachedInfo() const;
620
625 void insertBlankDisk(DOSType fstype, string name);
626
631 void insertMedia(MediaFile &file, bool wp);
632
637 void insertFileSystem(const class FileSystem &fs, bool wp);
638
641 void ejectDisk();
642};
643
644
647struct RetroShellAPI : API {
648
649 class RetroShell *retroShell = nullptr;
650
654
659 const char *text();
660
668 isize cursorRel();
669
673
678 void press(RetroShellKey key, bool shift = false);
679
683 void press(char c);
684
688 void press(const string &s);
689
693
698 void setStream(std::ostream &os);
699
703
711 void execScript(std::stringstream &ss);
712 void execScript(const std::ifstream &fs);
713 void execScript(const string &contents);
714 void execScript(const MediaFile &file);
715
717};
718
744struct DefaultsAPI : API {
745
746 class Defaults *defaults = nullptr;
747
748 DefaultsAPI(Defaults *defaults) : defaults(defaults) { }
749
753
754public:
755
760 void load(const std::filesystem::path &path);
761
765 void load(std::ifstream &stream);
766
770 void load(std::stringstream &stream);
771
775 void save(const std::filesystem::path &path);
776
779 void save(std::ofstream &stream);
780
783 void save(std::stringstream &stream);
784
785
789
790public:
791
797 string getString(const string &key) const;
798
804 i64 getInt(const string &key) const;
805
811 i64 get(Option option) const;
812
819 i64 get(Option option, isize nr) const;
820
826 string getFallbackRaw(const string &key) const;
827
833 i64 getFallback(const string &key) const;
834
840 i64 getFallback(Option option) const;
841
848 i64 getFallback(Option option, isize nr = 0) const;
849
850
854
860 void set(const string &key, const string &value);
861
868 void set(Option opt, const string &value, std::vector<isize> objids = { 0 });
869
876 void set(Option opt, i64 value, std::vector<isize> objids = { 0 });
877
882 void setFallback(const string &key, const string &value);
883
889 void setFallback(Option opt, const string &value, std::vector<isize> objids = { 0 });
890
896 void setFallback(Option opt, i64 value, std::vector<isize> objids = { 0 });
897
898
902
905 void remove();
906
911 void remove(const string &key) throws;
912
917 void remove(Option option) throws;
918
924 void remove(Option option, isize nr) throws;
925
931 void remove(Option option, std::vector <isize> nrs) throws;
932
934};
935
936
939struct C64API : public API {
940
941 class C64 *c64 = nullptr;
942
945
948 const C64Info &getInfo() const;
949 const C64Info &getCachedInfo() const;
950
955 EventSlotInfo getSlotInfo(isize nr) const;
956
961 RomTraits getRomTraits(RomType type) const;
962
966
972 void hardReset();
973
979 void softReset();
980
984
999 InspectionTarget getInspectionTarget() const;
1000
1003 void setInspectionTarget(InspectionTarget target);
1004
1008
1009
1013
1021 MediaFile *takeSnapshot();
1022
1027 void loadSnapshot(const MediaFile &snapshot);
1028
1029
1033
1040 void loadRom(const fs::path &path);
1041
1044 void loadRom(const MediaFile &file);
1045
1049 void deleteRom(RomType type);
1050
1055 void saveRom(RomType rom, const std::filesystem::path &path);
1056
1057
1061
1064 void flash(const MediaFile &file);
1065
1068 void flash(const MediaFile &file, isize item);
1069
1072 void flash(const FileSystem &fs, isize item);
1074};
1075
1076
1086class VirtualC64 : API {
1087
1088 //
1089 // Static methods
1090 //
1091
1092public:
1093
1096 static string version();
1097
1100 static string build();
1101
1102
1103 //
1104 // Initializing
1105 //
1106
1107public:
1108
1109 VirtualC64();
1110 ~VirtualC64();
1111
1114
1117 const EmulatorConfig &getConfig() const;
1118
1121 const EmulatorInfo &getInfo() const;
1122 const EmulatorInfo &getCachedInfo() const;
1123
1126 const EmulatorStats &getStats() const;
1127
1131
1134 bool isPoweredOn();
1135
1138 bool isPoweredOff();
1139
1142 bool isPaused();
1143
1146 bool isRunning();
1147
1150 bool isSuspended();
1151
1154 bool isHalted();
1155
1158 bool isWarping();
1159
1162 bool isTracking();
1163
1175 void isReady();
1176
1177
1181
1188 void powerOn();
1189
1195 void powerOff();
1196
1205 void run();
1206
1213 void pause();
1214
1221 void halt();
1222
1228 void suspend();
1229
1235 void resume();
1236
1239 void warpOn(isize source = 0);
1240
1243 void warpOff(isize source = 0);
1244
1247 void trackOn(isize source = 0);
1248
1251 void trackOff(isize source = 0);
1252
1253
1257
1265 void stepInto();
1266
1286 void stepOver();
1287
1288
1292
1301 void wakeUp();
1302
1303
1307
1322 void launch(const void *listener, Callback *func);
1323
1334 i64 get(Option option) const;
1335
1346 i64 get(Option option, long id) const;
1347
1352 void set(C64Model model);
1353
1364 void set(Option opt, i64 value) throws;
1365
1377 void set(Option opt, i64 value, long id);
1378
1379
1385 void exportConfig(const std::filesystem::path &path) const;
1386 void exportConfig(std::ostream& stream) const;
1387
1388
1392
1395 void put(const Cmd &cmd);
1396 void put(CmdType type, i64 payload = 0, i64 payload2 = 0) { put(Cmd(type, payload, payload2)); }
1397 void put(CmdType type, ConfigCmd payload) { put(Cmd(type, payload)); }
1398 void put(CmdType type, KeyCmd payload) { put(Cmd(type, payload)); }
1399 void put(CmdType type, CoordCmd payload) { put(Cmd(type, payload)); }
1400 void put(CmdType type, GamePadCmd payload) { put(Cmd(type, payload)); }
1401 void put(CmdType type, TapeCmd payload) { put(Cmd(type, payload)); }
1402 void put(CmdType type, AlarmCmd payload) { put(Cmd(type, payload)); }
1404
1405
1409 C64API c64;
1410 MemoryAPI mem;
1411 CPUAPI cpu;
1412 CIAAPI cia1, cia2;
1413 VICIIAPI vicii;
1414 SIDAPI sid;
1415 AudioPortAPI audioPort;
1416 VideoPortAPI videoPort;
1417 DmaDebuggerAPI dmaDebugger;
1418 KeyboardAPI keyboard;
1419 DatasetteAPI datasette;
1420 ControlPortAPI controlPort1, controlPort2;
1421 RecorderAPI recorder;
1422 ExpansionPortAPI expansionPort;
1423 SerialPortAPI serialPort;
1424 DriveAPI drive8, drive9;
1425 RetroShellAPI retroShell;
1426};
1427
1428}
Public API.
Definition VirtualC64.h:1086
void wakeUp()
Sends a wakeup signal to the emulator thread.
Definition VirtualC64.cpp:292
const EmulatorStats & getStats() const
Returns statistical information about the components.
Definition VirtualC64.cpp:152
void run()
Starts emulation.
Definition VirtualC64.cpp:224
void put(const Cmd &cmd)
Feeds a command into the command queue.
Definition VirtualC64.cpp:361
const EmulatorInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:140
void powerOff()
Switches the emulator off.
Definition VirtualC64.cpp:218
i64 get(Option option) const
Queries a configuration option.
Definition VirtualC64.cpp:305
static string build()
eturns a build-number string for this release.
Definition VirtualC64.cpp:46
void suspend()
Suspends the emulator thread.
Definition VirtualC64.cpp:242
bool isRunning()
Returns true iff the emulator is running.
Definition VirtualC64.cpp:176
void resume()
Suspends the emulator thread.
Definition VirtualC64.cpp:248
bool isSuspended()
Returns true iff the emulator has been suspended.
Definition VirtualC64.cpp:182
void launch(const void *listener, Callback *func)
Launches the emulator thread.
Definition VirtualC64.cpp:298
bool isHalted()
Returns true iff the emulator has shut down.
Definition VirtualC64.cpp:188
void trackOn(isize source=0)
Enables track mode.
Definition VirtualC64.cpp:266
static DefaultsAPI defaults
Custom APIs of subcomponents.
Definition VirtualC64.h:1408
void trackOff(isize source=0)
Disables track mode.
Definition VirtualC64.cpp:272
static string version()
Returns a version string for this release.
Definition VirtualC64.cpp:40
void powerOn()
Switches the emulator on.
Definition VirtualC64.cpp:212
void put(CmdType type, ConfigCmd payload)
Feeds a command into the command queue.
Definition VirtualC64.h:1397
void put(CmdType type, i64 payload=0, i64 payload2=0)
Feeds a command into the command queue.
Definition VirtualC64.h:1396
bool isPoweredOn()
Returns true iff the emulator if the emulator is powered on.
Definition VirtualC64.cpp:158
void pause()
Pauses emulation.
Definition VirtualC64.cpp:230
void put(CmdType type, GamePadCmd payload)
Feeds a command into the command queue.
Definition VirtualC64.h:1400
void put(CmdType type, KeyCmd payload)
Feeds a command into the command queue.
Definition VirtualC64.h:1398
void warpOff(isize source=0)
Disables warp mode.
Definition VirtualC64.cpp:260
void stepOver()
Steps over the current instruction.
Definition VirtualC64.cpp:285
void exportConfig(const std::filesystem::path &path) const
Exports the current configuration.
bool isWarping()
Returns true iff warp mode is active.
Definition VirtualC64.cpp:194
void put(CmdType type, AlarmCmd payload)
Feeds a command into the command queue.
Definition VirtualC64.h:1402
bool isPoweredOff()
Returns true iff the emulator if the emulator is powered off.
Definition VirtualC64.cpp:164
void put(CmdType type, TapeCmd payload)
Feeds a command into the command queue.
Definition VirtualC64.h:1401
void put(CmdType type, CoordCmd payload)
Feeds a command into the command queue.
Definition VirtualC64.h:1399
void set(C64Model model)
Configures the emulator to match a specific C64 model.
Definition VirtualC64.cpp:319
const EmulatorConfig & getConfig() const
Returns the component's current configuration.
Definition VirtualC64.cpp:134
bool isTracking()
Returns true iff the emulator runs in track mode.
Definition VirtualC64.cpp:200
void halt()
Terminates the emulator thread.
Definition VirtualC64.cpp:236
bool isPaused()
Returns true iff the emulator is in paused state.
Definition VirtualC64.cpp:170
void isReady()
Checks if the emulator is runnable.
Definition VirtualC64.cpp:206
void warpOn(isize source=0)
Enables warp mode.
Definition VirtualC64.cpp:254
const EmulatorInfo & getCachedInfo() const
Returns the component's current configuration.
Definition VirtualC64.cpp:146
void stepInto()
Steps a single instruction.
Definition VirtualC64.cpp:278
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
C64_MODEL
C64 model.
Definition C64Types.h:33
DOS_TYPE
File system type.
Definition FSTypes.h:27
M_TYPE
Memory type.
Definition MemoryTypes.h:26
CMD_TYPE
Emulator command.
Definition CmdQueueTypes.h:28
OPT
Configuration option.
Definition OptionTypes.h:26
PALETTE
Color palette.
Definition MonitorTypes.h:26
RSKEY_KEY
RetroShell special key.
Definition RetroShellTypes.h:26
Audio Port Public API.
Definition VirtualC64.h:228
isize copyMono(float *buffer, isize n)
Extracts a number of mono samples from the audio buffer Internally, the audio port maintains a ringbu...
Definition VirtualC64.cpp:746
isize copyStereo(float *left, float *right, isize n)
Extracts a number of stereo samples from the audio buffer.
Definition VirtualC64.cpp:753
AudioPortStats getStats() const
Returns statistical information about the components.
Definition VirtualC64.cpp:739
isize copyInterleaved(float *buffer, isize n)
Extracts a number of stereo samples from the audio buffer.
Definition VirtualC64.cpp:760
float draw(u32 *buffer, isize width, isize height, float maxAmp, u32 color, isize sid=-1) const
Draws a visual representation of the waveform.
C64 API.
Definition VirtualC64.h:939
RomTraits getRomTraits(RomType type) const
Returns information about one of the installed Roms.
Definition VirtualC64.cpp:435
void loadSnapshot(const MediaFile &snapshot)
Loads a snapshot into the emulator.
Definition VirtualC64.cpp:447
void setInspectionTarget(InspectionTarget target)
Sets the current inspection target.
Definition VirtualC64.cpp:405
void saveRom(RomType rom, const std::filesystem::path &path)
Saves a ROM to disk.
Definition VirtualC64.cpp:475
InspectionTarget getInspectionTarget() const
Returns the current inspection target.
Definition VirtualC64.cpp:399
const C64Info & getCachedInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:423
void softReset()
Performs a hard reset.
Definition VirtualC64.cpp:386
MediaFile * takeSnapshot()
Takes a snapshot.
Definition VirtualC64.cpp:441
const C64Info & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:417
void removeInspectionTarget()
Removes the current inspection target.
Definition VirtualC64.cpp:411
void deleteRom(RomType type)
Removes an installed ROM The ROM contents is overwritten with zeroes.
Definition VirtualC64.cpp:468
void loadRom(const fs::path &path)
Loads a ROM from a file The ROM type is determined automatically.
Definition VirtualC64.cpp:454
EventSlotInfo getSlotInfo(isize nr) const
Returns the current state of an event slot.
Definition VirtualC64.cpp:429
void hardReset()
Performs a hard reset.
Definition VirtualC64.cpp:373
void flash(const MediaFile &file)
Flashes a file into memory.
Definition VirtualC64.cpp:482
Representation of a key on the C64 keyboard.
Definition C64Key.h:22
CIA API.
Definition VirtualC64.h:145
const CIAInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:638
CIAStats getStats() const
Returns statistical information about the components.
Definition VirtualC64.cpp:650
const CIAConfig & getConfig() const
Returns the component's current configuration.
Definition VirtualC64.cpp:632
CPU API.
Definition VirtualC64.h:73
isize loggedInstructions() const
Returns the number of instructions in the record buffer.
Definition VirtualC64.cpp:522
isize disassembleRecorded(char *dst, const char *fmt, isize nr) const
Disassembles an instruction from the record buffer.
Definition VirtualC64.cpp:550
Guard * breakpointAt(u32 addr) const
Returns the breakpoint set on a specific address.
Definition VirtualC64.cpp:563
void setNumberFormat(peddle::DasmNumberFormat instrFormat, peddle::DasmNumberFormat dataFormat)
Determines how the disassembler displays numbers.
Definition VirtualC64.cpp:536
const CPUInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:508
Guard * watchpointAt(u32 addr) const
Returns the breakpoint set on a specific address.
Definition VirtualC64.cpp:575
peddle::Guard * breakpointNr(long nr) const
Returns a breakpoint from the breakpoint list.
Definition VirtualC64.cpp:557
isize disassemble(char *dst, const char *fmt, u16 addr) const
Disassembles an instruction.
Definition VirtualC64.cpp:543
void clearLog()
Empties the record buffer.
Definition VirtualC64.cpp:529
Guard * watchpointNr(long nr) const
Returns a breakpoint from the breakpoint list.
Definition VirtualC64.cpp:569
Control Port API.
Definition VirtualC64.h:450
JoystickAPI joystick
Custom API of the joystick connected to this port.
Definition VirtualC64.h:456
PaddleAPI paddle
Custom API of the paddle connected to this port.
Definition VirtualC64.h:464
MouseAPI mouse
Custom API of the mouse connected to this port.
Definition VirtualC64.h:460
Datasette Public API.
Definition VirtualC64.h:426
void insertTape(MediaFile &file)
Inserts a tape.
Definition VirtualC64.cpp:882
const DatasetteInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:870
void ejectTape()
Ejects a tape.
Definition VirtualC64.cpp:889
Datasette current state.
Definition DatasetteTypes.h:62
The user's defaults storage.
Definition VirtualC64.h:744
i64 getInt(const string &key) const
Queries a key-value pair.
Definition VirtualC64.cpp:1204
i64 getFallback(const string &key) const
Queries a fallback key-value pair.
Definition VirtualC64.cpp:1228
void save(const std::filesystem::path &path)
Saves a storage file to disk.
void set(const string &key, const string &value)
Writes a key-value pair into the user storage.
Definition VirtualC64.cpp:1240
void remove()
Deletes all key-value pairs.
Definition VirtualC64.cpp:1276
i64 get(Option option) const
Queries a key-value pair.
Definition VirtualC64.cpp:1210
string getFallbackRaw(const string &key) const
Queries a fallback key-value pair.
Definition VirtualC64.cpp:1222
void setFallback(const string &key, const string &value)
Writes a key-value pair into the fallback storage.
Definition VirtualC64.cpp:1258
string getString(const string &key) const
Queries a key-value pair.
Definition VirtualC64.cpp:1198
i64 getFallback(Option option) const
Queries a fallback key-value pair.
void load(const std::filesystem::path &path)
Loads a storage file from disk.
Disk Public API.
Definition VirtualC64.h:589
class Disk * get()
Getter for the raw disk object.
Definition VirtualC64.cpp:1100
DMA Debugger Public API.
Definition VirtualC64.h:308
const DmaDebuggerConfig & getConfig() const
Returns the component's current configuration.
Definition VirtualC64.cpp:789
Drive Public API.
Definition VirtualC64.h:606
void insertMedia(MediaFile &file, bool wp)
Inserts a disk created from a media file.
Definition VirtualC64.cpp:1136
const DriveConfig & getConfig() const
Returns the component's current configuration.
Definition VirtualC64.cpp:1111
void insertBlankDisk(DOSType fstype, string name)
Inserts a new disk.
Definition VirtualC64.cpp:1129
void ejectDisk()
Ejects the current disk.
Definition VirtualC64.cpp:1150
void insertFileSystem(const class FileSystem &fs, bool wp)
Inserts a disk created from a file system.
Definition VirtualC64.cpp:1143
const DriveInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:1117
The current emulator configuration.
Definition EmulatorTypes.h:302
The current emulator state.
Definition EmulatorTypes.h:309
Collected run-time data.
Definition EmulatorTypes.h:323
Expansion Port Public API.
Definition VirtualC64.h:514
void attachReu(isize capacity)
Attaches a cartridge to the expansion port.
Definition VirtualC64.cpp:1067
CartridgeRomInfo getRomInfo(isize nr) const
Returns the state of one of the cartridge ROM packets.
Definition VirtualC64.cpp:1047
void attachIsepicCartridge()
Attaches an Isepic module to the expansion port.
Definition VirtualC64.cpp:1081
void detachCartridge()
Detaches the currently plugged in cartridge.
Definition VirtualC64.cpp:1088
const CartridgeInfo & getCachedInfo() const
Returns the traits of the current cartridge.
Definition VirtualC64.cpp:1041
void attachCartridge(const std::filesystem::path &path, bool reset=true)
Attaches a cartridge to the expansion port.
Definition VirtualC64.cpp:1053
const CartridgeInfo & getInfo() const
Returns the state of the current cartridge.
Definition VirtualC64.cpp:1035
CartridgeTraits getCartridgeTraits() const
Returns the traits of the current cartridge.
Definition VirtualC64.cpp:1029
void attachGeoRam(isize capacity)
Attaches a GeoRAM module to the expansion port.
Definition VirtualC64.cpp:1074
Joystick Public API.
Definition VirtualC64.h:400
const JoystickInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:836
Keyboard Public API.
Definition VirtualC64.h:321
void abortAutoTyping()
Aborts any active auto-typing activity.
Definition VirtualC64.cpp:824
void release(C64Key key, double delay=0.0) const
Releases a key.
Definition VirtualC64.cpp:813
bool isPressed(C64Key key) const
Checks if a key is currently pressed.
Definition VirtualC64.cpp:801
void press(C64Key key, double delay=0.0) const
Presses a key.
Definition VirtualC64.cpp:807
void autoType(const string &text)
Uses the auto-typing daemon to type a string.
Definition VirtualC64.cpp:818
Memory API.
Definition VirtualC64.h:46
void drawHeatmap(u32 *buffer, isize width, isize height) const
Experimental.
Definition VirtualC64.cpp:621
const MemInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:593
string memdump(u16 addr, isize num, bool hex, isize pads, MemoryType src) const
Returns a string representations for a portion of memory.
Definition VirtualC64.cpp:607
const MemConfig & getConfig() const
Returns the component's current configuration.
Definition VirtualC64.cpp:586
Mouse Public API.
Definition VirtualC64.h:368
bool detectShakeXY(double x, double y)
Feeds a coordinate into the shake detector.
Definition VirtualC64.cpp:900
bool detectShakeDxDy(double dx, double dy)
Feeds a coordinate into the shake detector.
Definition VirtualC64.cpp:905
Paddle Public API.
Definition VirtualC64.h:413
const PaddleInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:853
Screen Recorder Public API.
Definition VirtualC64.h:470
void stopRecording()
Interrupts a recording in progress.
Definition VirtualC64.cpp:951
const fs::path getExecPath() const
Returns the path to the FFmpeg executable.
Definition VirtualC64.cpp:934
void setExecPath(const std::filesystem::path &path)
Sets the path to the FFmpeg executable.
Definition VirtualC64.cpp:939
const RecorderInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:922
void startRecording(isize x1, isize y1, isize x2, isize y2)
Starts the recorder.
Definition VirtualC64.cpp:945
const RecorderConfig & getConfig() const
Returns the component's configuration.
Definition VirtualC64.cpp:916
bool exportAs(const std::filesystem::path &path)
Exports the recorded video to a file.
Definition VirtualC64.cpp:957
RetroShell Public API.
Definition VirtualC64.h:647
const char * text()
Returns a pointer to the text buffer.
Definition VirtualC64.cpp:964
void setStream(std::ostream &os)
Assign an additional output stream.
Definition VirtualC64.cpp:1018
void press(RetroShellKey key, bool shift=false)
Informs RetroShell that a key has been typed.
Definition VirtualC64.cpp:976
isize cursorRel()
Returns the relative cursor position.
Definition VirtualC64.cpp:970
void execScript(std::stringstream &ss)
Executes a script.
Definition VirtualC64.cpp:994
SID Public API.
Definition VirtualC64.h:202
SIDInfo getInfo(isize nr) const
Returns the current state of a specific SID.
Definition VirtualC64.cpp:708
float draw(u32 *buffer, isize width, isize height, float maxAmp, u32 color, isize sid=-1) const
Draws a visual representation of the waveform.
Definition VirtualC64.cpp:726
VICII API.
Definition VirtualC64.h:167
const VICIITraits & getTraits() const
Provides details about the currently selected VICII revision.
Definition VirtualC64.cpp:661
const VICIIInfo & getInfo() const
Returns the component's current state.
Definition VirtualC64.cpp:673
SpriteInfo getSpriteInfo(isize nr) const
Returns information about a sprite.
Definition VirtualC64.cpp:685
const VICIIConfig & getConfig() const
Returns the component's current configuration.
Definition VirtualC64.cpp:667
u32 getColor(isize nr) const
Returns the RGBA value of a color.
Definition VirtualC64.cpp:691
Video Port Public API.
Definition VirtualC64.h:286
u32 * getDmaTexture() const
Returns a pointer to the most recent stable texture.
Definition VirtualC64.cpp:778
u32 * getTexture() const
Returns a pointer to the most recent stable texture.
Definition VirtualC64.cpp:772