Commit Graph

843 Commits

Author SHA1 Message Date
Vicki Pfau 3d0c982d6e Scripting: Add handling of wrapper type specification in function signatures 2023-08-03 19:32:04 -07:00
Vicki Pfau 09b7eea127 Script: Add mScriptContextInvoke for context-specific invocation and thread handling 2023-08-02 23:41:40 -07:00
Vicki Pfau 57ba653bc7 Util: Add mPainterDrawCircle 2023-07-27 20:26:25 -07:00
Vicki Pfau ba49175697 Util: Add mPainterDrawLine 2023-07-24 21:01:01 -07:00
Vicki Pfau 5f35899ba3 Util: Start mPainter bringup with rectangle drawing 2023-07-23 21:43:15 -07:00
Vicki Pfau 369eab8da3 Util: Fix alpha blending calculation 2023-07-23 21:12:59 -07:00
Vicki Pfau 9873073400 Util: Add ctz32 function 2023-06-29 03:19:26 -07:00
Vicki Pfau 200e846b81 Core: Begin modernizing game override API (fixes #2963) 2023-06-26 04:43:26 -07:00
Vicki Pfau 4d94ab7a38 GB: Prevent incompatible BIOSes from being used on differing models 2023-06-26 04:41:07 -07:00
Vicki Pfau 20ab4d27b1 Scripting: Expose rumble callback 2023-06-04 22:25:54 -07:00
Vicki Pfau e7bbc60e79 All: Fix several warnings 2023-06-01 00:12:32 -07:00
Vicki Pfau 294470d940 Core: Add getPeripheral function 2023-06-01 00:05:41 -07:00
Vicki Pfau a161dfeb31 Debugger: Fill in segment in debugger entry 2023-05-29 00:53:53 -07:00
Vicki Pfau bb6613888a Util: Add THREAD_EXIT macro 2023-05-09 22:21:55 -07:00
Vicki Pfau 257122796c Debugger: Add debugger polling to avoid blocking 2023-05-09 21:43:19 -07:00
Vicki Pfau a00f2939ad Debugger: Allow attaching multiple debugger modules independently 2023-05-09 21:43:19 -07:00
Vicki Pfau 8efb3fb5df Debugger: Make created debug items, e.g. breakpoints, owned by modules 2023-05-09 21:17:46 -07:00
Vicki Pfau b21a6158f4 Debugger: Break out debugger functionality into modules 2023-05-09 21:17:46 -07:00
Vicki Pfau 0a36069315 Util: Fix handling of SocketPoll of n > 1 2023-05-07 20:30:05 -07:00
Vicki Pfau 201f0df4c2 Merge branch 'feature/canvas' 2023-05-01 21:40:57 -07:00
Vicki Pfau 55dd3e28db Scripting: Add canvas internal scaling factor 2023-05-01 21:38:30 -07:00
Vicki Pfau dda5634189 Scripting: Add canvas API 2023-05-01 21:38:30 -07:00
Vicki Pfau dc6639b30b Video: Add backend call proxying for cross-thread interaction 2023-05-01 21:38:30 -07:00
Vicki Pfau 0b79184bf3 Scripting: Add lambdas that bind an object method call 2023-05-01 21:38:30 -07:00
Vicki Pfau b8261a0c66 Scripting: Add lambdas with 0 arguments and 0 return values 2023-05-01 21:38:30 -07:00
Martin Murtiono c9585b8abe
Qt: Make rewind speed adjustable (#2902) 2023-04-29 00:36:01 -07:00
Vicki Pfau 5f6948351b Feature: Move video-backend.c to a sensible place 2023-04-19 05:35:36 -07:00
Vicki Pfau 9fa607b30f Util: More palette support 2023-04-17 04:37:36 -07:00
Vicki Pfau 618a51cabb Util: Preliminary palette support 2023-04-17 04:37:36 -07:00
Vicki Pfau 65f04ee408 Util: PNGWrite*A is dead, long live PNGWrite* 2023-04-17 04:37:36 -07:00
David Spickett 225456a39c Debugger: Send flags information for cpsr register
There is a feature of target XML called flags. It allows
you to describe what a register contains.

https://sourceware.org/gdb/onlinedocs/gdb/Target-Description-Format.html

GDB has supported this for a long time and I recently added support
in LLDB:
e07a421dd5

This change adds this flags information for the cpsr register of the ARM7TDMI.
Based on the information in https://developer.arm.com/documentation/ddi0210/c/.

This is what it looks like when using GDB:
```
(gdb) info registers
r0             0x0                 0
<...>
cpsr           0x6000001f          [ Z C M=31 ]
```
And LLDB:
```
(lldb) register read cpsr
    cpsr = 0x6000001f
         = (N = 0, Z = 1, C = 1, V = 0, I = 0, F = 0, T = 0, M=31)
```

(the format is up to the debugger, lldb is a lot more verbose at the moment)

To enable this I have increased the GDB stub's outgoing buffer to 1400 bytes.
The target XML is just above 130 bytes with the flags added.
2023-04-15 01:30:35 -07:00
Vicki Pfau 5bf048e380 GB Serialize: Add missing Pocket Cam state to savestates 2023-04-13 02:56:12 -07:00
Vicki Pfau 45762c8f9f Util: Partially evaluate preprocessor utility macros to help MSVC chew 2023-04-03 04:45:36 -07:00
Vicki Pfau c884560fdb Util: Add alpha-based mImage compositing functions 2023-04-03 03:00:23 -07:00
Vicki Pfau cfd5572fb6 Util: Add basic mImage blit with no blending 2023-04-03 01:56:22 -07:00
Vicki Pfau 5b18089e85 Util: Add mRectangleIntersection 2023-04-03 00:39:53 -07:00
Vicki Pfau 2fca2f4395 Scripting: Export current image API 2023-04-02 03:39:14 -07:00
Vicki Pfau ed69b9f741 Scripting: Separate object freeing and deiniting 2023-04-02 03:39:14 -07:00
Vicki Pfau 42527b4c5e Util: More image creation functions 2023-04-02 03:39:14 -07:00
Vicki Pfau 6d719b529a Util: Add mImage saving 2023-03-31 02:42:01 -07:00
Vicki Pfau c8ce215d58 Util: Add image format conversion 2023-03-31 02:23:24 -07:00
Vicki Pfau 1fd974272c Scripting: Make functions able to have default arguments 2023-03-31 00:32:02 -07:00
Vicki Pfau 64408b8fd1 Scripting: Tidy up public headers 2023-03-31 00:32:02 -07:00
Vicki Pfau e80b533549 Scripting: Add read-only struct members 2023-03-31 00:32:02 -07:00
Vicki Pfau 2cba34d83a Util: Add image loading API 2023-03-26 17:49:15 -07:00
Vicki Pfau e79ae2860b Util: Start mImage/mColor APIs and tests 2023-03-22 01:42:27 -07:00
Vicki Pfau 603c1800d5 Util: Move some image stuff around 2023-03-21 21:59:49 -07:00
Vicki Pfau 9a4cf28776 Util: Namespace geometry structs to avoid conflicts 2023-03-19 03:03:55 -07:00
Vicki Pfau 96d0193136 Merge branch 'feature/canvas' 2023-03-19 02:25:31 -07:00
Vicki Pfau e3e8296105 OpenGL: Separate sizes of image and drawn layer for image 2023-03-19 02:23:37 -07:00
Vicki Pfau fc35395ab8 Core: Handle relative paths for saves, screenshots, etc consistently (fixes #2826) 2023-03-16 23:37:54 -07:00
Vicki Pfau ea3e6d6b54 Core: Fixx M_*8 macros 2023-03-15 20:53:01 -07:00
Vicki Pfau efbc4a49ce Util: Add some basic geometry math 2023-03-03 19:25:14 -08:00
Vicki Pfau d6c3b012d1 Video: Start revising VideoBackend API 2023-03-03 19:25:14 -08:00
Vicki Pfau dd531637c2 Core: Revise screen size/info API 2023-03-03 19:25:14 -08:00
Vicki Pfau e06fa02d14 Util: Fix potential socket leak 2023-03-02 20:28:48 -08:00
Vicki Pfau 9b2ba64bc6 Windows: Fix build clang-cl 2023-02-24 22:06:55 -08:00
Vicki Pfau 123532ed6e Scripting: Add `callbacks:oneshot` for single-call callbacks 2023-02-08 19:14:36 -08:00
Vicki Pfau 63d96ab712 Scripting: Add flushing/reloading 2023-02-08 01:27:33 -08:00
Vicki Pfau 8b65f3772c Scripting: Initial deserialization work 2023-02-08 01:27:33 -08:00
Vicki Pfau 0c6b443065 Scripting: Initial serialization work 2023-02-08 01:27:33 -08:00
Vicki Pfau 00a34e0d07 Scripting: Add skeleton of storage API 2023-02-08 01:27:33 -08:00
Vicki Pfau 5c0bd1b245 Scripting: Add faux "NUL" type for type matching 2023-02-04 23:56:56 -08:00
Vicki Pfau 004f68496f Scripting: Add type-overloadable setters 2023-02-04 01:15:51 -08:00
Vicki Pfau bfab9dc9f2 Scripting: Specific wrapper types shouldn't compare equal with wrapped type 2023-02-04 01:15:51 -08:00
Vicki Pfau 39e3b5181a Scripting: Add WTABLE 2023-02-04 01:15:51 -08:00
Vicki Pfau f2e9ea6a6b Scripting: Remove unused type macros 2023-02-04 01:15:51 -08:00
Vicki Pfau 5164b888d8 Scripting: Allow Lua to pass nested tables to the scripting subsystem 2023-02-04 01:15:51 -08:00
Vicki Pfau 4e85de3a42 Util: Fix some macro best practices 2023-02-03 01:54:30 -08:00
Vicki Pfau e95bd06321 Scripting: Clear down keys when the window is deactivated 2023-02-02 21:34:14 -08:00
Vicki Pfau a4d1268db4 Core: Export screenshot dimensions in savedata extdata 2023-01-28 17:49:00 -08:00
Vicki Pfau 7ee2be6c96 Scripting: Export Input API docs 2023-01-27 21:22:33 -08:00
Vicki Pfau c0d4e2c347 Scripting: Expose gamepad name to scripts 2023-01-27 21:20:46 -08:00
Vicki Pfau dfe2f62f16 Scripting: Basic gamepad support 2023-01-27 21:20:46 -08:00
Vicki Pfau a154690694 Scripting: Migrate some stuff from docgen into libmgba 2023-01-27 21:08:43 -08:00
Vicki Pfau 697e80a5a1 Qt: Start hooking up input events into scripting 2023-01-27 21:08:43 -08:00
Vicki Pfau e5ed2b4119 Scripting: Add base input, supports key events 2023-01-27 21:08:43 -08:00
Vicki Pfau fcfab847fc Scripting: Add callback arguments 2023-01-27 21:08:43 -08:00
Vicki Pfau fc2b94f9f7 Scripting: Allow basic pointer following 2023-01-27 21:07:57 -08:00
Vicki Pfau 8545271e9e GBA Memory: Modernize constant names 2023-01-26 18:59:35 -08:00
Vicki Pfau b5f600c0c5 Scripting: Allow weakrefs to be marked for auto-collection 2023-01-26 03:32:28 -08:00
Vicki Pfau dfd772d2ca Scripting: Add missing type export 2023-01-25 04:19:12 -08:00
Vicki Pfau 53abcfd28e Scripting: Fix mSCRIPT_TYPE_MS_PCS macro 2023-01-23 21:03:59 -08:00
Vicki Pfau 2df70ee45e Util: Add debug bounds checking to vector 2023-01-22 19:44:57 -08:00
Vicki Pfau 62c84ab815 Util: Add some base vector implementations 2023-01-22 19:44:57 -08:00
Vicki Pfau 1584023f34 Core: Round out input API pre-revamp 2023-01-22 19:38:01 -08:00
Vicki Pfau fa3b0d0875 Scripting: Fix internal socket header 2023-01-08 22:59:15 -08:00
Luna Mittelbach 694b80d289
GBA: Verify ELF entrypoint against ROM header (#2714) 2022-11-05 01:44:29 -07:00
Vicki Pfau c49f09dabc Util: Add PS Vita SFO generator 2022-10-28 00:04:26 -07:00
Vicki Pfau ad2a7a748a GB MBC: Add GGB-81 support 2022-10-17 01:31:04 -07:00
bigfarts 42f7876731 Add range watchpoints.
These are accessible via the following new CLI debugger commands:

 - rw: watchr minAddr maxAddr [cond]
 - r: watchr/r minAddr maxAddr [cond]
 - w: watchr/w minAddr maxAddr [cond]
 - c: watchr/c minAddr maxAddr [cond]

This also makes all watchpoints range watchpoints under the hood.

Preliminary benchmark results:

Time taken to run 10000 frames of Megaman Battle Network 1 (U) with a write watchpoint set at 0x02000000 in milliseconds, 10 runs each:

control (no watchpoint):
[4184, 4185, 4197, 4207, 4220, 4178, 4304, 4226, 4234, 4292]
mean = 4223, stdev = 43.95

old (single address watchpoint):
[4743, 4685, 4679, 4670, 4782, 4704, 4698, 4875, 4746, 4718]
mean = 4730, stdev = 61.67

new (range watchpoint):
[4683, 4691, 4693, 4706, 4782, 4674, 4746, 4768, 4770, 4776]
mean = 4728, stdev = 43.36
2022-10-16 02:10:38 -07:00
Vicki Pfau ffda3e1c9b GB MBC: Add Li Cheng support 2022-10-16 01:28:27 -07:00
Vicki Pfau e370f64801 GB MBC: Add NT (old 2) support 2022-10-15 23:41:51 -07:00
Vicki Pfau 1f36728244 GB Serialize: Add missing savestate support for MBC6 and NT (newer) 2022-10-15 04:42:10 -07:00
Vicki Pfau 0bd4ad034e GB MBC: Add NT (old 1) support 2022-10-15 04:13:37 -07:00
Vicki Pfau e1c43b9287 macOS: Disable OpenGL 1.x on newer macOS 2022-10-10 00:11:40 -07:00
Vicki Pfau 8665b28f0d Core: Interrupt timing during reset (fixes #2651) 2022-10-09 22:07:58 -07:00
Vicki Pfau e23d04afc5 GB Memory: Fix bounds of TAMA5 registers in savestates 2022-10-06 03:24:06 -07:00
Vicki Pfau bb711d311f GBA Savedata: Store RTC data in savegames (closes #240) 2022-10-06 02:57:26 -07:00
Vicki Pfau 91fb63c484 Scripting: Add "internal" marker to classes, exported to docgen 2022-09-29 03:11:59 -07:00
Vicki Pfau 8e898b02cc Scripting: Add doc structs and exporting documentation from engines 2022-09-25 17:31:49 -07:00
Vicki Pfau 73d19cc02a Scripting: Add reference to the top-level engine in engine contexts 2022-09-25 17:30:30 -07:00
Vicki Pfau 95336463bf Scripting: Add root scope function for engines 2022-09-25 17:30:30 -07:00
Vicki Pfau 7520d8fc06 Scripting: MSVC build fixes 2022-09-21 22:57:22 -07:00
Vicki Pfau d4b3bcde0f Util: More buildfixes 2022-09-21 20:41:40 -07:00
Vicki Pfau 536170c331 Windows: Buildfixes 2022-09-21 20:22:26 -07:00
Vicki Pfau c57075a539 Scripting: Buildfix 2022-09-21 20:04:56 -07:00
Adam Higerd d852c7c8f0 Scripting: add socket bindings 2022-09-21 20:01:12 -07:00
Adam Higerd a11b103a9c Util: Add DNS resolution and SO_REUSEADDR to sockets 2022-09-21 20:01:12 -07:00
Vicki Pfau 5dbe240442 Qt: Resume crashed game when loading a save state 2022-09-11 02:51:24 -07:00
Vicki Pfau c305c377db GB MBC: Finish TAMA6 timer (non-alarm) emulation 2022-08-31 00:12:33 -07:00
Vicki Pfau 9b35e76416 GB MBC: Add more TAMA6 commands 2022-08-31 00:12:33 -07:00
Vicki Pfau e2084b4a98 macOS: Fix very old Xcode build 2022-08-30 00:20:13 -07:00
Vicki Pfau 0b50e7163e GB MBC: Start work on TAMA6 RTC pages 2022-08-28 21:29:10 -07:00
Vicki Pfau 1985713c3a GB MBC: Emulate TAMA6 timer disabling 2022-08-28 19:15:03 -07:00
Vicki Pfau bac42c9027 GB MBC: Partial TAMA5 RTC 2022-08-28 03:53:51 -07:00
Vicki Pfau ba27062842 Vita, Wii: Build fixes 2022-08-08 13:05:32 -07:00
Vicki Pfau 9b07a63056 All: Preliminary shift to C11 2022-08-08 12:54:49 -07:00
Adam Higerd 519968d37e fix SocketConnect for IPv6 2022-08-07 23:01:32 -07:00
Vicki Pfau 902c7aade4 Scripting: Add missing forward declarations 2022-08-07 15:29:47 -07:00
Vicki Pfau ad32c0f750 GB Audio: Fix regressions 2022-08-07 15:29:10 -07:00
Vicki Pfau 1fb7d7a4a3 GB Audio: Increase sample rate 2022-08-06 23:08:28 -07:00
Vicki Pfau 82ce165211 FFmpeg: Support dynamic audio sample rate 2022-08-06 18:20:36 -07:00
Vicki Pfau 004f317aba GBA Video: Mark framebuffer as dirty if the output texture changes 2022-07-13 19:53:44 -07:00
Vicki Pfau 8997055fc0 Core: Migrate SDL logging enhancements into core 2022-07-09 02:34:10 -07:00
Vicki Pfau 01c881d18d Debugger: Minor parser refactoring; fix crash 2022-07-06 23:55:49 -07:00
Vicki Pfau 57880bf674 Core: Add romSize function 2022-07-02 22:49:47 -07:00
Vicki Pfau d053058ea3 Scripting: Add boolean type 2022-07-01 02:02:55 -07:00
Vicki Pfau 9515de7212 Scripting: Add loading API 2022-07-01 00:34:33 -07:00
Vicki Pfau 0979380c74 Debugger: Shaving recursive yaks takes a lot of work 2022-06-28 18:43:15 -07:00
Vicki Pfau 2969a8bf7a Core: Fix cache writes that span multiple tiles 2022-06-27 21:10:16 -07:00
Vicki Pfau 99f067e539 Scripting: Fix typo 2022-06-27 20:10:18 -07:00
Vicki Pfau e8a39fea95 All: Clean up some warnings 2022-06-24 17:48:52 -07:00
Vicki Pfau 840e2806b5 Scripting: Basic void type bringup 2022-06-16 23:40:11 -07:00
Vicki Pfau 4851109027 Core: Add wallclock offset RTC type 2022-06-16 21:57:45 -07:00
Vicki Pfau 6159c5a70b GBA Audio: Decrunchify GB audio 2022-06-15 20:34:06 -07:00
Vicki Pfau 33b3d33da2 Core: Rename GBAStereoSample to mStereoSample 2022-06-15 18:39:38 -07:00
Vicki Pfau 7f453ce202 GBA Video: Fix horizontal lines in GL when charbase is changed (fixes #1631) 2022-06-14 00:13:51 -07:00
Vicki Pfau 97cb18d3fd GBA Video: Fix two sprite boundary conditions in OpenGL 2022-06-08 01:53:35 -07:00
Vicki Pfau f9e03e7182 GBA Memory: Implement adjustable EWRAM waitstates (closes #1276) 2022-06-07 00:05:27 -07:00
Vicki Pfau 11837ffc15 ARM: Disassemble Thumb mov pseudo-instruction properly 2022-06-05 20:59:30 -07:00
Vicki Pfau 3687863cbc Scripting: Add callback removing 2022-06-05 20:36:54 -07:00
Vicki Pfau 6289c1a4d1 GBA Serialize: Fix doc error 2022-06-05 20:36:26 -07:00
Vicki Pfau 10eb2b9784 Scripting: Add root-scope docstrings 2022-06-05 03:29:18 -07:00
Vicki Pfau 00bd093fe3 Scripting: Add bitmask handling functions 2022-06-05 03:29:18 -07:00
Vicki Pfau d6accc4ef6 Scripting: Add calling functions with lists 2022-06-05 03:29:18 -07:00
Vicki Pfau 9f5267e24e GBA Audio: Claw back some performance 2022-06-03 22:36:19 -07:00
Vicki Pfau 3c0d9f7197 GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency 2022-06-01 19:13:05 -07:00
Vicki Pfau cdabfd491b GB Audio: Minor optimizations 2022-06-01 01:29:33 -07:00
Vicki Pfau 76a8f4da2b GB Audio: Migrate channel 3 into GBRunAudio 2022-06-01 01:29:33 -07:00