kd-11
34220ec447
lv2: Make some struct declarations uniform
2022-05-20 16:29:27 +03:00
Elad Ashkenazi
5a581f46df
Add a constraint about vm area approx matching
2022-05-19 21:29:18 +03:00
Eladash
b334621d76
PPU DisAssembler: Prevent false function descriptor detection
2022-05-19 21:29:18 +03:00
Elad Ashkenazi
a768855a7a
Update PPUThread.cpp
2022-05-19 18:16:53 +03:00
Eladash
7ddeb0d00f
Implement sys_process_exit3
2022-05-19 13:59:52 +03:00
Eladash
2ba437b6dc
SPU: Implement timer freezing ability
2022-05-14 22:03:47 +03:00
Megamouse
1e1b111678
sceNp: register custom menu
2022-05-13 21:52:14 +02:00
Eladash
1f5ce4f619
Loader: Fix out-of-bounds access of string
...
There was no need to manually align size, it only creates a bug with memcpy usage.
2022-05-13 19:53:48 +03:00
Eladash
524da5dc54
LV2: Memory state post-exitspawn fixes
...
* Fix memory capacity if SDK version of the following executable differs from the original process'.
* Keep user memory containers, they are not freed at exitspawn!
Hw test 4bf60023ee
2022-05-13 13:15:07 +03:00
Eladash
a2a6303a22
PPU LLVM: Precompile system-internal executables if booting a dev_flash's program
2022-05-12 19:55:07 +03:00
Eladash
6805d8c7e0
SPU: Fix race on SPU Mailbox last value reading
2022-05-12 13:44:12 +03:00
Nekotekina
e243ef5907
PPU: implement accurate FRES
...
Implemented with an accurate lookup table.
2022-05-11 10:46:08 +03:00
doesthisusername
7b162c7513
PPU: implement quasi-accurate FRSQRTE
...
Denormals are handled like zeros.
NaN handling is inaccurate in some cases.
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2022-05-11 10:46:08 +03:00
NicknineTheEagle
1df47352cc
Implemented sceNpDrmGetTimelimit
2022-05-10 23:24:00 +02:00
NicknineTheEagle
83ca7654b1
Return NPD header in verify_npdrm_self_headers and VerifyEDATHeaderWithKLicense
2022-05-10 23:24:00 +02:00
Eladash
d03fcad9bd
cellAudio: Some bugfixes
...
* Reading position storage is 16 bytes aligned according to hw test.
* Fix cellAudioGetPortConfig portSize reporting, now matches PS3.
* Remove ghost code about unearthly 6 channels cellAudio port mode.
2022-05-10 22:39:34 +02:00
Megamouse
e494fc04e5
sceNp: add some constants
2022-05-10 21:55:35 +02:00
Eladash
d77c9139ad
Debugger: Show constant-formed attribute of register value
2022-05-10 22:34:29 +03:00
RipleyTom
4479d99a9a
Implement sceNpManagerGetTicketParam
2022-05-10 21:04:15 +02:00
Megamouse
a538f655be
sys_fs_fcntl: hook up usb device info
2022-05-10 19:39:35 +02:00
Megamouse
d83fac4247
cellAudio: fix timestamp exception
2022-05-08 02:08:20 +02:00
Megamouse
5476b9098e
cellHttp: add more errors
2022-05-07 14:46:57 +02:00
Megamouse
e5a75cfd1c
sceNpTrophyGetTrophyUnlockState: handle read_only
2022-05-07 13:58:05 +02:00
Megamouse
1f745c4588
sceNpTrophyRegisterContext: add read_only check
2022-05-07 13:58:05 +02:00
Megamouse
6c7f49d563
sceNpTrophy: don't use TROPHY.TRP in CreateContext
2022-05-07 13:58:05 +02:00
Megamouse
dae51a4a2b
sceNpTrophy: remove confirmed comment
2022-05-07 13:58:05 +02:00
Megamouse
d113324a90
sceNpTrophyRegisterContext: handle SHOW_ERROR_EXIT
2022-05-07 13:58:05 +02:00
RipleyTom
02d22dca95
Add Top Shot Elite controllers to whitelist
2022-05-05 22:33:50 +02:00
Eladash
be5f8413ca
Avoid using PUTLLC in PUTLLUC if we know SPU LR has already been raised ( #11940 )
2022-05-05 22:15:08 +03:00
RipleyTom
ce48d880d9
Fix for device2host control transfers
2022-05-05 19:24:01 +02:00
Nekotekina
10b33d0f79
SPU: optimize conflicting PUTLLUC (No-TSX)
...
Enable previously TSX-only optimization.
2022-05-05 19:16:16 +03:00
Vestrel
d1e468fefb
sys_rsxaudio: Initial implementation ( #11907 )
2022-05-05 15:47:44 +02:00
RipleyTom
0ac90ac395
sys_net: ensures return from raw socket calls
2022-05-05 14:37:54 +02:00
Megamouse
fef779feca
cellRec: fix pOpt pointer type
2022-05-05 12:23:12 +02:00
Megamouse
ced890301c
cellRec: fix some warning
2022-05-05 12:23:12 +02:00
Megamouse
7d73d90c1a
cellGameExec: fix warnings
2022-05-05 12:23:12 +02:00
Eladash
fcbeb2fa22
Remove slow vm::writer_lock usage from SPUThread.cpp
2022-05-04 23:36:57 +03:00
Eladash
3dda72e47f
SPU: Cache reservation memory direct access handle (optimization)
2022-05-04 20:28:55 +03:00
Eladash
63669000ab
PPU Loader Fix removing writablity permission for RSX/SPU writable segments
2022-05-04 12:03:10 +03:00
Eladash
f9a62667cf
SPU/PPU Loader: Implement linker/PS3 compiler executable files loading
2022-05-03 20:47:36 +03:00
Megamouse
6cc1466baa
halfplement cellRec
2022-05-03 18:19:31 +02:00
Megamouse
bcd77ac65e
halfplement cellVideoExport
2022-05-03 18:19:31 +02:00
Nekotekina
0786a0a088
PPU LLVM: match interpreter for VEXPTEFP/VLOGEFP
2022-05-03 08:27:44 +03:00
Nekotekina
5c1f79ab26
vm: remove g_mutex, use g_range_lock instead
...
Simplification and performance improvements.
2022-05-02 10:29:28 +03:00
Eladash
5eeb79ffa1
Fix forced HLE injection
2022-05-01 09:21:49 +02:00
RipleyTom
5746df4046
sceNpMatching2CreateContext checks psn state ( #11887 )
2022-04-27 22:16:16 +01:00
Megamouse
e0d3a3b0ed
cellOskDialog: do not intercept input unless we actually show a dialog
2022-04-26 00:51:38 +02:00
Megamouse
3183d73e4d
OSK/overlays: fix initial input interception
...
Don't use default interception if we already intercept with custom params.
2022-04-26 00:51:38 +02:00
Megamouse
c8700dd246
Input: log interception and its source function
2022-04-26 00:51:38 +02:00
Eladash
7329fa9cf5
TRPLoader: Use std::string_view
2022-04-25 20:15:10 +02:00
Megamouse
a1abc79f28
cellOskDialog: add event_hook_callback logging
...
And refactor the callback a bit
2022-04-25 19:44:56 +02:00
Megamouse
3d0f751211
cellMusic: lower some log levels to reduce spam
2022-04-25 19:44:56 +02:00
Megamouse
8864f944e2
cellOskDialog: implement dimmer_enabled
2022-04-25 19:44:56 +02:00
Megamouse
b29f106c51
cellOskDialog: implement base_color
2022-04-25 19:44:56 +02:00
Megamouse
71f8280c5e
cellOskDialog: implement KeyboardEventHookCallback
2022-04-25 19:44:56 +02:00
Megamouse
0ff293707a
OSK: allow device input during interception
2022-04-25 19:44:56 +02:00
Megamouse
9adab801ac
cellOskDialog: implement device mask and lock
2022-04-25 19:44:56 +02:00
Megamouse
43e7776f4d
cellOskDialog: add some error checks and TODOs
2022-04-25 19:44:56 +02:00
Megamouse
ffd36ea662
OSK: handle keyboard input
2022-04-25 19:44:56 +02:00
Megamouse
abf80cc112
keyboard: use std::array, default init, + KbButton
2022-04-25 19:44:56 +02:00
Megamouse
c175cdf3d8
cellVdec: send AUDONE even when the queue is being flushed/restarted
...
Fixes GT6 regression
2022-04-24 17:39:49 +02:00
Megamouse
7924784215
cellVdec: log sequence id of commands
2022-04-24 17:39:49 +02:00
Megamouse
06cbc96722
cellVdecStartSeq: log level warning
2022-04-24 17:39:49 +02:00
Megamouse
dcda332a93
cellVdec: send AUDONE before PICOUT
2022-04-24 17:39:49 +02:00
Megamouse
eac4e991bd
cellVdec: add callback and command id logging
2022-04-24 17:39:49 +02:00
Megamouse
9284344480
cellVdec: fix cellVdecStartSeq (restart mode)
2022-04-24 17:39:49 +02:00
Megamouse
2c03467eec
cellVdec: improve logging a bit
2022-04-24 17:39:49 +02:00
Megamouse
b67cda7cbb
cellVdec: add handle to more log messages
2022-04-24 17:39:49 +02:00
Megamouse
fb27ed4deb
libav: remove deprecated option refcounted_frames
...
According to fe85afbf8c/doc/APIchanges (L743)
this option is deprecated and obsolete for the newer send/receive logic.
Should fix runtime exceptions with newer ffmpeg versions.
2022-04-24 11:05:22 +02:00
Megamouse
8acb62f6ee
HLE: simplify some error formats
2022-04-22 20:56:21 +02:00
Megamouse
1d6fbf1c35
cellGameGetParamString: fix patch mode
2022-04-22 20:56:21 +02:00
Megamouse
f42e647430
cellVdec: use av_error_to_string
2022-04-21 22:22:33 +02:00
Megamouse
7c65c1e3aa
cellVdec: Remove irritating while loop
2022-04-21 22:22:33 +02:00
Megamouse
9f51003366
cellVdecGetPicture and cellVdecGetPictureExt swap
...
This fixes a possible issue with the error handling order.
2022-04-21 22:22:33 +02:00
Megamouse
512eb93a62
cellVdecDecodeAu: fix param check
2022-04-21 22:22:33 +02:00
Megamouse
9c919db9ae
cellVdec: fix out format line offsets
...
Fixes video output in Uncharted 2
2022-04-21 22:22:33 +02:00
Megamouse
61ada2c1dc
cellVdec: call av_dict_free
2022-04-21 22:22:33 +02:00
Megamouse
bd5bff321e
cellVdecDecodeAuEx2: some REd guesswork
2022-04-21 22:22:33 +02:00
Megamouse
ee3a302cf2
cellVdecDecodeAu: add codec type check
2022-04-21 22:22:33 +02:00
Megamouse
fb3752a8ef
CellVdecDivxSpecificInfo2 (who knows if this is correct...)
2022-04-21 22:22:33 +02:00
Megamouse
548b748f50
CellVdecPicAttr
2022-04-21 22:22:33 +02:00
Megamouse
771009f333
cellVdec: add more error logging
2022-04-21 22:22:33 +02:00
Megamouse
db731d307e
CELL_CODEC_PTS_INVALID, CELL_CODEC_DTS_INVALID
2022-04-21 22:22:33 +02:00
Megamouse
c6f3f386df
cellVdec: implement CELL_VDEC_ERROR_SEQ
2022-04-21 22:22:33 +02:00
Megamouse
e9af0bb72b
cellGameGetParamString: check_mode for category
2022-04-21 20:56:11 +02:00
Megamouse
d8bbec9594
libav: log more error codes as string
2022-04-21 08:10:01 +02:00
RipleyTom
563af4211a
sys_net: Fix race between dnshook and nc
2022-04-17 00:06:21 +02:00
RipleyTom
895af3c3ab
sys_net: SYS_NET_ENETDOWN for offline dns rqsts ( #11822 )
2022-04-16 13:00:04 +01:00
Eladash
1d51f3af0c
RSX-Debugger: Implement backwards scrolling
...
* Use 2 points of known true RSX code roots and follow them in order to peek at the current section of valid RSX code:
These roots are: current RSX instruction address and the last targeted address by a branch instruction.
2022-04-15 22:34:51 +03:00
RipleyTom
26d8120168
sys_net fixes and extra logging
2022-04-15 19:43:23 +02:00
RipleyTom
d6b0263144
sys_net fixes
...
Fix lv2_socket_p2ps::connect
Fix sys_net_bnet_poll
2022-04-14 09:18:58 +02:00
RipleyTom
91768c025c
Add some error handling to sys_usbd
2022-04-14 08:26:23 +02:00
kd-11
57aee92bfe
rsx: Separate guest flip timer from host timing operations
2022-04-13 23:39:01 +03:00
RipleyTom
4d26535758
sys_net: bind & getsockname accuracy
2022-04-12 08:58:17 +02:00
clienthax
127ad508b4
Add stubs.
2022-04-10 18:28:57 +02:00
RipleyTom
4087b4e6b9
sys_net: fix dns redirection
2022-04-10 15:12:33 +02:00
Eladash
c35da0085f
PARAM.SFO loader improvement
2022-04-10 14:31:13 +02:00
RipleyTom
f8ea50caae
sys_net: Fix return values being tagged as errors
2022-04-10 11:15:41 +02:00
Megamouse
20801615f3
cellOskDialogAbort: always send finished event
...
No idea if this is really correct, but it fixes the PS-Home OSK dialog freeze.
2022-04-10 08:38:36 +02:00
Megamouse
9279736fe6
cellOskDialog: fix cellOskDialogAbort error format
2022-04-10 08:38:36 +02:00
Megamouse
d84a0c6503
cellGameGetBootGameInfo
2022-04-10 08:38:36 +02:00
RipleyTom
c06cb4664a
Various sys_net improvements
...
Implement P2PS select
Adjust P2P sendto return value
2022-04-09 21:56:53 +02:00
RipleyTom
855b23b3fe
re-add scope to sys_net_bnet_poll
2022-04-09 20:24:08 +03:00
RipleyTom
72b2876b6a
sys_net refactor ( #11740 )
2022-04-09 14:51:22 +02:00
Megamouse
544cec0434
revert cellSysutilAvc2Load
...
I think I mistook the subfunc for the main func
2022-04-08 20:07:58 +02:00
Megamouse
bcc097718f
cellSysutilAvc2 fixes
2022-04-08 20:07:58 +02:00
Megamouse
0dc176b4f1
cellSysutilAvc2EstimateMemoryContainerSize
2022-04-08 20:07:58 +02:00
Megamouse
47401cba1f
cellSysutilAvc2: more improvements
2022-04-08 20:07:58 +02:00
Megamouse
8a2826f3a9
cellSysutilAvc2SetWindowString: add strlen check
2022-04-08 20:07:58 +02:00
Megamouse
81f8ece236
cellSysutilAvc2InitParam: remove overzealous code.
...
The function is intended as a constructor, so it doesn't make sense to check struct members
2022-04-08 20:07:58 +02:00
Megamouse
3c2cf79675
cellSysutilAvc2: more stubs and errors
2022-04-08 20:07:58 +02:00
Megamouse
a841ba4084
cellSysutilAvc2: more constants
2022-04-08 20:07:58 +02:00
Megamouse
3024026d9e
cellSysutilAvc2: format some enums
...
Makes them more readable
2022-04-08 20:07:58 +02:00
Megamouse
ee98f577e2
sceNpTrophyGetTrophyIcon: SCE_NP_TROPHY_ERROR_HIDDEN
...
And prevent some possible segfaults
2022-03-31 23:02:35 +02:00
Nekotekina
98cee991ef
PPU: fix step execution after BP
2022-03-27 11:37:11 +03:00
Nekotekina
0a617a05d0
PPU: correct behaviour under external debugger
...
May require setting "Assume External Debugger" to true.
2022-03-26 23:09:20 +03:00
RipleyTom
a4d715e25d
Warning Fixes
2022-03-23 19:35:10 +01:00
Megamouse
ff34a73fbd
cellSaveData: CELL_SAVEDATA_FOCUSPOS_NEWDATA
...
Untested, but focus position is clamped anyway.
2022-03-18 08:09:50 +01:00
Megamouse
686d2759f4
cellMic: remove cellMicRead error spam
2022-03-12 20:48:36 +01:00
Megamouse
cd97d74f0f
cellMusic/Decode: add SelectContents functions
2022-03-08 09:02:59 +01:00
Megamouse
aafd74f9ea
cellMusicDecode: initial implementation
...
Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
2022-03-05 18:34:27 +01:00
Megamouse
15e74357cf
cellMusic: implement qt music handler
2022-03-03 08:25:46 +01:00
Megamouse
b1a9e87ecf
cellSearch: fix cellSearchStartListSearch
...
Fixes listing BGM in Gundam.
The returned content was always empty.
Playback of the tracks will still require a MusicSelectionContext and cellMusic playback, which isn't implemented yet.
2022-02-20 21:06:46 +01:00
Megamouse
2147fe479c
cellSearch: more logging
2022-02-20 12:29:37 +01:00
Megamouse
91d7f28c67
cellSearch: log audio and video metadata
2022-02-19 14:27:47 +01:00
Megamouse
8171c7766c
cellSearch: silence irrelevant log error
2022-02-19 14:27:47 +01:00
Megamouse
3f69ceac40
cellMusic: fix cellMusicSetVolume log messages
2022-02-19 14:27:47 +01:00
RipleyTom
6bd8a93ff4
Fixes some unchecked derefs in sceNp logging
2022-02-16 17:08:58 +01:00
Eladash
e39797d860
Fix sys_fs_close FD state logging
2022-02-16 18:09:13 +03:00
Eladash
fd6c33980b
cellSaveData: Check filename format of savedata files ( #11502 )
2022-02-14 22:03:40 +03:00
Megamouse
d172b9add6
Rename CallAfter to CallFromMainThread
2022-02-07 19:42:08 +01:00
RipleyTom
987166f4da
Fix IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP
2022-02-06 20:37:12 +01:00
Eladash
e951c619c5
Implement Emulator::GracefulShutdown()
2022-02-05 11:49:29 +01:00
Vestral
107107107c
SoundTouch resampler integration
2022-01-31 21:20:57 +01:00
Hyogi Sim
3a804674c9
Fix linkage error on debug build with clang-13
...
Debug build with clang-13 fails with "undefined references" to the
static const members in spu_channel class. This patch replaces the const
definitions with constexpr constants.
2022-01-31 17:05:18 +03:00
Malcolm Jestadt
91673f8fdc
SPU LLVM: Add relaxed xfloat option
...
- This new setting is on by default
- It's active when approximate default is disabled
- Approximate xfloat is now exposed to the gui
2022-01-31 08:02:48 +03:00
Nekotekina
dba2baba9c
Implement utils::memory_map_fd (partial)
...
Improve JIT profiling dump format (data + name, mmap)
Improve objdump interception util (better speed, fix bugs)
Rename spu_ubertrampoline to __ub+number
2022-01-26 15:46:16 +03:00
Nekotekina
11ee1f3eb2
Improve JIT profiling on Linux
...
Add JIT object dumping functionality.
Add source for objdump interception utility.
2022-01-25 03:16:37 +03:00
Nekotekina
14951d8713
Fix abuse of fs::pending_file
...
Debug dumps don't fall into category which needs atomic rewrite.
2022-01-24 22:39:01 +03:00
Nekotekina
065ee621b8
Call avcodec_register_all in case of old ffmpeg
...
Apparently it's still possible to break without it.
2022-01-24 22:39:01 +03:00
Nekotekina
12c83b340d
Remove built_function
...
With today's branch prediction techniques, it's hardly useful.
2022-01-24 22:21:41 +03:00
Jan Beich
f2ed50e6b0
cellVdec: constify AVInputFormat for ffmpeg >= 5.0
...
rpcs3/Emu/Cell/Modules/cellAdec.cpp:326:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
input_format = av_find_input_format("oma");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellAdec.cpp:332:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
input_format = av_find_input_format("mp3");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-21 21:36:17 +03:00
Jan Beich
511ca82e30
cellAVdec: constify AVCodec for ffmpeg >= 5.0
...
rpcs3/Emu/Cell/Modules/cellAdec.cpp:325:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_ATRAC3P);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellAdec.cpp:331:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_MP3);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:143:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG2VIDEO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:148:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_H264);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:153:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG4);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-21 21:36:17 +03:00
Nekotekina
00274bb4da
PPU: port FP convert instructions to Aarch64
2022-01-21 16:07:48 +03:00
Nekotekina
a4d94a83b9
PPU/simd.hpp: minor changes in DP instructions
2022-01-21 13:57:46 +03:00
Nekotekina
0de9960772
PPU: rewrite MFOCRF+MFCR instructions
2022-01-21 12:49:52 +03:00
Nekotekina
aa7c9dd15d
PPU: rewrite LVSL/LVSR instructions
...
Make the tables endian-agnostic.
2022-01-21 00:05:40 +03:00
Nekotekina
17b1a34ebf
PPU: rewrite LVLX/LVRX/STVLX/STVRX instructions
2022-01-20 21:16:00 +03:00
Nekotekina
349f251d14
PPU LLVM: use masked stores for STVLX/STVRX
...
Drop maskmove intrinsic, not portable.
Its implicit NT hint may also hurt performance.
2022-01-20 21:16:00 +03:00
Nekotekina
327c577024
PPU: print internal interpreter build error
2022-01-20 14:42:58 +03:00
Nekotekina
b42fae0989
PPU: refactor shift and splat instructions
...
Fix utils::rol32/64 functions.
Fix immediate clamping in splat instructions.
Other fixes.
2022-01-19 23:01:31 +03:00
Nekotekina
4728478247
PPU: improve interpreter codegen
...
Implement more sensible check for EVEX prefix and SSE
2022-01-18 04:20:06 +03:00
Nekotekina
4704367382
Remove unnecessary asmjit::imm_ptr
2022-01-18 00:10:32 +03:00
Nekotekina
14cca55b50
PPU: refactor vector rounding instructions
...
Fix: nearbyint -> roundeven
2022-01-18 00:10:32 +03:00
Nekotekina
248f9424ac
PPU: refactor VPack instructions
2022-01-18 00:10:19 +03:00
Nekotekina
b404d37eb0
PPU: more interpreter refactoring (VPERM)
...
Notably, runtime-built SSSE3 version of VPERM.
Some other instructions are refactored and vectorized.
Aarch64 impl of multiple instructions including VPERM.
2022-01-18 00:10:19 +03:00
RipleyTom
58fdf58150
Force close socket in sys_net_bnet_close
2022-01-17 21:27:20 +01:00
Nekotekina
22240777aa
PPU Interpreter: fix accuracy flag dispatch
2022-01-16 01:00:37 +03:00
Nekotekina
f95395b351
PPU LLVM: improve accuracy of VSL/VSR
...
Passes tests, should now be equal to interpreter.
2022-01-15 21:13:31 +03:00
Nekotekina
df24cff0b1
PPU LLVM: fix VMINFP and VMAXFP accuracy
...
PPU cache needs to be cleared.
2022-01-15 17:36:57 +03:00
Nekotekina
6dda047128
PPU LLVM: fix VNMSUBFP sign handling
...
PPU cache needs to be cleared.
2022-01-15 17:36:57 +03:00
Nekotekina
e9efa73eed
PPU: restore previous NJ mode handling option
...
Fix the divergence between PPU Interpreter and LLVM.
2022-01-15 17:36:57 +03:00
Nekotekina
580bd2b25e
Initial Linux Aarch64 support
...
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
* (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
Eladash
a60cee6536
Update PPUTranslator::MTFSFI for its intention to be clearer
2022-01-12 03:37:39 +03:00
kd-11
d874ca5d8c
cellGame: Fall back to VERSION field if APP_VER is missing from PARAM.SFO
2022-01-10 12:27:30 +03:00
Vestrel
1adc408ad7
More sys_uart packets ( #11332 )
...
* Additional sys_uart packets added
2022-01-10 03:43:54 +03:00
Vestral
9766d87126
cellAudio: fix enqueued samples computation
2022-01-07 09:48:51 +01:00
clienthax
350257e1a4
Fcntl 0xc0000007, 0xc0000015, 0xc000001c
2022-01-04 22:47:06 +03:00
Florin9doi
0e07d3c58f
USB: Improve SingStar emulation
2022-01-04 18:03:23 +01:00
Malcolm Jestadt
31a5a77ae5
SPU: Use REP MOVSB in do_dma_transfer
...
- Try to use REP MOVSB when the size of the transfer is above a certain threshold
- This threshold is determined by the ERMS and FSRM cpuid flags
- The threshold values are (roughly) taken from GLIBC
- A threshold of 0xFFFFFFFF indicates that the cpu has neither flag
2022-01-02 21:35:46 +03:00
Megamouse
1c014299eb
HLE: fix some types
2022-01-02 18:18:31 +03:00
Nekotekina
cb2748ae08
Update ASMJIT (new upstream API)
2021-12-29 02:45:00 +03:00
clienthax
6837370a62
Handle SYS_NET_IPPROTO_IP get/setsockopt
...
Improve net logging.
Should allow latest vsh to load (Depending on windows version apparantly..)
2021-12-27 20:58:09 +03:00
Nekotekina
d836033212
LLVM: enable some JIT events (Intel, Perf)
...
Made some related adjustments.
Currently incomplete.
2021-12-26 16:41:37 +03:00
Eladash
6ee9d0f35f
sys_rsx: Outlaw mapping sys_vm memory to RSX IO address-space
2021-12-25 02:22:49 +03:00
Nekotekina
dcd011048d
Implement "built_function" utility (runtime-generated assembly)
...
Similar to build_function_asm, but links without indirection.
Achieved by emitting code directly into a byte array.
2021-12-22 19:27:20 +03:00
Nekotekina
c0bafbc804
TSX: enable same data optimization for PUTLLC
2021-12-19 20:23:01 +03:00
Nekotekina
61c64d1060
TSX: refactoring M
...
Remove first stage 'optimistic' transactions.
2021-12-19 20:23:01 +03:00
Nekotekina
3e1e1a683c
TSX/PPU: fix conditional store regression
2021-12-17 21:48:01 +03:00
Megamouse
cc21d1b3cf
cellSaveData: prevent some potential crashes due to corrupt files
2021-12-14 20:30:47 +01:00
Malcolm Jestadt
2f93df480b
SPU LLVM: Disable affineqb shufb paths temporarilly
2021-12-10 19:32:10 +03:00
Megamouse
68466f05b6
cellAudio: move some stuff to cpp
2021-12-09 01:46:44 +01:00
Megamouse
e6b4655142
cellAudio: use members instead of config values
2021-12-09 01:46:44 +01:00
Nekotekina
8abd3e8bb4
PPU LLVM: fix bitcast usage to enable constant folding
2021-12-07 15:35:51 +03:00
Megamouse
a4ad0a9468
cellVideoOutConfigure: treat unknown aspect as AUTO
2021-12-06 20:50:57 +01:00
Malcolm Jestadt
0617e9e14b
SPU LLVM: Fix vgf2p8affineqb usage
...
- Reverse the order of the bytes in the selection masks. Previously it was assumed that byte 0 would determine the output of bit 0, but byte 7 determines the output of bit 0.
2021-12-06 12:34:11 +03:00
Nekotekina
e3e39e8de3
PPU LLVM: rewrite and optimize saturation bit
...
Use vector accumulator
2021-12-03 00:14:06 +03:00
Nekotekina
209b14fbac
PPU LLVM: inline remaining vector instructions
2021-12-03 00:14:06 +03:00
Nekotekina
04c9d01390
PPU LLVM: modernize most vector instructions
...
Rewritten VSUM instructions:
VSUMSWS, VSUM2SWS, VSUM4SBS, VSUM4SHS, VSUM4UBS
2021-12-03 00:14:06 +03:00
Nekotekina
c9d8e59dbf
PPU LLVM: allow to drop setting SAT flag (optimization, module-wide)
...
Implement ppu_attr::has_mfvscr (partially, module-wide search).
If this instruction isn't found, allow to drop setting SAT flag.
It's based on presumption that only MFVSCR can retrieve SAT flag.
2021-12-03 00:14:06 +03:00
Nekotekina
86b194014b
PPU LLVM: rewrite more packing instructions
...
Rewritten VPKUHUM, VPKUHUS, VPKUWUM, VPKUWUS.
Decoupled saturation test from sat pack pattern.
2021-12-03 00:14:06 +03:00
Nekotekina
e7c827f73b
PPU LLVM: rewrite some packing instructions
...
Rewritten VPKSHSS, VPKSHUS, VPKSWSS, VPKSWUS.
Decoupled saturation test from sat pack pattern.
2021-12-03 00:14:06 +03:00
Nekotekina
abe498f35c
PPU LLVM: modernize some code with new DSL
...
PPU: rewritten instructions VMHADDSHS, VMHRADDSHS
PPU: added optimized path for VPERM (ra=rb)
2021-12-03 00:14:06 +03:00
DH
2981867375
sys_spu_thread: Removed unused field access
2021-12-02 21:36:57 +03:00
Eladash
0ab36ef44d
sys_spu: Implement SPU image segment info checks ( #11211 )
2021-12-02 13:17:10 +03:00
Megamouse
474baca6d8
rsx: default initialize RsxDisplayInfo
2021-12-01 21:55:53 +01:00
Megamouse
88d0b7d135
cellAvconfExt: add some trivial param checks
2021-12-01 21:55:53 +01:00
Megamouse
aea1ec2594
avconf: Add const to fxo references
2021-12-01 21:55:53 +01:00
Megamouse
c8d4a0dcdc
VK/GL: honor game's aspect ratio when scaling
2021-12-01 21:55:53 +01:00
Vestral
e5005597fe
CellAudio fixes
2021-11-29 20:43:00 +01:00
RipleyTom
4fe17fcecf
sys_usbd improvements ( #11202 )
2021-11-27 01:49:35 +00:00
RipleyTom
5e158bd3f2
Impl sys_usbd_get_device_location
2021-11-25 00:53:00 +01:00
clienthax
2b924175aa
Emulated v406 usio
2021-11-24 21:59:48 +01:00
Vestrel
37a722cc1d
Audio backend improvements
...
Callback based audio update.
Upgraded common backend interface.
Added Cubeb backend.
Support multiple audio providers.
Dropped pulse, alsa, openal backends.
2021-11-24 19:41:05 +01:00
clienthax
4c0ef37a5c
Stub uvc camera init
2021-11-23 23:41:13 +01:00
Eladash
c52d447381
sys_fs: Place all path-format checks upfront, implement more checks
2021-11-22 21:03:07 +03:00
Eladash
524b065bc8
Debugger: Show PPU reservation data
...
Asterisk marks the offset of data that had been given to the guest PPU code.
2021-11-22 14:48:34 +03:00
Eladash
f7b55ec8d4
lv2: Add missing reservation disowning in lv2_obj::yield
2021-11-22 14:48:34 +03:00
Megamouse
22e3075c64
cellSaveData: always log setList and setBuf
...
For debugging
2021-11-20 08:43:46 +01:00
Megamouse
09ead539a5
improvise CELL_SAVEDATA_ERRDIALOG_NOREPEAT
2021-11-20 08:43:46 +01:00
RipleyTom
22910c02a9
Implement sceNpManagerGetPsHandle ( #11164 )
2021-11-17 18:02:01 +00:00
Megamouse
026efd96b2
cellKbCnvRawCode: use proper constants
...
and comment out unreachable code
2021-11-16 09:31:16 +01:00
Megamouse
f6af5ff13a
cellRtcGetDaysInMonth: fix param check
2021-11-16 09:31:16 +01:00
Megamouse
0d7b7585a8
Some typo/warning fixes
2021-11-16 09:31:16 +01:00
Megamouse
26475f8f40
cellGem: add comment about hack
2021-11-16 01:38:33 +01:00
Megamouse
7dc3a50ddf
Fix headless mode
2021-11-14 17:07:18 +01:00
Eladash
cfe08de951
Account empty EDAT ( #11146 )
...
* Improve sys_fs_open logging
2021-11-14 02:15:27 +03:00
Eladash
48ad959697
sys_event: Fix PPU queue forced uproot of waiters ( #11147 )
2021-11-13 20:22:54 +03:00
Malcolm Jestadt
3fde455932
SPU LLVM: Optimize branch following ORX
...
- test the input of ORX directly for zeroes, instead of the result
2021-11-11 12:58:38 +03:00
RipleyTom
50bf528f3f
NP: add signaling_handler wakeup on connect queue
2021-11-10 12:43:45 +01:00
RipleyTom
dc0793b731
NP: Implement sceNpMatching2DeleteServerContext
2021-11-08 13:10:40 +03:00
RipleyTom
c194804fec
NP: Implement sceNpBasicGetFriendListEntry
2021-11-08 13:10:40 +03:00
RipleyTom
d41e405420
NP: Cache Manager + improvements
2021-11-08 13:10:40 +03:00
RipleyTom
516cb959cb
rpcn: new allocator + refactoring of np_handler
2021-11-08 13:10:40 +03:00
Nick Renieris
b70f08d850
The Velocity Improvements: RoomData/RoomMemberData commands & fixes
...
modules/np2: Correct some SceNpMaching2 ptr type endianness
np/handler: Use STL .contains() method
Ignore USECRYPTO & USESIGNATURE in recvfrom/sendto
Implement RoomData/RoomMemberData commands
2021-11-08 13:10:40 +03:00
Malcolm Jestadt
7573d7289b
SPU LLVM: Hook up 128 bit spu verification
...
- Also fix FMA enablement for sapphirerapids
2021-11-06 21:12:12 +03:00
Megamouse
af3ef02ca0
fix npDrmIsAvailable
2021-11-04 21:41:07 +01:00
Eladash
c49ebba648
Fixes of PS3 filesystem EDAT/SDAT handling
...
* Return EFSSPEIFIC if encountered corrupted EDAT or an unmatched key in sys_fs_open and sys_fs_read.
* Fix validate_dev_klic() for license-free EDAT.
* Fix EDATADecrypter::ReadData() for when size + pos > file_size but pos < file_size.
* Try to save up to 16 decryption keys. Educated guess based on NPDRM file descriptors count llimit.
* Return LICENCE_NOT_FOUND if needed RAP file is not found in sceNpDrmIsAvailable.
* Check additional sys_fs_open errors for sceNpDrmOpen. (EISDIR, ENOTMOUNTED)
2021-11-04 21:32:15 +03:00
Nekotekina
69f321a471
LLVM 13
2021-11-02 20:11:08 +03:00
Malcolm Jestadt
37383f4217
SPU ASMJIT: Disable 512 wide spu verification
...
- Apparantly this crashes every game.
2021-11-01 20:04:26 +03:00
Eladash
b84e95d768
rsx: Fixate time stamp of VBLANK
2021-11-01 10:04:53 +01:00
Eladash
646ad3eed4
SPU DisAsm: Force decimal point insertion for constant floats
2021-10-30 21:33:06 +02:00
Eladash
a90376a7c4
SPU DisAsm: Print SPU floats
2021-10-29 19:15:21 +02:00
capriots
ac300c7356
Correct channel order
...
Documentation says the order is Front L, Front R, Center, LFE, Surround L, Surround R, Rear L, Rear R
2021-10-27 10:24:02 +03:00
Megamouse
2af2db2cbf
Lower some log spam
...
These functions probably aren't perfect, but they spam a lot of unnecessary log messages.
2021-10-27 00:25:27 +02:00
Megamouse
be972f04ac
cellGem: hook up camera
2021-10-24 15:01:43 +02:00
Megamouse
e67cf68321
cellCamera: fix compilation on linux
2021-10-24 11:32:35 +02:00
Megamouse
77f6db2543
cellCamera: fix some typos (fixes camera attachment in Kung Fu Live)
2021-10-24 11:32:35 +02:00
Megamouse
67ba381dfe
cellCamera: fix qt camera handler format
2021-10-24 11:32:35 +02:00
Megamouse
9a6285942b
cellCamera: fix buffer allocation
2021-10-24 11:32:35 +02:00
Megamouse
214c1ccc7e
cellCamera: move camera handler interaction to seperate functions
2021-10-24 11:32:35 +02:00
Megamouse
263b7854c1
cellCamera: sprinkle some mutexes and handle disconnected cameras during open phase
2021-10-24 11:32:35 +02:00
Megamouse
843aed228e
cellCamera: fix camera interaction
2021-10-24 11:32:35 +02:00
Megamouse
bf71b1fcf7
cellCamera: fix buffer size for YUV
2021-10-24 11:32:35 +02:00
Megamouse
81c216f330
cellCamera: add error handling to qt camera
2021-10-24 11:32:35 +02:00
Megamouse
e4b242955c
cellCamera: implement CELL_CAMERA_READ_DIRECT
2021-10-24 11:32:35 +02:00
Megamouse
3fac832567
cellCamera: fix qt camera width and height for non-default resolutions
2021-10-24 11:32:35 +02:00
Megamouse
08011e9b78
cellCamera: Add qt camera handler
2021-10-24 11:32:35 +02:00
shockdude
590483b81f
Add emulated Guitar Hero Live guitar controller in Settings I/O tab
2021-10-24 03:04:07 +02:00
Eladash
c0c52c33b9
SPU: Implement interrupts handling for remaining events
2021-10-20 15:46:50 +03:00
Eladash
12efd29121
SPU/PPU DisAsm: Implement more constant formation patterns
2021-10-17 12:15:58 +02:00
Eladash
a4bd1755cf
PPUDisAsm: Fix MFSPR/MTSPR disassembly
2021-10-16 15:03:52 +02:00
RipleyTom
683c061e60
sys_net: getsockname on unbound p2p socket fix
2021-10-16 11:41:20 +02:00
RipleyTom
0e625e193e
sys_net: redirects 0.0.0.0 packets on windows
2021-10-16 11:41:20 +02:00
Eladash
43302f937c
PPUDisAsm: Fixup SC printing, support LV1 syscalls
2021-10-16 10:56:31 +02:00
Megamouse
1584aba387
sceNpDrmIsAvailable: fix error check
...
No idea where I saw this check. Probably looked at the wrong function
2021-10-14 22:06:12 +02:00
Malcolm Jestadt
f06c8b22e8
PPU/SPU LLVM: Emulate VPERM2B with a 256 bit wide VPERMB
...
- Save 1 uop by using 256 wide VPERMB instead of VPERM2B. (Compiles down to a vinserti128 and vpermb)
2021-10-13 17:51:54 +03:00
shockdude
cd73d738e5
Add emulated DJ Hero turntable controller in Settings I/O tab
2021-10-12 23:29:19 +02:00
Eladash
ab50e5483e
GUI Utilities: Implement instruction search, PPU/SPU disasm improvements ( #10968 )
...
* GUI Utilities: Implement instruction search in PS3 memory
* String Searcher: Case insensitive search
* PPU DisAsm: Comment constants with ORI
* PPU DisAsm: Add 64-bit constant support
* SPU/PPU DisAsm: Print CELL errors in disasm
* PPU DisAsm: Constant comparison support
2021-10-12 23:12:30 +03:00
RipleyTom
df39bd39b0
Fix rpcn create/login not returning proper error
2021-10-12 17:30:46 +02:00
Megamouse
3832d4fa1c
sceNpFriendlist: some improvements
2021-10-12 00:40:27 +02:00
Megamouse
8f328b2624
sceNpCustomMenu: improvements
2021-10-12 00:40:27 +02:00
Megamouse
80ef348600
sceNp: more error checks
2021-10-12 00:40:27 +02:00
Megamouse
e2a9c0a8f3
sceNpInit: fix error check order
2021-10-12 00:40:27 +02:00
Megamouse
780a234467
sceNpDrmIsAvailable: add param checks
2021-10-12 00:40:27 +02:00
RipleyTom
ea9dc9317d
rpcn v0.4.0
2021-10-11 22:20:20 +02:00
Eladash
15af1bca69
PPU DisAsm: Fix CMPLI disassembly
2021-10-11 19:34:01 +03:00
Megamouse
eb850681ee
cellKb: implement key repeat
...
- Implements key repeat functionality
- Fixes an issue where games registered keys repeatedly even though we weren't actually setting multiple key presses.
2021-10-07 09:49:53 +02:00
Eladash
71b15c1fa6
Suggest tweaking the setting "Stub PPU Traps" after PPU trap ( #10921 )
2021-09-30 21:33:55 +03:00
Malcolm Jestadt
86716dc37b
SPU LLVM: Optimize branches following byteswaps
...
- The first element can be extracted via vmovd rather than vpextrd, which saves 1 uop.
2021-09-30 13:22:35 +03:00
Malcolm Jestadt
f9ab077908
SPU LLVM: Use VDBPSADBW in SUMB
...
- This instruction can be used to sum bytes horrizontally if the second input vector is all zeroes.
2021-09-30 13:22:35 +03:00
Eladash
e7b9513d4a
Bugfix after recent PPU patches pr
2021-09-28 12:12:12 +03:00
Eladash
34c36c73ee
Debugger/Disasm: Name PPU Syscalls
2021-09-28 12:12:12 +03:00
Megamouse
2821eb7397
Remove some lwmutex log spam
...
I don't know if there's a reason for the warning message.
So I'll just change it and see how many developers throw insults at me :)
2021-09-26 21:28:17 +03:00
Eladash
65c9cd99cd
Patches/PPU: Implement HLE/LLE/With-TOC function call patches
...
Example patches:
[ jumpf, 0x12340, "cellGcmSys:cellGcmSetFlip"] // Places a call to cellGcmSetFlip at 0x12340
[ jumpf, 0x12340, "cellGcmSys:0xDC09357E"] // Same, using FNID
[ jumpf, 0x12340, 0x2345678 ] # Function OPD based call eading OPD at 0x2345678
2021-09-26 20:49:57 +03:00
Megamouse
8f1dc7a2d4
Fix VFS regression
...
Implements cfg_mode
2021-09-25 19:21:59 +03:00
Megamouse
4323ca4a01
Remove unused lambda
2021-09-25 19:21:59 +03:00
Eladash
d0e31f4ec3
sys_fs: Add write log messages for SDATA/EDATA
2021-09-22 14:57:16 +03:00
Eladash
3e06446297
sys_fs: Fix sys_fs_read/write when nbytes is 0
2021-09-22 14:57:16 +03:00
Eladash
5ae7dbf77c
Fix cellFsSdataOpenByFd flags
2021-09-22 14:57:16 +03:00
Megamouse
a7cb513a89
cellOsk: partially implement continuous mode
2021-09-21 23:22:26 +02:00
Megamouse
e3ec71c683
cellOsk: partially implement cellOskDialogExtUpdateInputText
2021-09-21 23:22:26 +02:00
Megamouse
f7870d4968
cellOsk: do not notify INPUT_ENTERED on each input
...
Apparently the event is only sent when a user confirms the dialog during any continuous mode with seperate windows.
2021-09-21 23:22:26 +02:00
Megamouse
80ef0ce9b5
cellOsk: reset options after unload
2021-09-21 23:22:26 +02:00
Megamouse
696a3c4a42
cellOsk: stub some settings
2021-09-21 23:22:26 +02:00
Megamouse
81a01134bb
cellOsk: fix dialog abort w/o user interaction
2021-09-21 23:22:26 +02:00
Megamouse
70c291753c
cellOsk: dont send INPUT_ENTERED unless continuous
2021-09-21 23:22:26 +02:00
Eladash
17a074e1ac
Fix memory leak in cellOskDialog ( #10895 )
2021-09-21 11:29:32 +03:00
Eladash
38d5f688b3
cellAudio fix
2021-09-20 07:59:34 +02:00
AniLeo
c995505023
edat: Check for the correct directory
2021-09-18 18:20:55 +01:00
Eladash
e10c6cbaf7
SPU: cpu_work() fixup, fix recursion in AV handler
2021-09-18 19:43:55 +03:00
Eladash
5870da0b55
SPU MFC: Add shuffling in steps setting
2021-09-18 19:43:55 +03:00
Eladash
1f3b1e1c99
Implement Emulator::GetFakeCat()
...
I still have nightmares about that cat.
2021-09-17 22:15:48 +02:00
Eladash
ddec5d6908
CPUThread: Prevent recursive check_state calls
2021-09-17 14:02:22 +03:00
Eladash
975aae1d13
SPU MFC: Implement MFC commands execution shuffling
2021-09-17 11:38:10 +03:00
Nekotekina
9e62ca562b
SPU LLVM: implement SQRT and DIV pattern detection (xf)
2021-09-17 10:23:43 +03:00
Nekotekina
d28b0ba2fa
SPU LLVM: implement spu_re, spu_rsqrte
...
Improve matching with peek_through_bitcasts() helper.
Implement erase_stores() helper.
2021-09-17 10:23:43 +03:00
Nekotekina
aba332d4c4
SPU LLVM: make intrinsics for most xfloat instructions
2021-09-17 10:23:43 +03:00
Nekotekina
543fb7a9cb
LLVM DSL / SPU LLVM: implement infinite precision shifts
...
Remove old make_*** helpers in favor of matcheable expressions.
2021-09-17 10:23:43 +03:00
Nekotekina
67b3fc70f8
LLVM DSL: implement absd and match helpers
...
Matcheable expression absd(a, b) (absolute difference).
2021-09-17 10:23:43 +03:00
Nekotekina
4b8ee85995
LLVM DSL: reimplement pshufb, add 'calli'
...
Implement postponed custom intrinsic replacement.
Make bitcast operator static like other ones.
2021-09-17 10:23:43 +03:00
Nekotekina
86ead1b93b
SPU LLVM: implement FI instruction
...
Use approximate reciprocal in FRSQEST.
2021-09-17 10:23:43 +03:00
Nekotekina
1685769bd9
LLVM DSL: reimplement fmuladd, force hw fma if present
2021-09-17 10:23:43 +03:00
Nekotekina
2acb6ed60d
SPU LLVM: optimize SHUFB for permutation-only shuffles
...
Drop constant generation when unused.
2021-09-17 10:23:43 +03:00
Nekotekina
144244e902
SPU LLVM: implement missing constant mask handling in SHUFB
2021-09-17 10:23:43 +03:00
Nekotekina
7cf9d1380b
LLVM DSL: add line number in get_const_vector automatically
2021-09-17 10:23:43 +03:00
Nekotekina
f188019244
LLVM DSL: reimpelement fsqrt, fabs
2021-09-17 10:23:43 +03:00
NicknineTheEagle
4fcc1c0f31
Fully implement sceNpDrmVerifyUpgradeLicense
2021-09-16 23:54:53 +02:00
Megamouse
1a2fad4eac
cellSearch: more stubs and implementations ( #10578 )
2021-09-16 22:05:29 +01:00
Eladash
9c2d94ca1a
sys_prx: Improve sys_prx_get_module_info error checking
2021-09-16 19:09:18 +03:00
Eladash
ae4f837f57
sys_prx: Implement sys_prx_get_module_id_by_address
2021-09-16 19:09:18 +03:00
Eladash
8b48fd95fe
Fix sys_prx_start/stop_module for older firmware
...
The old structure is only 32 bytes long, not containing prologue/epilogue functions.
2021-09-15 18:08:58 +03:00
Eladash
50ad7ba1f6
vm: Fix vm::unmap
...
* Make vm::unmap atomic, squash the memory unmapping process inside this function while still using the same VM mutex ownership.
* Make vm::unmap not fail due to random vm::get calls, shared_ptr reference count is no longer a condition.
* Fix sys_mmapper_free_address spuriously failing with EBUSY due to random vm::get calls.
* Fix sys_vm_unmap race condition due to non-atomic vm::unmap.
* Add an optional verification block ptr arg to vm::unmap, used by patches.
2021-09-13 20:53:34 +03:00
Eladash
677d5f09ce
Add debugging info for when sys_tty_write is executed
2021-09-12 19:05:26 +03:00
Eladash
c7f5475b56
Improve sys_fs_close logging
2021-09-12 19:05:26 +03:00
Eladash
f98595bee5
Patches/PPU: Add jump_link patch type
2021-09-10 11:46:39 +03:00
Eladash
fafefb2cf5
Fixup No.3 after #10779
2021-09-10 11:46:39 +03:00
Eladash
1cbcf7e1ad
Reimplement config selection for game startup
...
* Implement manual selection of config file.
* Implement default config option.
* Fix bug which led to 'force global config' to not work in some games. (any game using process relaunch such most game collections, RDR, MGS4 etc)
* Relax CLI config purpose - instead the emulator forever ignoring any other config except for the one provided in arg, use it only for the CLI-booted game.
2021-09-09 21:56:50 +02:00
Eladash
bd66dfedc9
Do not allow to unpause after fatal error occured in emulation
...
* Plus fix #10590
2021-09-09 19:30:54 +02:00
Eladash
dfbc49513d
Debugger/Disasm: Name SPU Syscalls
2021-09-07 01:13:57 +02:00
Megamouse
0525070898
remove deprecated avcodec_register_all
...
We already use newer avcodec code anyway.
2021-09-06 10:00:34 +02:00
Eladash
fe0c164de2
sys_net: Anti-log spam enhancement
2021-09-04 11:58:59 +02:00
Eladash
ea2c5294df
cellCamera: Anti-Log spam enhancement
2021-09-04 11:58:59 +02:00
Megamouse
0debcfed0a
Silence some warnings
2021-09-02 19:39:42 +02:00
Nekotekina
06f733a7f2
Fixup No.2 for #10779
2021-09-01 16:56:38 +03:00
Nekotekina
ad6a72e369
Fixup for #10779
2021-09-01 14:38:20 +03:00
Eladash
b40ed5bdb7
Patches/PPU: Extend and improve patching capabilities (code allocations, jumps to any address) ( #10779 )
...
* Patches/PPU: Implement dynamic code allocation + Any-Address jump patches
Also fix deallocation path of fixed allocation patches.
2021-09-01 13:38:17 +03:00
Malcolm Jestadt
43cc62d267
SPU LLVM: Add m_use_vnni
...
- Alderlake and Sapphirerapids will require an update to the llvm fork before they can be detected
2021-08-31 14:02:05 +03:00
Malcolm Jestadt
d304b52391
SPU LLVM: Add VNNI optimized variant of sumb
...
- Uses vpdpbusd to horrizontally add values, for some reason this is much faster than the normal horizontal add instructions.
2021-08-31 14:02:05 +03:00
Malcolm Jestadt
a86b278115
SPU LLVM: Expand byteswap elimination to more instructions
2021-08-31 14:02:05 +03:00
Eladash
6781373727
Patch cooperate with system SPU group creation ( #10791 )
2021-08-29 22:03:17 +03:00
Eladash
ddb042148d
Patches/LLVM: Implement Complex Patches Support
2021-08-26 23:04:32 +03:00
Megamouse
72f0637efe
Windows/Audio: add listener for device change
...
For some reason XAudio2 doesn't automatically change the device anymore.
So let's just listen for the OnDefaultDeviceChanged event and update the cell audio thread if necessary.
2021-08-25 22:44:16 +02:00
Whatcookie
d0451932bf
Offset get_timebased_time at game boot ( #10744 )
...
- Avoids game bugs in the case where games convert the value read from the clock to a float before performing delta time calculations
2021-08-23 13:06:02 +01:00
Whatcookie
c62deeefd4
SPU LLVM: Add approximate FCEQ/FCMEQ ( #8729 )
...
- It's 100% accurate, but will sit under approx xfloat anyways
- Attempts to use a single instruction when 1 value is constant
2021-08-22 10:13:34 +03:00
Marco
5c0bf14554
Whitelist Kamen Rider Summonride Portal sys_usbd ( #10722 )
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-08-21 11:08:56 +03:00
Justin Lewis
c13a46b07b
Fix warnings about using deprecated inet_ntoa function ( #10698 )
...
* Replaced inet_ntoa with inet_ntop.
The warning in question is: "Warning C4996 'inet_ntoa': Use
inet_ntop() or InetNtop() instead or define
_WINSOCK_DEPRECATED_NO_WARNINGS"
2021-08-18 07:16:38 +03:00
Megamouse
ac986c7c61
fix some warnings
2021-08-15 21:02:38 +02:00
Megamouse
53bfc6fa59
cellGem: fix floating point warning
2021-08-13 20:45:18 +02:00
Eladash
063df64108
SPU/event queue: Implement protocol for SPU queue
2021-08-13 08:58:09 +03:00
Eladash
f1f93b8f81
SPU: Remove outdated assertation
2021-08-13 08:58:09 +03:00
Eladash
5784ffc972
Fixup PPU breakpoints
2021-08-12 22:24:54 +03:00
Eladash
91737b11fe
Fix sys_spu_thread_group_resume
...
Do not remove suspend flag when SPU group state is not SPU_THREAD_GROUP_STATUS_RUNNING after operation!
2021-08-12 22:24:54 +03:00
Eladash
bf61c826d5
SPU/event queue: Atomically resume SPU group
2021-08-12 22:24:54 +03:00
Megamouse
f0d51899c1
input: fix minor data race
...
While usually not exposed to the user, there was a slight chance that user input was read in a dirty state.
This became apparent during usage of the new pressure sensitivity button
2021-08-09 11:29:46 +02:00
Megamouse
430fd759fe
sys_net: add missing range checks
2021-08-08 21:06:07 +02:00
Nekotekina
86d2316089
sys_net/NP: set some init dependencies
...
Ensure finalization order of network threads.
This should prevent some crashes.
2021-08-06 10:41:40 +03:00
Nekotekina
064fc81697
Fix warnings
2021-08-06 10:41:40 +03:00
Megamouse
a146aabcaf
cellGem: Disable Alignment Checks
2021-08-05 13:10:08 +02:00
Eladash
9ecb6c4e34
Fix sys_spu_thread_group_create
2021-08-05 08:12:34 +03:00
Megamouse
3ccfb86e1b
cellGem: use existing constant for sphere radius
2021-08-05 02:26:20 +02:00
Megamouse
9c21f43df6
cellGem: fix Deadstorm Pirates regression
2021-08-05 02:02:34 +02:00
Megamouse
87c07679e1
cellGem: add calibration logic with 0.5 second delay
2021-08-05 02:02:34 +02:00
Megamouse
6de4c27b32
cellGem: fix controller connection check
2021-08-05 02:02:34 +02:00
Megamouse
995e9b5f9f
cellGem: reset struct on controller reset
2021-08-05 02:02:34 +02:00
Megamouse
e03f323fdd
cellGem: add some more checks
2021-08-05 02:02:34 +02:00
Megamouse
f2bca2ef67
cellGem: set cellGemGetCameraState values
2021-08-05 02:02:34 +02:00
Megamouse
0b88d5f077
cellGem: implement cellGemHSVtoRGB
2021-08-05 02:02:34 +02:00
Eladash
9f67e00e40
sys_spu: Add one more limiting SPU threads creation condition
2021-08-04 21:39:57 +03:00
Eladash
9d71369b2c
Fixup HLE lwmutex
2021-08-04 21:39:57 +03:00
Megamouse
2dd0f488a1
cellGem: cellGemPrepareVideoConvert update
2021-08-04 20:28:34 +02:00
Megamouse
dd7f24b20e
cellGem: fix mouse positions
2021-08-04 20:28:34 +02:00
Megamouse
ccb7531289
cellGem: update cellGemGetState
2021-08-04 20:28:34 +02:00
Megamouse
4d0179174a
cellGem: add more mouse buttons
2021-08-04 20:28:34 +02:00
Megamouse
3ddcf60a11
cellGem: add some more error checks
2021-08-04 20:28:34 +02:00
Megamouse
3b581aaf94
cellGem: disable tracking in cellGemForceRGB
2021-08-04 20:28:34 +02:00
Megamouse
0c68a6afdd
cellGem: improve hue handling
2021-08-04 20:28:34 +02:00
Megamouse
fd29382290
cellGem: fix fake move calibration status flag
...
Apparently OCCURRED means that there are flags to be checked, while SUCCEEDED means that everything went smoothly.
2021-08-04 20:28:34 +02:00
Megamouse
1d3f91a1b8
cellGem: add ext_id and SHARP_SHOOTER_DEVICE_ID
2021-08-04 20:28:34 +02:00
Megamouse
999252a806
cellGem: fix typos, add some comments and reorder
2021-08-04 20:28:34 +02:00
Eladash
f807ebf9ba
PPU: Improve accuracy of "Accurate PPU 128 reservations" mode
2021-08-04 18:18:59 +03:00
Eladash
8c3a4c260e
Bugfix of sys_lwmutex_destroy
2021-08-04 09:03:17 +03:00
Eladash
06f4dfb9f1
SPU: Implement sys_spu_initialize and limit of physical SPU threads
2021-08-04 08:26:32 +03:00
Megamouse
af89eb5404
ppu compilation: fix facepalm (double increase)
2021-08-03 08:39:57 +02:00
Megamouse
dc0a086400
sys_prx_unload_module: fix log message
2021-08-03 08:39:57 +02:00
Nekotekina
05d1b3605e
Fixup for SPU Debug mode (bad SHA1)
...
Should fix crashes due to read out of bounds.
2021-08-01 10:12:08 +03:00
Eladash
a0c1b250b6
Fix HLE LWMutex setting - Implement dynamic initialization of HLE functions
2021-07-31 21:47:22 +03:00
Megamouse
6527eef655
System: add progress update on existing modules
...
This could cause dialogs to seemingly finish at e.g. 50/100 modules because the existing modules weren't accounted for.
2021-07-31 16:06:18 +02:00
Eladash
f39a0a5fbe
Debugger: Add some error pop-ups for invalid operations
...
* Show error window when setting breakpoints on these conditions:
- SPU/RSX are selected. (not supported)
- When using non-interpreters decoders.
- Non-executable memory is specified.
* Do not allow instruction stepping for non-interpreters decoders.
* Clear breakpoints when the game is stopped.
* Fix setting breakpoints on HLE functions.
2021-07-31 15:27:30 +02:00
Eladash
a06a93d5ba
Fix sys_storage_read
2021-07-30 17:22:43 +03:00
Nekotekina
658b4f70ef
Fix some warnings
2021-07-30 09:31:36 +03:00
Nekotekina
fc5840cda6
SPU Cache: allow to dump cache upon startup
...
Print also some stats (if SPU Debug is enabled).
2021-07-30 09:21:11 +03:00
Megamouse
bb9c063e80
Remove unused ppu_initialize declaration
2021-07-29 10:18:20 +02:00
Eladash
be9be6e5c9
Make sys_prx_unload_module use success type logging
2021-07-24 14:23:47 +03:00
Megamouse
50354253c8
replace some random Emu.Pause with fatal errors
2021-07-20 19:47:00 +02:00
Eladash
c84e5489f2
vsh.self: Fix execution on default settings ( #10586 )
2021-07-20 00:36:32 +02:00
Ilya Oleinik
e51d16aa37
Initial implementation of sys_uart
2021-07-19 19:20:43 +03:00
Eladash
98e40d12ef
sys_ppu: Implement sys_ppu_thread_rename
2021-07-19 12:37:33 +02:00
Eladash
e6e0210e73
Extend ppu_thread::call_history_t formatter
2021-07-19 09:28:46 +02:00
Eladash
83a2f06e3a
PPU debugger: Make calling history detect common LLE functions trampolines
2021-07-19 09:28:46 +02:00
Eladash
a5c3c7d2e5
cellSaveData/UNIX: Optimize IO ( #10574 )
2021-07-18 21:08:04 +02:00
clienthax
65b2a0d538
stub rsxaudio
2021-07-18 21:08:03 +03:00
clienthax
d099148961
sys_hid vsh
2021-07-18 14:20:33 +02:00
Eladash
b087d79a08
PPU debugger: Implement function names at the starting instruction
2021-07-18 13:23:18 +02:00
Eladash
6f6503ee32
cellSaveData: Fixup funcDone result check
2021-07-17 23:30:26 +02:00
clienthax
441713d959
sys_storage vsh implementation ( #10559 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-07-17 22:06:40 +02:00
clienthax
e75e437a4a
sys_ss vsh stubs
2021-07-17 21:35:47 +02:00
Eladash
81805945ce
LV2: Fix IPC key reading from attributes
2021-07-17 20:02:21 +02:00
clienthax
7fe15f5f8d
Stub sys_fs mount functions for vsh ( #10561 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-07-17 19:19:13 +02:00
clienthax
9c5c4457b6
Stub libfs_utility_init to bypass FSCK checks by vsh.
2021-07-17 18:56:07 +02:00
clienthax
1e605de31e
sys_sm_get_ext_event2 stub
2021-07-17 18:35:26 +02:00
Eladash
1e9afdc289
Formatting Library: Implement byte arrays formatting
2021-07-17 18:10:43 +02:00
Eladash
8e2c34a003
PPU debugger: Implement PPU calling history
2021-07-17 17:28:23 +02:00
clienthax
c2f0fbcd82
Stub sys_io for vsh.
2021-07-17 17:06:57 +02:00
clienthax
85b33e9cae
Hack for msmw2.sprx timeout.
2021-07-17 14:39:36 +02:00
RipleyTom
a34201ebff
Fix deref in sceNpMatching2CreateContext ( #10539 )
2021-07-14 00:11:14 +01:00
Eladash
6a7324ab3e
kernel_explorer: Atomic PPU state updates
2021-07-10 22:20:37 +03:00
Megamouse
fcbacf8afd
sys_usbd: add PlayTV SCEH-0036
2021-07-08 22:06:48 +02:00
Megamouse
e75de44907
cellGame: treat media apps as CELL_GAME_GAMETYPE_HDD
...
This is kinda hacky but it fixes some errors in PlayTv
2021-07-08 22:06:48 +02:00
Megamouse
161fa95066
cellGame: improve logging
2021-07-08 22:06:48 +02:00
Megamouse
e212f16962
sceNp: fix invalid ctx dereference
...
Fixes "Buzz! Quiz Player" Offline Gameplay
2021-07-01 23:09:23 +02:00
Eladash
9b050a33e4
Fix HLE callbacks within context of HLE PPU stack variables
2021-06-28 14:31:28 +03:00
Eladash
b6fccee6a4
Improve ppu_thread::stack_push
...
Save actual stack memory allocation size locally. (not in PS3 memory)
2021-06-28 14:09:24 +03:00
Nekotekina
571bdfc828
Fixup for #10490
...
Restore explicit signaling of RSX thread for now.
2021-06-27 14:02:32 +03:00
Eladash
0aed00a758
Improve thread aborting mechanism ( #10490 )
...
Call pseudo-virtual operator=(thread_state) of thread context.
2021-06-27 11:43:48 +03:00
Eladash
58847fa2ca
sys_fs: Fix ENOTMOUNTED of open
2021-06-26 14:53:22 +03:00
Megamouse
b6128c5dfa
cellSearch: extend media_info for video files
2021-06-25 09:41:32 +03:00
Megamouse
68a1da31a0
cellSearch: move audio info to separate util file
2021-06-25 09:41:32 +03:00
Megamouse
7e0f2f9b12
sceNp: add some more constants
2021-06-25 09:41:32 +03:00
Eladash
50be3bd2e5
kernel-explorer: devirtualize lv2_fs_object and print more information ( #10487 )
...
* Make lv2_fs_object an "abstract" structure with protected constructor.
* Improve kernel-explorer information for filesystem objects.
2021-06-24 16:47:14 +03:00
Nekotekina
3c614d95b8
fs: alternative fs::pending_file implementation (Win32)
...
Use MOVEFILE_WRITE_THROUGH instead of sync() on commit().
2021-06-20 22:08:24 +03:00
Eladash
aaa20c0ff0
cellCamera/cellGem: Fix time stretching setting ( #10476 )
2021-06-20 21:25:13 +03:00
Nekotekina
72680c7707
sys_fs: improve sys_fs_open accuracy for /dev_bdvd
...
Based on software test.
2021-06-18 17:47:49 +03:00
Eladash
039ca6e839
Fix cellMouse/Keyboard initialization
2021-06-17 20:43:43 +02:00
Eladash
24e4a43ec4
lv2_timer: manage timers by separate thread ( #10445 )
...
Substitutes missing abort op for lv2_obj manager.
2021-06-15 15:04:51 +03:00
Eladash
11ab9b7fa9
Fix sys_event_flag_wait result set ( #10404 )
...
Set result upon syscall exit, not at the beginning.
2021-06-05 16:41:02 +03:00
Megamouse
ac83871214
impressive typo fix
2021-05-31 23:01:13 +03:00
Ani
a49446c9e9
Replace gsl::span for std::span (c++20) ( #7531 )
...
* Replace gsl::span for std::span (c++20)
* Replace gsl::byte with std::byte
Co-authored-by: Bevan Weiss <bevan.weiss@gmail.com>
2021-05-30 17:10:46 +03:00
Eladash
d81a5b1423
SPU LLVM: Add missing WRCH PC updates
2021-05-29 15:26:52 +03:00
Megamouse
a2da525064
cellVdec: silence "Unsupported time_base" error log spam
2021-05-29 12:46:21 +02:00
Malcolm Jestadt
7c2b08b9b6
SPU LLVM: Expand branch optimizations for more instructions
2021-05-29 13:07:35 +03:00
Eladash
7d89938624
cellPad: do not use recusrive mutex
2021-05-28 20:25:16 +03:00
Eladash
f103004aa0
sys_prx/overlay: Fix disambiguator of module names opened by FD ( #10340 )
...
Don't append zero offset.
2021-05-26 23:38:17 +03:00
Eladash
44f0ca08e2
Simplify PPU exit
2021-05-25 22:47:23 +03:00
Eladash
9ba3e6d3f7
sys_mmapper: Fix IPC-enabled instances memory consumption
2021-05-24 23:16:06 +03:00
Nekotekina
2491aad6f2
types.hpp: implement min_v<>, max_v<>, SignedInt, UnsignedInt, FPInt concepts
...
Restrict smax to only work with signed values for consistency.
Cleanup <climits> includes.
Cleanup <limits> includes.
2021-05-23 19:43:51 +03:00
Eladash
309759b725
kernel-explorer: Save self mem-container ID and use it
2021-05-23 05:37:37 +03:00
Nekotekina
160b131de3
types.hpp: implement smin, smax, amin, amax
...
Rewritten the following global utility constants:
`umax` returns max number, restricted to unsigned.
`smax` returns max signed number, restricted to integrals.
`smin` returns min signed number, restricted to signed.
`amin` returns smin or zero, less restricted.
`amax` returns smax or umax, less restricted.
Fix operators == and <=> for synthesized rel-ops.
2021-05-22 12:10:57 +03:00
Eladash
dcfd29c2d9
kernel-explorer: Implement PPU scheduler state information
2021-05-21 18:12:36 +02:00
Eladash
48870f3e8b
TROPUSR: Loader Improvements
...
* Replace invalid TROPUSR.DAT with empty new ones. (+report an error)
* Fix return code of Load whenever TROPUSR.DAT hadn't existed before.
* Add header magic test.
* sceNpTrophyRegisterContext will abort if TROPUSR.DAT generation failed.
2021-05-21 16:43:34 +03:00
Eladash
0811d2d527
Fix bug of sys_rsx_context_attribute
...
Mistake of reversing.
2021-05-20 09:25:51 +03:00
Eladash
3abf14beef
Update sys_rsx_context_attribute
2021-05-20 09:25:51 +03:00
Eladash
638f20c80f
Improve get_current_cpu_thread()
2021-05-20 09:25:51 +03:00
Nekotekina
1d0f6eebdc
Improve error_code (new formatting constructor)
...
Minor cleanup in formatting utilities.
2021-05-19 22:41:16 +03:00
Nekotekina
8217840acc
Simplify error_code class
...
Remove "not an error" detection trait. Use fixed CellNotAnError class.
Use constructor overload to disable reporting it.
2021-05-19 00:48:45 +03:00
Malcolm Jestadt
52780e65e7
SPU LLVM: Optimize branching
...
- Detect a pattern where vpmovmskb and a check against the sign bit can be used instead of checking against zero
2021-05-17 16:59:20 +03:00
Eladash
57cd4ff3c6
Move HLE table address to FXO ( #10284 )
2021-05-17 14:22:27 +03:00
Eladash
2e28e2d293
lv2: Fix overflows of periodic timers
2021-05-17 13:17:45 +03:00
Eladash
7a9a46e093
kernel-explorer: Implement SPU ports/interrupt tags information
2021-05-15 09:00:12 +03:00
Eladash
8bd58b1ad4
Remove lv2_event_queue::check(weak_ptr)
2021-05-15 00:31:14 +03:00
Eladash
c681395fb2
sys_interrupt: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
33580e0aa1
sys_timer: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
47436bd774
sys_spu: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
a992a5fba9
cellAudio: weak_ptr -> shared_ptr
2021-05-15 00:31:14 +03:00
Eladash
56471f4ad4
SPU: Optimize SPU ports/queues
2021-05-15 00:31:14 +03:00
Eladash
cacb852a1e
Emulation stopping bugfix
2021-05-14 15:35:07 +03:00
Nekotekina
6dca588370
SPU LLVM: improve MPYH instruction
...
Rewritten to use 16-bit multiplication, as in SPU ASMJIT.
2021-05-13 23:16:53 +03:00
Nekotekina
8ae727ca04
lv2_obj::create: fix pessimizing move
...
Could have been preventing copy elision.
2021-05-13 10:23:33 +03:00
Eladash
acded1e08a
rsx: Move sys_rsx info to rsx::thread ( #10258 )
2021-05-09 19:16:14 +01:00
Eladash
31b55e0030
event queue: Structure size efficiency
2021-05-09 10:58:14 +03:00
Eladash
1e1880893a
sys_interrupt: Save ID of self tag/handler
2021-05-09 10:58:14 +03:00
Eladash
363cc60c82
sys_event: Save ID of self event queue
2021-05-09 10:58:14 +03:00
Eladash
64997662d2
LV2: Fixup for IPC
...
* Fix typo in lv2_obj::create.
* Always save ipc_key as 0 for non-shared object creations, regardless of thbe value set by creation attribute.
* Show IPC key of shared memory (sys_mmapper) memory objects in kernel explorer.
2021-05-07 14:58:22 +03:00
Eladash
900ebf6583
sys_event: Typo fix ( #10246 )
2021-05-07 09:34:25 +01:00
Eladash
7b6482c01d
LV2: Improve IPC support ( #10206 )
...
* Remove custom event queue's IPC management of favour of universal LV2 approach.
* Move ipc_manager to FXO.
* Fix ipc_manager internal storage memory leak: deallocate entry when IPC object destroyed.
* Rewrite lv2_obj::create to be simpler (remove many duplicated code).
* Always execute lv2_obj::create under both IPC and IDM mutexes at once (not in non-atomic single-steps). Fixing potential case where concurrency can cause IDM to contain 2 or more different objects with the same IPC key with SYS_SYNC_NOT_CARE (instead of the same object).
* Do not rely on smart ptr reference count to tell if the object exists. Use similar approach as event queues as it makes error checkings accurate.
* Optimize lv2_event_port by using std::shared_ptr for queue which wasn't allowed before.
2021-05-07 09:58:30 +03:00
Eladash
0224c7a9eb
SPU TG: Simplify state of saved SPU image data
...
Save only entry points instead of sys_spu_image structure.
2021-05-01 19:43:00 +03:00
Eladash
daa53b77cf
Simplify named_thread construction
2021-05-01 18:08:03 +03:00
Megamouse
3c37036f7a
save-overlays: add entry size info
2021-04-30 00:30:26 +02:00
Megamouse
14b6d6291b
save-overlays: add localization
2021-04-30 00:30:26 +02:00
Megamouse
11f57f259c
cellSaveData: keep focus after confirmation cancel
...
It was very annoying to be thrown to beginning of the list after cancelling the confirmation.
2021-04-30 00:30:26 +02:00
Nekotekina
f8e05f8e3c
Remove redundant operators !=
2021-04-29 22:57:40 +03:00
Nekotekina
703ec474f5
Fixup for sys_time_get_timezone (3rd path)
...
Also simplify Linux path a bit.
2021-04-29 00:07:22 +03:00
Nekotekina
a049c6fd6b
Implement sys_time_get_timezone syscall
...
Try to get system timezone automatically.
Attempt to address #10195 .
2021-04-27 22:21:58 +03:00
Nekotekina
86a8e0716f
Test alterable aggregates via overriding be_t
...
Checking how it might look like without introducing too many changes.
Alteration of its behaviour as a "template template" argument allows:
- normal access
- easier aggregate inspection
- memory access interception
2021-04-25 19:00:16 +03:00
clienthax
7197dd751a
Fcntl e0000025 ( #10172 )
...
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-04-24 21:43:09 +03:00
David Carlier
0b9e4ffe54
Mac OS build update and simplification, recent releases of macOS has clock_gettime support.
2021-04-24 12:55:21 +03:00
Megamouse
1caf81811a
Move unspecific Emulator code out of System.cpp
2021-04-24 11:21:22 +03:00
Megamouse
8fd3b26308
sys: more constants
2021-04-23 22:46:15 +02:00
Megamouse
617d21fa84
sys_prx: more constants
2021-04-23 22:02:52 +02:00
Megamouse
41b68ef353
some more constants
2021-04-23 22:02:52 +02:00
Eladash
72c85744b9
kernel-explorer: Show bound queue to port information
...
Show its IPC key or ID, depends on the queue's type.
2021-04-23 21:34:05 +03:00
David Carlier
082bbc7336
Following up on MacOS build fix.
...
Specialisation of llvm_value_t to allow build with LLVM this time.
2021-04-23 15:20:40 +03:00
Megamouse
087dccd194
Implement most of cellUserInfo
2021-04-23 05:50:19 +03:00
Nekotekina
67649d7976
SPU LLVM: restore lost comment
2021-04-21 13:33:44 +03:00
Malcolm Jestadt
6247969ede
SPU LLVM: Absolute final fixes for icelake shufb paths
...
- The constant mask was accessing bits in reverse order of what was expected
2021-04-21 11:00:02 +03:00
Malcolm Jestadt
efd38fa940
SPU LLVM: Improve byteswap elimination
...
- Use the data before it has been swapped rather than relying on a second byteswap to cancel out the first
2021-04-20 23:24:21 +03:00
Malcolm Jestadt
551472220e
SPU LLVM: Remove icelake shufb paths for now
2021-04-20 23:24:21 +03:00
Malcolm Jestadt
53f13a9721
SPU LLVM: Final fixup for icelake shufb paths
...
- The cause of the problems was due to the constant mask for gf2p9affineqb being used as the first argument, instead of the second argument.
2021-04-20 13:07:24 +03:00
Megamouse
aa0afc9a4e
Input: avoid mouse events when unused
2021-04-20 00:06:23 +02:00
Eladash
a0d1cf26d0
Reduce precompilation failure log level (error -> notice)
2021-04-19 23:18:31 +03:00
Nekotekina
0c9c481cee
Use requires syntax in more places
...
Change style in some places.
2021-04-19 16:51:40 +03:00
clienthax
68fa377d13
Add dev_flash2+3
2021-04-18 14:49:29 +03:00
Nekotekina
9d4fcbf946
bs_t<>: fix/cleanup some operators
2021-04-17 15:54:33 +03:00
Eladash
67e2e154fa
Replace simple_type with std::common_type
2021-04-17 10:27:55 +03:00
Malcolm Jestadt
0a7df9d02e
SPU LLVM: add AVX-512 SPU verification
...
- This is hidden behind a new setting, as some cpus may downclock agressively when executing 512 wide instructions
2021-04-16 09:35:26 +03:00
Nekotekina
19763f8973
Remove unnecessary default:breaks
2021-04-15 15:23:59 +03:00
Eladash
a16cc3ac8a
lv2: Remove flags from IPC-supported objects
2021-04-15 10:31:40 +03:00
Nekotekina
ccb46df905
Minor fixups (removed unnecessary code)
2021-04-11 16:36:02 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Eladash
5ca6381624
Implement "PPU LLVM Precompilation" control setting
2021-04-10 18:06:46 +03:00
Nekotekina
3107f37864
Fix psf::load error for error::stream
2021-04-10 00:43:08 +03:00
Megamouse
17f5fec538
sceNp: fix rap file regression ( #10084 )
2021-04-09 21:37:57 +01:00
Megamouse
03b76b4606
Emu: some cleanup
2021-04-09 21:03:49 +02:00
Eladash
a8d5a8734a
Loader/cellGame: Do not crash on invalid PSF files
2021-04-09 20:58:30 +03:00
Megamouse
d10584ac6c
DRM: Search all user directories for rap files
2021-04-09 08:47:59 +02:00
Nekotekina
95725bf7fc
Add -Werror=missing-noreturn (GCC, clang)
...
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Megamouse
02febd3f65
Workaround: Skip progress_dialog during gameplay
2021-04-06 21:39:34 +03:00
Nick Renieris
396c129d41
vm: Flag names (refactoring)
2021-04-06 13:07:54 +03:00
Nekotekina
6f1f75bc8f
Minor progress dialog refactoring
...
Add rsx::overlays::progress_dialog class (identical to message_dialog).
Don't use Emu.CallAfter() for native dialogs.
Make g_progr_ptotal waitable.
2021-04-03 22:38:04 +03:00
Nekotekina
963d150e93
Fix some -Weffc++ warnings (part 2)
2021-04-03 21:54:15 +03:00
Eladash
e57f36fc5b
Quick sys_sm_get_params implementation
2021-04-03 17:23:40 +03:00
Eladash
32116086b3
Implement _sys_prx_register_module loading imports/exports functionality
2021-04-03 17:23:40 +03:00
Eladash
878da3b474
Implement get_cellos_appname()
...
Identifying vsh.self and possibly other operating system executables in the future.
2021-04-03 17:23:40 +03:00
Eladash
7b57b8f2ca
debugger: Implement ability to pause entire emulation on breakpoint
2021-04-01 19:11:55 +03:00
Nekotekina
e9a45a2f45
Implement scoped_progress_dialog
...
Create Emu/system_progress.hpp
Remove atomic g_progr_show
2021-03-31 23:40:09 +02:00
Nekotekina
2212a131ef
Fix some -Weffc++ warnings (part 1)
2021-03-31 11:27:09 +03:00
Megamouse
870224cde0
Emu/overlay: ingame native overlay PPU compilation
2021-03-31 09:38:30 +02:00
Eladash
1e71deb0db
rsx: Compile shaders when CELL is not running
2021-03-30 11:13:47 +03:00
Megamouse
ba45daff35
Qt: some cleanup in debugger
2021-03-24 20:47:51 +01:00
Nekotekina
b3fb6d7d18
Add and fix -Wredundant-decls (GCC)
2021-03-23 22:48:57 +03:00
Eladash
1864419561
Fix SPU mapped memory page size
2021-03-19 22:25:08 +03:00
Megamouse
43ac33c2b4
cellSaveDataEnableOverlay
2021-03-18 11:11:34 +03:00
Eladash
1d7fbd6a9a
Fix sceNpTrophyGet(Trophy/Game)Icon
2021-03-17 22:31:57 +03:00
Eladash
1213708b72
Replace some log errors ( #9980 )
2021-03-17 17:19:35 +03:00
Nekotekina
8fcebebae3
Implement lv2_mp_flag::cache
...
Identify /dev_hdd1 without unsafe path comparison.
2021-03-16 19:37:03 +03:00
Nekotekina
f801dc6558
Save all 8 syscall_args
2021-03-16 19:33:37 +03:00
Eladash
8716ac554f
Fix sys_raw_spu_destroy
2021-03-16 19:31:52 +03:00
Eladash
d7b4753007
Make gamedata installation atomic as real PS3
2021-03-16 19:31:52 +03:00
Eladash
a9b0d25c01
PPU Debugger: Fixup for syscall arguments ( #9932 )
2021-03-16 16:20:45 +03:00
shockdude
6a14849381
sys_usbd: DJ Hero Turntable Emulation ( #9965 )
...
* Initial Turntable Emulation
2021-03-14 23:48:50 +03:00
Nekotekina
0327ecc5c1
Enable -Wduplicated-cond (GCC)
2021-03-13 18:46:59 +03:00
Nekotekina
c22e1e71f0
Continue fixing strict aliasing warnings
2021-03-13 18:02:37 +03:00
Eladash
aff63028d4
SCE Decryption: Detect illegal RAP files
2021-03-13 11:51:40 +01:00
Eladash
923ba6f3bb
Fix sysutil_send_system_cmd at Emu.Stop()
2021-03-12 21:01:48 +03:00
Eladash
729cd9284e
debugger: Fix PPU threads pausing
2021-03-12 13:01:12 +03:00
Eladash
cfa2d4aaa8
Loader: Log FNID of imported/exported functions
2021-03-11 15:23:58 +03:00
Nekotekina
03332c340d
Implement utils::bless (pointer cast)
...
Tries to workaround strict aliasing troubles.
Don't confuse with std::bless which works differently.
2021-03-10 16:02:00 +03:00
Eladash
63ecb56b51
PPU interpreter hotfix
2021-03-10 13:41:13 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
53af2dbb3f
Add/fix warning -Wignored-qualifiers (GCC/clang)
...
Fix simple_array::const_iterator as a part of it.
2021-03-09 03:09:50 +03:00
xddxd
df338f0552
Move sys_crashdump to it's own file and make it a module itself
2021-03-08 22:57:35 +03:00
Malcolm Jestadt
e5d0e035d0
SPU LLVM: Rearange FM instruction for better performance
...
- Doesn't eliminate any instructions, but allows for better out of order execution.
2021-03-08 15:48:36 +03:00
Nekotekina
87af905018
Enable -Wunused-parameter
2021-03-06 18:07:08 +03:00
GitArUs
f8097a428c
Allow games to list all savedata ( #9547 )
...
* cellSaveData - allow games to list all savedata, not only those they own.
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2021-03-06 16:01:04 +03:00
Eladash
a5d74c5e96
GUI: Improve missing firmware handling
...
* Install PS3UPDAT.PUP at the spot when booting games whenever firmware is missing. The option to boot games without firmware is still supported when all firmware SPRX are HLEd in firmware settings.
* Pop-up a confirmation dialog in firmware installation if firmware is already installed.
2021-03-06 10:34:49 +01:00
Timothy Redaelli
fa5a2b6a85
SPUThread.cpp: remove "__attribute__((always_inline))"
...
cmp_rdata and mov_rdata are using __attribute__((always_inline)),
without inline, that is not supported on current g++ (see RPCS3#1546).
Moreover __attribute__((always_inline)) is a noop if used without inline so
just remove it.
A proper fix is to move the 2 functions in an header file as static
(with FORCE_INLINE) so it can be correctly inlined by the compiler.
2021-03-04 12:17:27 +03:00
RipleyTom
0eb0b1e1c9
Add some GT6 devices to whitelist
2021-03-03 17:30:16 +03:00
Nekotekina
52fe86b56c
fixed_typemap.hpp: make it a bit fool-proof
...
Require objects to be non-copyable (move is still allowed).
2021-03-02 21:58:49 +03:00
Eladash
004ebfdaee
SPU debugger: Implement MFC journal
...
* Allow to dump up to 1820 commands with up 128 bytes of data each, using key D with the debugger.
2021-03-02 21:57:51 +03:00
Nekotekina
ea5e837bd6
fixed_typemap.hpp: return reference
2021-03-02 16:08:14 +03:00
Nekotekina
d788b12a8e
fixed_typemap.hpp: reduce indirection
...
Backported some changes from auto_typemap.hpp
Implemented methods init(), reset(), clear()
Disabled recreation support.
2021-03-02 16:08:14 +03:00
Florin9doi
dfee46604a
Buzz settings
2021-02-28 22:36:47 +03:00
Megamouse
a7c9827ad4
Improve cellScreenshot ( #9851 )
...
* Fix screenshot logging
* Update libpng to 1.6.37
* cellScreenshot: Write text chunks
* cellScreenshot: add overlay image
* screenshot_manager: add /dev_hdd0/photo/
* read_png_file: use deleter instead of manual close
* cellScreenshot: use Qt for overlays
* cellScreenshot: don't apply overlay to regular img
* screenshot_manager: add mount hack for VFS
* cellScreenshot: escape the whole path
2021-02-28 22:05:04 +03:00
Nekotekina
f580bee32c
Rewrite cellNetCtlNetStartDialogLoadAsync hack
2021-02-28 20:20:17 +03:00
RipleyTom
67378c7dea
Add CELL_NET_CTL_INFO_DHCP_HOSTNAME impl
2021-02-26 11:58:42 +03:00
Nekotekina
a90ad62fc0
Remove garbage SPUW perf report
2021-02-23 18:24:50 +03:00
Nekotekina
090a769bf6
Implement fs::sync (Linux/POSIX)
2021-02-23 18:24:50 +03:00
Nekotekina
014846cf31
cellSaveData: fix minor issues
2021-02-23 18:24:50 +03:00
Eladash
112b7f6571
Fix Emulation::CallAfter
...
Most CallAfter usages were extremely wrong when ordered after Emu.Stop(). could result in anywhere from emulation stopping hangs to even segfaults.
track_emu_state = true is now the default, I haven't found cases which need need it disabled.
2021-02-23 17:55:36 +03:00
Eladash
68a878264c
Minor GUI fix for PPU interpreter at "precompilation"
2021-02-23 17:35:45 +03:00
Eladash
9ccf39b27f
Atomic SPU LS capture writes
2021-02-23 11:29:23 +03:00
Eladash
d4af8dd89a
Fix atomicity of savedata/trophy data writes
2021-02-23 11:29:23 +03:00
Eladash
932f31e37b
Atomic PARAM.SFO writes
2021-02-23 11:29:23 +03:00
Eladash
96400234a8
Remove cpu_thread destructor
2021-02-22 12:47:45 +03:00
Megamouse
f0b7afd7cc
cellPad: minor optimization
2021-02-22 10:45:40 +01:00
RipleyTom
8be2a55ccc
Add mutex lock for NP changes
2021-02-21 18:04:55 +03:00
RipleyTom
81270f3142
Remove now useless code from sys_bnet_connect
2021-02-21 18:04:55 +03:00
Eladash
eb0d006168
Fix most of "[x] thread is too sleepy" at Emu.Stop() ( #9813 )
...
* Fixes some thread sleep/wait calls
2021-02-21 16:43:02 +03:00
Eladash
20eb4352fb
debugger: Fix single stepping ( #9793 )
2021-02-19 14:53:09 +03:00
Nekotekina
038148bf06
Fix almost all GCC warnings
2021-02-17 22:59:04 +03:00
Nekotekina
1446254a03
Add error on missing 'override'
...
For consistency.
2021-02-15 20:21:30 +03:00
Nekotekina
8e6e57de86
Enable -Wunused-function warning
2021-02-15 14:39:53 +03:00
Eladash
f009d36811
Update log messages of PPU/SPU hashes and patches applied
2021-02-14 09:35:42 +01:00
Eladash
f43260bd58
Atomic waiting refactoring ( #9208 )
...
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117 )
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Eladash
cf384795d2
debugger: Improve PPU string constraints
2021-02-13 16:00:26 +03:00
Eladash
423cc1685c
PPU LLVM: Reduce PRX/OVL compilation memory usage a little
2021-02-13 13:05:41 +03:00
Eladash
5ed0cc293d
Fix PS3 process exit/exitspawn
2021-02-12 19:39:47 +03:00
Eladash
e26ae9899c
Reimplement/fix PRX patches
2021-02-12 15:27:59 +03:00
Nekotekina
4f8cac731b
Fix SAFE_BUFFERS attribute for GCC
2021-02-09 12:33:50 +03:00
Nekotekina
0057c89eaa
PPU Analyser: follow fallbacks in some cases
...
Fallback is an "invisible" branch to the next instruction.
This may be necessary for certain cases when patches are used.
2021-02-07 11:02:45 +03:00
Nekotekina
9e9a55df46
PPU LLVM: compile instructions from patches
...
For now, only as a single instruction at a time.
2021-02-07 11:02:31 +03:00
Nekotekina
9463238490
PPU Analyser: minor fixups for end pointer
...
Add more sanity checks for sections.
Remove some redundancy.
2021-02-07 11:02:31 +03:00
Nekotekina
b7ff2ecffb
Patch system: export some info for future use
...
For now it's just a list of addresses.
For now it's not used (just a stub).
2021-02-07 11:02:31 +03:00
Eladash
fad89f1c3b
Fix tiny race in PPU breakpoints ( #9731 )
...
If the PPU has just being paused by the debugger, before it entered the breakpoint handler, the PPU would continue onto the next instruction skipping the breakpoint but then being paused on it instead.
2021-02-07 00:25:40 +03:00
Eladash
4f85f151fd
SPU: Always signal the debugger about termination
2021-02-03 15:05:38 +03:00
Eladash
478ae0715e
Tiny fix for zombie PPU threads
2021-02-03 15:05:38 +03:00
Nekotekina
08aaae7999
PPU LLVM: workaround patch handling
...
Try to address #9704
2021-02-02 10:33:13 +03:00
Nekotekina
58eef983e2
PPU Analyser: fix constraints for all elfs.
...
Added for main executable and OVLs.
Forgot to use it not just for SPRX.
2021-02-01 19:14:24 +03:00
Nekotekina
7b40859eff
Remove unused header
2021-02-01 19:14:01 +03:00
Nekotekina
d0126f0fa0
Fix freezes in HLE Vdec and SPU LLVM precompilation.
...
Freezes could accidentally occur on close or ingame.
Deprecate range-for loop on lf_queue.
This is a part of PR #9208
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-02-01 19:14:01 +03:00
Nekotekina
0c034ad7de
PPU LLVM: upgrade to GHC call conv
...
Get rid of some global variables.
Implement ppu_escape (unused yet).
Bump PPU cache version to v4.
2021-02-01 11:30:50 +03:00
Nekotekina
aeeceb7d0b
Minor fixups
2021-02-01 11:30:50 +03:00
Nekotekina
d5f16ce272
PPU Analyser: better constraints for SPRX
2021-02-01 11:30:50 +03:00
Nekotekina
c89362f6a2
PPU LLVM: don't use module name as PRX indicator
2021-02-01 11:30:50 +03:00
Nekotekina
8a029159cd
PPU Analyser: compile certain functions on per-instruction basis
...
PPU LLVM: optimize small blocks
2021-02-01 11:30:50 +03:00
Nekotekina
891ebd0cb1
PPU Analyser: use reloc info (disabled for now)
...
Add blocks from relocations.
2021-02-01 11:30:50 +03:00
Nekotekina
382509d778
PPU LLVM: Implement inline __add_get_ov
2021-02-01 11:30:50 +03:00
Nekotekina
f9ee8978ff
PPU LLVM: improve analyser
...
Compile possibly executable holes between detected functions.
Add unused "PPU LLVM Greedy Mode" option (for future updates).
Add "nounwind" attribute to compiled functions (reduces size).
2021-02-01 11:30:50 +03:00
Nekotekina
cf6606065d
PPU: fix some typos in asm code
2021-01-31 20:00:04 +03:00
Eladash
82c86ed2f7
Implement standalone OVL (overlay) loading mode
...
* Allow to load OVL alone.
* Add error checks in ppu_load_exec(), do not crash on error.
* Fix crash on exit from standalone PRX mode, allow kernel explorer to work with it as well for the added OVL mode.
2021-01-31 15:47:05 +03:00
Megamouse
c464e90d5d
Fix stop exit of check_only ppu_initialize
2021-01-31 12:18:32 +03:00
Megamouse
670d2b191c
Minor optimization for check_only ppu_initialize
2021-01-31 12:18:32 +03:00
Megamouse
7bddb87306
Simplify compile threads
2021-01-31 12:18:32 +03:00
Megamouse
2025f02105
Search for more game data directories.
...
Also properly remove duplicate paths
2021-01-31 11:42:33 +03:00
Megamouse
1078626eea
Fix ppu compilation progress dialog
...
We could only increase the value because we completely based the dialog on cellMsgDialog.
This led to an issue where the dialog would increase its maximum and thus decrease the current percentage.
It then couldn't decrease and was stuck on the old percentage.
2021-01-30 21:34:16 +01:00
Eladash
16c6b44f55
Fix #9680 ( #9687 )
...
Fix regression from #9680
2021-01-30 19:05:02 +03:00
Eladash
e3b3b0cda7
PPU LLVM: Precompile all executable (PRX, MSELF, overlay) code at startup ( #9680 )
...
* Precompile LLVM cache at startup of games, like the GUI "Create PPU Cache" option.
* Allow OVL (overlay) precompilation as well (used by certain games).
Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-01-30 16:08:22 +03:00
Nekotekina
bb2cc196a6
Fixup for preloading SPRX from MSELF
...
Forgot to append the offset.
Forgot to use different loop variable.
2021-01-29 21:26:34 +03:00
Eladash
d3bc96a201
Fix minor issue with usage of STL thread::hardware_concurrency()
2021-01-29 18:23:29 +03:00
Nekotekina
11ba6e45ab
Add MSELF support to SPRX precompilation.
...
Add ppu_precompile() function in PPUThread.cpp
Co-authored-by: Eladash <elad3356p@gmail.com>
2021-01-29 13:34:43 +03:00
Eladash
0652870204
New RSX Debugger
2021-01-28 17:40:26 +03:00
Nekotekina
34274ec391
Purge unused typeid() invocations
2021-01-28 10:23:29 +03:00
Nekotekina
53267e283b
PPU LLVM: implement ppu_finalize
...
Properly free certain compiled PRX/OVL modules (except dev_flash)
2021-01-27 18:03:49 +03:00
Nekotekina
ee288340b0
Implement thread_ctrl::scoped_priority
...
RAII priority control (+1, or -1)
2021-01-25 21:49:16 +03:00
Nekotekina
a69248299d
SPU: Don't use shm::map_critical in SPU LS allocations
...
Use shm::try_map instead until proper area is found.
2021-01-25 17:45:47 +03:00
Malcolm Jestadt
486d48e4f8
SPU LLVM: Optimize ROTQBY family for VBMI
...
- Avoid masking pshufb index by 0xf by using vpermb instead.
- Also fix conversion of vperm2b index to ShuffleVector index.
2021-01-25 13:18:23 +03:00
Ani
7c62574e59
spu: Restore workers priority after initialization
2021-01-24 16:40:59 +03:00
Eladash
7f28489c70
Improve ppu_thread_cleaner a bit
...
Always join thread.
2021-01-21 21:32:13 +03:00
Eladash
a58c12db0b
SPU: fixup after #9630
...
Co-Authored-By: Ivan <nekotekina@gmail.com>
2021-01-21 21:32:13 +03:00
Eladash
12e1be2626
Implement thread_ctrl::wait_on (see #9208 )
2021-01-21 18:31:51 +03:00
Eladash
f81674232e
Remove SPU and PPU destructors
2021-01-21 18:31:51 +03:00
Nekotekina
f944573b3c
Fix old warnings: remove strncpy
...
Use strcpy_trunc instead.
Change some sce structs.
2021-01-20 12:26:09 +03:00
Nekotekina
f9bc682115
Refactor some 'offending' code a bit (no effect)
...
It appears linkage errors were rare even in debug mode (GCC/clang).
2021-01-18 21:58:28 +03:00
Malcolm Jestadt
a2e8e3090c
SPU LLVM: Optimize FSM following comparison
...
- FSM following a comparison instruction can be optimized to a single shuffle instruction
2021-01-17 16:52:44 +03:00
Nekotekina
def364fe28
SPU LLVM: add splat_scalar helper
...
Unrolls into zshuffle from the preferred slot.
2021-01-17 15:13:28 +03:00
Eladash
e4c3b1c2bd
vm: Remove vm::dealloc_verbose_nothrow
2021-01-15 17:37:52 +03:00
Eladash
e1f95ceb54
sceNpTrophy: Fix sceNpTrophyRegisterContext for handler abortion ( #9586 )
...
* Implement handler abortion during context registration.
* Fixed recursive calls to sceNpTrophy functions such as by callbacks from registering context.
* Turns out the reader lock for context registeration was incorrect because ctxt->tropusr and trophy directory are being modified. Made it an exclusive lock after callback.
2021-01-12 19:14:51 +03:00
Nekotekina
db8e6fe7a7
Enable -Wunused-variable
2021-01-12 14:34:14 +03:00
Nekotekina
ed345e5b65
Enable -Winvalid-offsetof
2021-01-12 13:01:17 +03:00
Megamouse
52deff06ba
Random stuff ( #9589 )
...
* minor coding style adjustment
* Qt: simplify osk dialog buttons
* replace std::find_if with convenience functions
* RSX: use sv in swizzle comparison
idk, I'll remove this if it was intentional.
* overlays/osk: rename enter to return
This one confused me and make me look for a bug that caused the "enter" key to be disabled, while it was actually the return key (obviously xD).
2021-01-12 12:59:50 +03:00
Eladash
bf6f43ec3a
Utils: Rewrite fmt::split
2021-01-08 22:23:48 +03:00
Megamouse
36159c2bd4
Add comment for deprecated avcodec_register_all
...
Apparently this is now done automatically and doesn't even need to be called at all
2021-01-08 14:36:49 +03:00
Nekotekina
586440622b
Silence another warning (clang)
2021-01-07 12:46:45 +03:00
Eladash
951fe3491e
PS3 Loader: Fix sections memorizing
2021-01-06 23:21:38 +03:00
Chris
f8589de476
Initial playlist-based custom soundtracks support ( #9362 )
...
* Initial playlist-based custom soundtracks support
This is the initial implementation of playlist-based (cellSearch) custom soundtracks support.
It is based on the initial work by @Megamouse and currently uses a directory-based approach to manage albums and utilizes FFMPEG to read audio metadata.
Background: The real PS3 can import music in XMB from USB into its internal storage (/dev_hdd0/music) and additionally stores metadata (artist, trackname, tracknumber, ...) in a database (/dev_hdd0/mms/db/metadata_db_hdd). Games can make use of imported music via cellSearch.
For the time being, this implementation does NOT make use of metadata_db_hdd as the db-format is not well understood and a folder-based approch is easier to use. Users only have to create folders inside /dev_hdd0/music and add music to it to create a "playlist". This playlists contents will be sorted alphabetically. As a result, users could prefix numbers to the audio-files to force a specific order.
The only really supported audio format is MP3. I also added support for AAC, AC3, WMA, ATRAC3 and ATRAC3 plus, however, non of these formats were successfully tested for several reasons. AC3 and WMA are not enabled in the current FFMPEG build which makes reading codec-specific data impossible. We could enable these later if we want to. AAC actually could work but I was not able to get it working in WipeOut HD Fury. My guess is that the game does not support AAC. Finally, I could not find any ATRAC3 (or Plus) music to test with.
This implementation currently only implements parts of cellSearchStartListSearch() and cellSearchStartContentSearchInList(). There are several other functions which are still completely unimplemented and will probably be needed by other games. However, this implementation is a starting-point and is enough for WipeOut and maybe a few other games.
A video which showcases this custom soundtrack support is available here: https://www.youtube.com/watch?v=4nu1OCtONTY
Next steps:
- Utilize sortKey in cellSearchStartContentSearchInList()
- Eliminate TODOs
- Implement the missing other functions
- Test on more games - I do not own many that support custom soundtracks
Signed-off-by: gladiac1337 <gladiac@gmail.com>
Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Ani <ani-leo@outlook.com>
Co-authored-by: Ivan <nekotekina@gmail.com>
2020-12-31 22:47:09 +03:00
Florin9doi
f1c61067bc
Buzz! emulated controller ( #9504 )
...
* Buzz emulated controller
Co-authored-by: Florin9doi <Florin9doi@users.noreply.github.com>
Co-authored-by: Ivan <nekotekina@gmail.com>
2020-12-31 21:02:03 +03:00
Nekotekina
5227e65808
vm: implement vm::atomic_op, fetch_op helpers
...
Can help to reduce lambda depth hell a little.
2020-12-30 20:11:02 +03:00
Malcolm Jestadt
c952e99f3e
SPU LLVM: Fix edgecase in icelake codegen
2020-12-29 22:01:11 +03:00
Nekotekina
35322b5d14
Remove deprecated _bit accessor from v128
...
Complicated (a lot of code), confusing (ambiguous)
2020-12-29 21:04:28 +03:00
Nekotekina
6b96807112
Reimplement utils::popcnt64
...
Implement utils::popcnt128
2020-12-29 15:28:02 +03:00
Florin9doi
733f31f90e
Allow USB passthrough for THQ uDraw GameTablet
2020-12-25 14:27:24 +03:00
Eladash
c94a98e15a
Fix minor typo
2020-12-23 20:50:33 +03:00
Eladash
72e6e87d82
Fix SPU ELF loader
2020-12-23 20:50:33 +03:00
Eladash
d17d22139e
SPU Debugger: Print reservation data
2020-12-23 08:25:56 +03:00
Nekotekina
a8e0d261b7
types.hpp: more cleanup
...
Also fix compilation.
2020-12-22 19:08:09 +03:00
Nekotekina
43a58df8a0
Butcher narrow cast a little (don't print value).
...
Also remove some forward declarations from util/types.hpp
If they don't work properly, it's easier to remove them.
2020-12-22 14:32:30 +03:00
Nekotekina
b7bf316c1a
Don't randomly include "stdafx.h"
...
It's file for precompiled headers.
Include what is used, don't rely on transitive includes.
2020-12-22 14:32:30 +03:00
Nekotekina
41ee792f95
MSVC: remove MemLeak build support
...
There are better memleak detection tools.
1) Requires to guard placement new and external libs
2) Doesn't work thoroughly
2020-12-22 14:32:30 +03:00
Nekotekina
bd269bccaf
types.hpp: remove intrinsic includes
...
Replace v128 with u128 in some places.
Removed some unused files.
2020-12-21 21:11:25 +03:00
Eladash
59ed222205
Disasm: read instruction contents only once
...
Memory is volatile and may be changed by guest threads, ensure the decoded instruction matches with the data.
2020-12-21 13:46:26 +03:00