Commit Graph
14 Commits
Author SHA1 Message Date
kichikuou 4b15f45897 debugger: Add custom DAP messages for communicating palette changes
This implements "xsystem35.palette" custom request and
"xsystem35.paletteChanged" custom event.

The "xsystem35.palette" request retrieves the color values of the AGS
palette.

  interface PaletteRequest extends Request {
    command: 'xsystem35.palette';
  }

  interface PaletteResponse extends Response {
    body: {
      /**
       * A number that increases each time the palette changes.
       */
      version: number;

      /**
       * 256 element array containing color values in 0xRRGGBB format.
       */
      palette: number[];
    };
  }

The "xsystem35.paletteChanged" event indicates that the AGS palette has
changed.

  interface PaletteChangedEvent extends Event {
    event: 'xsystem35.paletteChanged';

    body: {
      /**
       * A number that increases each time the palette changes.
       */
      version: number;
    };
  }

DAP clients can know if the received value is up to date by comparing
the `version` values of paletteChanged and PaletteResponse.
2023-12-08 08:35:45 +09:00
kichikuou 29a139c8a1 Use the standard integer types
This replaces BYTE, WORD and DWORD types with uint8_t, uint16_t and
uint32_t respectively.
2022-10-29 09:34:21 +09:00
kichikuou b15690d9b7 Windows: Add "Restart" menu command
It resets all VM states and restart the game.
2022-06-26 17:25:39 +09:00
kichikuou f1fb50841c Debugger: Allow setting multiple breakpoints at a single address
This prevents the internal breakpoint from conflicting with regular
breakpoints.
2022-03-19 10:22:55 +09:00
kichikuou 3ff022c73e debugger_dap: Ask frontend to restart xsystem35 on sysReset command 2022-01-01 21:47:14 +09:00
kichikuou 1a248ea897 debugger_dap: Add support for warning breakpoints
This adds "warning" exception breakpoint filter type. If it is enabled,
execution stops on WARNING() calls.
2021-11-23 12:49:41 +09:00
kichikuou 0bbb6fbeae Add support for conditional breakpoints 2021-11-07 21:23:40 +09:00
kichikuou f9d753d46a debugger: Implement cali expression evaluator
Now "print" command (CUI) and "evaluate" request (DAP) can use
expressions like "VAR123[VAR12 + VAR23]".
2021-11-07 21:23:35 +09:00
kichikuou fd4c8fb4d3 debugger_dap: Fail to Initialize if debug symbol file is not available 2021-11-06 12:06:57 +09:00
kichikuou 4832b0ab84 debugger_dap: Emit Output event on sys_message 2021-11-06 09:30:45 +09:00
kichikuou 0793b57e3c Debugger: Add finish (step out) command 2021-10-22 11:10:56 +09:00
kichikuou 089520ec55 Add support for Debug Adapter Protocol
If -debug_dap flag is given, xsystem35 speaks the Debug Adapter Protocol
(https://microsoft.github.io/debug-adapter-protocol/) via stdin/stdout.
This enables xsystem35 to work as a backend of VS Code's Debugger (and
possibly other debuggers that support DAP).
2021-10-17 21:05:24 +09:00
kichikuou f8b7adf3d0 Debugger: Fix crash by breakpoint on message literal 2021-08-15 18:19:37 +09:00
kichikuou 7a77470a19 Split debugger into two parts
The core (debugger.c) and CUI part (debugger_cui.c).
2021-08-01 22:16:21 +09:00