33 class Emulator *emu =
nullptr;
36 API(Emulator *emu) : emu(emu) { }
41 bool isUserThread()
const;
48 class C64Memory *mem =
nullptr;
57 const MemInfo &getCachedInfo()
const;
62 string txtdump(u16 addr, isize num,
MemoryType src)
const;
66 void drawHeatmap(u32 *buffer, isize width, isize height)
const;
75 class CPU *cpu =
nullptr;
80 const CPUInfo &getCachedInfo()
const;
98 void setNumberFormat(peddle::DasmNumberFormat instrFormat, peddle::DasmNumberFormat dataFormat);
106 isize
disassemble(
char *dst,
const char *fmt, u16 addr)
const;
147 class CIA *cia =
nullptr;
155 const CIAInfo &
getInfo()
const;
156 const CIAInfo &getCachedInfo()
const;
169 class VICII *vicii =
nullptr;
181 const VICIIInfo &
getInfo()
const;
182 const VICIIInfo &getCachedInfo()
const;
204 class SIDBridge *sidBridge =
nullptr;
209 SIDInfo
getInfo(isize nr)
const;
210 SIDInfo getCachedInfo(isize nr)
const;
219 float draw(u32 *buffer, isize width, isize height,
220 float maxAmp, u32 color, isize sid = -1)
const;
230 class AudioPort *audioPort =
nullptr;
249 isize
copyMono(
float *buffer, isize n);
257 isize
copyStereo(
float *left,
float *right, isize n);
277 float draw(u32 *buffer, isize width, isize height,
278 float maxAmp, u32 color, isize sid = -1)
const;
288 class VideoPort *videoPort =
nullptr;
310 class DmaDebugger *dmaDebugger =
nullptr;
314 const DmaDebuggerConfig &
getConfig()
const;
323 class Keyboard *keyboard =
nullptr;
370 class Mouse *mouse =
nullptr;
402 class Joystick *joystick =
nullptr;
406 const JoystickInfo &
getInfo()
const;
407 const JoystickInfo &getCachedInfo()
const;
415 class Paddle *paddle =
nullptr;
419 const PaddleInfo &
getInfo()
const;
420 const PaddleInfo &getCachedInfo()
const;
428 class Datasette *datasette =
nullptr;
452 class ControlPort *controlPort =
nullptr;
472 class Recorder *recorder =
nullptr;
480 const RecorderInfo &
getInfo()
const;
481 const RecorderInfo &getCachedInfo()
const;
489 void setExecPath(
const std::filesystem::path &path);
507 bool exportAs(
const std::filesystem::path &path);
516 class ExpansionPort *expansionPort =
nullptr;
527 const CartridgeInfo &
getInfo()
const;
541 void attachCartridge(
const std::filesystem::path &path,
bool reset =
true);
576struct SerialPortAPI : API {
578 class SerialPort *serialPort =
nullptr;
591 class Drive *drive =
nullptr;
608 class Drive *drive =
nullptr;
618 const DriveInfo &
getInfo()
const;
619 const DriveInfo &getCachedInfo()
const;
649 class RetroShell *retroShell =
nullptr;
688 void press(
const string &s);
746 class Defaults *defaults =
nullptr;
748 DefaultsAPI(Defaults *defaults) : defaults(defaults) { }
760 void load(
const std::filesystem::path &path);
765 void load(std::ifstream &stream);
770 void load(std::stringstream &stream);
775 void save(
const std::filesystem::path &path);
779 void save(std::ofstream &stream);
783 void save(std::stringstream &stream);
797 string getString(
const string &key)
const;
804 i64
getInt(
const string &key)
const;
860 void set(
const string &key,
const string &value);
868 void set(
Option opt,
const string &value, std::vector<isize> objids = { 0 });
876 void set(
Option opt, i64 value, std::vector<isize> objids = { 0 });
882 void setFallback(
const string &key,
const string &value);
889 void setFallback(Option opt,
const string &value, std::vector<isize> objids = { 0 });
896 void setFallback(Option opt, i64 value, std::vector<isize> objids = { 0 });
911 void remove(
const string &key)
throws;
917 void remove(Option option)
throws;
924 void remove(Option option, isize nr)
throws;
931 void remove(Option option, std::vector <isize> nrs)
throws;
941 class C64 *c64 =
nullptr;
948 const C64Info &
getInfo()
const;
1040 void loadRom(
const fs::path &path);
1044 void loadRom(
const MediaFile &file);
1055 void saveRom(RomType rom,
const std::filesystem::path &path);
1064 void flash(
const MediaFile &file);
1068 void flash(
const MediaFile &file, isize item);
1072 void flash(
const FileSystem &fs, isize item);
1100 static string build();
1239 void warpOn(isize source = 0);
1243 void warpOff(isize source = 0);
1247 void trackOn(isize source = 0);
1322 void launch(
const void *listener, Callback *func);
1377 void set(
Option opt, i64 value,
long id);
1395 void put(
const Cmd &cmd);
1396 void put(
CmdType type, i64 payload = 0, i64 payload2 = 0) {
put(Cmd(type, payload, payload2)); }
1423 SerialPortAPI serialPort;
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