This used to crash so it was removed. However I think this is a cruicial feature.
This is the only way to observe the stack-frames, registers and disasm around the PC
in a user friendly way.
The reason this caused crashes was that we got a reference to a std::vector and iterated
over it in one thread while another thread could modify it (and thereby invalidating the
iterators). The way I "fixed" it is to just copy the `std::vector<std::shared_ptr<...>>`
and iterate over the copy. This obviously has some overhead (locking the shared_ptr
counters and incrementing them). It also allows entities other than the Thread manager
to keep the Thread objects frome being deleted but that should not be a problem.
Also added a flag to RSX debugger showing if two sided lighting is
enabled, a 3D Monitor option and fixed a ")" missing in TODO printout
for sys_spu_elf_get_information.
+ Tab in settings for cellCamera and cellGem related things, currently
includes setting camera type
+ cellCamera and cellGem initilization
+ Added cellCameraGetType
* Updated asmjit and ffmpeg
* Some minor optimizations
May be connected to real data after those related save data list get implemented, with those data sent to UI decided.
Also removed some comments from Auto-Pause.
You can easily configure it as what you do for VHD/VFS.
To disable/enable Auto-Pause, find the configuration checkboxes from HLE/Misc panel in Config->Setting of rpcs3.
Would have a configuration window (with create the list, and enable/disable, being something similar to VFSManger and etc).
Move the code to Debug::AutoPause in AutoPause.cpp and AutoPause.h
It triggers currently in GameViewer, and would finally change to somewhere else.
Well and now it is all enabled (Function call + System call) by default.
Was using fileExists/dirExists before when really should have just been exists. File or Dir doesn't matter and would only create false negatives.
Current working directory shouldn't really be used at all. This is just the folder the application is run from (not even where the .exe resides).
Some of the infos required by vfsLocalDir such as executable may not be portable. Not sure of their intended function as they are never used.
There is already a setting on the menu (Settings > HLE > Always start
after boot) to do that. Make it active by default since disabling it is
only useful for debugging purposes.
Enable uses to go back after using VHDDManager or
VFSManager by providing Ok and Cancel buttons otherwise I
have to kill rpcs3
signed-off-by: asla<davidkiarie4@gmail.com>
Very small commit to take care of one thing missing in #409.
Reasons for that change:
<Nekoteki>AlexAltea: it's fatal error that shouldn't be ignored
<Nekoteki>AlexAltea: the second reason, ps3 can handle page faults by
itself
* Removed Plugins.h file as I assume setting up a plugin hell is a bad
idea (does anyone disagree?).
* Removed FnIdGenerator, and moved FnIdGenerator::GenerateFnId to
getFunctionId in Modules.cpp
* Disabled RSX Debugger and Memory Viewer when the emulator is stopped.
* ELF64Loader::LoadPhdrData refactored.
* Replace `int` with `s32` as return type for syscalls.
* Renamed `SC_Something.*` files with the proper lv2 name
`sys_something.*`.
* Moving away from the lv2, those functions and folders that doesn't
correspond to lv2 functions. E.g. module functions from sys_io,
sysPrxForUser, cellGcmSys.
* Splitted some files (memory -> memory+mmapper) and merged other ones
(event+event_flag ->event, spu+spu_thread -> spu), according to common
sense, PSDevWiki docs, and checking firmware files.
* Removed external functions from `SysCalls.h`.
NOTE: What should we do about: cellGcmCallback? It's not a lv2 syscall
but it appears on the sc_table and it is actually called in games. Is
this some kind of hack?
* use one central unified log with channels/priorities ad-hoc listener registration and de-registration
* disable buffering by default
* add multi-threaded ringbuffer implementation
* use buffered listener for the gui (using the ringbuffer)
move module initialization into a module manager, still has some issues like stopping not working and debug crashing
add #idef 0 to modules that aren't in the windows project
don't double initialize and don't de-initialize for now, since many modules don't expect it and it leads to many errors
remove duplicate module lists for empty modules and implemented ones, make Module non-copyable but movable
add secondary project, no real use for it now
add some memleak config to the emucore and add asmjit path to rpcs3
small rebase error fixed to get it to compile again
add filters for emucore
re-add the module manager and static file
WIP commit, linker errors abound
some more abstraction layer stuff
fix the remaining linker errors, re-enable platform specific mouse, pad and keyboard handlers
rebasing
fix memset undefined and re() usage of se_t before declaration
Add wxGUI define by default for cmake builds
fix copy constructors of Datetime header
fix copy constructors of other wx interface classes
remove static declarations of global variables
make wxGLCanvas constructor non-ambiguous even with wx2.8. compat mode, fix wrong std::exception constructor calls
remove duplicate definition for FromUTF8 and ToUTF8
temp changes
make precompiled header slimmer under Linux to increase CI and dev-machine build-times
make sure unused modules don't compile
add unused modules to the VS project to easier keep track of them
Char display now only displays printable ascii characters. Anything non-printable is printed as '.' as is standard.
Additionally, displayed lines are properly delineated with newlines so that we don't wrap on spaces.
Some events don't propagate correctly to the right sub-window
and some things like the pad handler don't even necessarily have
windows. So, just register some events with the top-level app.
Also add a virtual destructor to the PadHandlerBase to be able to
deal with multiple inheritance in the derived classes.
- Use Bind instead of connect. It's recommended for anyone using wx 2.9+
- Remove AppConnector. All this did was destroy objects used in the UI. However, wxWidgets handles this. So it's redundant.
- Misc other unimportant changes.
BUGFIX: Add break after NV4097_SET_TEXTURE_BORDER_COLOR in RSXThread.cpp
BUGFIX: Fix parameters passed to RSXTexture::SetControl3 (they were being
passed in reverse order)
BUGFIX: Remove invalid, non-sensical call to glPixelStorei in GLGSRender.h
BUGFIX: Fix signed/unsigned comparison compiler warnings in GLGSRender.h
CHANGE: Make GLFragmentProgram::Decompiler synchronous by default
CHANGE: Update wxWidgets submodule to latest commit
BUGFIX: Fix several memory leaks
ADDED: Created a new MSVC debug configuration to output locations
of allocations that end up leaking after the program
is closed.
BUGFIX: Fix the stupid PadHandler crash due to the lack of a virtual d'tor