Commit graph

279 commits

Author SHA1 Message Date
Nekotekina 9e49a33b3c SPU syscall improvements 2015-03-05 00:51:14 +03:00
Nekotekina 5f8cf18a5a SPU refactoring 2015-03-03 00:09:20 +03:00
Nekotekina bc94d92cba nyu 2015-03-02 05:10:41 +03:00
Nekotekina af986d8f4c Loader improved, ModuleManager refactored 2015-02-18 19:22:06 +03:00
Nekotekina e642e39324 NV3089_IMAGE_IN_SIZE 2015-02-10 15:51:45 +03:00
B1ackDaemon c267ca2584 Merge pull request #989 from Nekotekina/master
Various improvements
2015-02-02 13:39:51 +02:00
Peter Tissen 13d2f8fa59 re-enable threadlist in GUI
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.
2015-02-02 11:33:49 +01:00
Nekotekina e5dd03dbcb ARMv7: argc, argv setting, LDRSB_IMM, bugfixes 2015-02-01 16:52:34 +03:00
Nekotekina 6d1c9f2764 Some warnings fixed 2015-01-25 19:23:24 +03:00
Nekotekina 2647b77c01 sceLibKernel.h added 2015-01-24 00:48:14 +03:00
Nekotekina 1a5d5c96ed Compilation fix 2015-01-22 00:39:25 +03:00
Nekotekina 79d03ece66 ARMv7 decoder improved 2015-01-22 00:09:37 +03:00
Nekotekina 0d28f378a7 fmt::format() optimization (fmt::unveil template) 2015-01-19 01:54:56 +03:00
Nekotekina fd06f70387 cellAudio updated, thread_t updated 2015-01-16 17:36:53 +03:00
Nekotekina 42b748a881 Syscall name resolving improved 2015-01-14 22:45:36 +03:00
Nekotekina 809ba66290 vm::cast in PPUInterpreter 2015-01-14 19:48:50 +03:00
Nekotekina 6069071e4d Code moved, attempt to make SIGSEGV handler 2015-01-05 00:46:31 +03:00
Nekotekina 27cfdc897b PKG installer improved
Now it doesn't attempt to delete existing directory and overwrites only
existing files. It should fix installing updates.
2015-01-04 19:44:54 +03:00
Nekotekina 22497757e9 Prefix decoding improved 2015-01-04 18:33:25 +03:00
Nekotekina 896097da0d Experimental RawSPU MMIO implementation 2015-01-04 15:35:47 +03:00
Nekotekina be2d606193 Conflicts fixed 2014-12-26 17:06:36 +03:00
Nekotekina d8239a39c9 std::shared_ptr in IdManager 2014-12-24 02:38:13 +03:00
Nekotekina b2de24db73 SMutex eliminated 2014-12-23 02:31:11 +03:00
Raul Tambre ce853bc252 cellSail updates and many various fixes 2014-12-19 13:31:52 +02:00
Raul Tambre 16b4b9bf40 Fix Travis compiling 2014-11-21 15:52:01 +02:00
DHrpcs3 cdfef3bf9e Fixed compilation errors
Implemented converter_le_be
2014-11-20 21:41:04 +02:00
DHrpcs3 598d929aba Implemented LLE Modules Manager (draft)
Improved loader core.
Implemented *_thread wrappers.
Minor fixes.
Temporary disabled ELF Compiler & DisAsm frame.
2014-11-19 16:16:30 +02:00
Hykem 19d1a6babc Merge pull request #858 from gopalsr83/ppu_llvm_recompiler
Improved tracer for the PPU recompiler
2014-11-15 15:19:40 +00:00
Fabian Schaffert 6906d146bb Adds copy constructor for class InstrBase
A copy constructor is necessarry for `class InstrBase`, as the implicit
copy constructor simply copies the pointer `m_args`. This results in a
double delete of the same memory region, causing a segmentation fault
when rpcs3 exited.
2014-11-15 00:16:17 +01:00
S Gopal Rajagopal 5c468d7591 Disabled call stack tracing when using the PPU LLVM recompiler 2014-11-09 11:50:01 +05:30
S Gopal Rajagopal 34e34910fd Integrated execution engine, tracer, recompilation engine and compiler 2014-11-08 09:52:23 +05:30
Nekotekina 18b69cac99 waiter_map_t : concept changed
Purpose-specific waiter_map_t objects instead of global one. SM_Sleep()
removed.
2014-10-16 20:29:41 +04:00
Nekotekina 9a02add930 Bugfix 2014-10-08 16:29:29 +04:00
Nekotekina 94c30924dd Some things for u128 2014-10-08 01:37:04 +04:00
Nekotekina 66000240ac vm::atomic update, be_t update
1) MakeFromLE replaced with make(), MakeFromBE removed. Compiler seems
to be able to optimize it anyway.
2) be_t<> conversion operator temporarily replaced with conversion
through LE because it can't work with all possible numeric conversions
(float<>int for example)
2014-09-20 03:16:11 +04:00
Nekotekina 626133c0eb declCPU removed, PPUThread& is passed as argument
Added experimental feature: passing PPUThread& to syscall
2014-09-16 21:49:50 +04:00
Nekotekina 5f1253598c Fix formatting 2014-09-15 23:04:18 +04:00
Nekotekina 597d07bf24 Small refactoring 2014-09-15 02:17:24 +04:00
Nekotekina 860d7bd3f1 Small fix 2 2014-09-13 18:25:02 +04:00
Nekotekina 0df3e955c8 Small fix 2014-09-13 01:50:50 +04:00
Nekotekina 10e9d383d4 ExecAsCallback() removed 2014-09-13 01:14:48 +04:00
O1L 54106f6f9b Removed unnecessary newlines. 2014-09-07 18:05:29 +04:00
O1L 402199d70f Add PPU / SPU / RawSPU threads in KernelExplorer, and some coding style changes. 2014-09-07 17:47:53 +04:00
Nekotekina 3269c88d02 Some warnings fixed, some code removed 2014-08-30 21:51:00 +04:00
Nekotekina 693e7a38fa Some std include moved 2014-08-28 20:29:05 +04:00
Nekotekina 78cbb90ef6 Some leaks fixed 2014-08-26 03:55:37 +04:00
Nekotekina a74e07dc40 Some cleanup 2014-08-25 22:09:48 +04:00
Nekotekina 61c4a88ab4 rFile.h, Thread.h, IdManager.h includes moved 2014-08-25 18:56:13 +04:00
Nekotekina 4ffd03fe3e Include clearing 2014-08-24 00:40:04 +04:00
Nekotekina b005ee3cda Log include fixes 2014-08-23 18:51:51 +04:00
Nekotekina efa538f9d7 include clearing 2014-08-23 04:16:54 +04:00
Nekotekina 861ce9e733 include clearing 2014-08-23 01:15:02 +04:00
Nekotekina 652c5901f8 Another try 2014-08-22 20:36:27 +04:00
Nekotekina 5abd3fabfa Attempt to remove some includes 2014-08-22 18:21:55 +04:00
Nekotekina a169c5bcac Reservation global struct removed
It wasn't solving anything, unfortunately.
2014-08-22 01:37:45 +04:00
Nekotekina ffa258d334 Some fixes 2014-08-20 04:32:25 +04:00
Raul Tambre 54839b293b Log name of syscall, when access violation occurs 2014-08-10 22:56:42 +03:00
Nekotekina 18e1799980 Last syscall registering 2014-08-09 20:25:05 +04:00
Nekotekina 8f04ab07ed IsGood() check elimination
Reasons: 1) It's unsafe - we cannot guarantee that address is still good
while it is used. 2) It's wrong in many modules which are usually just
compare pointer with zero.
2014-08-05 14:18:22 +04:00
Nekotekina fa5311718e Small SPU cleanup 2014-07-21 22:35:44 +04:00
Nekotekina b487dcee27 RawSPU initialization fix 2014-07-16 16:06:58 +04:00
Nekotekina dab3d6c6d6 Callbacks 2014-07-13 23:05:28 +04:00
Nekotekina 1dbbbc55f6 Little fix 2014-07-13 22:59:54 +04:00
Nekotekina 2eafb235ba spu_printf fixed 2014-07-13 22:55:14 +04:00
Sacha 9816ec3aa0 Fix conflicts. 2014-07-12 17:02:39 +10:00
Nekotekina 2fe52451e1 Exceptions fixed 2014-07-11 15:32:34 +04:00
Nekotekina 22b9afdb60 Some cleanup 2 2014-07-10 04:13:04 +04:00
Nekotekina 50b42f8593 ifdefs and linux (posix) version (not tested) 2014-07-08 18:26:49 +04:00
Nekotekina d1fff053c2 Some cleanup 2014-07-07 21:22:36 +04:00
Peter Tissen 95f1a0e645 use only one set of logging macros instead of two and don't use free() as a function name 2014-06-27 15:28:17 +02:00
Peter Tissen 21da317453 Logging system rework
* 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)
2014-06-26 17:34:28 +02:00
Nekotekina f9c592098f Work on RawSPU: interrupt mailbox
Achievement unlocked: run spu_test!
2014-06-23 05:03:16 +04:00
Nekotekina 30b8e51234 rCriticalSection & rSemaphore removed
SC_Semaphore errors fixed
Room for interrupt threads
2014-06-22 14:59:28 +04:00
Nekotekina 5da33c6243 SC_Semaphore rewritten 2014-06-21 18:24:27 +04:00
Nekotekina 90b9861043 SMutex partially replaced with std::mutex
SPURecompiler.h: SETcc bug fixed
2014-06-20 15:00:36 +04:00
Peter Tissen c37905e465 initial start to eliminate static func init, not compilable atm
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
2014-06-08 23:16:06 +02:00
Peter Tissen 40add8f9a2 Seperate ConLog.h and ConLogFrame.h (for now only seperate headers)
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
2014-06-06 02:50:22 +02:00
nohbdy d136adc73f RSX Bugfixes and plugging memory leaks
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
2014-04-17 15:15:43 -05:00
Peter Tissen 8ef9414406 try to reign in the vector<ptr> madness 2014-04-14 10:55:43 +02:00
Bigpet 25c3aa8e19 fixes to get llvm to compile (excepti for utils.cpp, that'll get fixed
later)

Eradicate the Array almost everywhere, some usages like Stack still
remains
2014-04-12 12:06:52 +02:00
lioncash d0c9d7c0ae Use spaces for vertical alignment 2014-04-04 09:25:38 -04:00
Peter Tissen 748aa6fce8 fix indentation 2014-04-01 20:27:58 +02:00
Peter Tissen 373ae6b107 remove dummy alias in strfmt. Fix some wxString remnants, that only make problems in Linux 2014-04-01 20:13:22 +02:00
Peter Tissen 02729695ff remove some wxString references I missed 2014-04-01 19:25:22 +02:00
Peter Tissen febe8624bf remove redundant c_str -> string -> c_str conversions 2014-04-01 17:22:57 +02:00
Peter Tissen 8ac226ae69 replace all instances of wxString with std::string in all cases not
directly involved in either the GUI or other wxWidget classes like wxFile
2014-04-01 16:23:03 +02:00
Alexandro Sánchez Bach 01dbb8eb9a Merge pull request #145 from Nekotekina/master
Fixed conflicts.
2014-03-31 12:04:34 +02:00
Anthony Miyaguchi 544bacf54e Quick one line change fixes a hang after failing to run an *.elf file and stopping the emulator via the Stop button. 2014-03-27 18:57:28 -07:00
Lioncash a7bc2034d0 Use Push instead of AddCpy in CallStackBranch. 2014-03-26 19:25:12 -04:00
Nekotekina d0ea397492 cellAtrac draft
sys_spu_thread_group_resume
Some bugs fixed
2014-03-22 15:08:07 +04:00
Nekotekina 8cc6a287a7 Update 2014-03-13 13:17:45 +04:00
Nekotekina 7f7d5a57c8 rldcr, rldcl instructions
Some intructions fixed
2014-03-11 20:20:01 +04:00
Nekotekina 3127543b6e sys_ppu_thread_join, sys_ppu_thread_exit fixed
Some diagnostic messages in mutexes
2014-03-07 16:03:42 +04:00
Nekotekina 384536ba4f prx_mem memory leak fixed
CPUThread::ExecAsCallback (experimental)
2014-03-04 23:18:17 +04:00
Nekotekina 8bd0ee875c Fixed conflicts 2014-02-26 15:27:06 +04:00
Nekotekina 0bd5dc5363 Demuxer improved, cellPamf improved
File reading improved
2014-02-26 11:51:00 +04:00
Bigpet 9a30ce5f18 Make buildable with GCC in Linux
* replace GetThreadID with std::this_thread.getId()
* name all anonymous structs and unions that contain non-trivially constructable objects
* made default constructor for big endian type noexcept to make it work with std::atomic
* move instantiated specialized template function members ouside of the class definition to comply with the standard
* added default instantiation for template parameter "=nullptr"
* used the C++11 standardized thread_local instead of the __declspec(thread)
* added transitional definitions to bridge the microsoft specific calls (compare and exchange and aligned alloc)
* removed cyclic dependency between Emulator->CPUThreadManager->CPUThread->SMutex->Emulator->...
* fixed some instances of indentation by space instead of tabs
* surrounded some unused code with an #if 0 block to make sure it doesn't compile
2014-02-23 17:52:52 +01:00
Nekotekina 931929a82c Fixed conflicts 2014-02-16 21:57:36 +04:00
Nekotekina e066bcf261 Small cellAudio update 2014-02-15 00:08:02 +04:00
Peter Tissen f179bd4cd7 fix stepping a little better than last time 2014-02-14 20:50:02 +01:00
Peter Tissen 8bf8c7e6e9 undo thread behavior changes and add html subproject to dependencies. 2014-02-14 18:14:14 +01:00
Peter Tissen 11ba83738f make stepping work again, it's impossible to use it without these changes 2014-02-14 00:08:32 +01:00
Nekotekina 5a240c32a9 log fixes (to wx_str()) 2014-02-13 20:59:13 +04:00
Alexandro Sánchez Bach 373d189edb Merge pull request #70 from Nekotekina/rpcs3
and conflicts fixed.
2014-02-13 12:13:05 +01:00
Peter Tissen b05e466e8f clean up more output conversions, everything that wants to get printed needs to be explicitly convertex to the wxCharType otherwise the VFormat prints nothing 2014-02-10 19:51:03 +01:00
Peter Tissen b9c3dc352d use .wx_str() instead of .mb_str(), Dbg console is still broken 2014-02-10 13:53:09 +01:00
Peter Tissen 59dcbd3ba3 make it compilable, don't merge this, string logs are broken and paths absolute to my machine 2014-02-10 02:13:13 +01:00
Nekotekina 3308fefa7f Small changes
lwmutex completely implemented
2014-02-09 15:11:48 +04:00
Nekotekina ed40732e7b Reservation review
Minor changes
SC_Event_flag.cpp module detached
2014-02-08 01:55:25 +04:00
Nekotekina 6c606be09f Reservation implemented
Some SPU bugs fixed;
sys_spu_thread_get_exit_status
sys_spu_thread_group_destroy
2014-02-07 02:55:48 +04:00
Nekotekina 311486ed79 Fixed thread issues
Fixed args passing
Fixed thread stopping/pausing (temporarily)
Fixed problems with SC_Condition and SC_Mutex (partially)
2014-02-03 17:12:25 +04:00
Nekotekina a0c8e116df Merge branch 'master' of https://github.com/DHrpcs3/rpcs3 2014-02-03 01:20:48 +04:00
DH 8ba8d35541 Fixed compilation errors. 2014-02-02 22:47:17 +02:00
Nekotekina 7fce5589f8 Memory alignment fix
Some mutexes added, _sys_heap_memalign implemented
2014-02-02 23:49:10 +04:00
DH beb19633e9 Implemented vfsLocalDir & vfsDirBase.
Improved ThreadBase.
Minor fixes.
2014-02-02 21:42:32 +02:00
DH 4b8d6b6919 Improved ThreadBase.
Improved Vertex Shader Decompiler.
2014-01-31 20:40:18 +02:00
elisha464 8a3835bcef fix thread exit crash 2014-01-23 21:37:59 +02:00
DH ab41540064 Improved ID manager.
Improved MemoryBlock.
2014-01-19 05:14:11 +02:00
Sacha 6bcaf469e8 First stage of WX dependency removal. 2013-11-28 05:16:19 +10:00
DH 9ce30fdd74 Improved OpenGL renderer & RAW SPU
- Improved Fragment Shader Decompiler.
- Fixed NV308A_COLOR cmd.
- Fixed break points for RAW SPU Thread.
- Added cellMsgDialogOpen2 to cellSysutil module.
2013-11-26 06:34:19 +02:00
Mislav Blažević d8bd34b57e Start porting to GNU compiler 2013-11-23 23:27:58 +01:00
DH da9c778a4c Improved RAW SPU
Fixed sc binder_func_10
2013-11-23 20:50:54 +02:00
DH 8463694d4f - Improved call stack. 2013-11-23 17:20:31 +02:00
Alexandro Sánchez Bach 5e1a958ee6 New debugging features, cellGame & minor changes
Two cellGame functions partially implemented:
- cellGameGetParamInt
- cellGameGetParamString

New debugging features:
- Call Stack viewer added
- Memory Viewer rewritten (Not finished yet)

Modified definition of UNIMPLEMENTED_FUNC to improve compatibility with
other compilers: Thanks @krofna

Replaced the "Compiler" menu entry with "Tools" and "Memory Viewer"
entry added.

NOTE: To "quickly" browse the memory using the Memory Viewer you can use
the scrollbar. Notice the irony of the word 'quickly' since the memory
viewer is actually slow as fuck. I will fix that soon. As you can see,
I'd like to add a Raw image viewer in the future in order to "see"
textures directly from memory.
2013-11-23 05:47:19 +01:00
Alexandro Sánchez Bach 382ae8a78f Improved cellResc module
* cellResc module improved

* Many changes in this commit are from [DH]: The implementation of
cellRescSetConvertAndFlip, cellRescSetWaitFlip and cellRescSetSrc as
well as all the other changes that are not in cellResc module.

* Fixed another conflict from O1L/rpcs3 (master): Deleted
"cellPhotoUtility" (which already exists in cellPhotoExport)
Now all the conflicts are solved. :-)

NOTE: We should search for a better name for 's_rescInternalInstance'.
This one is just too long and some lines don't even fit in my screen
because of this.
2013-11-16 01:38:22 +01:00
DH 6ea2c7d6a8 - Fixed memory leaks in cellRtc module.
- Fixed CPUThread crash.
- Improved ARMv7 Interpreter.
2013-11-09 14:25:12 +02:00
DH b263c3ebaf - Renamed ARM9 to ARMv7.
- Improved ELF32 loader.
2013-11-05 21:22:58 +02:00
DH 6b22e7d90a - Implemented ARM9Interpreter & ARM9DisAsm.
- Implemented MemoryBlockLE & DynamicMemoryBlockLE.
- Implemented CPUDecoder.
2013-11-05 20:12:18 +02:00
DH 0b35be32a4 - Implemented ARM9Thread.
- Improved OpenGL Renderer.
- Improved RAW SPU mfc.
2013-11-03 21:23:16 +02:00