- Full reimplementation of proc_ui.rpl with all 19 exports
- Foreground/Background messages now go to the coreinit system message queue as they should (instead of using a hack where proc_ui receives them directly)
- Add missing coreinit API needed by proc_ui: OSGetPFID(), OSGetUPID(), OSGetTitleID(), __OSCreateThreadType()
- Use big-endian types in OSMessage
- Flesh out the stubs for OSDriver_Register and OSDriver_Unregister a bit more since we need to call it from proc_ui. Similiar small tweaks to other coreinit API
- Stub sysapp SYSSwitchToEManual() and _SYSSwitchToEManual() in such a way that they will trigger the expected background/foreground transition, avoiding softlocks in games that call these functions
* script changes - no arguments
* script changes with 2 arguments
* script changes with > 2 arguments
* script conversions with 1 argument - pt. 1
* script conversions with 1 argument - pt. 2
* script conversions with 1 argument - pt. 3
* script conversions with 1 argument - pt. 4
* script conversions with 1 argument - pt. 5
Pointer format hunting
* Fixed pointer format
* script conversions with 1 argument - final
* fixed conversion in non utf-8 file
* fixed conversion with capital letter
* actually fixed conversion with capital letter
* fixed another capital lettering issue
* Added conversions with LR removed
* removed LR from logs
* Converted logs that previously contained LR
* converted log that originally specified string length
* fixed log with commas in main text
* fixed multi-line log
* Fixed more logs with commas in main text
* Fixed unformatted pointer
* added conversion with float value
* converted lines with double parameters
* converted missed line
* corrected argument formatting
Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com>
* Fixed misspellings of "unhandled"
unhandeled -> unhandled
Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com>
---------
Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com>
When a thread was force-rescheduled (e.g. via OSYieldThread) the next time it resumed it would not reset the time slice duration (remainingCycles) back to ppcThreadQuantum. As a consequence threads were often immediately rescheduled and only on the next turn they would get their full time slice.
Aside from (very slightly) improving performance, this also fixes the OSDisableInterrupts warning spam in the log for TPHD.
* Implement GDB stub debugger
Can be enabled by using the "--enable-gdbstub" option (and the debugger GUI, although that's untested) which'll pause any game you launch at start-up. Will start at port 1337 although it'll eventually be user-editable. The code is a bit weirdly sorted and also just needs a general cleanup, so expect that eventually too. And uses egyptian braces but formatting was easier to do at the end, so that's also something to do.
It has been tested to work with IDA Pro, Clion and the standalone interface for now, but I plan on writing some instructions in the PR to follow for people who want to use this. Memory breakpoints aren't possible yet, only execution breakpoints.
This code was aimed to be decoupled from the existing debugger to be able to be ported to the Wii U for an equal debugging experience. That's also why it uses the Cafe OS's thread sleep and resuming functions whenever possible instead of using recompiler/interpreter controls.
* Add memory writing and floating point registers support
* Reformat code a bit
* Format code to adhere to Cemu's coding style
* Rework GDB Stub settings in GUI
* Small styling fixes
* Rework execution breakpoints
Should work better in some edge cases now. But this should also allow for adding access breakpoints since it's now more separated.
* Implement access breakpoints
* Fix some issues with breakpoints
* Fix includes for Linux
* Fix unnecessary include
* Tweaks for Linux compatibility
* Use std::thread instead of std::jthread to fix MacOS support
* Enable GDB read/write breakpoints on x86 only
* Fix compilation for GCC compilers at least
The thread type varies on some platforms, so supporting this is hell... but let's get it to compile on MacOS first.
* Disable them for MacOS due to lack of ptrace
---------
Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
Removes the -DPUBLIC_RELEASE flag. Cemu's debug asserts are now only enabled if the build configuration is Debug. Similarly, on Windows the console is only shown for Debug builds.