Eladash
e4ba096190
VSH: sys_mmapper
...
* Implement syscalls sys_mmapper_allocate_shared_memory_ext, sys_mmapper_allocate_shared_memory_from_container_ext.
* Implement multi-process shared memory allocations.
2020-01-24 20:08:30 +00:00
Eladash
46df58b662
sys_usbd: Add error_code
2020-01-24 19:25:52 +00:00
Eladash
f05a3da964
Fix lv2_file::op_write regression
2020-01-21 16:45:41 +03:00
Nekotekina
3617f12a1e
sys_fs: avoid possible out of memory on file reads/writes
...
Use fixed-sized intermediate buffer.
2020-01-20 16:00:20 +03:00
Nekotekina
63f67c88cc
sys_fs: better stub sys_fs_fcntl(0xc0000006)
...
This syscall does something to classify filesystems by mountpoint.
2020-01-20 16:00:20 +03:00
Nekotekina
1b1b804d7e
sys_fs: add /dev_flash mountpoint
2020-01-20 16:00:20 +03:00
Nekotekina
55cb96ab3b
sys_fs: fix CELL_EIO condition in cellFsReadWithOffset
2020-01-20 16:00:20 +03:00
Eladash
b07b5c9005
Fix sys_spu_thread_initialize for attr->name_len is 0 and attr->name is not null
...
If name_len is 0 name is empty, in any other case name is not empty (attr->name == nullptr isn't allowed in this case).
Check name_len and option for invalid values as fw.
2020-01-18 18:46:13 +03:00
Eladash
9d15083c61
Fix sys_ppu_thread_create/rename thread name range
2020-01-18 18:46:13 +03:00
Eladash
14b99d9e8b
Write nread/nwrite in cellFsWrite/Read regardless of error checks
2020-01-18 15:56:05 +03:00
Nekotekina
e2512e78b6
sys_fs: always close locked file in sys_fs_close
...
Syscall returns EBUSY but succeeds nevertheless.
2020-01-17 00:24:07 +03:00
Nekotekina
a005090d3d
sys_fs: use constant in sys_fs_disk_free
2020-01-17 00:24:07 +03:00
Eladash
1ccb3c4492
rsx: Verify local memory offset
2020-01-15 13:23:56 +03:00
Eladash
01035d35bd
sys_process: Fix sys_process_get_id, add error_code ( #7246 )
2020-01-14 21:32:41 +03:00
Nekotekina
aeed349a99
sys_fs: adjust permissions for /dev_bdvd
...
Remove write permissions returned by stat, fstat, etc.
Also make sys_fs_open return CELL_EPERM on write attempt.
2020-01-11 04:48:42 +03:00
Nekotekina
8447d75dda
sys_fs: improve sys_fs_lsn_lock
...
It appears it does nothing only on /dev_hdd0 or /host_root (HOSTFS).
2020-01-11 03:44:52 +03:00
Nekotekina
fc6356a74c
sys_fs: adjust /dev_bdvd block size
...
From test.
2020-01-11 03:05:26 +03:00
Nekotekina
87cd653c6e
sys_fs: improve sys_fs_disk_free
...
Fix error codes and arg checks.
2020-01-11 01:10:50 +03:00
Nekotekina
7e35fd54a8
sys_fs: improve sys_fs_fcntl(0xc0000002)
...
Always obtain free space on /dev_hdd0.
2020-01-11 01:09:30 +03:00
Nekotekina
582ee80552
sys_fs: correct block size for /dev_hdd1
2020-01-10 05:24:43 +03:00
Nekotekina
0b4b87f069
sys_fs: fix sys_fs_get_block_size
...
Don't check file existence on /dev_hdd0.
Relax check on some mountpoints.
Fix CELL_EISDIR error condition.
2020-01-10 05:19:18 +03:00
Nekotekina
a8e1afa0af
sys_net: fix sys_net_bnet_select arg check (nfds)
2020-01-10 03:21:27 +03:00
Eladash
71df5044fc
sys_vm_get_statistics: Write timestamp
2020-01-09 20:43:03 +00:00
RipleyTom
4a5559ee65
Add buzz controllers to usb whitelist
2020-01-09 07:51:16 +00:00
Nekotekina
7523416a12
sys_fs: return CELL_ENOTSUP in sys_fs_fcntl(0xc0000006)
2020-01-09 04:15:20 +03:00
Nekotekina
9075208c80
sys_fs: fix logging in sys_fs_get_block_size
2020-01-09 04:15:20 +03:00
Nekotekina
d477889763
sys_fs: fix mountpoint detection
2020-01-09 04:15:20 +03:00
Nekotekina
f5cb147f8d
sys_fs: improve sys_fs_get_block_size values
...
Affected other syscalls:
sys_fs_fget_block_size
sys_fs_stat
sys_fs_fstat
sys_fs_fcntl (cellFsGetDirectoryEntries, cellFsGetFreeSize)
For default values:
Return sector_size = 512.
Return 4th arg = 512.
Fod /dev_bdvd:
Sector size = 2048.
Block size = 2048.
2020-01-07 23:16:17 +03:00
Nekotekina
63e669c0cf
sys_fs: fix sys_fs_fget_block_size
...
Return flags via last argument.
2020-01-07 21:55:19 +03:00
Nekotekina
9c54305e10
sys_fs: disable sys_fs_lsn_lock/unlock
...
According to test, nothing seems to happen.
Disable CELL_EBUSY errors associated with Stream Support API.
2020-01-07 21:55:19 +03:00
Nekotekina
f3d52de429
sys_fs: Adjust flags of /app_home mountpoint
2020-01-07 21:55:19 +03:00
Nekotekina
55f9a56e45
Fix sys_tty_write (UTF-8 encoding of literals)
2020-01-06 23:23:04 +03:00
Nekotekina
4450ae0c7a
sys_fs: fix CELL_FS_O_APPEND emulation
...
Don't use fs::append (not capable of).
Fix sys_fs_ftruncate (remove wrong workaround).
2020-01-05 18:15:55 +03:00
Nekotekina
9fc0aec066
sys_fs_stat: fix split file handling
...
Allow single-file case (consistently with sys_fs_open)
2020-01-05 18:15:55 +03:00
Nekotekina
bed2d558a6
sys_fs: implement CELL_EROFS error
...
Implement lv2_mp_flag::read_only.
Currently only /dev_bdvd is affected.
2020-01-05 18:15:55 +03:00
Nekotekina
d5f0957558
Implement lv2_fs_mount_point with mount point flags
...
Implement some actual mount points
Implement lv2_mp_flag::no_uid_gid
2020-01-05 18:15:43 +03:00
Eladash
872be25ed1
cellFs: Fix cellFsLseek with negative whence
2020-01-04 22:38:53 +03:00
Eladash
9d2c9e5d62
cellFs: Improve cellFsGetDirectoryEntries
2020-01-04 22:38:53 +03:00
Nekotekina
28fb0d1741
Fix lv2_fs_object::name
...
Recreate path from actual decoded components.
2020-01-04 21:44:03 +03:00
Nekotekina
691a57a4da
Add BOM to sys_tty.cpp
2020-01-04 01:32:21 +03:00
Eladash
4c20881f8f
Fixup after #6933 ( #7166 )
...
* fixup
* Get rid of obsolute arg in lv2_obj::awake
* nvm ill do this later
* Typo fix of the decade
2020-01-01 17:38:05 +00:00
Eladash
71c4a2a15f
Silence some log messages
2019-12-31 22:27:27 +03:00
Eladash
9690854e58
Some cleanup
...
* Prefer default initializer over std::memset 0 when possible and more readable.
* Use std::format in trophy files name obtaining.
* Use vm::ptr<>::operator bool() instead of comparing vm::ptr to vm::null or using addr().
* Add a few std::memset calls in hle where it matters (or in some places just to document an actual firmware memcpy call).
2019-12-31 22:27:27 +03:00
Eladash
c2eb9a583d
Implement ps3 application root flags detection
2019-12-31 22:22:06 +03:00
Eladash
45cff1219c
Allow sys_raw_spu_create_tag to be called more than once
2019-12-30 23:46:45 +03:00
Nekotekina
ef8872c0d7
sys_net: fix sys_net_bnet_connect on Windows
...
Properly write is_connecting variable.
2019-12-29 21:53:43 +03:00
Nekotekina
01b1b21efd
sys_net: add a workaround for WSAPoll with timeout
...
Don't call WSAPoll with empty socket list.
2019-12-29 21:24:13 +03:00
Nekotekina
abe2cc196a
sys_net: fixup for race condition
...
Don't reset is_connecting without checking correctness.
Also cleanup dead WIN32 code.
2019-12-23 22:39:18 +03:00
RipleyTom
90e4fe23c5
WSAPoll workaround
2019-12-23 22:31:09 +03:00
Jayveer
364ba95d26
Updated sys_net to use WSAPoll on win32 as this fixes connection issues
...
in Metal Gear Online. Also aligns with implementations on non win32
platforms
2019-12-13 21:52:29 +03:00
Eladash
5142d7c011
Minor fixup after #7068
2019-12-06 19:59:29 +03:00
Eladash
5631382623
sys_spu: Fix SPU Thread Id
...
* Removed wrong code in sys_spu_thread_group_terminate.
* SPU Thread ID is accurate, including 5th thread id "rule".
* Fixed possible use-after-free access of spu_thread::group member.
* RawSPU ID management simplified.
2019-12-06 19:59:29 +03:00
Eladash
98970884c8
Make sys_tty accurate in release console mode, message saving in log
2019-12-05 23:31:46 +03:00
Eladash
a2c69e4a2e
sys_spu_thread_group_dis/connect_event Improvements
2019-12-05 23:31:46 +03:00
Nekotekina
bf11a28fb5
C-style cast cleanup IV
2019-12-01 22:12:33 +03:00
Nekotekina
28eacc616a
C-style cast cleanup III
2019-12-01 00:32:44 +03:00
Nekotekina
ad9c9f0183
C-style cast cleanup II
2019-11-30 18:17:45 +03:00
Eladash
8bd52c9843
Fix sys_spu_thread_un/bind_queue queue existence check
2019-11-28 01:54:45 +03:00
Eladash
9cc3838e49
Fix possible division by zero in sys_spu_thread_write/read_ls
2019-11-28 01:54:45 +03:00
Eladash
b8220ec12f
Stub sys_spu_thread_group_log
2019-11-28 01:54:45 +03:00
Nekotekina
2290c389d6
vm: implement vm::try_access, vm::ptr::try_read/write
2019-11-26 00:12:45 +03:00
Eladash
fd433779bb
sys_prx: Tiny improvement
2019-11-25 09:04:56 +00:00
Nekotekina
f31233b822
sys_net: don't report SYS_NET_EWOULDBLOCK in blocking syscalls
2019-11-22 18:56:40 +03:00
Nekotekina
5c55d4f2fe
sys_net: format both negative and positive sys_net_error values
2019-11-22 18:56:13 +03:00
Eladash
6ad8b0a443
sys_net: Add error_code
2019-11-21 22:51:22 +03:00
Nekotekina
0d629743ca
cellSysCache: poison opened cache files on cache clear
...
Make opened files return CELL_EIO after cache clear.
2019-11-09 14:50:41 +03:00
Nekotekina
e0bc276205
cellSysCache: keep mounted /dev_hdd1 after exitspawn
2019-11-09 14:43:19 +03:00
Eladash
7475be99ab
lv2: Check ipc_key value if object is process shared
2019-11-03 14:59:47 +03:00
Eladash
b99992d570
sys_spu: Fix SNR and Inbound Mailbox state reset
...
Also remove bugged ESTAT check at sys_spu_thread_write_spu_mb.
2019-10-29 18:34:28 +03:00
Eladash
f88a135b5b
Fix lv2_config_service_event event id reset
2019-10-29 18:15:26 +03:00
Eladash
114b9498bf
Remove unjustified use of idm::import_existing in sys_config
2019-10-29 18:15:26 +03:00
Eladash
8b6383b489
lv2: Correct alignment of some attributes structs
2019-10-29 18:15:41 +03:00
Eladash
3e4cbf67f6
sys_rwlock_wlock: Fix typo
2019-10-29 18:15:26 +03:00
Marin Baron
4599d58413
Fix debug build gcc/clang linker.
...
Create temporary variable to resolve undefined reference.
[ 98%] Linking CXX executable ../bin/rpcs3
/usr/bin/ld : Emu/librpcs3_emu.a(sys_vm.cpp.o) : dans la fonction « sys_vm_t::~sys_vm_t() » :
/mnt/raid/Git/rpcs3/rpcs3/Emu/Cell/lv2/sys_vm.cpp:21 : référence indéfinie vers « id_manager::id_traits<sys_vm_t, void>::invalid »
collect2: erreur: ld a retourné le statut de sortie 1
make[2]: *** [rpcs3/CMakeFiles/rpcs3.dir/build.make:426: bin/rpcs3] Error 1
2019-10-24 14:34:38 +03:00
Emmanuel Gil Peyrot
9d1b7af2eb
Avoid std::move() for copy elision
...
This could disable zero-copy optimisations, which is the opposite of
what we want.
2019-10-22 16:11:43 +03:00
Eladash
586fe11e22
Fix cellGcm HLE regression
...
Also correct flags.
2019-10-22 13:45:09 +03:00
Eladash
cbecbc264e
cellGcm: Fix driver_info->memory_size
...
based hw test
2019-10-21 15:31:45 +03:00
eladash
730e9cde84
sys_rsx: Improve allocations and error checks
...
* allow sys_rsx_device_map to be called twice: in this case the DEVICE address retrived from the previous call returned
* Add ENOMEM checks for sys_rsx_memory_allocate and sys_rsx_context_allocate
* add EINVAL check for sys_rsx_context_allocate if memory handle is not found
* Separate sys_rsx_device_map allocation from sys_rsx_context_allocate's
* Implement sys_rsx_memory_free; used by cellGcmInit upon failure
* Added context_id checks
* Throw if sys_rsx_context_allocate was called twice.
2019-10-21 15:31:45 +03:00
Eladash
79a3a7ce4c
Add exception for sys_usbd_initialize
2019-10-20 15:28:26 +01:00
Eladash
a1e7cdf1e9
Forcefully awake waiters in sys_usbd_finalize
...
This is a no-op from cellUsbd side but happens on lv2 side as well.
2019-10-20 15:28:26 +01:00
Eladash
d90696be90
sys_usbd Tiny update
2019-10-20 15:28:26 +01:00
Nekotekina
00895862e1
Fix sys_vm_t destructor
...
It's not a destructor's job to free vm like this.
2019-10-17 19:57:29 +03:00
eladash
95752607ea
sys_spu: Don't reset snr config at group_start()
...
Also first check for EINVAL in sys_spu_thread_set_spu_cfg
2019-10-16 21:11:29 +03:00
Eladash
b03c2fc856
sys_cond_wait: Fix mutex acquire when signaling thread didnt pass ownership immediatly
2019-10-16 00:50:58 +03:00
Malcolm Jestadt
1a9e06d3c6
Linux: Change default Sleep Timers accuracy to host
...
- This doesn't change existing configs
- Also sets the host_min_quantum to the true value
- Restores lost TODO: comment
2019-10-15 00:32:31 +03:00
Nekotekina
16dd72b3e3
Replace some uses of Emu.IsStopped()
...
Poll thread state instead.
2019-10-12 21:12:47 +03:00
plappermaul
925f2ce02f
Use Linux timers for sleeps up to 1ms ( #6697 )
...
* Use Linux timers for sleeps up to 1ms (v3)
The current sleep timer implementation basically offers two variants. Either
wait the specified time exactly with a condition variable (as host) or use a
combination of it with a thread yielding busy loop afterwards (usleep timer).
While the second one is very precise it consumes CPU loops for each wait call
below 50us. Games like Bomberman Ultra spam 30us waits and the emulator hogs
low power CPUs. Switching to host mode reduces CPU consumption but gives a
~50us penalty for each wait call. Thus extending all sleeps by a factor of
more than two.
The following bugfix tries to improve the system timer for Linux by using
Linux native timers for small wait calls below 1ms. This has two effects.
- Host wait setting has much less wait overhead
- usleep wait setting produces lower CPU overhead
2019-10-09 20:03:34 +03:00
Nekotekina
9d4de51cb6
Use g_fxo for network thread
...
Minor refactoring
2019-10-08 23:12:54 +03:00
Eladash
0f3c5f9e5a
Fix verification failure on Emu.Stop() at sys_cond_wait
2019-10-08 23:12:34 +03:00
Eladash
36de3d4f4c
sys_gpio Cleanup
2019-10-08 02:52:33 +03:00
Nekotekina
8031180373
Add dummy alert param to thread_ctrl::wait API
2019-10-06 16:03:10 +03:00
Eladash
9e929a25d4
rsx: Default initailize zcull reports padding
2019-10-05 15:00:50 +03:00
Eladash
08e674aa28
sys_cond fixes ( #6584 )
...
* sys_cond fixes
sys_cond_wait is now signaled atomically (regression fix)
Fix a corner case with sys_cond_wait and sys_cond_destroy EBSUY check (waiter count was inaccurate if thread is not the owner of mutex)
Add not about EBUSY corner case (TODO)
* Fix inconcistency in sys_cond_destroy and ETIMEDOUT
.. event at sys_cond_wait regarding waiters count.
Now waiters count is properly connected to the mutex owner actions after ETIMEDOUT in sys_cond_wait.
2019-10-03 23:05:34 +03:00
Eladash
7f725e0655
sys_rsx: Format special sys_rsx invalid param error, warning fixes
2019-09-28 03:16:01 +03:00
Nekotekina
465b16e786
Finally remove fxm from IdManager
2019-09-26 23:26:36 +03:00
Nekotekina
ccf9543b44
Improve vfs::host::unlink on Windows (for sys_fs_rmdir)
...
Possibly fixes sys_fs_rmdir and other cases of directory removal.
Make sure the directory with deleted files always becomes empty.
For this purpose, temp files are moved to the root of the device.
2019-09-25 18:47:38 +03:00
RipleyTom
e0d501124f
Only free the list if libusb_get_device_list succeeded
2019-09-25 01:07:04 +03:00
RipleyTom
4de301a961
Implement sys_usbd_event_port_send
2019-09-24 09:18:33 +02:00
kd-11
2c76f47eec
rsx: Restructure flip code and frame scoping
...
- Add an explicit frame scope marker tied in with the queue_prepare command
Since queue_prepare is emitted at the end of a frame, it can be used as end-of-frame in games that emit this
- If this command is not emitted, fifo flatenner and frameskip will not work
2019-09-19 23:10:09 +03:00
Nekotekina
538a5cc9d8
Silence skylander message
2019-09-19 02:16:14 +03:00
Nekotekina
a4951ec407
Use g_fxo for global lv2_memory_container
2019-09-18 21:24:04 +03:00
RipleyTom
7e2bb0fd1f
Adds initialization checks back in sys_usbd
2019-09-18 21:19:40 +03:00
Nekotekina
3eba0f4523
sys_usbd: use g_fxo
2019-09-17 15:23:40 +03:00
Nekotekina
7e2edc2232
sys_usbd: rearrange includes
2019-09-17 15:10:58 +03:00
RipleyTom
e98c7f4e1a
sys_usbd implementation
2019-09-17 01:17:48 +03:00
Nekotekina
d13ff285d1
Rewrite cond_variable to use waitable atomics
...
Increase max_timeout and fix max_timeout usage
2019-09-10 19:25:39 +03:00
Nekotekina
81a110f346
Fix system time wraparound
...
Implement utils::udiv128, utils::div128
2019-08-30 22:02:25 +03:00
Nekotekina
b3f5d6d85b
Put lv2_obj::awake calls under mutex
2019-08-29 02:44:12 +03:00
Nekotekina
b6b7d7b48c
sys_cond_wait fixup
2019-08-27 15:38:18 +03:00
Nekotekina
ec8c5453bc
Fix sys_cond_wait
...
Schedule PPU thread before relocking.
Don't lock mutex in notify functions.
2019-08-27 15:13:01 +03:00
Nekotekina
fd839243ec
Revert PR 6405
2019-08-27 14:05:38 +03:00
Nekotekina
7a00b5f809
Use g_fxo for patch_engine
2019-08-27 03:50:15 +03:00
Nekotekina
38a06c4b14
Use g_fxo for SysRsxConfig
...
Rename to lv2_rsx_config
2019-08-27 03:50:15 +03:00
Nekotekina
cf44038435
Use g_fxo for lv2_config
2019-08-27 03:50:15 +03:00
Eladash
a921fe3351
lv2: Wait for rescheduling before confirming ETIMEOUT
2019-08-27 03:44:34 +03:00
Eladash
35a3bed91a
sys_cond_wait: Wait for rescheduling before relocking
2019-08-27 03:44:34 +03:00
Nekotekina
2740fafa64
Use g_fxo for page_fault_notification_entries
2019-08-22 02:13:39 +03:00
Nekotekina
54952f6ad6
Use g_fxo for LoadedNpdrmKeys_t
...
Rename to loaded_npdrm_keys
2019-08-22 02:13:39 +03:00
Nekotekina
a85a8796d3
Use g_fxo for page_fault_event_entries
2019-08-22 02:13:39 +03:00
Nekotekina
7db2e2537f
Don't call lv2_obj::awake_all with empty list
...
Fixup after #5883
2019-08-22 02:13:39 +03:00
JohnHolmesII
5817e2a359
Fix mismatched enum string formats in sys_config
2019-08-18 18:39:17 +02:00
Eladash
62414cee15
Do not allow SYS_SYNC_PRIORITY_INHERIT in sys_semaphore_create (EINVAL)
2019-08-18 04:01:16 +03:00
Nekotekina
dd86aa472d
Fix _sys_lwcond_queue_wait
...
Fixup after #5883
2019-08-18 00:19:31 +03:00
Nekotekina
6535fb0603
Fix _sys_lwcond_signal_all
...
Fixup after #5883
2019-08-18 00:19:31 +03:00
yahfz
1444492eab
lv2: Allow sys_sync_priority_inherit
2019-08-17 23:11:08 +03:00
eladash
050339bb3e
PPU/LV2: Make thread-lists scheduling atomic
2019-08-17 22:46:36 +03:00
Eladash
0d88f037ff
Add new accuracy control for PUTLLUC accuracy setting (non-TSX)
...
With the option enabled GET commands are blocked until the current PUTLLC/PUTLLUC executer on that address finishes
Additional improvements:
- Minor race fix of sys_ppu_thread_exit (wait until the writer finishes)
- Max number of ppu threads bumped to 8
2019-08-17 00:42:46 +03:00
Eladash
d8402008dd
Stub sys_process_get_number_of_object(object == SYS_SPUPORT_OBJECT)
2019-08-16 23:49:24 +03:00
Eladash
0dce6be8cb
Implement lv2_spu_image
...
- Improved sys_spu_image_.. error checking
- sys_process SYS_SPUIMAGE_OBJECT handling implemented
2019-08-16 23:49:24 +03:00
Eladash
80827aa31a
Stub sys_process_get_number_of_object(object == SYS_TRACE_OBJECT)
2019-08-16 23:49:24 +03:00
Nekotekina
f8f3067deb
Always check page_allocated in vm::check_addr
2019-08-14 20:28:34 +03:00
Nekotekina
d45c743877
Remove lib_loading_type::automatic
...
This is former default and is now obsolete.
2019-08-14 20:28:34 +03:00
Nekotekina
cf16ee5eb5
Implement lib_loading_type::liblv2list
2019-08-14 20:28:34 +03:00
Nekotekina
ae46333e99
Implement lib_loading_type::liblv2both
2019-08-14 20:28:34 +03:00
Eladash
14ac70dfbf
Avoid using _sys_ppu_thread_exit in _sys_interrupt_thread_disestablish
2019-08-13 04:56:00 +03:00
Eladash
6d3fc3a386
core config: Expose min/max ranges of integral settings and use it
2019-08-13 04:56:00 +03:00
Eladash
cd4e895c04
Use error_code in mmapper_thread_recover_page_fault
2019-08-13 04:56:00 +03:00
Eladash
629d8e3a51
Fix sys_time_get_current_time() date
2019-08-13 04:56:00 +03:00
Eladash
0a5b6ad928
Add missing EALIGN check for sys_mmapper_search_and_map
2019-08-11 21:43:13 +03:00
Eladash
a832581201
Fix sys_vm address boundary checks (fix vsize)
2019-08-11 21:43:13 +03:00
Eladash
96527eee5b
idm: Fix bug in ID searching
...
* ID checking now checks if (id % step) == 0
* Extend possible ID range to allow UINT32_MAX (as long as base is non-zero)
2019-08-11 21:43:13 +03:00
Eladash
5c904bf3e2
Fix max allocations for DECR mode (sys_memory)
2019-08-11 21:43:13 +03:00
Eladash
cbcd06d1dc
ppu: Stack size allocation improvements
2019-08-11 21:43:13 +03:00
Eladash
3ce18fd960
Implement vm::page_executable ( #6330 )
...
Fixes segfaults when attenpting to set segfaults on non-executable memory.
2019-08-11 21:04:17 +03:00
Eladash
94d33003a3
Write zero in attr->pad (sys_memory_get_page_attribute)
...
Its included in lv2 as well.
2019-08-10 19:47:37 +03:00
Eladash
25e47e0de0
Fix vm::check_addr memory state check
2019-08-10 19:47:37 +03:00
Eladash
c219417f62
sys_vm: Fix sys_vm_invalidate
2019-08-03 14:29:17 +01:00
Eladash
72fb3ba794
perf hotfix for sys_timer_usleep
2019-08-01 23:38:09 +03:00
eladash
e40b76b253
sys_lwcond: Extract protocol from lwmutex at creation
...
This is the only reason theres a need to specify lwmutex_sq id at creation. unlike sys_cond, lwcond isn't connected to lwmutex at the lv2 level.
SYS_SYNC_RETRY fix is done explicitly at the firmware level.
This fixes issues when the original lwcond and lwmutexol data got corrupted or deallocated, this can happen when the program simply memcpy the control data to somewhere else.
Or if it uses direct lv2 the lwcond conrol param can even be NULL which will make it access violate when dereferncing it. (This param is unchecked and can be anything)
2019-07-29 21:58:04 +03:00
eladash
7508ae6e65
Add EAGAIN check for sys_memory_contianer_create
2019-07-29 21:55:59 +03:00
eladash
1e5e0f3b5e
make sys_fs_closedir atomic
2019-07-29 21:55:59 +03:00
Nekotekina
949f33c8a4
Fix sys_config_get_io_event syscall name
2019-07-29 21:55:59 +03:00
Eladash
997e3046e3
vm/sys_overlay Improvements
...
- Implement sys_overlay_load_module_by_fd.
- Implement special segment allocation when ppc_seg flag is specified.
2019-07-28 14:23:58 +03:00
Eladash
fcc75c8b0f
rsx: Write atomically semaphore updates and fix zcull timestamp
2019-07-26 21:27:55 +03:00
Eladash
c53f0dd7b5
rsx: Fix gcm unmap events
2019-07-26 21:27:55 +03:00
Eladash
85b1152e29
Timers scaling and fixes
2019-07-23 00:09:01 +01:00
Eladash
d17be2c2ec
Fix similar bug in sys_rsx_context_iomap
...
TODO: Is there an rsxmem unmap event for those cases?
2019-07-22 15:16:43 +03:00
Eladash
cf4d715284
typo fix (to squash)
2019-07-22 15:16:43 +03:00
Eladash
2b721b9e29
correctness fix
...
Not that it really matters because of gcm's lwmutex but just in case the syscall is useb directly.
2019-07-22 15:16:43 +03:00
Eladash
492c9e3c7c
Fix sys_rsx_context_iounmap partial unmapping
2019-07-22 15:16:43 +03:00
Rui Pinheiro
070c3af50f
Initial sys_config implementation
2019-07-22 02:44:45 +03:00
Nekotekina
cfa1416d64
sys_spu: add vm::temporary_unlock
2019-07-14 18:33:23 +03:00
Nekotekina
1a1eff66bc
sys_timer: add vm::temporary_unlock
2019-07-14 18:21:56 +03:00
Nekotekina
bc1617758c
sys_semaphore: add vm::temporary_unlock
2019-07-14 18:18:03 +03:00
Nekotekina
6126a98111
sys_rwlock: add vm::temporary_unlock
2019-07-14 18:14:15 +03:00
Nekotekina
e1293b14f8
sys_net: add vm::temporary_unlock
2019-07-14 18:11:00 +03:00
Nekotekina
f5ee8c1292
sys_interrupt: add vm::temporary_unlock
2019-07-14 18:08:18 +03:00
Nekotekina
0a88a23bf5
sys_event: add vm::temporary_unlock
2019-07-14 18:06:02 +03:00
Nekotekina
cbfa6cc91f
sys_vm: add vm::temporary_unlock
2019-07-14 17:55:26 +03:00
Nekotekina
38d4e3c184
sys_mmapper: add vm::temporary_unlock
2019-07-14 17:51:03 +03:00
Nekotekina
7398cfc950
sys_event_flag: add vm::temporary_unlock
2019-07-14 17:37:58 +03:00
Eladash
3de885c7a6
Dealloc exec cache after sys_prx/overlay_unload_module
...
Must come before vm::dealloc of it.
2019-07-13 16:59:58 +03:00
Eladash
c4d8ef4340
rsx: Allow to configure vblank rate
...
Removed "HLE protection" hack from sys_rsx_context_attribute
2019-07-12 00:19:56 +03:00
Nekotekina
d1db6a6827
Revert incorrect usage of le_t in name_u64
2019-07-09 12:07:58 +03:00
Eladash
6fba3dd90c
Misc correctness improvement
...
Use let_<u64> for name_64 and prefer it when possible.
2019-07-09 11:52:34 +03:00
Eladash
4c2fb54b99
Fix possible inconsistencies for sys_memory mem stats report
2019-07-04 22:35:22 +03:00
msuih
690cdff0d3
Minor fixes
...
- Fix a typo in OpenAL
- Fix typo in cellHttp.h
- Unused variables in catch
- Use 64-bit shifts
- Use use_count with shared pointers, unique is depracated and getting removed
- Explicitly cast boolean to int
- Signed/unsigned issues with loop variables
- Fix missing return statement (the code path is unreachable, but compiler wants a return)
- */ ouside of comment
- Fix duplicate layout name
2019-07-01 04:33:23 +03:00
msuih
d57124d075
Explicitly cast size_t to integer types
2019-07-01 04:33:23 +03:00
Eladash
43f919c04b
Fixup after #6143 ( #6146 )
...
vm::spu max address was overflowing resulting in issues, so cast to u64 where needed. Fixes #6145 .
Use vm::get_addr instead of manually substructing vm::base(0) from pointer in texture cache code.
Prefer std::atomic_thread_fence over _mm_?fence(), adjust usage to be more correct.
Used sequantially consistent ordering in semaphore_release for TSX path as well.
Improved memory ordering for sys_rsx_context_iounmap/map.
Fixed sync bugs in HLE gcm because of not using atomic instructions.
Use release memory barrier in lwsync for PPU LLVM, according to this xbox360 programming guide lwsync is a hw release memory barrier.
Also use release barrier where lwsync was originally used in liblv2 sys_lwmutex and cellSync.
Use acquire barrier for isync instruction, see https://devblogs.microsoft.com/oldnewthing/20180814-00/?p=99485
2019-06-29 18:48:42 +03:00
Eladash
1ee7b91646
Refactoring ( #6143 )
...
Prefer vm::ptr<>::ptr over vm::get_addr.
Prefer vm::_ptr/base over vm::g_base_addr with offset.
Added methods atomic_t<>::bts and atomic_t<>::btr .
Removed obsolute rsx:🧵 :Read/WriteIO32 methods.
Removed wrong check in semaphore_release.
Added handling for PUTRx commands for RawSPU MFC proxy.
Prefer overloaded methods of v128 instead of _mm_... in VPKSHUS ppu interpreter precise.
Fixed more potential overflows that may result in wrong behaviour.
Added io/size alignment check for sys_rsx_context_iounmap.
Added rsx::constants::local_mem_base which represents RSX local memory base address.
Removed obsolute rsx:🧵 :main_mem_addr/ioSize/ioAddress members.
2019-06-29 01:27:49 +03:00
JohnHolmesII
23094b48bb
Fix warnings related to -Wswitch
...
Add default cases.
Move default breaks to newline
Add proper handling in some instances.
Add missing enums to switches
2019-06-28 01:40:52 +03:00
Malcolm Jestadt
31afd046b0
lv2: sys_timer_usleep improvements for linux
...
-The minimum quantum on linux appears to be 50 microseconds by default, not 100
-Do not wait for the last quantum to avoid sleeping too long
2019-06-25 20:20:05 +01:00
Lassi Hämäläinen
c963c51a60
Remove unnecessary header includes
...
- Manually removed lot of unneeded #includes to clean code and reduce
compilation time
- Reordered some of the #includes to be in more logical order
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
e9e87b8bd9
Add missing #includes to header files
...
- Multiple header files where missing #includes to other headers that
where used in the header. Correct header was included in correct
order in source files which caused everything to compile.
- Added missing #includes so header files correctly include all their
dependencies and fixes problems with IDEs being unable to parse
headers correctly due to missing symbols
2019-06-25 17:11:10 +03:00
Lassi Hämäläinen
499035512b
Split Emu/Memory into more logical headers
...
- Add vm_locking.h and vm_reservation.h and move relevant functions
and types to these headers.
- Change include order and make vm_ptr.h, vm_var.h and vm_ref.h headers
usable invidually and them including vm.h instead of other way around
- Because usage of vm::ptr now requires including vm_ptr.h instead of
vm.h updated multiple #includes
- Added additional #includes to vm_reservation.h and vm_locking to
where vm::reservation_* and locking related functions are used
2019-06-25 17:11:10 +03:00
Eladash
ade291e73d
Fix potential overflow in sys_vm
2019-06-21 00:02:52 +03:00
Nekotekina
517a2bc34a
sys_lwcond: add vm::temporary_unlock
2019-06-20 14:46:32 +03:00
Nekotekina
a935203a18
sys_lwmutex: add vm::temporary_unlock
2019-06-20 14:46:32 +03:00
Nekotekina
5753b3222e
sys_memory: add vm::temporary_unlock
2019-06-19 20:45:59 +03:00
Nekotekina
d021d9e14a
sys_mutex: add vm::temporary_unlock
2019-06-19 20:39:39 +03:00
Nekotekina
89a31292dc
sys_cond: add vm::temporary_unlock
2019-06-19 20:39:29 +03:00
Nekotekina
5d45a3e47d
Implement cpu_thread::suspend_all
...
Remove Accurate PUTLLC option.
Implement fallback path for SPU transactions.
2019-06-19 20:36:12 +03:00
Ivan
0fe26f8293
Add sys_rsx_context_iomap workaround
...
Don't fail with CELL_EINVAL on vm::main.
2019-06-17 01:17:02 +03:00
Nekotekina
2bc0ea37ab
sys_fs: yield PPU on disk access ops
2019-06-08 19:34:55 +03:00
scribam
09c9996f31
Use empty() instead of comparing size() with 0
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/readability-container-size-empty.html
2019-06-01 22:59:23 +03:00
scribam
bf557ea6e6
Use the more efficient character literal overload for find_first_of/find_last_of
...
Recommendation from Clang-Tidy: https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html
2019-06-01 22:59:23 +03:00
Megamouse
cafa4521ee
Better Support For Game Collections ( #4450 )
2019-06-01 01:12:30 +03:00
Nekotekina
ea554ae828
Implement 'Max SPURS Threads' option (hack)
...
Pauses SPURS threads beyond limit automatically if set.
2019-05-14 22:15:04 +03:00
Nekotekina
7492f335e9
SPU analyser: basic function detection in Giga mode
...
Misc: fix EH frame registration (LLVM, non-Windows).
Misc: constant-folding bitcast (cpu_translator).
Misc: add syntax for LLVM arrays (cpu_translator).
Misc: use function names for proper linkage (SPU LLVM).
Changed function search and verification in Giga mode.
Basic stack frame layout analysis.
Function detection in Giga mode.
Basic use of new information in SPU LLVM.
Fixed jump table compilation in SPU LLVM.
Disable broken optimization in Accurate xfloat mode.
Make compiled SPU modules position-independent in SPU LLVM.
Optimizations include but not limited to:
* Compiling SPU functions as native functions when eligible
* Avoiding register context write-out
* Aligned stack assumption (CWD alike instruction)
2019-05-11 02:13:19 +03:00
eladash
13d8e33d9a
Return ESRCH if ppu thread ID was not found in sys_cond_signal_to
2019-05-07 08:58:07 +03:00
eladash
4e2650af91
Fix sys_rwlock_wlock timedout event
...
If the rwlock is currently acquired by a writer signaling readers is wrong and will lead to EPERM for wunlock!
Only signal blocked readers if the rwlock is currently acquired by readers
2019-05-07 08:58:07 +03:00
eladash
ca08418dc1
Fix sys_rwlock_runlock on waiting readers
...
readers can wait on the sleep queue if a writer lock has been blocked before it, in this case after runlock: writer should acquire the lock but the r's sleep queue is still not empty!
2019-05-07 08:58:07 +03:00
eladash
6f76e34104
rsx: Fix race on clearing native_ui vs emu_requested flag
2019-04-20 01:04:41 +03:00
eladash
67f098627a
Fix sys_spu group ID
2019-04-20 01:04:41 +03:00
eladash
f25587d24c
rsx: Write vblank semahpre, minor semaphore acquire optimization
2019-04-20 01:04:41 +03:00
msuih
baf42430d6
Decrease severity of sys_net_bnet_close
2019-04-16 18:39:57 +03:00
Nekotekina
0d415407c7
sys_fs_unlink: add CELL_EISDIR check
2019-04-12 12:24:36 +03:00
TGEnigma
38cc92ec45
Add _sys_ppu_thread_create and sys_ppu_thread_rename error checks
2019-04-11 18:14:05 +03:00
eladash
d555eeb0f4
Check start status in sys_prx_start/stop_module
2019-04-11 17:47:52 +03:00
Inviuz
52a12185a0
Initial sys_overlay
2019-04-10 23:25:09 +03:00
Nekotekina
40142420c1
Implement vfs::host::unlink
...
Emulate POSIX behaviour in sys_fs_unlink.
This should allow to delete opened files transparently on Windows.
2019-04-10 13:58:12 +03:00
Nekotekina
9736773c04
Implement vfs::host::rename
...
With spurious access error workaround
2019-04-10 13:58:12 +03:00
eladash
182054b8af
Implement sys_vm_append/return_memory
2019-03-31 14:57:21 +03:00
eladash
3c0564c9b7
Fix timer state after event queue was destroyed
...
* Hw tests show state is unaffected by external destruction of the event queue
* Minor race regarding state check fixed (can result in an undestroyable state)
2019-03-31 14:57:21 +03:00
eladash
90490f775d
Fix sys_timer_usleep specifically with 0 sleep time
...
Remove context switch, replace it with host yield() for giving some cpu time for SPUs ans RSX
2019-03-31 14:57:21 +03:00
eladash
4a28319edf
Implement SPU page faults notifications
...
* Implement both RawSPU and threaded SPU page fault recovery
* Guard page_fault_notification_entries access with a mutex
* Add missing lock in sys_ppu_thread_recover_page_fault/get_page_fault_context
* Fix EINVAL check in sys_ppu_thread_recover_page_fault, previously when the event was not found begin() was erased and
CELL_OK was returned.
* Fixed page fault recovery waiting logic:
- Do not rely on a single thread_ctrl notification (unsafe)
- Avoided a race where ::awake(ppu) can be called before ::sleep(ppu) therefore nop-ing out the notification
* Avoid inconsistencies with vm flags on page fault cause detection
* Fix sys_mmapper_enable_page_fault_notification EBUSY check
from RE it's allowed to register the same queue twice (on a different area) but not to enable page fault notifications twice
2019-03-12 13:28:31 +03:00
eladash
a43e7c172c
Fix shared memory page flags
...
TODO: From hw testing, it seems like sys_memory_get_page_attribute and sys_rsx_context_iomap check page size a little differently
get_page_attribute() always go by area flags, sys_rsx_context_iomap checks page by the page granularity
This means that if the area page size 64k, but shared memory is mapped with SYS_MEMORY_GRANULARITY_1M
It can be mapped for rsxio, but the page attribute will indicate 64k page size :thonk:
rsxio memory is verified to need 1m pages.
2019-03-08 23:44:46 +03:00
eladash
7470388e5a
Use error_code in sys_rsx
2019-03-08 23:44:46 +03:00
eladash
26bcd0a4de
Small improvements to sys_event_flag
...
- From RE, only protocols SYS_SYNC_FIFO and SYS_SYNC_PRIORITY are valid
- Use conditional atomic op store in a few places
- Properly revert changes in sys_event_flag_set when aomic op fails
2019-03-08 23:44:46 +03:00
elad
fc253165e2
Correctness fix for RSXIOMem
...
- Make RSXIOMem volatile.
- Hint the compiler to check only once the address returned.
2019-03-08 23:44:46 +03:00
elad
f272a5f779
sys_lwmutex fixup after #5680
...
sys_lwcond_wait unlocks always with the 'usual' unlocking flags
2019-03-08 23:44:46 +03:00
elad
3c9f03968c
Yield before flushing io buffers in fsync (sys_fs) ( #5506 )
2019-03-08 16:07:14 +00:00
eladash
e38b7aee5a
check address in sys_rsx_context_iomap
...
* Fix 0 vm page flags to behave like 1m flags, follows c8a681e60
* check if address exists and valid for rsx io allcations (must be allocated on 1m pages)
2019-03-05 21:23:24 +03:00
Nekotekina
f143035af1
Fix sys_spu_thread_group_join wait condition
...
After waiting, thread group cannot be safely accessed
Following #5643
2019-03-01 00:08:19 +03:00
eladash
a22297f205
exception throwing fix in sys_lwmutex_create
...
arg6 doesnt exist, if arg4 is not negative name is discarded and treated as 0.
2019-02-27 22:16:08 +03:00
eladash
d4459af4b3
Implement _sys_lwmutex_unlock (SYS_SYNC_RETRY mode)
2019-02-27 22:16:08 +03:00
elad
63a9421634
Fix race in sys_lwcond_wait on error code
2019-02-16 21:41:59 +03:00
eladash
d6995f40c7
Fixup for sys_lwcond_signal_x error checking
2019-02-11 01:13:29 +03:00
eladash
fa647bc121
Fix race condion in sys_spu_thread_group_join
2019-02-10 18:20:24 +03:00
eladash
84d42ecb65
Add EFAULT checks to spu_thread_group_join, ppu_thread_join
...
Order of checks is based on firmware
2019-02-10 00:16:57 +03:00
eladash
0861226271
Make more use of the new atomic_t<>::release
2019-02-10 00:16:57 +03:00
eladash
e3ee481f01
Make sys_spu_thread_group_join return once per termination
2019-02-10 00:16:57 +03:00
eladash
d4a24433e8
Fix DECR mode allocations (sys_memory)
2019-01-31 16:03:38 +03:00
eladash
56b7581ade
Return error code in sys_ppu_thread_get_join_state
2019-01-25 18:04:33 +03:00
elad
afeacc171f
Fix spurious abort in sys_rwlock_tryrlock and sys_semaphore_trywait ( #5579 )
...
Use full cmpxchg loop to prevent occasional return of CELL_EBUSY
2019-01-22 23:10:17 +03:00
Nekotekina
cfdf50dcff
SPU: ensure sys_spu_thread_group_join receives correct exit status
...
Following #5334
2019-01-13 14:45:36 +03:00
RipleyTom
7ebd3bbcbf
Fixes issues where the mutex is destroyed while an unlock is happening
2018-12-31 01:39:47 +03:00
eladash
483ee5e488
Fix sys_vm_memory_map address base
2018-12-30 20:12:32 +00:00
eladash
79a6a2c7fb
Debug console emulation
2018-12-30 20:12:32 +00:00
eladash
2ea061b9c7
Set total memory size according to sdkver
2018-12-30 20:12:32 +00:00
eladash
c0eb4965f2
mmapper_allocate_memory improvement
...
Added cases 0 for allocation granularity size,
alike sys_memory_allocate, the alignment of this case is 1mb.
2018-12-30 20:12:32 +00:00
eladash
4b65c3943c
Fix sys_semaphore_post count check
2018-12-26 23:03:27 +03:00
eladash
653a4ef0df
Set group status INIT on last thread stopped
...
this fixes the group status after sys_spu_thread_exit when not joining the spu group
2018-12-25 19:59:41 +03:00
Nekotekina
522f5ea645
Fix cellFsGetFreeSize (following #5304 )
...
Simplify device name extraction
2018-12-24 16:04:46 +03:00
RipleyTom
077e710e3a
sys_fs_fcntl with parameter 0xC0000002 should extract device path from the given path and use that to gather free space information
2018-12-10 14:24:07 +03:00
kd-11
504ab5a6d4
rsx: Minor cleanup to silence stupid compiler warnings
2018-12-03 20:01:23 +03:00
kd-11
e01d2f08c9
rsx: Refactor FIFO
...
- Removes fifo structures from common RSXThread
- Sets up a dedicated FIFO controller
- Allows for configurable queue optimizations
2018-11-30 23:51:25 +03:00
Nekotekina
96cabeadff
Rewrite condition variables
...
Implement helper functions balanced_wait_until and balanced_awaken
They include new path for Windows 8.1+ (WaitOnAddress)
shared_mutex, cond_variable, cond_one, cond_x16 modified to use it
Added helper function utils::popcnt16
Replace most semaphore<> with shared_mutex
2018-11-29 01:30:05 +03:00
Nekotekina
f442a8a84c
SPU TG: add thread group stop counter
...
Fix possible race condition introduced by waiting on `running` value
2018-11-27 23:37:26 +03:00
eladash
4baa159523
cellFsOpen flag fix
2018-11-24 02:54:48 +03:00
isJuhn
225310e04b
Add null alloc_addr checks to sys_memory_allocate and sys_memory_allocate_from_container
2018-11-16 18:37:07 +00:00
Nekotekina
0044eb44e2
Cleanup after #5310 (SPU thread groups)
...
Move lambda into a cpu_stop()
Use running thread counter to synchronize with sys_spu_thread_group_join()
Use SPU_STATUS_STOPPED_BY_STOP exclusively for sys_spu_thread_exit() as before
Remove unnecessary waiting in sys_spu_thread_group_exit()
Rollback some minor unnecessary changes
Use shared_mutex in SPU TG
2018-11-14 12:50:24 +03:00
RipleyTom
0e0a82e536
Ensures threads are stopped in join
2018-11-13 10:19:28 +03:00
eladash
57b7892de6
Fix typo in sys_fs_mkdir
...
create_path is a less resticted version of create_dir, it doesnt check for EEXIST for one.
2018-11-12 13:28:58 +03:00
eladash
3332a10052
ppu: Fix threads scheduler
...
*Set priority under a lock
*Fix yield command making threads going out of scheduler control by removing it from the queue (not a bug that affects compatibility)
2018-11-07 13:06:29 +03:00
eladash
3fd17e43a3
lv2: Fix lwcond_queue_wait lock acquiring
2018-11-07 13:06:29 +03:00
eladash
3faaf9e7fb
lv2: Fix lwmutex locking
2018-11-07 13:06:29 +03:00
eladash
777f36e604
Fix error code checking of sys_lwcond_signal_x
2018-11-07 13:06:29 +03:00
Dennis Luxen
36d4614d12
Fix a warning that shift overflows data type width ( #5116 )
2018-10-23 18:49:01 +03:00
eladash
5ee351234c
rsx-capture: unbreak
2018-10-23 18:02:03 +03:00
eladash
d14c8a03b3
typo fix
2018-10-20 22:27:48 +03:00
Nekotekina
1b37e775be
Migration to named_thread<>
...
Add atomic_t<>::try_dec instead of fetch_dec_sat
Add atomic_t<>::try_inc
GDBDebugServer is broken (needs rewrite)
Removed old_thread class (former named_thread)
Removed storing/rethrowing exceptions from thread
Emu.Stop doesn't inject an exception anymore
task_stack helper class removed
thread_base simplified (no shared_from_this)
thread_ctrl::spawn simplified (creates detached thread)
Implemented overrideable thread detaching logic
Disabled cellAdec, cellDmux, cellFsAio
SPUThread renamed to spu_thread
RawSPUThread removed, spu_thread used instead
Disabled deriving from ppu_thread
Partial support for thread renaming
lv2_timer... simplified, screw it
idm/fxm: butchered support for on_stop/on_init
vm: improved allocation structure (added size)
2018-10-19 22:22:35 +03:00
elad
623f1b35f6
rsx_capture/gcm: Fix tile binding ( #5246 )
...
* gcm: Fix tile offset setting
highest bit signifyies location, so ignore that while reading the offset.
* rsx-capture: Fix tile binding
fixes division by zero when dividing by pitch when the tile is not bound.
* rsx-capture: Fix zcull binding
2018-10-12 19:05:08 +03:00
eladash
4174d7274d
sys_rsx: fix log spam
2018-10-03 20:57:46 +03:00
Nekotekina
da6ce80f4f
Make vm::get_super_ptr return contiguous memory
...
Cleanup RSX code complexity
2018-09-27 23:37:13 +03:00
Nekotekina
306f95a9ae
New named_thread template (preview)
...
Old class named_thread renamed to old_thread
It's too hard to move in a single commit
2018-09-27 14:04:16 +03:00
kd-11
a3d44b5e1f
rsx: Cleanup changes for the flip patch
2018-09-24 16:44:02 +03:00
Jake
699eadc84f
rsx: Move render flip from rsx queue command to flip command
2018-09-24 16:44:02 +03:00
eladash
1a6c819176
cellgcm: Fix SET_REFERENCE initial value
2018-09-20 01:05:40 +03:00
Nekotekina
dce14a359a
Rename lv2_spu_group::num to max_num
2018-09-19 14:15:15 +03:00
Nekotekina
b94e98aed5
Rewrite sys_fs_opendir
...
Rewrite lv2_dir object
Support split files and mount points
2018-09-15 17:18:40 +03:00
Nekotekina
e8b5555630
Rewrite vfs::get and vfs::mount
...
Preprocess . and .. correctly
Don't use recursive locking
Also use std::string_view
Fix format system for std::string and std::string_view
Fix fmt::merge for std::string_view
2018-09-15 17:09:56 +03:00
Nekotekina
2226125728
atomic_t<>: remove inline assignment
...
Add atomic_op/fetch_op overloads with template argument (may be removed in future)
Remove args... in atomic_op (capturing lambda is preferred)
2018-09-09 12:59:24 +03:00
Nekotekina
fb5cdf9769
atomic_t<>: extend fetch_op to support cancellation
...
Use std::invoke inside atomic_op/fetch_op
Remove op_fetch because it's easily replaced
Add fetch_dec_sat algorithm (conditional decrement)
2018-09-08 00:32:04 +03:00
scribam
02ba529eea
sys_usbd: add sys_usbd_event_port_send function
2018-09-05 19:53:09 +03:00
Nekotekina
ca5158a03e
Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
...
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina
7bccdbf157
Make vm::var unmoveable
...
Fix bugs with discarding vm::make_var result
2018-09-03 21:40:36 +03:00
Nekotekina
8abe6489ed
Mega-cleanup for atomic_t<> and named bit-sets bs_t<>
...
Remove "atomic operator" classes
Remove test, test_and_set, test_and_reset, test_and_complement global functions
Simplify atomic_t<> with constexpr if, remove some garbage
Redesign bs_t<> to use class, mark its methods constexpr
Implement atomic_bs_t<> for optimizations
Remove unused __bitwise_ops concept (should be in other header anyway)
Bitsets can now be tested via safe bool conversion
2018-09-03 21:40:36 +03:00
eladash
9acaee563b
Fix sys_memory_free
2018-09-01 22:44:20 +04:00
Nekotekina
c49c7de427
sys_fs_stat: support split files
...
Was forgotten after sys_fs_open
2018-08-30 14:56:45 +03:00
Nekotekina
363811981d
Reintroduce LOG_CHANNEL
...
Groundwork for further improvements
2018-08-25 15:39:00 +03:00
eladash
158019b50f
Rsx: fix translation when address is negative
...
move address shift to where it should be, extend io table to catch all possible values.
2018-08-22 12:20:31 +03:00
eladash
9d8c9c2460
sys_memory: fix default alignment flag
...
its 1mb
2018-08-16 03:27:11 +04:00
Nekotekina
a3daa99a33
Fixup sys_vm_memory_map
2018-08-14 16:08:45 +03:00
Nekotekina
aa4040bb7b
Implement vm::find_map; improve memory allocation
...
Add vm::user64k and vm::user1m constants
Remove vm::user_space, unreserve it
2018-08-14 15:14:06 +03:00
Nekotekina
62f9a2dc4b
sys_fs_open: support split files
2018-08-14 15:14:06 +03:00
eladash
449888b9db
Rsx/vm: fix base addresses
2018-08-13 16:16:34 +03:00
eladash
f349695a75
Rsx: rewrite address translation
2018-08-13 16:16:34 +03:00
eladash
745ed8331c
Fix sys_rsx_context_iounmap args
2018-08-11 18:14:35 +04:00
Maxetto
05c1f192f5
Update new LV2 names ( #4886 )
2018-08-11 16:46:44 +04:00
eladash
20e9ae069c
Fix sys_time_get_current_time
2018-07-19 14:43:10 +04:00
Megamouse
a19113025c
HLE/Qt: implement sys_tty_read
2018-07-16 00:05:30 +04:00
Chris Weermann (TGE)
c5dcef52fa
Implement sys_dbg_read_process_memory and sys_dbg_write_process_memory
2018-07-10 01:47:47 +04:00
eladash
b456955688
rsx: fix hardcoded rsx allocation address
2018-06-24 10:57:30 +03:00
Ofek
2bc4cb4e58
Fix sys_spu_thread_connect event
2018-06-16 19:05:51 +04:00
Nekotekina
df489d786a
sys_timer_usleep: give Linux a partial exemption
2018-06-05 12:35:26 +03:00
eladash
4576a31f47
fix memory mapping alignment
2018-05-30 00:34:38 +04:00
eladash
23b380eb41
allow deallocations to unmap rsx mapped memory
2018-05-29 19:57:28 +03:00
eladash
97515a0941
sys_rsx/cellgcm: return EINVAL if the io map requast's size is 0
2018-05-29 19:57:28 +03:00
eladash
0a7902d313
sys_rsx: fix mem_handle id
2018-05-29 19:57:28 +03:00
eladash
8eab9fe36c
sys_rsx: fix unused pointer dereferencing
2018-05-29 19:57:28 +03:00
kd-11
d48f391b41
lv2: Ease the pain of lower end CPUs
...
- Avoid busy waiting in usleep code as much as possible, instead yield
- Also avoid busy_wait for SPU concurrency choker
2018-05-29 13:54:30 +03:00
kd-11
be13a776f4
lv2: Reimplement sys_timer_usleep
...
- Matches ps3 accuracy for all tested values with few exceptions
- Do not enter the host OS kernel if waiting for less than 500us to avoid scheduler issues
2018-05-29 13:54:30 +03:00
kd-11
8fcd5c1e5a
rsx: Texture cache fixes
...
1. rsx: Rework section synchronization using the new memory mirrors
2. rsx: Tweaks
- Simplify peeking into the current rsx::thread instance.
Use a simple rsx::get_current_renderer instead of asking fxm for the same
- Fix global rsx super memory shm block management
3. rsx: Improve memory validation. test_framebuffer() and
tag_framebuffer() are simplified due to mirror support
4. rsx: Only write back confirmed memory range to avoid overapproximation errors in blit engine
5. rsx: Explicitly mark clobbered flushable sections as dirty to have them
removed
6. rsx: Cumulative fixes
- Reimplement rsx::buffered_section management routines
- blit engine subsections are not hit-tested against confirmed/committed memory range
Not all applications are 'honest' about region bounds, making the real cpu range useless for blit ops
2018-05-23 19:07:08 +03:00
sftt
27004eb934
Avoid illegal available_user_memory in sys_memory ( #4399 )
...
jarveson says "the comment and minus can be completely deleted/reverted" in 17cf24d0ed
2018-05-15 17:40:45 +01:00
Nekotekina
5d15d64ec8
Memory mirror support
...
Implemented utils::memory_release (not used)
Implemented utils::shm class (handler for shared memory)
Improved sys_mmapper syscalls
Rewritten ppu_patch function
Implemented vm::get_super_ptr (ignores memory protection)
Minimal allocation alignment increased to 0x10000
2018-05-09 23:35:34 +03:00
Maxetto
dca6f1f863
Update some lv2 syscall names ( #4490 )
2018-05-06 14:21:50 +04:00
Nekotekina
c77b310422
Implement sys_vm_invalidate
2018-04-07 21:18:34 +03:00
Nekotekina
d392379c7a
Use vm::passive_lock for SPU threads
2018-04-06 15:47:00 +03:00
Nekotekina
402ca480cd
Fix vm::check_addr usage
2018-04-01 22:39:48 +03:00
Nekotekina
898637f830
Remove mfc_thread
...
Clear mfc_queue on reset
Improve MFC Proxy a bit
2018-03-31 21:13:12 +03:00
eladash
63fa50080d
sys_spu: dont check prio if spu group type is 0x20
...
it's currently unknown whats the exact relationship between the prio and the group type SYS_SPU_THREAD_GROUP_TYPE_COOPERATE_WITH_SYSTEM (0x20).
tho we do know prio'es whom less than 16 are reserved for the system.
2018-03-24 19:48:14 +04:00
eladash
fad9cd6ef1
sys_spu: fix spu image loading address calculation
...
by calculating mem_size after nsegs has being calculated
2018-03-24 19:48:14 +04:00
scribam
1ae724f739
sys_fs: returns the correct error value when the path is 0 or an empty string
2018-03-23 21:45:22 +04:00
Nekotekina
f4d2fccdfe
Improve boot dir access
...
Add Emu.GetDir() method
2018-03-11 19:33:01 +03:00
Jake
7bbadfd08b
ppu/sys_interrupt: add stack_reset command to fix sys_interrupt stack overflowing
2018-03-09 20:30:59 +04:00
Nekotekina
f056b2f4ab
Improve TTY output
...
Use atomic variable to sync TTY size
Implement console_putc (liblv2)
Write plaintext instead of HTML
Slightly improve performance
Fix random line breaks in TTY
2018-03-01 16:28:08 +03:00
Robbie
00b1ff752d
Add flag for rockband. Tests have shown it independent other flags. But, actual use is currently not known.
2018-02-18 04:29:41 +04:00
elad
877b296fc3
hle: return enosys on unpresented syscalls
2018-02-16 21:57:31 +04:00
elad
95c6ac699b
hle: gpio syscalls
...
* add sys_gpio_get, sys_gpio_set
2018-02-12 04:29:07 +04:00
Nekotekina
cce0ad0c35
Clean vm::ps3 namespace use
2018-02-09 17:49:37 +03:00
Nekotekina
76be7d40ac
Remove PSP2
2018-02-09 15:24:46 +03:00
elad
5b5f2d4240
hle: add a missing check in sys_spu
...
check if exit code exists and the spu is stopped by a stop instruction
and optimize the way were getting the exit code
2018-02-06 04:09:07 +04:00
Inviuz
cc0d7c5985
improved hack/fix for cellsurmixer
2018-01-24 15:21:24 +00:00
kd-11
3d9e3a16f1
rsx/gl/vk: Fixes and optimizations
...
- opengl driver optimization for nvidia. On nvidia glTextureBufferRange performance is horrendous
-- Initialize texture buffer to whole buffer at startup and use absolute offsets to read data instead
-- Over 2x performance in some cases (Resogun, TNT racers)
- gl/vk: Do not flip non-existent display buffers. Fixes spec violation at boot in TNT racers demo
- whitespace fixes for sys_rsx
2018-01-22 11:43:35 +03:00
kd-11
ee009ec99c
rsx: Robustness fixes
...
- Track last working state and reset to it if RSX starts to desync
-- This is especially useful when running vulkan since the renderer will easily outpace the rest of the system when merely recording draw commands
- Ignore empty sets
-- Mark empty/invalid IB sets as having 0 element counts.
2018-01-02 21:17:56 +03:00
Nekotekina
e768bdc80f
Remove /app_home/ dependency
...
Should also fix exitspawn
2017-12-27 02:51:58 +03:00
Nekotekina
a605919729
Fix lv2_socket id_base
2017-12-27 02:51:58 +03:00
Ofek
3cf0fb60a4
Set lv2_socket id_base ( #3983 )
2017-12-25 15:47:28 +04:00
Ofek
a6208d2bd7
Reset initial seek position in MSELF files ( #3977 )
2017-12-23 23:18:55 +04:00
Ani
5e04a5f21d
_sys_process_exit: Fix logging ( #3963 )
2017-12-21 19:48:21 +00:00
kd-11
0d0821e914
rsx: Pause FIFO queue when changing ctrl registers
2017-12-18 10:45:37 +03:00
Zion
17bfb3beaf
various memory access violation fixes (and friends) ( #3930 )
...
* various memory access violation fixes
* Another fix, for motorstorm demo
* Better stub cellGameUpdateCheckStartAsync and FinishAsync, Fixes #3934
2017-12-16 04:03:49 +04:00
Nekotekina
bfb3144f34
sys_net: Force AF_INET
2017-12-02 12:36:05 +03:00
Jake
17cf24d0ed
sys_memory: Lower maximum size for memory block to fake OS size - Report available memory minus another fake block that can be used for the OS
2017-12-01 20:29:59 +03:00
Zion Nimchuk
8276d29d4f
Silence warnings in lv2/Modules
2017-11-30 18:07:19 +03:00
Zion Nimchuk
b9b06143d2
Silence some warnings in some files in Utilities
2017-11-30 18:07:19 +03:00
Nekotekina
695b4c1f06
Change sys_usbd_receive_event
2017-11-27 23:15:28 +03:00
Nekotekina
f7803927d9
Fix exitspawn (autoexit option)
...
Fix other situations affected by this options
2017-11-26 09:02:37 +03:00
Nekotekina
74c248150b
Log sys_fs_utime values
2017-11-23 18:38:05 +03:00
Ofek
58c42ad9c0
Check sys_spu_thread_group_create's nsize ( #3742 )
...
* Check sys_spu_thread_group_create's nsize
* cellSearch callback correction
2017-11-23 02:02:23 +04:00
clienthax
86a34fbb45
Fix regressions caused by network code. ( #3702 )
...
* Stub SOCK_DGRAM_P2P to allow some games to load again.
* Add 'support' for unspec sockets
(Have only seen the youtube app using these so far)
2017-11-20 16:42:16 +03:00
Zion Nimchuk
12ecba7d49
Initial work on sys_usbd syscalls
2017-11-19 23:11:13 +03:00
Nekotekina
0fbb8b9a18
Implement _sys_prx_load_module_by_fd
...
Implement _sys_prx_load_module_on_memcontainer_by_fd
2017-11-15 21:00:02 +03:00
clienthax
946ba3be29
Fix bug in sys_spu_thread_group_create ( #3734 )
2017-11-14 22:24:55 +04:00
Tahir Akhlaq
3d0dced4bd
change CryptAcquireContextW to try CRYPT_NEWKEYSET flag if key container doesnt exist already < https://msdn.microsoft.com/en-us/library/windows/desktop/aa379886(v=vs.85).aspx >
2017-11-03 14:17:37 +03:00
Nekotekina
af107df0b4
Fix NPDRM exitspawn
2017-11-01 05:07:12 +03:00
Nekotekina
0e7e40f2cb
Fix /dev_bdvd/ for exitspawn
2017-11-01 05:07:11 +03:00
Jake
e0d1ac676e
rsx: invalidate surface store address when tile is unbound
2017-10-28 12:46:20 +03:00
Jake
626b9f93c4
rsx: make dmactrl get 'readonly'
2017-10-28 12:46:20 +03:00
Nekotekina
5b19908996
Escape problematic characters in VFS
...
With full-width <>:"\|?*
2017-10-11 22:01:37 +03:00
Robbie
47b121a700
PPU Page Faults ( #3309 )
...
I guess I'll merge it and fix some issues later myself.
2017-10-08 23:37:54 +03:00
Nekotekina
3907dd0444
Implement SYS_NET_SO_REUSEPORT
2017-10-05 19:51:37 +03:00
Nekotekina
3d64b65813
Fix /dev/urandom typo
2017-10-05 19:51:37 +03:00
Nekotekina
ab4e66a0bf
Add cellVdec hack (stolen TLS)
2017-10-05 19:51:37 +03:00
Nekotekina
d296e6021d
libbeisobmf.sprx
2017-10-05 19:51:37 +03:00
Nekotekina
e5f756205c
sys_net full rewrite
...
Implement sys_net syscalls
Clean libnet functions
Use libnet.sprx
Use libhttp.sprx
Use libssl.sprx
Use librudp.sprx
Implement sys_ss_random_number_generator
2017-10-05 19:51:37 +03:00
Nekotekina
b9a0c107ab
Fix library loading mode 'both'
2017-09-20 14:26:42 +03:00
Nekotekina
5c93acefd9
Try to fix some fs errors
2017-09-19 15:07:07 +03:00
Nekotekina
a428dac71c
sys_fs_mkdir: implement ENOENT
2017-09-19 15:07:07 +03:00
Nekotekina
3901f08fa0
Fix error on loading a library twice
2017-09-19 15:07:07 +03:00
Nekotekina
519f21db18
Exitspawn support renewal
...
Implemented _sys_process_exit2 syscall
Rewritten sys_game_process_exitspawn
Rewritten sys_game_process_exitspawn2
Implemented _sys_process_atexitspawn
Implemented _sys_process_at_Exitspawn
And some other changes
2017-09-19 15:07:07 +03:00
Nekotekina
ae2ea02377
Implemented _sys_prx_load_module_on_memcontainer
2017-09-19 15:07:07 +03:00
Nekotekina
b9b71ccbc1
Implemented syscall _sys_process_exit
2017-09-19 15:07:07 +03:00
Nekotekina
669b1385cc
Move sys_process_exit
2017-09-19 15:07:07 +03:00
Robbie
d5fb7180d0
HGA calls sys_rsx_context_attribute before calling sys_rsx_memory_allocate. This inevitably causes RPCS3 to crash. Add nullptr check to prevent this.
2017-09-18 21:24:13 +01:00
Nekotekina
669d953529
Implement fs::error::notempty
2017-09-14 00:23:23 +03:00
Nekotekina
22d8b57027
Improve lv2_memory object
2017-09-14 00:23:23 +03:00
Nekotekina
0e691e2c51
sys_mmapper: minor range fix
2017-09-14 00:23:23 +03:00
Nekotekina
ae1e9e78db
sys_fs: use g_tls_error for diagnostic
...
Affected syscalls:
sys_fs_open
sys_fs_opendir
sys_fs_stat
sys_fs_mkdir
sys_fs_fcntl (get free space)
2017-09-14 00:23:23 +03:00
RipleyTom
e4105f46de
Implement _sys_prx_get_module_info
2017-09-08 00:06:53 +03:00
jjsat
634c411946
Fix sys_tty_write() if called with pwritelen == NULL.
2017-09-06 00:14:15 +03:00
Nekotekina
83e139cd1a
Improve sys_fs_ftruncate
...
Handle stream API lock (EBUSY)
Handle append mode
2017-09-04 02:15:29 +03:00
Nekotekina
1262263f5c
Fix sys_event_port_connect_ipc
2017-09-04 02:15:28 +03:00
Nekotekina
9b9e2bcafb
Move sys_gamepad filter
2017-09-04 02:15:28 +03:00
Talkashie
ca6064b109
sys_usbd stuff ( #3346 )
...
* Create sys_usbd.cpp
* Create sys_usbd.h
* Update lv2.cpp
2017-09-02 04:21:42 +03:00
Ani
e57caefd09
libad: Enable LLE load
...
Removes libad from ignore list.
It will only affect games that call for it, making them progress further with the Recompiler instead of dying in Unregistered Function, as there's no HLE implementation of libad.
Tested with Guitar Hero 5 [BLES00576]
2017-09-01 21:10:50 +01:00
Nekotekina
5b00aaf561
Fix decrypt_self usage
2017-09-01 02:10:57 +03:00
Nekotekina
05442bdb11
Protect SPU segments
2017-09-01 00:59:25 +03:00
Nekotekina
8f9410ceff
Implemented syscall sys_event_port_connect_ipc
2017-08-31 22:10:22 +03:00
Nekotekina
90b8346312
Implemented syscall _sys_spu_image_get_segments
2017-08-31 21:39:12 +03:00
Nekotekina
167d6a08f8
Implemented syscall _sys_spu_image_get_information
2017-08-31 21:30:13 +03:00
Nekotekina
b533d57717
sys_spu_image: minor update
...
Cleanup
Templates extended
2017-08-31 20:36:51 +03:00
Nekotekina
010b75251f
fs::rename fixed
...
Added overwriting policy
sys_fs_rename improved
2017-08-30 17:14:30 +03:00
Nekotekina
f59a448f3f
Copy sys_spu_segment info in SPU TG
...
No idea whether it fixes something or not
2017-08-27 03:00:10 +03:00
Nekotekina
aa5dc5455e
_sys_spu_image_import implemented
...
vm:var<T[]> improved (begin/end)
sys_spu_image_import rewritten
2017-08-27 03:00:10 +03:00
kd-11
8358bda133
gl/rsx: Fixes to zcull pixel counting
2017-08-26 21:53:54 +03:00
scribam
93bfe8164c
Move sys_gamepad files to the correct directory
2017-08-18 21:59:25 +03:00
Nekotekina
613214cdca
Improve error formatting
2017-08-08 22:17:51 +03:00
kd-11
fcb7072fee
Implement hardware zcull emulation
...
rsx/gl: Support s1 immediate values; ogl minor refactoring
2017-08-06 14:29:42 +03:00
Jake
02845f546e
Add gcm to auto lle / liblv2
2017-08-02 01:33:12 +03:00
Jake
21dd715b42
sys_rsx: implement support for lle-gcm
2017-08-02 01:33:12 +03:00
Jake
d9a693019b
rsx/gcm: Implement rsx dma. Refactor gcm/rsx to not be as codependent
2017-08-02 01:33:12 +03:00
Nekotekina
bf14cbdb27
Fix _sys_lwcond_signal, _sys_lwcond_signal_all
2017-07-30 01:09:42 +03:00
Nekotekina
a209d0d7fa
Minor fix of sys_event_queue_receive
2017-07-30 01:09:42 +03:00
Nekotekina
7fa42cfaad
Fix sys_semaphore_wait (on timeout)
2017-07-26 22:35:45 +03:00
Nekotekina
bf53035e3f
IPC support for lv2 sync objects
2017-07-26 21:03:41 +03:00
Nekotekina
67b71c0f89
Fix sys_rwlock_wunlock
2017-07-26 21:03:41 +03:00
Nekotekina
5766fb1f31
Fix sys_rwlock_wlock
2017-07-26 21:03:41 +03:00
scribam
1899f399b6
Mixed minor changes
2017-07-26 17:49:40 +03:00
Nekotekina
adf119e960
sys_rwlock_runlock fixed
...
Registered _sys_rwlock_trywlock
2017-07-23 16:01:52 +03:00
Nekotekina
3f9affd2ad
Stub some SPU syscalls
2017-07-23 11:03:38 +03:00
Jake
7b3693bb29
sys_timer: Fix initial timer state
2017-07-22 09:41:00 +03:00
Nekotekina
f91f2e3e6d
Patch: add floating point support
...
Also count applied entries
2017-07-17 18:36:54 +03:00
Nekotekina
e39ee10105
Patch system improved
...
SPU patch rewritten
PPU patch implemented
2017-07-17 16:49:46 +03:00
Nekotekina
7702eb2fa7
PPU: clean linkage info
2017-07-12 21:29:09 +03:00
Nekotekina
ff53ff3bbf
Force HLE for net-related libraries
2017-07-12 14:00:38 +03:00
Nekotekina
8202352452
Do not load sprx twice
2017-07-12 14:00:38 +03:00
Nekotekina
74f2be7307
PPU: free prx segments
2017-07-12 14:00:38 +03:00
Nekotekina
9a38d63661
Store sys_spu_image value
2017-07-12 14:00:38 +03:00
RipleyTom
d793f8ad78
Implements sys_fs_disk_free
2017-07-04 16:16:32 +03:00
Nekotekina
f0d184f38b
PPU LLVM: relocation support
2017-07-04 02:04:22 +03:00
Nekotekina
8034196c25
ppu_syscall_code type added (for fmt)
2017-06-26 16:56:13 +03:00
Nekotekina
1196e9decc
PPU LLVM: remove unnecessary code
2017-06-26 16:56:13 +03:00
Nekotekina
d0b37777c3
Remove throw cpu_flag
2017-06-23 20:09:33 +03:00
Nekotekina
aea094730b
PPU LLVM: paradigm shift
...
For now, compile only one block at time
Use tail calls to move between blocks
Fully write PPU context (except CIA)
This fixes many compatibility problems
2017-06-23 20:09:33 +03:00
scribam
4d294e7a69
Stub sys_rsxaudio_ functions
2017-06-22 20:08:21 +03:00
Jake
d3df83a3ea
Sprx: loading / reloc fixes
2017-06-21 19:28:05 +03:00
Jake
80fc471067
Ignore LLE savedata modules
2017-05-21 18:07:43 +03:00
Nekotekina
f010b5b235
Configuration simplified
2017-05-20 16:01:48 +03:00
Nekotekina
88fef183a3
config.yml: Log section optimized
2017-05-15 14:37:05 +03:00
Nekotekina
8df95dbe39
Stub sys_fs syscalls
2017-05-11 19:05:41 +03:00
Nekotekina
08c955d177
Remove AutoPause.cpp
2017-05-11 19:05:41 +03:00
Nekotekina
8209e6c1e3
ppu_initialize_syscalls draft
2017-05-11 19:05:41 +03:00
Nekotekina
5ffb4766b0
sys_ppu_thread_once rewritten
...
sys_initialize_tls moved
sys_interrupt_thread_disestablish moved
2017-05-11 19:05:41 +03:00
Nekotekina
b1e8eefad0
cellFs fixes
...
cellFsAllocateFileAreaWithoutZeroFill implemented
2017-05-07 15:24:07 +03:00
Nekotekina
e8d76ede14
sys_fs_fsync fix
2017-05-05 00:11:57 +03:00
Nekotekina
8055d83da2
sys_fs_fget_block_size improved
2017-04-26 20:31:39 +03:00
Nekotekina
b0a83cdb56
sys_fs_lsn_get_cda_size stub
2017-04-26 20:26:29 +03:00
Nekotekina
3f5951c9f8
sys_fs_fcntl update
2017-04-26 16:10:26 +03:00
Nekotekina
c3c442ccb1
cellFsGetFreeSize implemented
2017-04-26 02:27:35 +03:00
Nekotekina
a95a63a58a
sys_fs_lsn_lock implemented
2017-04-26 02:27:35 +03:00
Nekotekina
1bbb76fa20
sys_fs_test implemented
2017-04-26 02:27:35 +03:00
Nekotekina
256dfc5729
sys_fs_fsync implemented
...
sys_fs_fdatasync implemented as equal function
2017-04-26 02:27:34 +03:00
Nekotekina
19fd8c109e
cellFsSdataOpenByFd fixed
2017-04-26 02:27:34 +03:00
Nekotekina
d7c3d1ce12
sys_fs: 0xc0000006 stub
2017-04-26 02:27:34 +03:00
Nekotekina
0f95736c36
cellFsGetDirectoryEntries rewritten
2017-04-26 02:27:34 +03:00
Nekotekina
d05b6135c6
Use libfs.sprx (LLE)
2017-04-26 02:27:34 +03:00
Nekotekina
4ceaab10a5
_mxr000 hack moved
2017-04-16 17:44:20 +03:00
Nekotekina
402df68235
sys_spu_image loading rewritten
2017-04-16 17:44:20 +03:00
Nekotekina
2fd58dc7e8
sys_prx updated
2017-04-16 17:44:19 +03:00
Ani
94ab3ae7cf
Misc ( #2614 )
...
* cellSysmodule: Register libad modules
Register libad_core, libad_async, libad_billboard_util
* Misc
sys_ss_get_console_open_psid (Called on Project Diva F 2nd),
sys_ss_get_console_id
Stub cellWebBrowserGetUsrdataOnGameExit for Professional Baseball
Spirits 2015
Fix two logs on GcmSys
2017-04-13 19:30:25 +03:00
scribam
9ba0a9189b
Update sys_spu
...
- Implement sys_spu_thread_group_set_priority
- Implement sys_spu_thread_group_get_priority
2017-04-10 04:08:55 +03:00
scribam
49ba4bbfb5
Typo
2017-04-10 02:39:52 +03:00
Nekotekina
3ec156b2f2
Enable patch engine for SPU images
2017-03-30 12:04:59 +03:00
Nekotekina
0393c7f52c
fs:: handle negative seek
2017-03-27 01:15:41 +03:00
Jake
65696bf6a3
Crypto: fix sprx/self check in npDrm and edata fixes
2017-03-25 14:26:27 +03:00
Inviuz
c729d6d65a
Use sys_vm_memory_map plus add default value for sys_allocate ( #2560 )
...
for different memory map(unconfirmed) also handle default action.
Fixes unknown syscall 313 error
Issue 2510
2017-03-21 16:02:00 +03:00
Inviuz
b70a1edbc7
Mmapper with Neko's review fixes ( #2503 )
2017-03-12 03:15:22 +03:00
Nekotekina
ce35554a55
Fixes (sys_memory, sys_mmapper)
...
DeS
2017-03-11 21:37:18 +03:00
Nekotekina
4739eb3601
Reservation fix
2017-03-11 15:48:43 +03:00
Jake
a6f8e4f6b3
Edat / Sdata: On the fly decryption for edat, fix EDAT_FLAG_0x20 decryption
2017-03-10 19:39:01 -06:00
Nekotekina
5e3bacbd9b
New reservations
...
Memory system cleanup
sys_memory_get_page_attribute
2017-03-10 15:51:40 +03:00
Jake
87fe93ee9a
Mself / Sdata: on the fly partial decoding support ( #2468 )
2017-03-07 08:59:05 +08:00
Nekotekina
8e4a09d9e5
cellFsSdataOpenByFd draft
...
LLE-compatible implementation
lv2_file::make_view implemented
2017-03-04 16:54:49 +03:00
clienthax
bd85f23ed9
Stub sys_gamepad ycon interface ( #2435 )
...
* Attempt to add sys_gamepad...
* Stub ycon methods
Signed-off-by: clienthax <clienthax@gmail.com>
2017-02-28 19:15:11 +03:00
Nekotekina
0eb6bf6a67
LLVM: splitting and caching
2017-02-26 20:14:18 +03:00
Nekotekina
9000407a77
cpu_thread::test_state added
...
lv2_obj::sleep adjustment
synchronization fixes
2017-02-22 13:23:21 +03:00
Nekotekina
598c90f376
PPU thread scheduler
2017-02-13 22:26:11 +03:00
Nekotekina
e8bfce4ebd
decrypt_self() function
...
Fixed SPU self decryption
Fixed PSV debug self load
2017-02-11 21:36:48 +03:00
Nekotekina
257b9a2015
Debugger fix
...
Crash fixes
GUI fixes
Debug enhancements
2017-02-10 16:33:22 +03:00
raven02
a1189fa37a
finding from @3141card on PS3 console
2017-02-08 23:33:43 +03:00
Nekotekina
246b9f3182
CHECK_EMU_STATUS removal
2017-02-05 17:35:27 +03:00
Nekotekina
bf6854d121
LV2_LOCK removed
2017-02-05 16:35:10 +03:00
Nekotekina
11b0b6958f
sys_spu diag
2017-02-05 15:48:11 +03:00
Nekotekina
ec943b38a2
sys_spu...
2017-02-05 02:26:57 +03:00
Nekotekina
68f0393cf3
sys_interrupt...
2017-02-04 20:39:04 +03:00
Nekotekina
fe26db4d36
idm::last_id cleanup
2017-02-04 20:39:04 +03:00
Nekotekina
e3e4decabf
sys_timer...
2017-02-04 20:39:04 +03:00
Nekotekina
6537909fd2
sys_event_queue...
2017-02-04 20:39:04 +03:00
Nekotekina
26ced19e18
sys_event_flag...
2017-02-04 20:39:03 +03:00
Nekotekina
3d85a89cc9
sys_lwcond, sys_lwmutex
2017-02-04 20:39:03 +03:00
Nekotekina
16944b0c4c
sys_cond, sys_mutex
2017-02-04 20:39:03 +03:00
Nekotekina
c4cc3ad81e
sys_rwlock...
2017-02-04 20:39:03 +03:00
Nekotekina
0674a58502
idm::check extended
...
idm::check_unlocked
idm::find_unlocked
idm::get_unlocked
2017-02-04 20:39:03 +03:00
Nekotekina
213527ca71
sys_semaphore...
2017-01-31 19:36:17 +03:00
Nekotekina
dc7ac22f84
sys_ppu
...
LV2_LOCK removal
error_code introduction
2017-01-31 18:03:09 +03:00
Nekotekina
b21fce4d6f
IdManager improved
...
lv2_obj for kernel objects
Simple lookup (vector)
Another idm API refactoring
2017-01-29 21:37:04 +03:00
Nekotekina
a5a2d43d7c
Thread.cpp refinement
...
Hide thread mutex
Safe notify() method
Other refactoring
2017-01-29 19:52:19 +03:00
Nekotekina
df6607e236
Minor fixes
2017-01-28 03:21:11 +03:00
Nekotekina
4ecf05aa13
cellFsUtime implemented
2017-01-26 20:01:16 +03:00
Nekotekina
5db0f47710
lv2_fs_object fix
2017-01-26 04:22:15 +03:00
Nekotekina
591a6c8671
IdManager improved
2017-01-25 23:29:36 +03:00
Nekotekina
a06223b844
IdManager sugar
2017-01-25 04:43:12 +03:00
Yishuai Li
80a9abcfc8
fix type conflict with macOS ( #2157 )
2016-10-20 03:42:14 +03:00
Nekotekina
c20756136a
Minor diagnostic added
2016-08-18 13:29:53 +03:00
Nekotekina
ad174eb12c
error_code implemented
...
Reports based on formatting system
ppu_error_code removed
arm_error_code removed
2016-08-16 18:57:44 +03:00
Nekotekina
dbcb5df172
WRAP_EXPR macro removed
2016-08-15 17:11:45 +03:00
Nekotekina
84d0d396ed
EXPECTS usage removed
2016-08-15 16:29:38 +03:00
Nekotekina
56b9b38c9c
verify() fix
2016-08-15 14:59:19 +03:00
Nekotekina
05fb57baff
VERIFY macro removed
2016-08-15 03:13:31 +03:00
Nekotekina
1f3433464c
ENSURES usage removed
2016-08-14 22:41:01 +03:00
Nekotekina
0f87c4485d
Silly macro removed-2
2016-08-14 18:19:42 +03:00
Nekotekina
7a2802a5e0
Silly macro removed
2016-08-12 19:31:28 +03:00
Nekotekina
fc56e70172
vm::ptr<char> formatting
2016-08-11 16:47:20 +03:00
Nekotekina
bdeccd889f
cpu_type removed, system_type added
...
cpu_state -> cpu_flag
vm::stack_allocator template improved
ppu_cmd type changed to enum, cmd64 type added
2016-08-09 17:14:41 +03:00
Nekotekina
a7e808b35b
EXCEPTION macro removed
...
fmt::throw_exception<> implemented
::narrow improved
Minor fixes
2016-08-08 19:19:32 +03:00
Nekotekina
46735d6b3d
New bitsets (experimental)
2016-08-08 16:29:37 +03:00
Nekotekina
5a36c57c57
Formatting system improved
...
`unveil<>` renamed to `fmt_unveil<>`, now packs args to u64 imitating va_args
`bijective...` removed, `cfg::enum_entry` now uses formatting system
`fmt_class_string<>` added, providing type-specific "%s" handler function
Added `fmt::append`, removed `fmt::narrow` (too obscure)
Utilities/cfmt.h: C-style format template function (WIP)
Minor formatting fixes and cleanup
2016-08-04 21:34:00 +03:00
raven02
61c6f82f74
Regression fix #1995 ( #2014 )
2016-08-01 19:47:14 +08:00