Compare commits

...

73 Commits

Author SHA1 Message Date
Zangetsu38 976260577d Test 2018-02-24 04:14:59 +01:00
Nekotekina 89f5292057 Fixup 2018-02-24 04:14:59 +01:00
Nekotekina b89c8ec660 Initial cpu_translator impl 2018-02-24 04:14:59 +01:00
Farseer 51278f108c Some reverting 2018-02-24 04:14:59 +01:00
Farseer d2fc690ad2 Correct intersection check 2018-02-24 04:14:59 +01:00
Farseer f9dc36e8f3 Set log level back to notice 2018-02-24 04:14:59 +01:00
Farseer 1b63bf130c Performance improvements and CR fixes 2018-02-24 04:14:59 +01:00
Farseer 15330a86ee Always invalidate code as temp fix
Until I find out what else triggers SPU invalidation
2018-02-24 04:14:58 +01:00
Farseer 72911de000 Temporary crash fix 2018-02-24 04:14:58 +01:00
Farseer c3ea27e378 Maybe fix linux build
Who knows without a linux VM. I sure don't. Only 1 way to find out quickly. Nobody reads these notes anyway ¯\_(ツ)_/¯
2018-02-24 04:14:58 +01:00
Farseer 2d4af4c88c Initial optimizations (Squashed to fix submodules) 2018-02-24 04:14:58 +01:00
Zangetsu38 db96c355ce Update LLVM 6.0. 2018-02-24 04:14:58 +01:00
Zion Nimchuk 2b3df37400 Implement LLVM 6 Polly 2018-02-24 04:14:58 +01:00
Zangetsu38 2cfd552b1d Update Project to Visual Studio 2017.
Fix VS2017 compile by clienthax (PPUAnalyser.cpp).
2018-02-24 04:14:58 +01:00
scribam 53d6fc17dd Add callbacks for cellMusic 2018-02-24 04:14:58 +01:00
Nikolay Amiantov fdd5e4ee1e Fix quoting in cmake 2018-02-24 04:14:58 +01:00
Megamouse 4f4aa2cac5 Update for Qt 5.10 (#4202)
* Update Readme for Qt 5.10

* Update cmake for Qt 5.10

* Update travis to Qt 5.10.1
2018-02-24 04:14:58 +01:00
Zangetsu38 a90522eda1 Some Change in Gui. 2018-02-24 04:14:58 +01:00
Megamouse 59b83bbf7a Qt: use setAttribute(AA_DisableWindowContextHelpButton) instead of flags
probably needs Qt 5.10.1 to work propery
2018-02-24 04:14:58 +01:00
Megamouse ac37ef327b sceNpTrophyGetRequiredDiskSpace: take vfs into account for trophy dir 2018-02-24 04:14:57 +01:00
Megamouse 72a14ef8f8 Qt: add translation to save manager messageboxes 2018-02-24 04:14:57 +01:00
Megamouse 80900a5659 Qt: improve VFS dialog a bit
- use normal selection instead of doubleclick
- move SaveSettings out of the tabs to reduce file access
- translate EmptyPath as well
- some other minor refactors to reduce lines of code
2018-02-24 04:14:57 +01:00
kd-11 6298d21d7a rsx/vk/gl: Enforce format matching for render target resources. Fall back to raw data copy if match fails 2018-02-23 22:52:15 +03:00
kd-11 dcf3ffdce0 rsx/fp: Improve rgister component gather detection
- Also avoids clobbering register data by keeping gathered bits in a temp var
2018-02-23 22:50:46 +03:00
kd-11 932d9c4309 rsx/vulkan: Add post-compilation key validation and dynamically determine attachment write maks based on decompiled shader
- A new step is added between decompilation and pipeline object creation allowing for properties to be updated based on shader contents
- Allos masking off attachment writes that are unmodified in the shader
2018-02-23 17:37:03 +03:00
kd-11 a64bb4a0ec facepalm: _mm_andnot is ~A&B not A&~B as the name would suggest 2018-02-23 16:01:25 +03:00
kd-11 fa6d03d557 rsx: Nvidia driver compatibility workarounds
- Sanitize NaN values before they reach the driver. On nvidia (X * NaN = X)
2018-02-23 11:35:04 +03:00
kd-11 79ec982838 gl: Hotfix
- Reset mapping offsets after window is changed!
2018-02-22 11:43:44 +03:00
kd-11 963b431805 rsx/gl/vk: Improvements
- gl: Do not call makeCurrent every flip - it is already called in set_current()
- gl: Improve ring buffer behaviour; use sliding window to view buffers larger than maximum viewable hardware range
  NV hardware can only view 128M at a time
- gl/vk: Bump transform constant heap size When lots of draw calls are issued, the heap is exhaused very fast (8k per draw)
- gl: Remove CLIENT_STORAGE_BIT from ring buffers. Performance is marginally better without this flag (at least on windows)
2018-02-22 11:15:37 +03:00
kd-11 5ede331da5 gl: inline draw_state::test_property because msvc doesnt do it for us 2018-02-22 11:15:37 +03:00
kd-11 6828d4b3c2 rsx/gl: Minor fixes
- Identify depth textures reaching the gpu via shader_read upload path
- Use correct timestamp counter for opengl
2018-02-21 23:44:16 +03:00
kd-11 1411de38f3 rsx/vk: More optimizations
- Do not bother rechecking the dirty sampler pool for hits. Its faster to create new sampler than to search the pool
- Reserve some memory on vertex layout struct to reduce reallocation penalty
2018-02-21 21:34:40 +03:00
kd-11 5f33949cec vulkan: Optimize vertex data upload
- Reuse buffer views as much as possible, vkCreateBufferView is slow on NV
  Implemented as a large sliding window, reuseable until it is filled
2018-02-21 21:34:39 +03:00
kd-11 0c48fd25a0 rsx/vk: Cleanup
- Silence some warnings, remove dprints
2018-02-21 14:10:53 +03:00
kd-11 20b4c5d323 vulkan: Swapchains reimplemented
- Adds support for abstract implementations
- Adds native windowing implementations for WIN32 and X11 as fallbacks
  when present support is lacking (headless configs)
2018-02-21 14:10:53 +03:00
Juhn 1b26ec56ed Implement _sys_qsort in sys_libc_.cpp (#4176) 2018-02-21 00:24:47 +04:00
elad 7c0fd5094e disasm: clamp spu address 2018-02-20 20:27:57 +04:00
elad d5b9eb0caa add kdevelop to gitignore 2018-02-19 19:07:22 +00:00
elad 1a0b2bf050 add vscode files to gitignore
such as .vscode\settings.json
2018-02-19 19:07:22 +00:00
Zion Nimchuk f52fa5e46c Re-arrange VULKAN_PREBUILT option 2018-02-19 17:30:24 +04:00
Zion Nimchuk 77b8f3a0f9 Add an easy way for package builders to disable native cpu optimizations 2018-02-19 17:30:24 +04:00
Megamouse 95d232db4f Qt: fix gamegrid scroll
scrollafter is useless in gamegrid, because the currentIndex was reset after PopulateGameGrid, so just ignore it.
2018-02-19 01:23:40 +04: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
kd-11 ee88e7f948 rsx/gl: Hotfix for GL format compatibility check when high precision depth buffers is enabled 2018-02-16 16:14:54 +03:00
kd-11 ebb9fc7cd9 vk/drivers: Restore polaris+ patch to disable primitive restart 2018-02-16 16:14:54 +03:00
kd-11 32f0e91893 vulkan: Improve primitive restart workaround for vega/polaris
- For some reason the hardware forgets that primitive restart is enabled and tries to actually read vertex index 65535
- Works correctly if uint32 vertex indices are used instead of uint16 for cases where primitive restart is active
2018-02-16 16:14:54 +03:00
kd-11 a8ab408f64 rsx: Account for null blit ops (memcpy)
- Do not perform extra memory tasks if no actual image copy was performed
2018-02-16 16:14:54 +03:00
kd-11 661b8b006f rsx: Add texture readback statistics to the texture cache and debug overlay 2018-02-16 16:14:54 +03:00
kd-11 1bd77c2f51 rsx: Add cache pattern checking to blit engine resources
- Feature was implemented long ago but was not functional due to bugs
2018-02-16 16:14:54 +03:00
kd-11 c191a98ec3 vulkan API fixes
- Fix for texture barriers
- vulkan: Rework texture cache handling of depth surfaces
- Support for scaled depth blit using overlay pass
- Support proper readback of D24S8 in both D32F_S8 and D24U_S8 variants
- Optimize the depth conversion routines with SSE
- vulkan: Replace slow single element copy with std::memcpy
- Check heap status before attempting blit operations
- Bump guard size on upload buffer as well
2018-02-16 16:14:54 +03:00
kd-11 3bbecd998a infinitesimal fixes 2018-02-16 16:14:54 +03:00
kd-11 3406cc9886 gl: Fix save binding state for cube textures 2018-02-16 16:14:54 +03:00
kd-11 bd297d079d rsx: Minor optimizations 2018-02-16 16:14:54 +03:00
kd-11 a5500ebfa4 rsx: Fix disjoint draw range splitting
- Fixes flickering and missing draws in R&C and other games such as Motorstorm Apocalypse and Okami HD when strict mode is disabled
2018-02-16 16:14:54 +03:00
kd-11 a64bea1286 rsx/fp: Discard shaders with undefined (non-existent) writes. On nvidia+vulkan, undefined writes autofill with blue color 2018-02-16 16:14:54 +03:00
kd-11 b67f28e00d rsx/texture_cache: Do not access non-existent components 2018-02-16 16:14:54 +03:00
kd-11 89c548b5d3 rsx: fbo fixes 2.5
- Implement flush-always behaviour to partially fix readback from a currently bound fbo
  - Without this, only the first read is correct, as more draws are added the results become 'wrong'
  - Fixes WCB and cpublit behviour
- Synchronize blit_dst surfaces to avoid data loss when gpu texture scaling is used
  - Its still faster in such cases to disable gpu texture scaling but some types cannot be disabled without force cpu blit (e.g framebuffer transfers)
- Memory management tuning
  - rsx: on-demand texture cache rescanning for unprotected sections
  - rsx: Only framebuffer resources are upscaled
  - Do not resize regular blit engine resources
  - Lazy initialize readback buffer when using opengl
  -- These measures should help minimize vram usage
2018-02-16 16:14:54 +03:00
kd-11 02e571adbc gl: Cleanup some more things
- Avoid referencing GL's null texture
- Improve texture creation helpers
- Remove useless __glcheck from GLHelpers.cpp
2018-02-16 16:14:54 +03:00
kd-11 98e50d3064 gl: Reuse framebuffer textures whenever possible 2018-02-16 16:14:54 +03:00
kd-11 f20fd217f8 rsx: Reorganize framebuffer setup code
- Fixes some fast paths for framebuffer creation and binding
2018-02-16 16:14:54 +03:00
elad 95c6ac699b hle: gpio syscalls
* add sys_gpio_get, sys_gpio_set
2018-02-12 04:29:07 +04:00
Ani 9caceeacd7 gui: Update compatibility colors
Update to the colors now used by the website
2018-02-12 01:58:14 +04:00
Ani 2f7f8a629d Move Contributing to .github 2018-02-12 01:58:14 +04:00
Ani a994c46256 GL: Update glext.h to ver 20180114 2018-02-12 01:58:14 +04:00
Ani c689a9ba8e rpcs3qt: Handle duplicate name warning
The name 'verticalLayout_29' (QVBoxLayout) is already in use, defaulting to 'verticalLayout_291'.
2018-02-12 01:58:14 +04:00
Ani 777cd9a8ae Remove redundant imports
They are already included on the related rpcs3qt files
2018-02-12 01:58:14 +04:00
Ani 6dd2c78b1b Remove unused files (ps3emu_api) 2018-02-12 01:58:14 +04:00
Ani 372cb39ce8 openAL: Update to 1.18.2 2018-02-12 01:58:14 +04:00
Nekotekina d2652aedd2 VK: add two options (workarounds)
Force FIFO present mode option is workaround for recent MESA drivers
Force primitive restart flag should also work on said drivers
2018-02-11 19:52:14 +03:00
Nekotekina fa04ff6d90 CPUTranslator: add bitcast, trunc, zext, sext 2018-02-10 15:57:01 +03: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
435 changed files with 5261 additions and 36631 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ or our discord:
https://discord.me/RPCS3 https://discord.me/RPCS3
PLEASE READ THE GUIDELINES BEFORE OPENING AN ISSUE: PLEASE READ THE GUIDELINES BEFORE OPENING AN ISSUE:
https://github.com/RPCS3/rpcs3/blob/master/CONTRIBUTING.md https://github.com/RPCS3/rpcs3/blob/master/.github/CONTRIBUTING.md
==================================================== ====================================================
+6
View File
@@ -59,6 +59,8 @@ rpcs3/git-version.h
# Visual Studio Files # Visual Studio Files
.vs/* .vs/*
.vscode/*
*.ipch
*.vspx *.vspx
*.psess *.psess
*.VC.* *.VC.*
@@ -92,6 +94,10 @@ CMakeCache.txt
rpcs3/cotire/* rpcs3/cotire/*
rpcs3/rpcs3_*_cotire.cmake rpcs3/rpcs3_*_cotire.cmake
# kdevelop
*.kdev4
.kdev4/*
# Qt # Qt
moc_*.cpp moc_*.cpp
qrc_resources.cpp qrc_resources.cpp
+7 -3
View File
@@ -7,14 +7,14 @@
ignore = dirty ignore = dirty
[submodule "llvm"] [submodule "llvm"]
path = llvm path = llvm
url = https://github.com/RPCS3/llvm url = https://github.com/llvm-mirror/llvm
branch = release_60 branch = release_60
[submodule "GSL"] [submodule "GSL"]
path = 3rdparty/GSL path = 3rdparty/GSL
url = https://github.com/Microsoft/GSL.git url = https://github.com/Microsoft/GSL.git
[submodule "libpng"] [submodule "libpng"]
path = 3rdparty/libpng path = 3rdparty/libpng
url = https://github.com/RPCS3/libpng url = https://github.com/Zangetsu38/libpng
ignore = dirty ignore = dirty
[submodule "Vulkan/glslang"] [submodule "Vulkan/glslang"]
path = Vulkan/glslang path = Vulkan/glslang
@@ -33,7 +33,7 @@
url = https://github.com/madler/zlib url = https://github.com/madler/zlib
[submodule "3rdparty/hidapi"] [submodule "3rdparty/hidapi"]
path = 3rdparty/hidapi path = 3rdparty/hidapi
url = https://github.com/RPCS3/hidapi url = https://github.com/Zangetsu38/hidapi
branch = master branch = master
ignore = dirty ignore = dirty
[submodule "3rdparty/Optional"] [submodule "3rdparty/Optional"]
@@ -42,3 +42,7 @@
[submodule "3rdparty/pugixml"] [submodule "3rdparty/pugixml"]
path = 3rdparty/pugixml path = 3rdparty/pugixml
url = https://github.com/zeux/pugixml url = https://github.com/zeux/pugixml
[submodule "polly"]
path = polly
url = https://github.com/llvm-mirror/polly
branch = release_60
+8 -8
View File
@@ -52,7 +52,7 @@ before_script:
- git submodule update --init asmjit 3rdparty/ffmpeg 3rdparty/pugixml 3rdparty/GSL 3rdparty/libpng Utilities/yaml-cpp 3rdparty/cereal 3rdparty/hidapi 3rdparty/Optional Vulkan/glslang Vulkan/Vulkan-LoaderAndValidationLayers - git submodule update --init asmjit 3rdparty/ffmpeg 3rdparty/pugixml 3rdparty/GSL 3rdparty/libpng Utilities/yaml-cpp 3rdparty/cereal 3rdparty/hidapi 3rdparty/Optional Vulkan/glslang Vulkan/Vulkan-LoaderAndValidationLayers
- mkdir build - mkdir build
- cd build - cd build
- export CMAKE_PREFIX_PATH=~/Qt/5.10.0/gcc_64/lib/cmake - export CMAKE_PREFIX_PATH=~/Qt/5.10.1/gcc_64/lib/cmake
- export CXXFLAGS="$CXXFLAGS -DTRAVIS=true"; - export CXXFLAGS="$CXXFLAGS -DTRAVIS=true";
- if [ "$TRAVIS_PULL_REQUEST" = false ]; then - if [ "$TRAVIS_PULL_REQUEST" = false ]; then
export CXXFLAGS="$CXXFLAGS -DBRANCH=$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH"; export CXXFLAGS="$CXXFLAGS -DBRANCH=$TRAVIS_REPO_SLUG/$TRAVIS_BRANCH";
@@ -63,20 +63,20 @@ before_script:
- ninja - ninja
- # AppImage generation - # AppImage generation
- if [ -n "$UPLOAD_URL" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$CC" = "clang" ] && [ "$TRAVIS_PULL_REQUEST" = false ]; then - if [ -n "$UPLOAD_URL" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$CC" = "clang" ] && [ "$TRAVIS_PULL_REQUEST" = false ]; then
export LD_LIBRARY_PATH=~/Qt/5.10.0/gcc_64/lib; export LD_LIBRARY_PATH=~/Qt/5.10.1/gcc_64/lib;
DESTDIR=appdir ninja install ; find appdir/ ; DESTDIR=appdir ninja install ; find appdir/ ;
find ../bin ; find ../bin ;
wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" ; wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" ;
chmod a+x linuxdeployqt*.AppImage ; chmod a+x linuxdeployqt*.AppImage ;
export PATH=~/Qt/5.10.0/gcc_64/bin/:${PATH} ; export PATH=~/Qt/5.10.1/gcc_64/bin/:${PATH} ;
./linuxdeployqt*.AppImage --appimage-extract ; ./linuxdeployqt*.AppImage --appimage-extract ;
./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs ; ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs ;
mkdir ./appdir/usr/plugins/xcbglintegrations/ ; mkdir ./appdir/usr/plugins/xcbglintegrations/ ;
mkdir ./appdir/usr/plugins/imageformats/ ; mkdir ./appdir/usr/plugins/imageformats/ ;
cp ~/Qt/5.10.0/gcc_64/lib/libQt5Svg.so.5 ./appdir/usr/lib/ ; cp ~/Qt/5.10.1/gcc_64/lib/libQt5Svg.so.5 ./appdir/usr/lib/ ;
cp ~/Qt/5.10.0/gcc_64/plugins/xcbglintegrations/* ./appdir/usr/plugins/xcbglintegrations/ ; cp ~/Qt/5.10.1/gcc_64/plugins/xcbglintegrations/* ./appdir/usr/plugins/xcbglintegrations/ ;
cp ~/Qt/5.10.0/gcc_64/plugins/imageformats/* ./appdir/usr/plugins/imageformats/ ; cp ~/Qt/5.10.1/gcc_64/plugins/imageformats/* ./appdir/usr/plugins/imageformats/ ;
cp ~/Qt/5.10.0/gcc_64/plugins/platforms/* ./appdir/usr/plugins/platforms/ ; cp ~/Qt/5.10.1/gcc_64/plugins/platforms/* ./appdir/usr/plugins/platforms/ ;
rm ./appdir/usr/lib/libfreetype.so.6 ; rm ./appdir/usr/lib/libfreetype.so.6 ;
export PATH=${TRAVIS_BUILD_DIR}/build/squashfs-root/usr/bin/:${PATH} ; export PATH=${TRAVIS_BUILD_DIR}/build/squashfs-root/usr/bin/:${PATH} ;
./squashfs-root/usr/bin/appimagetool ${TRAVIS_BUILD_DIR}/build/appdir ; ./squashfs-root/usr/bin/appimagetool ${TRAVIS_BUILD_DIR}/build/appdir ;
@@ -117,7 +117,7 @@ addons:
- libstdc++-5-dev - libstdc++-5-dev
- lib32stdc++6 - lib32stdc++6
- zlib1g-dev - zlib1g-dev
# We need to install qt 5.10.0 manually because the version trusty provides is too old. # We need to install qt 5.10.1 manually because the version trusty provides is too old.
#- qtbase5-dev #- qtbase5-dev
- libudev-dev - libudev-dev
- libevdev-dev - libevdev-dev
+699 -25
View File
File diff suppressed because it is too large Load Diff
+68 -2
View File
@@ -13,8 +13,8 @@
* *
* You should have received a copy of the GNU Library General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Free Software Foundation, Inc.,
* Boston, MA 02111-1307, USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* Or go to http://www.gnu.org/copyleft/lgpl.html * Or go to http://www.gnu.org/copyleft/lgpl.html
*/ */
@@ -393,6 +393,72 @@ ALC_API void ALC_APIENTRY alcDeviceResumeSOFT(ALCdevice *device);
#endif #endif
#endif #endif
#ifndef AL_EXT_BFORMAT
#define AL_EXT_BFORMAT 1
#define AL_FORMAT_BFORMAT2D_8 0x20021
#define AL_FORMAT_BFORMAT2D_16 0x20022
#define AL_FORMAT_BFORMAT2D_FLOAT32 0x20023
#define AL_FORMAT_BFORMAT3D_8 0x20031
#define AL_FORMAT_BFORMAT3D_16 0x20032
#define AL_FORMAT_BFORMAT3D_FLOAT32 0x20033
#endif
#ifndef AL_EXT_MULAW_BFORMAT
#define AL_EXT_MULAW_BFORMAT 1
#define AL_FORMAT_BFORMAT2D_MULAW 0x10031
#define AL_FORMAT_BFORMAT3D_MULAW 0x10032
#endif
#ifndef ALC_SOFT_HRTF
#define ALC_SOFT_HRTF 1
#define ALC_HRTF_SOFT 0x1992
#define ALC_DONT_CARE_SOFT 0x0002
#define ALC_HRTF_STATUS_SOFT 0x1993
#define ALC_HRTF_DISABLED_SOFT 0x0000
#define ALC_HRTF_ENABLED_SOFT 0x0001
#define ALC_HRTF_DENIED_SOFT 0x0002
#define ALC_HRTF_REQUIRED_SOFT 0x0003
#define ALC_HRTF_HEADPHONES_DETECTED_SOFT 0x0004
#define ALC_HRTF_UNSUPPORTED_FORMAT_SOFT 0x0005
#define ALC_NUM_HRTF_SPECIFIERS_SOFT 0x1994
#define ALC_HRTF_SPECIFIER_SOFT 0x1995
#define ALC_HRTF_ID_SOFT 0x1996
typedef const ALCchar* (ALC_APIENTRY*LPALCGETSTRINGISOFT)(ALCdevice *device, ALCenum paramName, ALCsizei index);
typedef ALCboolean (ALC_APIENTRY*LPALCRESETDEVICESOFT)(ALCdevice *device, const ALCint *attribs);
#ifdef AL_ALEXT_PROTOTYPES
ALC_API const ALCchar* ALC_APIENTRY alcGetStringiSOFT(ALCdevice *device, ALCenum paramName, ALCsizei index);
ALC_API ALCboolean ALC_APIENTRY alcResetDeviceSOFT(ALCdevice *device, const ALCint *attribs);
#endif
#endif
#ifndef AL_SOFT_gain_clamp_ex
#define AL_SOFT_gain_clamp_ex 1
#define AL_GAIN_LIMIT_SOFT 0x200E
#endif
#ifndef AL_SOFT_source_resampler
#define AL_SOFT_source_resampler
#define AL_NUM_RESAMPLERS_SOFT 0x1210
#define AL_DEFAULT_RESAMPLER_SOFT 0x1211
#define AL_SOURCE_RESAMPLER_SOFT 0x1212
#define AL_RESAMPLER_NAME_SOFT 0x1213
typedef const ALchar* (AL_APIENTRY*LPALGETSTRINGISOFT)(ALenum pname, ALsizei index);
#ifdef AL_ALEXT_PROTOTYPES
AL_API const ALchar* AL_APIENTRY alGetStringiSOFT(ALenum pname, ALsizei index);
#endif
#endif
#ifndef AL_SOFT_source_spatialize
#define AL_SOFT_source_spatialize
#define AL_SOURCE_SPATIALIZE_SOFT 0x1214
#define AL_AUTO_SOFT 0x0002
#endif
#ifndef ALC_SOFT_output_limiter
#define ALC_SOFT_output_limiter
#define ALC_OUTPUT_LIMITER_SOFT 0x199A
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
+1 -1
View File
@@ -345,7 +345,7 @@ typedef struct {
/* Driving Presets */ /* Driving Presets */
#define EFX_REVERB_PRESET_DRIVING_COMMENTATOR \ #define EFX_REVERB_PRESET_DRIVING_COMMENTATOR \
{ 1.0000f, 0.0000f, 3.1623f, 0.5623f, 0.5012f, 2.4200f, 0.8800f, 0.6800f, 0.1995f, 0.0930f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } { 1.0000f, 0.0000f, 0.3162f, 0.5623f, 0.5012f, 2.4200f, 0.8800f, 0.6800f, 0.1995f, 0.0930f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }
#define EFX_REVERB_PRESET_DRIVING_PITGARAGE \ #define EFX_REVERB_PRESET_DRIVING_PITGARAGE \
{ 0.4287f, 0.5900f, 0.3162f, 0.7079f, 0.5623f, 1.7200f, 0.9300f, 0.8700f, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } { 0.4287f, 0.5900f, 0.3162f, 0.7079f, 0.5623f, 1.7200f, 0.9300f, 0.8700f, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }
+4 -31
View File
@@ -18,9 +18,6 @@ EXPORTS
alDeleteBuffers alDeleteBuffers
alDeleteEffects alDeleteEffects
alDeleteFilters alDeleteFilters
alDeleteFontsoundsSOFT
alDeletePresetsSOFT
alDeleteSoundfontsSOFT
alDeleteSources alDeleteSources
alDisable alDisable
alDistanceModel alDistanceModel
@@ -35,17 +32,10 @@ EXPORTS
alFilterfv alFilterfv
alFilteri alFilteri
alFilteriv alFilteriv
alFontsound2iSOFT
alFontsoundModulatoriSOFT
alFontsoundiSOFT
alFontsoundivSOFT
alGenAuxiliaryEffectSlots alGenAuxiliaryEffectSlots
alGenBuffers alGenBuffers
alGenEffects alGenEffects
alGenFilters alGenFilters
alGenFontsoundsSOFT
alGenPresetsSOFT
alGenSoundfontsSOFT
alGenSources alGenSources
alGetAuxiliaryEffectSlotf alGetAuxiliaryEffectSlotf
alGetAuxiliaryEffectSlotfv alGetAuxiliaryEffectSlotfv
@@ -74,8 +64,6 @@ EXPORTS
alGetFilteriv alGetFilteriv
alGetFloat alGetFloat
alGetFloatv alGetFloatv
alGetFontsoundModulatorivSOFT
alGetFontsoundivSOFT
alGetInteger alGetInteger
alGetInteger64SOFT alGetInteger64SOFT
alGetInteger64vSOFT alGetInteger64vSOFT
@@ -86,9 +74,7 @@ EXPORTS
alGetListenerfv alGetListenerfv
alGetListeneri alGetListeneri
alGetListeneriv alGetListeneriv
alGetPresetivSOFT
alGetProcAddress alGetProcAddress
alGetSoundfontivSOFT
alGetSource3dSOFT alGetSource3dSOFT
alGetSource3f alGetSource3f
alGetSource3i alGetSource3i
@@ -102,6 +88,7 @@ EXPORTS
alGetSourcei64vSOFT alGetSourcei64vSOFT
alGetSourceiv alGetSourceiv
alGetString alGetString
alGetStringiSOFT
alIsAuxiliaryEffectSlot alIsAuxiliaryEffectSlot
alIsBuffer alIsBuffer
alIsBufferFormatSupportedSOFT alIsBufferFormatSupportedSOFT
@@ -109,9 +96,6 @@ EXPORTS
alIsEnabled alIsEnabled
alIsExtensionPresent alIsExtensionPresent
alIsFilter alIsFilter
alIsFontsoundSOFT
alIsPresetSOFT
alIsSoundfontSOFT
alIsSource alIsSource
alListener3f alListener3f
alListener3i alListener3i
@@ -119,21 +103,7 @@ EXPORTS
alListenerfv alListenerfv
alListeneri alListeneri
alListeneriv alListeneriv
alLoadSoundfontSOFT
alMidiEventSOFT
alMidiGainSOFT
alMidiPauseSOFT
alMidiPlaySOFT
alMidiResetSOFT
alMidiSoundfontSOFT
alMidiSoundfontvSOFT
alMidiStopSOFT
alMidiSysExSOFT
alPresetFontsoundsSOFT
alPresetiSOFT
alPresetivSOFT
alProcessUpdatesSOFT alProcessUpdatesSOFT
alSoundfontPresetsSOFT
alSource3dSOFT alSource3dSOFT
alSource3f alSource3f
alSource3i alSource3i
@@ -175,7 +145,9 @@ EXPORTS
alcGetIntegerv alcGetIntegerv
alcGetProcAddress alcGetProcAddress
alcGetString alcGetString
alcGetStringiSOFT
alcGetThreadContext alcGetThreadContext
alcIsAmbisonicFormatSupportedSOFT
alcIsExtensionPresent alcIsExtensionPresent
alcIsRenderFormatSupportedSOFT alcIsRenderFormatSupportedSOFT
alcLoopbackOpenDeviceSOFT alcLoopbackOpenDeviceSOFT
@@ -183,5 +155,6 @@ EXPORTS
alcOpenDevice alcOpenDevice
alcProcessContext alcProcessContext
alcRenderSamplesSOFT alcRenderSamplesSOFT
alcResetDeviceSOFT
alcSetThreadContext alcSetThreadContext
alcSuspendContext alcSuspendContext
Binary file not shown.
+2 -2
View File
@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.1)
option(WITH_GDB "WITH_GDB" OFF) option(WITH_GDB "WITH_GDB" OFF)
option(WITHOUT_LLVM "WITHOUT_LLVM" OFF) option(WITHOUT_LLVM "WITHOUT_LLVM" OFF)
option(USE_NATIVE_INSTRUCTIONS "USE_NATIVE_INSTRUCTIONS makes rpcs3 compile with -march=native, which is useful for local builds, but not good for packages." ON)
option(VULKAN_PREBUILT "" OFF)
if (WITH_GDB) if (WITH_GDB)
add_definitions(-DWITH_GDB_DEBUGGER) add_definitions(-DWITH_GDB_DEBUGGER)
@@ -35,8 +37,6 @@ if (NOT USE_SYSTEM_LIBPNG)
add_subdirectory( 3rdparty/libpng ) add_subdirectory( 3rdparty/libpng )
endif() endif()
option(VULKAN_PREBUILT "" OFF)
# TODO: do real installation, including copying directory structure # TODO: do real installation, including copying directory structure
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/bin")
+9 -6
View File
@@ -20,15 +20,15 @@ If you want to contribute please take a look at the [Coding Style](https://githu
## Dependencies ## Dependencies
### Windows ### Windows
* [Visual Studio 2015](https://www.visualstudio.com/vs/older-downloads/) * [Visual Studio 2017](https://www.visualstudio.com/en/downloads/)
* [Visual C++ Redistributable Packages for Visual Studio 2015](http://www.microsoft.com/en-us/download/details.aspx?id=48145) * [Visual C++ Redistributable Packages for Visual Studio 2017](https://go.microsoft.com/fwlink/?LinkId=746572)
* [Cmake 3.1.0+](https://www.cmake.org/download/) (required; add to PATH) * [Cmake 3.1.0+](https://www.cmake.org/download/) (required; add to PATH)
* [Python 3.3+](https://www.python.org/downloads/) (required; add to PATH) * [Python 3.3+](https://www.python.org/downloads/) (required; add to PATH)
* [Qt 5.8+](https://www.qt.io/download-open-source/) (required; add QTDIR `<QtInstallFolder>\5.8\msvc2015_64\` environment variable if you do not want to use the Visual Studio Qt Plugin) * [Qt 5.10+](https://www.qt.io/download-open-source/) (required; add QTDIR environment variable if you do not want to use the Visual Studio Qt Plugin: e.g. `<QtInstallFolder>\5.10.1\msvc2017_64\`)
* [Visual Studio Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2015) (optional; see above) * [Visual Studio Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2015) (optional; see above)
### Linux ### Linux
* [Qt 5.7+](https://www.qt.io/download-open-source/) * [Qt 5.10+](https://www.qt.io/download-open-source/)
* GCC 5.1+ or Clang 3.5.0+ ([not GCC 6.1](https://github.com/RPCS3/rpcs3/issues/1691)) * GCC 5.1+ or Clang 3.5.0+ ([not GCC 6.1](https://github.com/RPCS3/rpcs3/issues/1691))
* Debian & Ubuntu: `sudo apt-get install cmake build-essential libasound2-dev libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git qt5-default` * Debian & Ubuntu: `sudo apt-get install cmake build-essential libasound2-dev libpulse-dev libopenal-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git qt5-default`
* Arch: `sudo pacman -S glew openal cmake llvm qt5-base` * Arch: `sudo pacman -S glew openal cmake llvm qt5-base`
@@ -48,14 +48,14 @@ To initialize the repository don't forget to execute `git submodule update --ini
### Configuring Qt ### Configuring Qt
*If you're using Visual Studio 2017 without Qt plugin support (or simply dont want to use it):* *If you're using Visual Studio 2017 without Qt plugin support (or simply dont want to use it):*
1) Add `QTDIR` environment variable and set it to `<QtInstallFolder>\5.8\msvc2015_64\` </br> 1) Add `QTDIR` environment variable and set it to e.g `<QtInstallFolder>\5.10.1\msvc2017_64\` </br>
Open `rpcs3.sln` Open `rpcs3.sln`
*If you wish to use the Visual Studio plugin for Qt:* </br> *If you wish to use the Visual Studio plugin for Qt:* </br>
1) Go to the Qt5 menu and edit Qt5 options. Add the path to your Qt installation with compiler e.g. `C:\Qt\5.8\msvc2015_64`. </br> 1) Go to the Qt5 menu and edit Qt5 options. Add the path to your Qt installation with compiler e.g. `C:\Qt\5.10.1\msvc2017_64`. </br>
2) While selecting the rpcs3qt project, go to Qt5->Project Setting and select the version you added. 2) While selecting the rpcs3qt project, go to Qt5->Project Setting and select the version you added.
### Building the projects ### Building the projects
@@ -101,6 +101,9 @@ This Builds RPCS3 with support for debugging PS3 games using gdb.
- ```-DUSE_VULKAN=ON/OFF``` (default = *ON*) - ```-DUSE_VULKAN=ON/OFF``` (default = *ON*)
This builds RPCS3 with Vulkan support. This builds RPCS3 with Vulkan support.
- ```-DUSE_NATIVE_INSTRUCTIONS=ON/OFF``` (default = *ON*)
This builds rpcs3 with -march=native, which is useful for local builds, but not good for packages.
## License ## License
Most files are licensed under the terms of GNU GPLv2 License, see LICENSE file for details. Some files may be licensed differently, check appropriate file headers for details. Most files are licensed under the terms of GNU GPLv2 License, see LICENSE file for details. Some files may be licensed differently, check appropriate file headers for details.
+4 -5
View File
@@ -13,7 +13,7 @@
#include "Emu/Cell/SPUThread.h" #include "Emu/Cell/SPUThread.h"
#ifndef _WIN32 #ifndef _WIN32
#include"fcntl.h" #include "fcntl.h"
#endif #endif
extern void ppu_set_breakpoint(u32 addr); extern void ppu_set_breakpoint(u32 addr);
@@ -365,7 +365,7 @@ std::string GDBDebugServer::get_reg(std::shared_ptr<ppu_thread> thread, u32 rid)
return std::string(8, 'x'); return std::string(8, 'x');
default: default:
if (rid > 70) return ""; if (rid > 70) return "";
return (rid > 31) return (rid > 31)
? u64_to_padded_hex(reinterpret_cast<u64&>(thread->fpr[rid - 32])) //fpr ? u64_to_padded_hex(reinterpret_cast<u64&>(thread->fpr[rid - 32])) //fpr
: u64_to_padded_hex(thread->gpr[rid]); //gpr : u64_to_padded_hex(thread->gpr[rid]); //gpr
} }
@@ -453,13 +453,12 @@ bool GDBDebugServer::cmd_thread_info(gdb_cmd & cmd)
result += u64_to_padded_hex(static_cast<u64>(cpu.id)); result += u64_to_padded_hex(static_cast<u64>(cpu.id));
}; };
idm::select<ppu_thread>(on_select); idm::select<ppu_thread>(on_select);
idm::select<ARMv7Thread>(on_select);
idm::select<RawSPUThread>(on_select); idm::select<RawSPUThread>(on_select);
idm::select<SPUThread>(on_select); idm::select<SPUThread>(on_select);
//todo: this may exceed max command length //todo: this may exceed max command length
result = "m" + result + "l"; result = "m" + result + "l";
return send_cmd_ack(result);; return send_cmd_ack(result);;
} }
@@ -768,7 +767,7 @@ void GDBDebugServer::on_task()
} }
} }
} }
catch (std::runtime_error& e) catch (std::runtime_error& e)
{ {
if (client_socket) { if (client_socket) {
closesocket(client_socket); closesocket(client_socket);
+3 -3
View File
@@ -293,7 +293,7 @@ struct MemoryManager : llvm::RTDyldMemoryManager
return RTDyldMemoryManager::registerEHFrames(addr, load_addr, size); return RTDyldMemoryManager::registerEHFrames(addr, load_addr, size);
} }
void deregisterEHFrames(u8* addr, u64 load_addr, std::size_t size) override virtual void deregisterEHFrames() override
{ {
} }
}; };
@@ -376,11 +376,11 @@ public:
LOG_SUCCESS(GENERAL, "LLVM: Created module: %s", module->getName().data()); LOG_SUCCESS(GENERAL, "LLVM: Created module: %s", module->getName().data());
} }
static std::unique_ptr<llvm::MemoryBuffer> load(const std::string& path) static std::unique_ptr<llvm::WritableMemoryBuffer> load(const std::string& path)
{ {
if (fs::file cached{path, fs::read}) if (fs::file cached{path, fs::read})
{ {
auto buf = llvm::MemoryBuffer::getNewUninitMemBuffer(cached.size()); auto buf = llvm::WritableMemoryBuffer::getNewUninitMemBuffer(cached.size());
cached.read(const_cast<char*>(buf->getBufferStart()), buf->getBufferSize()); cached.read(const_cast<char*>(buf->getBufferStart()), buf->getBufferSize());
return buf; return buf;
} }
-1
View File
@@ -177,7 +177,6 @@ namespace logs
channel HLE("HLE"); channel HLE("HLE");
channel PPU("PPU"); channel PPU("PPU");
channel SPU("SPU"); channel SPU("SPU");
channel ARMv7("ARMv7");
// Channel registry mutex // Channel registry mutex
semaphore<> g_mutex; semaphore<> g_mutex;
-1
View File
@@ -104,7 +104,6 @@ namespace logs
extern channel HLE; extern channel HLE;
extern channel PPU; extern channel PPU;
extern channel SPU; extern channel SPU;
extern channel ARMv7;
// Log level control: set all channels to level::notice // Log level control: set all channels to level::notice
void reset(); void reset();
+19 -17
View File
@@ -90,7 +90,7 @@ enum x64_reg_t : u32
X64R_XMM13, X64R_XMM13,
X64R_XMM14, X64R_XMM14,
X64R_XMM15, X64R_XMM15,
X64R_AL, X64R_AL,
X64R_CL, X64R_CL,
X64R_DL, X64R_DL,
@@ -99,7 +99,7 @@ enum x64_reg_t : u32
X64R_CH, X64R_CH,
X64R_DH, X64R_DH,
X64R_BH, X64R_BH,
X64_NOT_SET, X64_NOT_SET,
X64_IMM8, X64_IMM8,
X64_IMM16, X64_IMM16,
@@ -176,7 +176,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz
{ {
LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): LOCK prefix found twice", (size_t)code - out_length); LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): LOCK prefix found twice", (size_t)code - out_length);
} }
lock = true; lock = true;
continue; continue;
} }
@@ -186,7 +186,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz
{ {
LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): REPNE/REPNZ prefix found twice", (size_t)code - out_length); LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): REPNE/REPNZ prefix found twice", (size_t)code - out_length);
} }
repne = true; repne = true;
continue; continue;
} }
@@ -196,7 +196,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz
{ {
LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): REP/REPE/REPZ prefix found twice", (size_t)code - out_length); LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): REP/REPE/REPZ prefix found twice", (size_t)code - out_length);
} }
repe = true; repe = true;
continue; continue;
} }
@@ -225,7 +225,7 @@ void decode_x64_reg_op(const u8* code, x64_op_t& out_op, x64_reg_t& out_reg, siz
{ {
LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): operand-size override prefix found twice", (size_t)code - out_length); LOG_ERROR(MEMORY, "decode_x64_reg_op(%016llxh): operand-size override prefix found twice", (size_t)code - out_length);
} }
oso = true; oso = true;
continue; continue;
} }
@@ -917,7 +917,7 @@ bool get_x64_reg_value(x64_context* context, x64_reg_t reg, size_t d_size, size_
else if (reg == X64_IMM32) else if (reg == X64_IMM32)
{ {
const s32 imm_value = *(s32*)(RIP(context) + i_size - 4); const s32 imm_value = *(s32*)(RIP(context) + i_size - 4);
switch (d_size) switch (d_size)
{ {
case 4: out_value = (u32)imm_value; return true; case 4: out_value = (u32)imm_value; return true;
@@ -1254,7 +1254,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context)
} }
if (entry.start_addr <= addr && addr <= addr + mem->size - 1) if (entry.start_addr <= addr && addr <= addr + mem->size - 1)
{ {
// Place the page fault event onto table so that other functions [sys_mmapper_free_address and ppu pagefault funcs] // Place the page fault event onto table so that other functions [sys_mmapper_free_address and ppu pagefault funcs]
// know that this thread is page faulted and where. // know that this thread is page faulted and where.
auto pf_entries = fxm::get_always<page_fault_event_entries>(); auto pf_entries = fxm::get_always<page_fault_event_entries>();
@@ -1274,7 +1274,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context)
addr, data3 == SYS_MEMORY_PAGE_FAULT_CAUSE_READ_ONLY ? "writing read-only" : "using unmapped"); addr, data3 == SYS_MEMORY_PAGE_FAULT_CAUSE_READ_ONLY ? "writing read-only" : "using unmapped");
error_code sending_error = sys_event_port_send(entry.port_id, data1, data2, data3); error_code sending_error = sys_event_port_send(entry.port_id, data1, data2, data3);
// If we fail due to being busy, wait a bit and try again. // If we fail due to being busy, wait a bit and try again.
while (sending_error == CELL_EBUSY) while (sending_error == CELL_EBUSY)
{ {
@@ -1282,7 +1282,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context)
thread_ctrl::wait_for(1000); thread_ctrl::wait_for(1000);
sending_error = sys_event_port_send(entry.port_id, data1, data2, data3); sending_error = sys_event_port_send(entry.port_id, data1, data2, data3);
} }
if (sending_error) if (sending_error)
{ {
fmt::throw_exception("Unknown error %x while trying to pass page fault.", sending_error.value); fmt::throw_exception("Unknown error %x while trying to pass page fault.", sending_error.value);
@@ -1707,7 +1707,7 @@ bool thread_ctrl::_wait_for(u64 usec)
} }
} }
_lock{_this->m_mutex}; _lock{_this->m_mutex};
do do
{ {
// Mutex is unlocked at the start and after the waiting // Mutex is unlocked at the start and after the waiting
@@ -1890,32 +1890,34 @@ u16 thread_ctrl::get_affinity_mask(thread_class group)
} }
case native_core_arrangement::amd_ccx: case native_core_arrangement::amd_ccx:
{ {
u16 spu_mask, ppu_mask, rsx_mask; u16 spu_mask, ppu_mask, rsx_mask, general;
if (thread_count >= 16) if (thread_count >= 16)
{ {
// Threadripper, R7 // Threadripper, R7
// Assign threads 8-16 // Assign threads 1-16
// It appears some windows code is bound to lower core addresses, binding 8-16 is alot faster than 0-7 // It appears some windows code is bound to lower core addresses, binding 8-16 is alot faster than 0-7
ppu_mask = spu_mask = 0b1111111100000000; ppu_mask = spu_mask = 0b1111111100000000;
rsx_mask = all_cores_mask; rsx_mask = 0b11110000;
general = 0b00001111;
} }
else if (thread_count == 12) else if (thread_count == 12)
{ {
// 1600/2600 (x) // 1600/2600 (x)
ppu_mask = spu_mask = 0b111111000000; ppu_mask = spu_mask = 0b111111000000;
rsx_mask = all_cores_mask; rsx_mask = 0b111000;
general = 0b000111;
} }
else else
{ {
// R5 & R3 don't seem to improve performance no matter how these are shuffled // R5 & R3 don't seem to improve performance no matter how these are shuffled
ppu_mask = spu_mask = rsx_mask = 0b11111111 & all_cores_mask; ppu_mask = spu_mask = rsx_mask = general = 0b11111111;
} }
switch (group) switch (group)
{ {
default: default:
case thread_class::general: case thread_class::general:
return all_cores_mask; return general = all_cores_mask;
case thread_class::rsx: case thread_class::rsx:
return rsx_mask; return rsx_mask;
case thread_class::ppu: case thread_class::ppu:
+12 -2
View File
@@ -14,7 +14,10 @@ void shared_mutex::imp_lock_shared(s64 _old)
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
{ {
busy_wait(); if (i != 0)
{
busy_wait();
}
const s64 value = m_value.load(); const s64 value = m_value.load();
@@ -173,7 +176,10 @@ void shared_mutex::imp_lock(s64 _old)
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
{ {
busy_wait(); if (i != 0)
{
busy_wait();
}
const s64 value = m_value.load(); const s64 value = m_value.load();
@@ -236,6 +242,10 @@ void shared_mutex::imp_lock_degrade()
bool shared_mutex::try_lock_shared() bool shared_mutex::try_lock_shared()
{ {
if (m_value < c_min) // Fast path
{
return false;
}
// Conditional decrement // Conditional decrement
return m_value.fetch_op([](s64& value) { if (value >= c_min) value -= c_min; }) >= c_min; return m_value.fetch_op([](s64& value) { if (value >= c_min) value -= c_min; }) >= c_min;
} }
+1 -1
View File
@@ -19,7 +19,7 @@
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
+8 -8
View File
@@ -19,12 +19,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType> <ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType> <ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@@ -40,23 +40,23 @@
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakeBuildCommandLine>start /W /B pre-build.bat <NMakeBuildCommandLine>start /W /B pre-build.bat
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers
msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release /m</NMakeBuildCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release /m</NMakeBuildCommandLine>
<NMakeCleanCommandLine>cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers <NMakeCleanCommandLine>cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers
msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release /m</NMakeCleanCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release /m</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>start /W /B pre-build.bat <NMakeReBuildCommandLine>start /W /B pre-build.bat
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers
msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release /m msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release /m
</NMakeReBuildCommandLine> </NMakeReBuildCommandLine>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakeBuildCommandLine>start /W /B pre-build.bat <NMakeBuildCommandLine>start /W /B pre-build.bat
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers
msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug /m</NMakeBuildCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug /m</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>start /W /B pre-build.bat <NMakeReBuildCommandLine>start /W /B pre-build.bat
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers
msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug /m</NMakeReBuildCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug /m</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers <NMakeCleanCommandLine>cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DBUILD_TESTS=OFF -DBUILD_DEMOS=OFF -DBUILD_LAYERS=OFF -DBUILD_VKJSON=OFF ../Vulkan-LoaderAndValidationLayers
msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug /m</NMakeCleanCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug /m</NMakeCleanCommandLine>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
+8 -8
View File
@@ -19,12 +19,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType> <ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType> <ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@@ -39,24 +39,24 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakeBuildCommandLine>cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang <NMakeBuildCommandLine>cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release /m</NMakeBuildCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release /m</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang <NMakeReBuildCommandLine>cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release /m</NMakeReBuildCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release /m</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang <NMakeCleanCommandLine>cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release /m</NMakeCleanCommandLine> msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release /m</NMakeCleanCommandLine>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakeBuildCommandLine> <NMakeBuildCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug /m msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug /m
</NMakeBuildCommandLine> </NMakeBuildCommandLine>
<NMakeReBuildCommandLine> <NMakeReBuildCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug /m msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug /m
</NMakeReBuildCommandLine> </NMakeReBuildCommandLine>
<NMakeCleanCommandLine> <NMakeCleanCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" ../glslang
msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug /m msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug /m
</NMakeCleanCommandLine> </NMakeCleanCommandLine>
</PropertyGroup> </PropertyGroup>
+2 -2
View File
@@ -1,10 +1,10 @@
version: '{build}' version: '{build}'
image: Visual Studio 2015 image: Visual Studio 2017
environment: environment:
QTDIR: C:\Qt\5.10.0\msvc2015_64 QTDIR: C:\Qt\5.10.0\msvc2017_64
LLVMLIBS: https://drive.google.com/uc?export=download&id=0B8A6NaxhQAGRY2k3Q2Yya05lcm8 LLVMLIBS: https://drive.google.com/uc?export=download&id=0B8A6NaxhQAGRY2k3Q2Yya05lcm8
VULKAN: https://drive.google.com/uc?export=download&id=1A2eOMmCO714i0U7J0qI4aEMKnuWl8l_R VULKAN: https://drive.google.com/uc?export=download&id=1A2eOMmCO714i0U7J0qI4aEMKnuWl8l_R
COMPATDB: https://rpcs3.net/compatibility?api=v1&export COMPATDB: https://rpcs3.net/compatibility?api=v1&export
+1 -1
View File
@@ -93,7 +93,7 @@
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
BIN
View File
Binary file not shown.
+1 -1
Submodule llvm updated: 4423e35117...16ebb58ea4
+1 -1
View File
@@ -1,7 +1,7 @@
REM You need cmake and python to update the project files REM You need cmake and python to update the project files
REM this script relies on CWD being the path that this script is in REM this script relies on CWD being the path that this script is in
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
RD /S /Q cmake RD /S /Q cmake
RD /S /Q CMakeFiles RD /S /Q CMakeFiles
+8 -8
View File
@@ -18,12 +18,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType> <ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType> <ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@@ -39,30 +39,30 @@
<NMakePreprocessorDefinitions> <NMakePreprocessorDefinitions>
</NMakePreprocessorDefinitions> </NMakePreprocessorDefinitions>
<NMakeBuildCommandLine> <NMakeBuildCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug /m msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Debug /m
</NMakeBuildCommandLine> </NMakeBuildCommandLine>
<NMakeReBuildCommandLine> <NMakeReBuildCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug /m msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Debug /m
</NMakeReBuildCommandLine> </NMakeReBuildCommandLine>
<NMakeCleanCommandLine> <NMakeCleanCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug /m msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Debug /m
</NMakeCleanCommandLine> </NMakeCleanCommandLine>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakePreprocessorDefinitions /> <NMakePreprocessorDefinitions />
<NMakeBuildCommandLine> <NMakeBuildCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release /m msbuild.exe ALL_BUILD.vcxproj /t:build /p:Configuration=Release /m
</NMakeBuildCommandLine> </NMakeBuildCommandLine>
<NMakeReBuildCommandLine> <NMakeReBuildCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release /m msbuild.exe ALL_BUILD.vcxproj /t:rebuild /p:Configuration=Release /m
</NMakeReBuildCommandLine> </NMakeReBuildCommandLine>
<NMakeCleanCommandLine> <NMakeCleanCommandLine>
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_EXTERNAL_POLLY_SOURCE_DIR=../polly -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DWITH_POLLY=ON -DCMAKE_SYSTEM_VERSION=6.1 -DCMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=8.1 ../llvm
msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release /m msbuild.exe ALL_BUILD.vcxproj /t:clean /p:Configuration=Release /m
</NMakeCleanCommandLine> </NMakeCleanCommandLine>
</PropertyGroup> </PropertyGroup>
+3
View File
@@ -62,6 +62,9 @@ vcxproj_files = ["lib\Analysis\LLVMAnalysis.vcxproj",
"lib\Transforms\Utils\LLVMTransformUtils.vcxproj", "lib\Transforms\Utils\LLVMTransformUtils.vcxproj",
"lib\Transforms\Vectorize\LLVMVectorize.vcxproj", "lib\Transforms\Vectorize\LLVMVectorize.vcxproj",
"include\llvm\IR\intrinsics_gen.vcxproj", "include\llvm\IR\intrinsics_gen.vcxproj",
"tools\polly\lib\Polly.vcxproj",
"tools\polly\lib\External\PollyISL.vcxproj",
"tools\polly\lib\External\PollyPPCG.vcxproj",
"utils\TableGen\llvm-tblgen.vcxproj", "utils\TableGen\llvm-tblgen.vcxproj",
] ]
Submodule
+1
Submodule polly added at 7f7d8e3954
-65
View File
@@ -1,65 +0,0 @@
#include "ps3emu_api.h"
ps3emu_api::ps3emu_api(const std::string &path)
{
load(path);
}
bool ps3emu_api::load(const std::string &path)
{
if (!m_library.load(path))
{
return false;
}
bool is_no_errors = true;
if (!m_library.get(get_api_version, "ps3emu_api_get_api_version") || get_api_version() != ps3emu_api_version)
{
is_no_errors = false;
}
is_no_errors = is_no_errors && m_library.get(initialize, "ps3emu_api_initialize");
is_no_errors = is_no_errors && m_library.get(destroy, "ps3emu_api_destroy");
is_no_errors = is_no_errors && m_library.get(get_version_string, "ps3emu_api_get_version_string");
is_no_errors = is_no_errors && m_library.get(get_version_number, "ps3emu_api_get_version_number");
is_no_errors = is_no_errors && m_library.get(get_name_string, "ps3emu_api_get_name_string");
is_no_errors = is_no_errors && m_library.get(load_elf, "ps3emu_api_load_elf");
is_no_errors = is_no_errors && m_library.get(set_state, "ps3emu_api_set_state");
is_no_errors = is_no_errors && m_library.get(get_state, "ps3emu_api_get_state");
if (!is_no_errors)
{
close();
return false;
}
return true;
}
bool ps3emu_api::loaded() const
{
return m_library.loaded();
}
void ps3emu_api::close()
{
initialize = nullptr;
destroy = nullptr;
get_version_string = nullptr;
get_version_number = nullptr;
get_name_string = nullptr;
load_elf = nullptr;
set_state = nullptr;
get_state = nullptr;
m_library.close();
}
ps3emu_api::operator bool() const
{
return loaded();
}
-35
View File
@@ -1,35 +0,0 @@
#pragma once
#include <Utilities/dynamic_library.h>
#include <string>
#include "ps3emu_api_enums.h"
#include "ps3emu_api_structs.h"
class ps3emu_api
{
utils::dynamic_library m_library;
public:
ps3emu_api() = default;
ps3emu_api(const std::string &path);
unsigned int(*get_api_version)() = nullptr;
ps3emu_api_error_code(*initialize)(const ps3emu_api_initialize_callbacks *callbacks) = nullptr;
ps3emu_api_error_code(*destroy)() = nullptr;
ps3emu_api_error_code(*get_version_string)(char *dest_buffer, int dest_buffer_size) = nullptr;
ps3emu_api_error_code(*get_version_number)(int *version_number) = nullptr;
ps3emu_api_error_code(*get_name_string)(char *dest_buffer, int dest_buffer_size) = nullptr;
ps3emu_api_error_code(*load_elf)(const char *path) = nullptr;
ps3emu_api_error_code(*set_state)(ps3emu_api_state state) = nullptr;
ps3emu_api_error_code(*get_state)(ps3emu_api_state *state) = nullptr;
bool load(const std::string &path);
bool loaded() const;
void close();
explicit operator bool() const;
};
+1 -1
View File
@@ -33,7 +33,7 @@ Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget(); var widget = gui.currentPageWidget();
widget.deselectAll(); widget.deselectAll();
widget.selectComponent("qt.qt5.5100.gcc_64"); widget.selectComponent("qt.qt5.5101.gcc_64");
gui.clickButton(buttons.NextButton); gui.clickButton(buttons.NextButton);
} }
+2 -2
View File
@@ -20,14 +20,14 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc> <UseOfMfc>false</UseOfMfc>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc> <UseOfMfc>false</UseOfMfc>
+5 -2
View File
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14 # Visual Studio 15
VisualStudioVersion = 14.0.25420.1 VisualStudioVersion = 15.0.27130.2027
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asmjit", "asmjitsrc\asmjit.vcxproj", "{AC40FF01-426E-4838-A317-66354CEFAE88}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asmjit", "asmjitsrc\asmjit.vcxproj", "{AC40FF01-426E-4838-A317-66354CEFAE88}"
EndProject EndProject
@@ -243,4 +243,7 @@ Global
{FDC361C5-7734-493B-8CFB-037308B35122} = {DDF904CA-2771-441A-8629-5DF2EB922A79} {FDC361C5-7734-493B-8CFB-037308B35122} = {DDF904CA-2771-441A-8629-5DF2EB922A79}
{A107C21C-418A-4697-BB10-20C3AA60E2E4} = {FA1E6C16-CA63-45F8-8D52-E21DF396BE36} {A107C21C-418A-4697-BB10-20C3AA60E2E4} = {FA1E6C16-CA63-45F8-8D52-E21DF396BE36}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {06CC7920-E085-4B81-9582-8DE8AAD42510}
EndGlobalSection
EndGlobal EndGlobal
+41 -13
View File
@@ -6,12 +6,12 @@ set(CMAKE_CXX_STANDARD 14)
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
# Qt section # Qt section
find_package(Qt5 5.7 COMPONENTS Widgets Network) find_package(Qt5 5.10 COMPONENTS Widgets Network)
if(WIN32) if(WIN32)
find_package(Qt5 5.7 COMPONENTS WinExtras REQUIRED) find_package(Qt5 5.10 COMPONENTS WinExtras REQUIRED)
set(RPCS3_QT_LIBS Qt5::Widgets Qt5::WinExtras Qt5::Network) set(RPCS3_QT_LIBS Qt5::Widgets Qt5::WinExtras Qt5::Network)
else() else()
find_package(Qt5 5.7 COMPONENTS DBus Gui) find_package(Qt5 5.10 COMPONENTS DBus Gui)
if(Qt5DBus_FOUND) if(Qt5DBus_FOUND)
set(RPCS3_QT_LIBS Qt5::Widgets Qt5::DBus Qt5::Network) set(RPCS3_QT_LIBS Qt5::Widgets Qt5::DBus Qt5::Network)
add_definitions(-DHAVE_QTDBUS) add_definitions(-DHAVE_QTDBUS)
@@ -23,15 +23,15 @@ endif()
# Let's make sure we have Qt before we continue # Let's make sure we have Qt before we continue
if(NOT Qt5Widgets_FOUND) if(NOT Qt5Widgets_FOUND)
if(Qt5Widgets_VERSION VERSION_LESS 5.7.0) if(Qt5Widgets_VERSION VERSION_LESS 5.10.0)
message("Minimum supported Qt5 version is 5.7! You have version ${Qt5Widgets_VERSION} installed, please upgrade!") message("Minimum supported Qt5 version is 5.10.0! You have version ${Qt5Widgets_VERSION} installed, please upgrade!")
if("${CMAKE_SYSTEM}" MATCHES "Linux") if("${CMAKE_SYSTEM}" MATCHES "Linux")
message(FATAL_ERROR "Most distros do not provide an up-to-date version of Qt. message(FATAL_ERROR "Most distros do not provide an up-to-date version of Qt.
If you're on Ubuntu or Linux Mint, there are PPAs you can use to install an up-to-date qt5 version. If you're on Ubuntu or Linux Mint, there are PPAs you can use to install an up-to-date qt5 version.
https://launchpad.net/~beineri/+archive/ubuntu/opt-qt593-xenial https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.10.1-xenial
https://launchpad.net/~beineri/+archive/ubuntu/opt-qt593-trusty https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.10.1-trusty
just make sure to run just make sure to run
source /opt/qt59/bin/qt59-env.sh source /opt/qt510/bin/qt510-env.sh
before re-running cmake") before re-running cmake")
elseif(WIN32) elseif(WIN32)
message(FATAL_ERROR "You can download the latest version of Qt5 here: https://www.qt.io/download-open-source/") message(FATAL_ERROR "You can download the latest version of Qt5 here: https://www.qt.io/download-open-source/")
@@ -42,7 +42,7 @@ before re-running cmake")
message("CMake was unable to find Qt5!") message("CMake was unable to find Qt5!")
if(WIN32) if(WIN32)
message(FATAL_ERROR "Make sure the QTDIR env variable has been set properly. (for example C:\\Qt\\5.8\\msvc2017_64\\)") message(FATAL_ERROR "Make sure the QTDIR env variable has been set properly. (for example C:\\Qt\\5.10.1\\msvc2017_64\\)")
elseif("${CMAKE_SYSTEM}" MATCHES "Linux") elseif("${CMAKE_SYSTEM}" MATCHES "Linux")
message(FATAL_ERROR "Make sure to install your distro's qt5 package!") message(FATAL_ERROR "Make sure to install your distro's qt5 package!")
else() else()
@@ -96,7 +96,7 @@ if(NOT MSVC)
if(NOT APPLE) if(NOT APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--exclude-libs,ALL") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--exclude-libs,ALL")
endif() endif()
if(WIN32) if(WIN32)
set(CMAKE_RC_COMPILER_INIT windres) set(CMAKE_RC_COMPILER_INIT windres)
enable_language(RC) enable_language(RC)
@@ -108,7 +108,7 @@ if(NOT MSVC)
add_compile_options(-msse -msse2 -mcx16 -mrtm) add_compile_options(-msse -msse2 -mcx16 -mrtm)
if(NOT DEFINED ENV{TRAVIS}) if(NOT DEFINED ENV{TRAVIS} AND USE_NATIVE_INSTRUCTIONS)
add_compile_options(-march=native) add_compile_options(-march=native)
endif() endif()
@@ -173,7 +173,7 @@ set(CMAKE_MODULE_PATH "${RPCS3_SRC_DIR}/cmake_modules")
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
find_package(OpenAL REQUIRED) find_package(OpenAL REQUIRED)
if(NOT WITHOUT_LLVM) if(NOT WITHOUT_LLVM)
find_package(LLVM 4.0 CONFIG) find_package(LLVM 6.0 CONFIG)
if(NOT LLVM_FOUND) if(NOT LLVM_FOUND)
message("System LLVM was not found, LLVM will be built from the submodule.") message("System LLVM was not found, LLVM will be built from the submodule.")
@@ -198,6 +198,28 @@ if(NOT WITHOUT_LLVM)
endif() endif()
endif() endif()
endif() endif()
# Now let's look for polly.
find_package(Polly)
if(Polly_FOUND)
add_definitions(-DPOLLY_AVAILABLE)
endif()
# Polly LLVM Compiler checks
CHECK_C_COMPILER_FLAG("-mllvm -polly" HAS_POLLY)
CHECK_C_COMPILER_FLAG("-mllvm -polly-target=hybrid" HAS_POLLY_HYBRID)
CHECK_C_COMPILER_FLAG("-mllvm -polly-target=cpu" HAS_POLLY_CPU)
if (HAS_POLLY)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -polly -mllvm -polly-parallel -lgomp -mllvm -polly-vectorizer=stripmine")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -polly -mllvm -polly-parallel -lgomp -mllvm -polly-vectorizer=stripmine")
if(HAS_POLLY_HYBRID)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -polly-target=hybrid")
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -polly-target=cpu")
elseif(HAS_POLLY_CPU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -polly-target=cpu")
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -mllvm -polly-target=cpu")
endif()
endif()
if(APPLE) if(APPLE)
@@ -274,6 +296,7 @@ endif()
include_directories( include_directories(
${OPENAL_INCLUDE_DIR} ${OPENAL_INCLUDE_DIR}
${LLVM_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS}
${Polly_INCLUDE_DIRS}
"${RPCS3_SRC_DIR}/../3rdparty/pugixml/src" "${RPCS3_SRC_DIR}/../3rdparty/pugixml/src"
"${RPCS3_SRC_DIR}" "${RPCS3_SRC_DIR}"
"${RPCS3_SRC_DIR}/Loader" "${RPCS3_SRC_DIR}/Loader"
@@ -319,6 +342,7 @@ endif()
link_directories( link_directories(
"${RPCS3_SRC_DIR}/../3rdparty/minidx12/" "${RPCS3_SRC_DIR}/../3rdparty/minidx12/"
"${RPCS3_SRC_DIR}/../Vulkan" "${RPCS3_SRC_DIR}/../Vulkan"
"${Polly_LIBRARY_DIRS}"
) )
@@ -393,8 +417,12 @@ if(NOT MSVC)
target_link_libraries(rpcs3 GLEW::GLEW) target_link_libraries(rpcs3 GLEW::GLEW)
endif() endif()
if(Polly_FOUND)
target_link_libraries(rpcs3 Polly PollyISL PollyPPCG)
endif()
if(WIN32) if(WIN32)
target_link_libraries(rpcs3 ws2_32.lib Winmm.lib Psapi.lib VKstatic.1 glslang OSDependent OGLCompiler SPIRV HLSL setupapi.lib hidapi-hid Shlwapi.lib) target_link_libraries(rpcs3 ws2_32.lib Winmm.lib Psapi.lib gdi32.lib VKstatic.1 glslang OSDependent OGLCompiler SPIRV HLSL setupapi.lib hidapi-hid Shlwapi.lib)
if(NOT MSVC) if(NOT MSVC)
target_link_libraries(rpcs3 ${OPENGL_LIBRARIES} opengl32.lib glu32.lib libpthread) target_link_libraries(rpcs3 ${OPENGL_LIBRARIES} opengl32.lib glu32.lib libpthread)
else() else()
+1 -1
View File
@@ -31,7 +31,7 @@
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
+7 -6
View File
@@ -158,7 +158,7 @@ void mfc_thread::cpu_task()
if ((cmd.cmd & ~(MFC_BARRIER_MASK | MFC_FENCE_MASK)) == MFC_PUTQLLUC_CMD) if ((cmd.cmd & ~(MFC_BARRIER_MASK | MFC_FENCE_MASK)) == MFC_PUTQLLUC_CMD)
{ {
auto& data = vm::ps3::_ref<decltype(spu.rdata)>(cmd.eal); auto& data = vm::_ref<decltype(spu.rdata)>(cmd.eal);
const auto to_write = spu._ref<decltype(spu.rdata)>(cmd.lsa & 0x3ffff); const auto to_write = spu._ref<decltype(spu.rdata)>(cmd.lsa & 0x3ffff);
cmd.size = 0; cmd.size = 0;
@@ -176,14 +176,16 @@ void mfc_thread::cpu_task()
data = to_write; data = to_write;
vm::reservation_update(cmd.eal, 128); vm::reservation_update(cmd.eal, 128);
vm::notify(cmd.eal, 128);
_xend(); _xend();
vm::notify(cmd.eal, 128);
} }
else else
{ {
vm::writer_lock lock(0); {
data = to_write; vm::writer_lock lock(0);
vm::reservation_update(cmd.eal, 128); data = to_write;
vm::reservation_update(cmd.eal, 128);
}
vm::notify(cmd.eal, 128); vm::notify(cmd.eal, 128);
} }
} }
@@ -356,7 +358,6 @@ void mfc_thread::cpu_task()
} }
else else
{ {
vm::reader_lock lock;
vm::notify_all(); vm::notify_all();
} }
} }
+6 -6
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
@@ -308,7 +308,7 @@ enum CellAdecChannel : s32
CELL_ADEC_CH_3_4, CELL_ADEC_CH_3_4,
CELL_ADEC_CH_3_4_LFE, CELL_ADEC_CH_3_4_LFE,
CELL_ADEC_CH_RESERVED3, CELL_ADEC_CH_RESERVED3,
}; };
// Sampling Rate // Sampling Rate
enum CellAdecSampleRate : s32 enum CellAdecSampleRate : s32
@@ -532,13 +532,13 @@ struct CellAdecParamM4Aac
union union
{ {
struct struct
{ {
be_t<u32> programNumber; be_t<u32> programNumber;
} }
adifConfig; adifConfig;
struct struct
{ {
be_t<s32> samplingFreqIndex; // MPEG4AAC_SamplingFreq be_t<s32> samplingFreqIndex; // MPEG4AAC_SamplingFreq
be_t<u32> profile; // LC profile (1) be_t<u32> profile; // LC profile (1)
@@ -683,10 +683,10 @@ struct CellAdecParamAc3
AC3_WordSize wordSize; AC3_WordSize wordSize;
AC3_OutputMode outputMode; AC3_OutputMode outputMode;
AC3_LFE outLfeOn; AC3_LFE outLfeOn;
be_t<float> drcCutScaleFactor; be_t<float> drcCutScaleFactor;
be_t<float> drcBoostScaleFactor; be_t<float> drcBoostScaleFactor;
AC3_CompressionMode compressionMode; AC3_CompressionMode compressionMode;
AC3_InputChannel numberOfChannels; AC3_InputChannel numberOfChannels;
AC3_StereoMode stereoMode; AC3_StereoMode stereoMode;
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum enum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum enum
+8 -8
View File
@@ -2,7 +2,7 @@
#include "Utilities/Thread.h" #include "Utilities/Thread.h"
namespace vm { using namespace ps3; }
// Error codes // Error codes
enum CellAudioError : u32 enum CellAudioError : u32
@@ -32,7 +32,7 @@ enum
CELL_AUDIO_BLOCK_SAMPLES = 256, CELL_AUDIO_BLOCK_SAMPLES = 256,
CELL_AUDIO_CREATEEVENTFLAG_SPU = 0x00000001, CELL_AUDIO_CREATEEVENTFLAG_SPU = 0x00000001,
CELL_AUDIO_EVENT_HEADPHONE = 1, CELL_AUDIO_EVENT_HEADPHONE = 1,
CELL_AUDIO_EVENT_MIX = 0, CELL_AUDIO_EVENT_MIX = 0,
CELL_AUDIO_EVENTFLAG_BEFOREMIX = 0x80000000, CELL_AUDIO_EVENTFLAG_BEFOREMIX = 0x80000000,
CELL_AUDIO_EVENTFLAG_DECIMATE_2 = 0x08000000, CELL_AUDIO_EVENTFLAG_DECIMATE_2 = 0x08000000,
CELL_AUDIO_EVENTFLAG_DECIMATE_4 = 0x10000000, CELL_AUDIO_EVENTFLAG_DECIMATE_4 = 0x10000000,
@@ -40,7 +40,7 @@ enum
CELL_AUDIO_EVENTFLAG_NOMIX = 0x40000000, CELL_AUDIO_EVENTFLAG_NOMIX = 0x40000000,
CELL_AUDIO_MAX_PORT = 4, CELL_AUDIO_MAX_PORT = 4,
CELL_AUDIO_MAX_PORT_2 = 8, CELL_AUDIO_MAX_PORT_2 = 8,
CELL_AUDIO_MISC_ACCVOL_ALLDEVICE = 0x0000ffffUL, CELL_AUDIO_MISC_ACCVOL_ALLDEVICE = 0x0000ffffUL,
CELL_AUDIO_PERSONAL_DEVICE_PRIMARY = 0x8000, CELL_AUDIO_PERSONAL_DEVICE_PRIMARY = 0x8000,
CELL_AUDIO_PORT_2CH = 2, CELL_AUDIO_PORT_2CH = 2,
CELL_AUDIO_PORT_8CH = 8, CELL_AUDIO_PORT_8CH = 8,
@@ -51,7 +51,7 @@ enum
CELL_AUDIO_PORTATTR_OUT_PERSONAL_1 = 0x0000000002000000ULL, CELL_AUDIO_PORTATTR_OUT_PERSONAL_1 = 0x0000000002000000ULL,
CELL_AUDIO_PORTATTR_OUT_PERSONAL_2 = 0x0000000004000000ULL, CELL_AUDIO_PORTATTR_OUT_PERSONAL_2 = 0x0000000004000000ULL,
CELL_AUDIO_PORTATTR_OUT_PERSONAL_3 = 0x0000000008000000ULL, CELL_AUDIO_PORTATTR_OUT_PERSONAL_3 = 0x0000000008000000ULL,
CELL_AUDIO_PORTATTR_OUT_SECONDARY = 0x0000000000000001ULL, CELL_AUDIO_PORTATTR_OUT_SECONDARY = 0x0000000000000001ULL,
CELL_AUDIO_STATUS_CLOSE = 0x1010, CELL_AUDIO_STATUS_CLOSE = 0x1010,
CELL_AUDIO_STATUS_READY = 1, CELL_AUDIO_STATUS_READY = 1,
CELL_AUDIO_STATUS_RUN = 2, CELL_AUDIO_STATUS_RUN = 2,
@@ -59,15 +59,15 @@ enum
//libaudio datatypes //libaudio datatypes
struct CellAudioPortParam struct CellAudioPortParam
{ {
be_t<u64> nChannel; be_t<u64> nChannel;
be_t<u64> nBlock; be_t<u64> nBlock;
be_t<u64> attr; be_t<u64> attr;
be_t<float> level; be_t<float> level;
}; };
struct CellAudioPortConfig struct CellAudioPortConfig
{ {
vm::bptr<u64> readIndexAddr; vm::bptr<u64> readIndexAddr;
be_t<u32> status; be_t<u32> status;
be_t<u64> nChannel; be_t<u64> nChannel;
@@ -115,7 +115,7 @@ struct audio_port
float inc; float inc;
}; };
float level; float level;
atomic_t<level_set_t> level_set; atomic_t<level_set_t> level_set;
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error codes // Error codes
enum enum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error codes // Error codes
enum enum
+1 -1
View File
@@ -4,7 +4,7 @@
#include "cellBgdl.h" #include "cellBgdl.h"
namespace vm { using namespace ps3; }
logs::channel cellBGDL("cellBGDL"); logs::channel cellBGDL("cellBGDL");
+1 -1
View File
@@ -30,5 +30,5 @@ struct CellBGDLInfo
be_t<u64> received_size; be_t<u64> received_size;
be_t<u64> content_size; be_t<u64> content_size;
be_t<s32> state; // CellBGDLState be_t<s32> state; // CellBGDLState
vm::ps3::bptr<void> reserved; vm::bptr<void> reserved;
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
+4 -4
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// libCelp8Enc = 0x806140a1 - 0x806140bf // libCelp8Enc = 0x806140a1 - 0x806140bf
@@ -19,9 +19,9 @@ enum
enum enum
{ {
CELL_CELP8ENC_FS_8kHz = 1, CELL_CELP8ENC_FS_8kHz = 1,
CELL_CELP8ENC_EXCITATION_MODE_MPE = 0, CELL_CELP8ENC_EXCITATION_MODE_MPE = 0,
CELL_CELP8ENC_MPE_CONFIG_0 = 0, CELL_CELP8ENC_MPE_CONFIG_0 = 0,
CELL_CELP8ENC_MPE_CONFIG_2 = 2, CELL_CELP8ENC_MPE_CONFIG_2 = 2,
CELL_CELP8ENC_MPE_CONFIG_6 = 6, CELL_CELP8ENC_MPE_CONFIG_6 = 6,
@@ -32,6 +32,6 @@ enum
CELL_CELP8ENC_MPE_CONFIG_21 = 21, CELL_CELP8ENC_MPE_CONFIG_21 = 21,
CELL_CELP8ENC_MPE_CONFIG_24 = 24, CELL_CELP8ENC_MPE_CONFIG_24 = 24,
CELL_CELP8ENC_MPE_CONFIG_26 = 26, CELL_CELP8ENC_MPE_CONFIG_26 = 26,
CELL_CELP8ENC_WORD_SZ_FLOAT, CELL_CELP8ENC_WORD_SZ_FLOAT,
}; };
+4 -4
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// libCelpEnc = 0x80614001 - 0x806140ff // libCelpEnc = 0x80614001 - 0x806140ff
@@ -19,14 +19,14 @@ enum
enum enum
{ {
CELL_CELPENC_FS_16kHz = 2, CELL_CELPENC_FS_16kHz = 2,
CELL_CELPENC_EXCITATION_MODE_RPE = 1, CELL_CELPENC_EXCITATION_MODE_RPE = 1,
CELL_CELPENC_RPE_CONFIG_0, CELL_CELPENC_RPE_CONFIG_0,
CELL_CELPENC_RPE_CONFIG_1, CELL_CELPENC_RPE_CONFIG_1,
CELL_CELPENC_RPE_CONFIG_2, CELL_CELPENC_RPE_CONFIG_2,
CELL_CELPENC_RPE_CONFIG_3, CELL_CELPENC_RPE_CONFIG_3,
CELL_CELPENC_WORD_SZ_INI16_LE, CELL_CELPENC_WORD_SZ_INI16_LE,
CELL_CELPENC_WORD_SZ_FLOAT, CELL_CELPENC_WORD_SZ_FLOAT,
}; };
@@ -2,7 +2,7 @@
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
namespace vm { using namespace ps3; }
logs::channel cellCrossController("cellCrossController"); logs::channel cellCrossController("cellCrossController");
+10 -10
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// libDaisy = 0x80410501 - 0x804105ff // libDaisy = 0x80410501 - 0x804105ff
@@ -35,7 +35,7 @@ enum
CELL_DAISY_MIN_ENTRY_SIZE = 16, CELL_DAISY_MIN_ENTRY_SIZE = 16,
CELL_DAISY_MAX_ENTRY_SIZE = (16*1024), CELL_DAISY_MAX_ENTRY_SIZE = (16*1024),
CELL_DAISY_MAX_DMA_TAG = 31, CELL_DAISY_MAX_DMA_TAG = 31,
// CELL_DAISY_ENTRY_SIZE(x) // CELL_DAISY_ENTRY_SIZE(x)
// CELL_DAISY_EA_ATOMIC(x) // CELL_DAISY_EA_ATOMIC(x)
// CELL_DAISY_EA_DMA(x) // CELL_DAISY_EA_DMA(x)
@@ -48,35 +48,35 @@ enum
// Queue IO // Queue IO
DAISY_OUTPUT, DAISY_OUTPUT,
DAISY_INPUT, DAISY_INPUT,
// Block Mode // Block Mode
DAISY_NOT_STALL = 0, DAISY_NOT_STALL = 0,
DAISY_STALL = 1, DAISY_STALL = 1,
// Queue Status // Queue Status
DAISY_PTR_UNAVAILABLE = 0x40000001, DAISY_PTR_UNAVAILABLE = 0x40000001,
DAISY_PTR_TERMINATED = 0x40000002, DAISY_PTR_TERMINATED = 0x40000002,
// Buffer Mode // Buffer Mode
DAISY_COPY = 0, DAISY_COPY = 0,
DAISY_REFERENCE = 1, DAISY_REFERENCE = 1,
// Constructor Mode // Constructor Mode
DAISY_NO_PARAMETER = 0, DAISY_NO_PARAMETER = 0,
DAISY_PARAMETER = 1, DAISY_PARAMETER = 1,
// Glue Mode // Glue Mode
DAISY_ONE_PORT = 1, DAISY_ONE_PORT = 1,
DAISY_TWO_PORT = 2, DAISY_TWO_PORT = 2,
// Queue Mode // Queue Mode
DAISY_IN_ORDER, DAISY_IN_ORDER,
DAISY_OUT_OF_ORDER, DAISY_OUT_OF_ORDER,
// Buffer Type // Buffer Type
DAISY_BUFFER_TYPE_REMOTE = 1, DAISY_BUFFER_TYPE_REMOTE = 1,
DAISY_BUFFER_TYPE_LOCAL = 2, DAISY_BUFFER_TYPE_LOCAL = 2,
// Queue Control Type // Queue Control Type
DAISY_QCTL_TYPE_ATOMIC = 1, DAISY_QCTL_TYPE_ATOMIC = 1,
DAISY_QCTL_TYPE_LOCAL = 2, DAISY_QCTL_TYPE_LOCAL = 2,
+3 -3
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
@@ -156,7 +156,7 @@ struct CellDmuxEsMsg
be_t<u64> supplementalInfo; be_t<u64> supplementalInfo;
}; };
struct CellDmuxType struct CellDmuxType
{ {
be_t<s32> streamType; // CellDmuxStreamType be_t<s32> streamType; // CellDmuxStreamType
be_t<u32> reserved[2]; be_t<u32> reserved[2];
@@ -223,7 +223,7 @@ using CellDmuxCbMsg = u32(u32 demuxerHandle, vm::ptr<CellDmuxMsg> demuxerMsg, u3
struct CellDmuxCb struct CellDmuxCb
{ {
vm::bptr<CellDmuxCbMsg> cbMsgFunc; vm::bptr<CellDmuxCbMsg> cbMsgFunc;
be_t<u32> cbArg; be_t<u32> cbArg;
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum CellFiberError : u32 enum CellFiberError : u32
+2 -2
View File
@@ -1,4 +1,4 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
@@ -554,7 +554,7 @@ s32 cellFontExtend(u32 a1, u32 a2, u32 a3)
//Something happens //Something happens
} }
//Something happens? //Something happens?
return CELL_OK; return -1;
} }
s32 cellFontRenderCharGlyphImageVertical() s32 cellFontRenderCharGlyphImageVertical()
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error codes // Error codes
enum enum
+1 -1
View File
@@ -2,7 +2,7 @@
#include "cellFont.h" #include "cellFont.h"
namespace vm { using namespace ps3; }
struct CellFontLibraryConfigFT struct CellFontLibraryConfigFT
{ {
+12 -12
View File
@@ -11,7 +11,7 @@
#include <mutex> #include <mutex>
namespace vm { using namespace ps3; }
logs::channel cellFs("cellFs"); logs::channel cellFs("cellFs");
@@ -417,7 +417,7 @@ error_code cellFsGetDirectoryEntries(u32 fd, vm::ptr<CellFsDirectoryEntry> entri
return CellError(+op->arg._code); return CellError(+op->arg._code);
} }
return not_an_error(rc); return not_an_error(rc);
} }
error_code cellFsReadWithOffset(u32 fd, u64 offset, vm::ptr<void> buf, u64 buffer_size, vm::ptr<u64> nread) error_code cellFsReadWithOffset(u32 fd, u64 offset, vm::ptr<void> buf, u64 buffer_size, vm::ptr<u64> nread)
@@ -433,7 +433,7 @@ error_code cellFsReadWithOffset(u32 fd, u64 offset, vm::ptr<void> buf, u64 buffe
vm::var<lv2_file_op_rw> arg; vm::var<lv2_file_op_rw> arg;
arg->_vtable = vm::cast(0xfa8a0000); // Intentionally wrong (provide correct vtable if necessary) arg->_vtable = vm::cast(0xfa8a0000); // Intentionally wrong (provide correct vtable if necessary)
arg->op = 0x8000000a; arg->op = 0x8000000a;
arg->fd = fd; arg->fd = fd;
arg->buf = buf; arg->buf = buf;
@@ -447,7 +447,7 @@ error_code cellFsReadWithOffset(u32 fd, u64 offset, vm::ptr<void> buf, u64 buffe
{ {
*nread = rc && rc != CELL_EFSSPECIFIC ? 0 : arg->out_size.value(); *nread = rc && rc != CELL_EFSSPECIFIC ? 0 : arg->out_size.value();
} }
if (!rc && arg->out_code) if (!rc && arg->out_code)
{ {
return CellError(+arg->out_code); return CellError(+arg->out_code);
@@ -475,7 +475,7 @@ error_code cellFsWriteWithOffset(u32 fd, u64 offset, vm::cptr<void> buf, u64 dat
vm::var<lv2_file_op_rw> arg; vm::var<lv2_file_op_rw> arg;
arg->_vtable = vm::cast(0xfa8b0000); // Intentionally wrong (provide correct vtable if necessary) arg->_vtable = vm::cast(0xfa8b0000); // Intentionally wrong (provide correct vtable if necessary)
arg->op = 0x8000000b; arg->op = 0x8000000b;
arg->fd = fd; arg->fd = fd;
arg->buf = vm::const_ptr_cast<void>(buf); arg->buf = vm::const_ptr_cast<void>(buf);
@@ -623,7 +623,7 @@ error_code cellFsAllocateFileAreaWithoutZeroFill(vm::cptr<char> path, u64 size)
{ {
return CellError(rc); return CellError(rc);
} }
return CELL_OK; return CELL_OK;
} }
@@ -670,7 +670,7 @@ s32 cellFsStReadInit(u32 fd, vm::cptr<CellFsRingBuffer> ringbuf)
{ {
return CELL_EBADF; return CELL_EBADF;
} }
if (file->flags & CELL_FS_O_WRONLY) if (file->flags & CELL_FS_O_WRONLY)
{ {
return CELL_EPERM; return CELL_EPERM;
@@ -780,7 +780,7 @@ s32 cellFsStReadStop(u32 fd)
s32 cellFsStRead(u32 fd, vm::ptr<u8> buf, u64 size, vm::ptr<u64> rsize) s32 cellFsStRead(u32 fd, vm::ptr<u8> buf, u64 size, vm::ptr<u64> rsize)
{ {
cellFs.todo("cellFsStRead(fd=%d, buf=*0x%x, size=0x%llx, rsize=*0x%x)", fd, buf, size, rsize); cellFs.todo("cellFsStRead(fd=%d, buf=*0x%x, size=0x%llx, rsize=*0x%x)", fd, buf, size, rsize);
const auto file = idm::get<lv2_fs_object, lv2_file>(fd); const auto file = idm::get<lv2_fs_object, lv2_file>(fd);
if (!file) if (!file)
@@ -812,7 +812,7 @@ s32 cellFsStReadGetCurrentAddr(u32 fd, vm::ptr<u32> addr, vm::ptr<u64> size)
s32 cellFsStReadPutCurrentAddr(u32 fd, vm::ptr<u8> addr, u64 size) s32 cellFsStReadPutCurrentAddr(u32 fd, vm::ptr<u8> addr, u64 size)
{ {
cellFs.todo("cellFsStReadPutCurrentAddr(fd=%d, addr=*0x%x, size=0x%llx)", fd, addr, size); cellFs.todo("cellFsStReadPutCurrentAddr(fd=%d, addr=*0x%x, size=0x%llx)", fd, addr, size);
const auto file = idm::get<lv2_fs_object, lv2_file>(fd); const auto file = idm::get<lv2_fs_object, lv2_file>(fd);
if (!file) if (!file)
@@ -828,7 +828,7 @@ s32 cellFsStReadPutCurrentAddr(u32 fd, vm::ptr<u8> addr, u64 size)
s32 cellFsStReadWait(u32 fd, u64 size) s32 cellFsStReadWait(u32 fd, u64 size)
{ {
cellFs.todo("cellFsStReadWait(fd=%d, size=0x%llx)", fd, size); cellFs.todo("cellFsStReadWait(fd=%d, size=0x%llx)", fd, size);
const auto file = idm::get<lv2_fs_object, lv2_file>(fd); const auto file = idm::get<lv2_fs_object, lv2_file>(fd);
if (!file) if (!file)
@@ -837,7 +837,7 @@ s32 cellFsStReadWait(u32 fd, u64 size)
} }
// TODO // TODO
return CELL_OK; return CELL_OK;
} }
@@ -853,7 +853,7 @@ s32 cellFsStReadWaitCallback(u32 fd, u64 size, vm::ptr<void(s32 xfd, u64 xsize)>
} }
// TODO // TODO
return CELL_OK; return CELL_OK;
} }
+1 -1
View File
@@ -2,7 +2,7 @@
#include "Emu/Cell/ErrorCodes.h" #include "Emu/Cell/ErrorCodes.h"
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum enum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
#include "Emu/RSX/GCM.h" #include "Emu/RSX/GCM.h"
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
static const float CELL_GEM_SPHERE_RADIUS_MM = 22.5f; static const float CELL_GEM_SPHERE_RADIUS_MM = 22.5f;
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum enum
+7 -7
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// libHttp = 0x80710001 - 0x80710fff // libHttp = 0x80710001 - 0x80710fff
// libHttps = 0x80710a01 - 0x80710aff // libHttps = 0x80710a01 - 0x80710aff
@@ -10,10 +10,10 @@ enum
{ {
CELL_HTTP_NET_ERROR_TYPE_MASK = 0xffffff00, CELL_HTTP_NET_ERROR_TYPE_MASK = 0xffffff00,
CELL_HTTP_NET_ERROR_MASK = 0xff, CELL_HTTP_NET_ERROR_MASK = 0xff,
// CELL_HTTP_NET_ERROR // CELL_HTTP_NET_ERROR
// CELL_HTTP_IS_NET_RESOLVER_ERROR // CELL_HTTP_IS_NET_RESOLVER_ERROR
CELL_HTTP_ERROR_ALREADY_INITIALIZED = 0x80710001, CELL_HTTP_ERROR_ALREADY_INITIALIZED = 0x80710001,
CELL_HTTP_ERROR_NOT_INITIALIZED = 0x80710002, CELL_HTTP_ERROR_NOT_INITIALIZED = 0x80710002,
CELL_HTTP_ERROR_NO_MEMORY = 0x80710003, CELL_HTTP_ERROR_NO_MEMORY = 0x80710003,
@@ -48,7 +48,7 @@ enum
CELL_HTTP_ERROR_CACHE_NOT_INITIALIZED = 0x80710044, CELL_HTTP_ERROR_CACHE_NOT_INITIALIZED = 0x80710044,
CELL_HTTP_ERROR_LINE_EXCEEDS_MAX = 0x80710045, CELL_HTTP_ERROR_LINE_EXCEEDS_MAX = 0x80710045,
CELL_HTTP_ERROR_REQUIRES_BASIC_AUTH = 0x80710046, CELL_HTTP_ERROR_REQUIRES_BASIC_AUTH = 0x80710046,
CELL_HTTP_ERROR_UNKNOWN = 0x80710051, CELL_HTTP_ERROR_UNKNOWN = 0x80710051,
CELL_HTTP_ERROR_INTERNAL = 0x80710052, CELL_HTTP_ERROR_INTERNAL = 0x80710052,
CELL_HTTP_ERROR_NONREMOVABLE = 0x80710053, CELL_HTTP_ERROR_NONREMOVABLE = 0x80710053,
@@ -62,7 +62,7 @@ enum
CELL_HTTP_ERROR_DECODE_SETUP = 0x8071005b, CELL_HTTP_ERROR_DECODE_SETUP = 0x8071005b,
CELL_HTTP_ERROR_DECODE_STREAM = 0x8071005c, CELL_HTTP_ERROR_DECODE_STREAM = 0x8071005c,
CELL_HTTP_ERROR_BROKEN_DECODE_STREAM = 0x8071005d, CELL_HTTP_ERROR_BROKEN_DECODE_STREAM = 0x8071005d,
CELL_HTTP_ERROR_INVALID_DCACHE_PATH = 0x80710060, CELL_HTTP_ERROR_INVALID_DCACHE_PATH = 0x80710060,
CELL_HTTP_ERROR_DCACHE_ALREADY_INITIALIZED = 0x80710061, CELL_HTTP_ERROR_DCACHE_ALREADY_INITIALIZED = 0x80710061,
CELL_HTTP_ERROR_DCACHE_NOT_INITIALIZED = 0x80710062, CELL_HTTP_ERROR_DCACHE_NOT_INITIALIZED = 0x80710062,
@@ -94,12 +94,12 @@ enum
CELL_HTTP_ERROR_DCACHE_ABORTED = 0x80710082, CELL_HTTP_ERROR_DCACHE_ABORTED = 0x80710082,
CELL_HTTP_ERROR_DCACHE_INDEX_IS_CLOSING = 0x80710083, CELL_HTTP_ERROR_DCACHE_INDEX_IS_CLOSING = 0x80710083,
CELL_HTTP_ERROR_DCACHE_UNKNOWN_INDEX_STATE = 0x80710084, CELL_HTTP_ERROR_DCACHE_UNKNOWN_INDEX_STATE = 0x80710084,
CELL_HTTP_ERROR_NET_FIN = 0x80710091, CELL_HTTP_ERROR_NET_FIN = 0x80710091,
CELL_HTTP_ERROR_NET_CONNECT_TIMEOUT = 0x80710092, CELL_HTTP_ERROR_NET_CONNECT_TIMEOUT = 0x80710092,
CELL_HTTP_ERROR_NET_SELECT_TIMEOUT = 0x80710093, CELL_HTTP_ERROR_NET_SELECT_TIMEOUT = 0x80710093,
CELL_HTTP_ERROR_NET_SEND_TIMEOUT = 0x80710094, CELL_HTTP_ERROR_NET_SEND_TIMEOUT = 0x80710094,
CELL_HTTP_ERROR_NET_RESOLVER = 0x80710100, CELL_HTTP_ERROR_NET_RESOLVER = 0x80710100,
CELL_HTTP_ERROR_NET_ABORT = 0x80710200, CELL_HTTP_ERROR_NET_ABORT = 0x80710200,
CELL_HTTP_ERROR_NET_OPTION = 0x80710300, CELL_HTTP_ERROR_NET_OPTION = 0x80710300,
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// libHttp_Util: 0x80711001 - 0x807110ff // libHttp_Util: 0x80711001 - 0x807110ff
+2 -4
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
typedef vm::ptr<void> CellImeJpHandle; typedef vm::ptr<void> CellImeJpHandle;
@@ -17,11 +17,9 @@ enum {
CELL_IMEJP_MOVE_CLAUSE_GAP = 8, CELL_IMEJP_MOVE_CLAUSE_GAP = 8,
}; };
//cellImeJpEnterChar, returning values pointed in pOutputStatus. //cellImeJpEnterChar, returning values pointed in pOutputStatus.
enum { enum {
CELL_IMEJP_RET_NONE = 0, CELL_IMEJP_RET_NONE = 0,
CELL_IMEJP_RET_THROUGH = 1, CELL_IMEJP_RET_THROUGH = 1,
CELL_IMEJP_RET_CONFIRMED = 2, CELL_IMEJP_RET_CONFIRMED = 2,
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
//Return Codes //Return Codes
enum enum
+6 -6
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
@@ -11,7 +11,7 @@ enum
CELL_JPGENC_ERROR_EMPTY = 0x80611194, CELL_JPGENC_ERROR_EMPTY = 0x80611194,
CELL_JPGENC_ERROR_RESET = 0x80611195, CELL_JPGENC_ERROR_RESET = 0x80611195,
CELL_JPGENC_ERROR_FATAL = 0x80611196, CELL_JPGENC_ERROR_FATAL = 0x80611196,
CELL_JPGENC_ERROR_STREAM_ABORT = 0x806111A1, CELL_JPGENC_ERROR_STREAM_ABORT = 0x806111A1,
CELL_JPGENC_ERROR_STREAM_SKIP = 0x806111A2, CELL_JPGENC_ERROR_STREAM_SKIP = 0x806111A2,
CELL_JPGENC_ERROR_STREAM_OVERFLOW = 0x806111A3, CELL_JPGENC_ERROR_STREAM_OVERFLOW = 0x806111A3,
@@ -26,19 +26,19 @@ enum
CELL_JPGENC_COLOR_SPACE_YCbCr = 3, CELL_JPGENC_COLOR_SPACE_YCbCr = 3,
CELL_JPGENC_COLOR_SPACE_RGBA = 10, CELL_JPGENC_COLOR_SPACE_RGBA = 10,
CELL_JPGENC_COLOR_SPACE_ARGB = 20, CELL_JPGENC_COLOR_SPACE_ARGB = 20,
CELL_JPGENC_SAMPLING_FMT_YCbCr444, CELL_JPGENC_SAMPLING_FMT_YCbCr444,
CELL_JPGENC_SAMPLING_FMT_YCbCr422, CELL_JPGENC_SAMPLING_FMT_YCbCr422,
CELL_JPGENC_SAMPLING_FMT_YCbCr420, CELL_JPGENC_SAMPLING_FMT_YCbCr420,
CELL_JPGENC_SAMPLING_FMT_YCbCr411, CELL_JPGENC_SAMPLING_FMT_YCbCr411,
CELL_JPGENC_SAMPLING_FMT_FULL, CELL_JPGENC_SAMPLING_FMT_FULL,
CELL_JPGENC_DCT_METHOD_QUALITY = 0, CELL_JPGENC_DCT_METHOD_QUALITY = 0,
CELL_JPGENC_DCT_METHOD_FAST = 5, CELL_JPGENC_DCT_METHOD_FAST = 5,
CELL_JPGENC_COMPR_MODE_CONSTANT_QUALITY, CELL_JPGENC_COMPR_MODE_CONSTANT_QUALITY,
CELL_JPGENC_COMPR_MODE_STREAM_SIZE_LIMIT, CELL_JPGENC_COMPR_MODE_STREAM_SIZE_LIMIT,
CELL_JPGENC_LOCATION_FILE, CELL_JPGENC_LOCATION_FILE,
CELL_JPGENC_LOCATION_BUFFER, CELL_JPGENC_LOCATION_BUFFER,
}; };
+3 -3
View File
@@ -6,7 +6,7 @@
#include "Emu/Io/KeyboardHandler.h" #include "Emu/Io/KeyboardHandler.h"
#include "cellKb.h" #include "cellKb.h"
namespace vm { using namespace ps3; }
extern logs::channel sys_io; extern logs::channel sys_io;
@@ -95,8 +95,8 @@ u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode)
// ASCII // ASCII
if (rawcode >= 0x04 && rawcode <= 0x1D) // 'A' - 'Z' if (rawcode >= 0x04 && rawcode <= 0x1D) // 'A' - 'Z'
{ {
rawcode -= rawcode -=
(mkey&(CELL_KB_MKEY_L_SHIFT|CELL_KB_MKEY_R_SHIFT)) ? (mkey&(CELL_KB_MKEY_L_SHIFT|CELL_KB_MKEY_R_SHIFT)) ?
((led&(CELL_KB_LED_CAPS_LOCK)) ? 0 : 0x20) : ((led&(CELL_KB_LED_CAPS_LOCK)) ? 0 : 0x20) :
((led&(CELL_KB_LED_CAPS_LOCK)) ? 0x20 : 0); ((led&(CELL_KB_LED_CAPS_LOCK)) ? 0x20 : 0);
return rawcode + 0x5D; return rawcode + 0x5D;
+1 -1
View File
@@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
namespace vm { using namespace ps3; }
logs::channel cellKey2char("cellKey2char"); logs::channel cellKey2char("cellKey2char");
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// L10nResult // L10nResult
enum enum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
enum enum
{ {
+1 -1
View File
@@ -2,7 +2,7 @@
#include "Utilities/BitField.h" #include "Utilities/BitField.h"
namespace vm { using namespace ps3; }
enum enum
{ {
+214 -46
View File
@@ -2,131 +2,287 @@
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
#include "Emu/Cell/lv2/sys_lwmutex.h"
#include "cellMusic.h" #include "Emu/Cell/lv2/sys_lwcond.h"
#include "Emu/Cell/lv2/sys_spu.h"
#include "cellSearch.h"
#include "cellSpurs.h"
#include "cellSysutil.h" #include "cellSysutil.h"
namespace vm { using namespace ps3; } #include "cellMusic.h"
logs::channel cellMusic("cellMusic"); logs::channel cellMusic("cellMusic");
struct music2_t struct music_t
{ {
vm::ptr<CellMusic2Callback> func; vm::ptr<void(u32 event, vm::ptr<void> param, vm::ptr<void> userData)> func;
vm::ptr<void> userData; vm::ptr<void> userData;
}; };
s32 cellMusicGetSelectionContext() s32 cellMusicGetSelectionContext(vm::ptr<CellMusicSelectionContext> context)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetSelectionContext(context=*0x%x)", context);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSetSelectionContext2() s32 cellMusicSetSelectionContext2(vm::ptr<CellMusicSelectionContext> context)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSetSelectionContext2(context=*0x%x)", context);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC2_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC2_EVENT_SET_SELECTION_CONTEXT_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSetVolume2() s32 cellMusicSetVolume2(f32 level)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSetVolume2(level=0x%x)", level);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC2_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC2_EVENT_SET_VOLUME_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetContentsId() s32 cellMusicGetContentsId(vm::ptr<CellSearchContentId> contents_id)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetContentsId(contents_id=*0x%x)", contents_id);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSetSelectionContext() s32 cellMusicSetSelectionContext(vm::ptr<CellMusicSelectionContext> context)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSetSelectionContext(context=*0x%x)", context);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_SET_SELECTION_CONTEXT_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicInitialize2SystemWorkload() s32 cellMusicInitialize2SystemWorkload(s32 mode, vm::ptr<CellMusic2Callback> func, vm::ptr<void> userData, vm::ptr<CellSpurs> spurs, vm::cptr<u8> priority, vm::cptr<struct CellSpursSystemWorkloadAttribute> attr)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicInitialize2SystemWorkload(mode=0x%x, func=*0x%x, userData=*0x%x, spurs=*0x%x, priority=*0x%x, attr=*0x%x)", mode, func, userData, spurs, priority, attr);
const auto music = fxm::make_always<music_t>();
music->func = func;
music->userData = userData;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC2_EVENT_INITIALIZE_RESULT, vm::addr_t(CELL_OK), userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetPlaybackStatus2() s32 cellMusicGetPlaybackStatus2(vm::ptr<s32> status)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetPlaybackStatus2(status=*0x%x)", status);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetContentsId2() s32 cellMusicGetContentsId2(vm::ptr<CellSearchContentId> contents_id)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetContentsId2(contents_id=*0x%x)", contents_id);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicFinalize() s32 cellMusicFinalize()
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicFinalize()");
const auto music = fxm::get_always<music_t>();
if (music->func)
{
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_FINALIZE_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
}
return CELL_OK; return CELL_OK;
} }
s32 cellMusicInitializeSystemWorkload() s32 cellMusicInitializeSystemWorkload(s32 mode, u32 container, vm::ptr<CellMusicCallback> func, vm::ptr<void> userData, vm::ptr<CellSpurs> spurs, vm::cptr<u8> priority, vm::cptr<struct CellSpursSystemWorkloadAttribute> attr)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicInitializeSystemWorkload(mode=0x%x, container=0x%x, func=*0x%x, userData=*0x%x, spurs=*0x%x, priority=*0x%x, attr=*0x%x)", mode, container, func, userData, spurs, priority, attr);
if (mode != CELL_MUSIC2_PLAYER_MODE_NORMAL)
{
cellMusic.todo("Unknown player mode: 0x%x", mode);
return CELL_MUSIC_ERROR_PARAM;
}
const auto music = fxm::make_always<music_t>();
music->func = func;
music->userData = userData;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_INITIALIZE_RESULT, vm::addr_t(CELL_OK), userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicInitialize() s32 cellMusicInitialize(s32 mode, u32 container, s32 spuPriority, vm::ptr<CellMusicCallback> func, vm::ptr<void> userData)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicInitialize(mode=0x%x, container=0x%x, spuPriority=0x%x, func=*0x%x, userData=*0x%x)", mode, container, spuPriority, func, userData);
if (mode != CELL_MUSIC2_PLAYER_MODE_NORMAL)
{
cellMusic.todo("Unknown player mode: 0x%x", mode);
return CELL_MUSIC_ERROR_PARAM;
}
const auto music = fxm::make_always<music_t>();
music->func = func;
music->userData = userData;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_INITIALIZE_RESULT, vm::addr_t(CELL_OK), userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicFinalize2() s32 cellMusicFinalize2()
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicFinalize2()");
const auto music = fxm::get_always<music_t>();
if (music->func)
{
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC2_EVENT_FINALIZE_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
}
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetSelectionContext2() s32 cellMusicGetSelectionContext2(vm::ptr<CellMusicSelectionContext> context)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetSelectionContext2(context=*0x%x)", context);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetVolume() s32 cellMusicGetVolume(vm::ptr<f32> level)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetVolume(level=*0x%x)", level);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetPlaybackStatus() s32 cellMusicGetPlaybackStatus(vm::ptr<s32> status)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetPlaybackStatus(status=*0x%x)", status);
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSetPlaybackCommand2() s32 cellMusicSetPlaybackCommand2(s32 command, vm::ptr<void> param)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSetPlaybackCommand2(command=0x%x, param=*0x%x)", command, param);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC2_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC2_EVENT_SET_PLAYBACK_COMMAND_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSetPlaybackCommand() s32 cellMusicSetPlaybackCommand(s32 command, vm::ptr<void> param)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSetPlaybackCommand(command=0x%x, param=*0x%x)", command, param);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_SET_PLAYBACK_COMMAND_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSelectContents2() s32 cellMusicSelectContents2()
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSelectContents2()");
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC2_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC2_EVENT_SELECT_CONTENTS_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSelectContents() s32 cellMusicSelectContents(u32 container)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSelectContents(container=0x%x)", container);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_SELECT_CONTENTS_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
@@ -140,28 +296,40 @@ s32 cellMusicInitialize2(s32 mode, s32 spuPriority, vm::ptr<CellMusic2Callback>
return CELL_MUSIC2_ERROR_PARAM; return CELL_MUSIC2_ERROR_PARAM;
} }
const auto music = fxm::make_always<music2_t>(); const auto music = fxm::make_always<music_t>();
music->func = func; music->func = func;
music->userData = userData; music->userData = userData;
sysutil_register_cb([=](ppu_thread& ppu) -> s32 sysutil_register_cb([=](ppu_thread& ppu) -> s32
{ {
func(ppu, CELL_MUSIC2_EVENT_INITIALIZE_RESULT, vm::make_var<s32>(CELL_OK), userData); music->func(ppu, CELL_MUSIC2_EVENT_INITIALIZE_RESULT, vm::addr_t(CELL_OK), userData);
return CELL_OK; return CELL_OK;
}); });
return CELL_OK; return CELL_OK;
} }
s32 cellMusicSetVolume() s32 cellMusicSetVolume(f32 level)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicSetVolume(level=0x%x)", level);
const auto music = fxm::get_always<music_t>();
if (!music->func)
return CELL_MUSIC_ERROR_GENERIC;
sysutil_register_cb([=](ppu_thread& ppu) -> s32
{
music->func(ppu, CELL_MUSIC_EVENT_SET_VOLUME_RESULT, vm::addr_t(CELL_OK), music->userData);
return CELL_OK;
});
return CELL_OK; return CELL_OK;
} }
s32 cellMusicGetVolume2() s32 cellMusicGetVolume2(vm::ptr<f32> level)
{ {
UNIMPLEMENTED_FUNC(cellMusic); cellMusic.todo("cellMusicGetVolume2(level=*0x%x)", level);
return CELL_OK; return CELL_OK;
} }
+4 -4
View File
@@ -12,8 +12,8 @@ enum
CELL_MUSIC_ERROR_PLAYBACK_FAILURE = 0x8002c107, CELL_MUSIC_ERROR_PLAYBACK_FAILURE = 0x8002c107,
CELL_MUSIC_ERROR_NO_MORE_CONTENT = 0x8002c108, CELL_MUSIC_ERROR_NO_MORE_CONTENT = 0x8002c108,
CELL_MUSIC_DIALOG_OPEN = 0x8002c109, CELL_MUSIC_DIALOG_OPEN = 0x8002c109,
CELL_MUSIC_DIALOG_CLOSE = 0x8002c10A, CELL_MUSIC_DIALOG_CLOSE = 0x8002c10a,
CELL_MUSIC_ERROR_GENERIC = 0x8002c1FF, CELL_MUSIC_ERROR_GENERIC = 0x8002c1ff,
CELL_MUSIC2_PLAYBACK_FINISHED = CELL_MUSIC_PLAYBACK_FINISHED, CELL_MUSIC2_PLAYBACK_FINISHED = CELL_MUSIC_PLAYBACK_FINISHED,
CELL_MUSIC2_ERROR_PARAM = CELL_MUSIC_ERROR_PARAM, CELL_MUSIC2_ERROR_PARAM = CELL_MUSIC_ERROR_PARAM,
@@ -120,8 +120,8 @@ enum
CELL_MUSIC_SELECTION_CONTEXT_SIZE = 2048, CELL_MUSIC_SELECTION_CONTEXT_SIZE = 2048,
}; };
using CellMusicCallback = void(u32 event, vm::ps3::ptr<void> param, vm::ps3::ptr<void> userData); using CellMusicCallback = void(u32 event, vm::ptr<void> param, vm::ptr<void> userData);
using CellMusic2Callback = void(u32 event, vm::ps3::ptr<void> param, vm::ps3::ptr<void> userData); using CellMusic2Callback = void(u32 event, vm::ptr<void> param, vm::ptr<void> userData);
struct CellMusicSelectionContext struct CellMusicSelectionContext
{ {
+1 -1
View File
@@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
namespace vm { using namespace ps3; }
logs::channel cellMusicDecode("cellMusicDecode"); logs::channel cellMusicDecode("cellMusicDecode");
+1 -1
View File
@@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
namespace vm { using namespace ps3; }
logs::channel cellMusicExport("cellMusicExport"); logs::channel cellMusicExport("cellMusicExport");
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum CellNetCtlError : u32 enum CellNetCtlError : u32
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
//error codes //error codes
enum enum
@@ -92,7 +92,7 @@ enum CellOskDialogType
CELL_OSKDIALOG_TYPE_SEPARATE_CANDIDATE_WINDOW = 8, CELL_OSKDIALOG_TYPE_SEPARATE_CANDIDATE_WINDOW = 8,
}; };
enum enum
{ {
CELL_OSKDIALOG_STRING_SIZE = 512, //Theroretical maxium for osk input, games can specify a lower limit CELL_OSKDIALOG_STRING_SIZE = 512, //Theroretical maxium for osk input, games can specify a lower limit
}; };
+1 -1
View File
@@ -2,7 +2,7 @@
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
#include "Emu/Cell/lv2/sys_spu.h" #include "Emu/Cell/lv2/sys_spu.h"
namespace vm { using namespace ps3; }
logs::channel cellOvis("cellOvis"); logs::channel cellOvis("cellOvis");
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
enum enum
{ {
+4 -4
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
@@ -38,7 +38,7 @@ enum
CELL_PAMF_FS_48kHz = 1, CELL_PAMF_FS_48kHz = 1,
}; };
enum enum
{ {
CELL_PAMF_BIT_LENGTH_16 = 1, CELL_PAMF_BIT_LENGTH_16 = 1,
CELL_PAMF_BIT_LENGTH_24 = 3, CELL_PAMF_BIT_LENGTH_24 = 3,
@@ -60,7 +60,7 @@ enum
CELL_PAMF_AVC_LEVEL_4P2 = 42, CELL_PAMF_AVC_LEVEL_4P2 = 42,
}; };
enum enum
{ {
CELL_PAMF_AVC_FRC_24000DIV1001 = 0, CELL_PAMF_AVC_FRC_24000DIV1001 = 0,
CELL_PAMF_AVC_FRC_24 = 1, CELL_PAMF_AVC_FRC_24 = 1,
@@ -263,7 +263,7 @@ struct PamfStreamHeader
u8 unknown2; u8 unknown2;
be_t<u32> ep_offset; // offset of EP section in header be_t<u32> ep_offset; // offset of EP section in header
be_t<u32> ep_num; // count of EPs be_t<u32> ep_num; // count of EPs
union union
{ {
u8 data[32]; // specific info u8 data[32]; // specific info
+3 -3
View File
@@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
namespace vm { using namespace ps3; }
logs::channel cellPhotoDecode("cellPhotoDecode"); logs::channel cellPhotoDecode("cellPhotoDecode");
@@ -18,14 +18,14 @@ enum
// Datatypes // Datatypes
struct CellPhotoDecodeSetParam struct CellPhotoDecodeSetParam
{ {
u32 dstBuffer_addr; u32 dstBuffer_addr;
u16 width; u16 width;
u16 height; u16 height;
}; };
struct CellPhotoDecodeReturnParam struct CellPhotoDecodeReturnParam
{ {
u16 width; u16 width;
u16 height; u16 height;
}; };
+1 -1
View File
@@ -2,7 +2,7 @@
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
#include "cellSysutil.h" #include "cellSysutil.h"
namespace vm { using namespace ps3; }
logs::channel cellPhotoExport("cellPhotoExport"); logs::channel cellPhotoExport("cellPhotoExport");
+12 -12
View File
@@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
namespace vm { using namespace ps3; }
logs::channel cellPhotoImportUtil("cellPhotoImportUtil"); logs::channel cellPhotoImportUtil("cellPhotoImportUtil");
@@ -18,24 +18,24 @@ enum
// Datatypes // Datatypes
struct CellPhotoImportFileDataSub struct CellPhotoImportFileDataSub
{ {
int width; int width;
int height; int height;
//CellPhotoImportFormatType format; //CellPhotoImportFormatType format;
//CellPhotoImportTexRot rotate; //CellPhotoImportTexRot rotate;
}; };
struct CellPhotoImportFileData struct CellPhotoImportFileData
{ {
char dstFileName; //[CELL_FS_MAX_FS_FILE_NAME_LENGTH]; char dstFileName; //[CELL_FS_MAX_FS_FILE_NAME_LENGTH];
char photo_title; //[CELL_PHOTO_IMPORT_PHOTO_TITLE_MAX_LENGTH*3]; char photo_title; //[CELL_PHOTO_IMPORT_PHOTO_TITLE_MAX_LENGTH*3];
char game_title; //[CELL_PHOTO_IMPORT_GAME_TITLE_MAX_SIZE]; char game_title; //[CELL_PHOTO_IMPORT_GAME_TITLE_MAX_SIZE];
char game_comment; //[CELL_PHOTO_IMPORT_GAME_COMMENT_MAX_SIZE]; char game_comment; //[CELL_PHOTO_IMPORT_GAME_COMMENT_MAX_SIZE];
CellPhotoImportFileDataSub* data_sub; CellPhotoImportFileDataSub* data_sub;
}; };
struct CellPhotoImportSetParam struct CellPhotoImportSetParam
{ {
unsigned int fileSizeMax; unsigned int fileSizeMax;
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
enum CellPngTxtType : s32 enum CellPngTxtType : s32
{ {
+2 -2
View File
@@ -1,5 +1,5 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
#include "cellPng.h" #include "cellPng.h"
@@ -328,7 +328,7 @@ static s32 getPngDecColourType(u8 type)
static bool cellPngColorSpaceHasAlpha(u32 colorspace) static bool cellPngColorSpaceHasAlpha(u32 colorspace)
{ {
switch (colorspace) switch (colorspace)
{ {
case CELL_PNGDEC_RGBA: case CELL_PNGDEC_RGBA:
case CELL_PNGDEC_ARGB: case CELL_PNGDEC_ARGB:
+1 -1
View File
@@ -3,7 +3,7 @@
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "cellSysutil.h" #include "cellSysutil.h"
namespace vm { using namespace ps3; }
logs::channel cellRec("cellRec"); logs::channel cellRec("cellRec");
+24 -24
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
enum enum
{ {
@@ -27,33 +27,33 @@ enum
enum CellRescBufferMode enum CellRescBufferMode
{ {
CELL_RESC_720x480 = 0x1, CELL_RESC_720x480 = 0x1,
CELL_RESC_720x576 = 0x2, CELL_RESC_720x576 = 0x2,
CELL_RESC_1280x720 = 0x4, CELL_RESC_1280x720 = 0x4,
CELL_RESC_1920x1080 = 0x8, CELL_RESC_1920x1080 = 0x8,
}; };
enum CellRescPalTemporalMode enum CellRescPalTemporalMode
{ {
CELL_RESC_PAL_50 = 0, CELL_RESC_PAL_50 = 0,
CELL_RESC_PAL_60_DROP = 1, CELL_RESC_PAL_60_DROP = 1,
CELL_RESC_PAL_60_INTERPOLATE = 2, CELL_RESC_PAL_60_INTERPOLATE = 2,
CELL_RESC_PAL_60_INTERPOLATE_30_DROP = 3, CELL_RESC_PAL_60_INTERPOLATE_30_DROP = 3,
CELL_RESC_PAL_60_INTERPOLATE_DROP_FLEXIBLE = 4, CELL_RESC_PAL_60_INTERPOLATE_DROP_FLEXIBLE = 4,
CELL_RESC_PAL_60_FOR_HSYNC = 5, CELL_RESC_PAL_60_FOR_HSYNC = 5,
}; };
enum CellRescRatioConvertMode enum CellRescRatioConvertMode
{ {
CELL_RESC_FULLSCREEN = 0, CELL_RESC_FULLSCREEN = 0,
CELL_RESC_LETTERBOX = 1, CELL_RESC_LETTERBOX = 1,
CELL_RESC_PANSCAN = 2, CELL_RESC_PANSCAN = 2,
}; };
enum CellRescFlipMode enum CellRescFlipMode
{ {
CELL_RESC_DISPLAY_VSYNC = 0, CELL_RESC_DISPLAY_VSYNC = 0,
CELL_RESC_DISPLAY_HSYNC = 1, CELL_RESC_DISPLAY_HSYNC = 1,
}; };
enum CellRescDstFormat enum CellRescDstFormat
@@ -64,18 +64,18 @@ enum CellRescDstFormat
enum CellRescResourcePolicy enum CellRescResourcePolicy
{ {
CELL_RESC_CONSTANT_VRAM = 0x0, CELL_RESC_CONSTANT_VRAM = 0x0,
CELL_RESC_MINIMUM_VRAM = 0x1, CELL_RESC_MINIMUM_VRAM = 0x1,
CELL_RESC_MINIMUM_GPU_LOAD = 0x2, CELL_RESC_MINIMUM_GPU_LOAD = 0x2,
}; };
enum CellRescConvolutionFilterMode enum CellRescConvolutionFilterMode
{ {
CELL_RESC_NORMAL_BILINEAR = 0, CELL_RESC_NORMAL_BILINEAR = 0,
CELL_RESC_INTERLACE_FILTER = 1, CELL_RESC_INTERLACE_FILTER = 1,
CELL_RESC_3X3_GAUSSIAN = 2, CELL_RESC_3X3_GAUSSIAN = 2,
CELL_RESC_2X3_QUINCUNX = 3, CELL_RESC_2X3_QUINCUNX = 3,
CELL_RESC_2X3_QUINCUNX_ALT = 4, CELL_RESC_2X3_QUINCUNX_ALT = 4,
}; };
struct CellRescDsts struct CellRescDsts
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum enum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return Codes // Return Codes
enum enum
+5 -5
View File
@@ -2,7 +2,7 @@
#include "cellVpost.h" #include "cellVpost.h"
namespace vm { using namespace ps3; }
// Error Codes // Error Codes
enum enum
@@ -157,8 +157,8 @@ enum
_CELL_SAIL_PARAMETER_TYPE_NUM_OF_ELEMENTS = 36, // Should be never used _CELL_SAIL_PARAMETER_TYPE_NUM_OF_ELEMENTS = 36, // Should be never used
CELL_SAIL_PARAMETER_SOURCE_PPU_THREAD_PRIORITY = CELL_SAIL_PARAMETER_IO_PPU_THREAD_PRIORITY, CELL_SAIL_PARAMETER_SOURCE_PPU_THREAD_PRIORITY = CELL_SAIL_PARAMETER_IO_PPU_THREAD_PRIORITY,
CELL_SAIL_PARAMETER_DMUX_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_DMUX_SPURS_TASK_PRIORITIES, // Deprecated CELL_SAIL_PARAMETER_DMUX_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_DMUX_SPURS_TASK_PRIORITIES, // Deprecated
CELL_SAIL_PARAMETER_VDEC_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_VDEC_SPURS_TASK_PRIORITIES, // Deprecated CELL_SAIL_PARAMETER_VDEC_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_VDEC_SPURS_TASK_PRIORITIES, // Deprecated
CELL_SAIL_PARAMETER_ADEC_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_ADEC_SPURS_TASK_PRIORITIES, // Deprecated CELL_SAIL_PARAMETER_ADEC_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_ADEC_SPURS_TASK_PRIORITIES, // Deprecated
CELL_SAIL_PARAMETER_VPOST_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_VPOST_SPURS_TASK_PRIORITIES, // Deprecated CELL_SAIL_PARAMETER_VPOST_SPURS_TASK_PRIORITY = CELL_SAIL_PARAMETER_VPOST_SPURS_TASK_PRIORITIES, // Deprecated
}; };
@@ -367,7 +367,7 @@ enum
// 5. Back Right // 5. Back Right
// 6. Back Center // 6. Back Center
// 7. LFE // 7. LFE
// (for at3plus) // (for at3plus)
CELL_SAIL_AUDIO_CH_LAYOUT_7CH_LCRxycE = 10, CELL_SAIL_AUDIO_CH_LAYOUT_7CH_LCRxycE = 10,
// 1. Front Left // 1. Front Left
@@ -1035,7 +1035,7 @@ struct CellSailAviMediaType
union u { union u {
struct audio { struct audio {
be_t<u16> formatTag; be_t<u16> formatTag;
be_t<u16> reserved; // Specify 0 be_t<u16> reserved; // Specify 0
union u { union u {
struct mpeg { struct mpeg {
be_t<u16> headLayer; // Specify 0 be_t<u16> headLayer; // Specify 0
+39 -39
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
namespace vm { using namespace ps3; }
// Return codes // Return codes
enum enum
@@ -16,7 +16,7 @@ enum
CELL_SAVEDATA_ERROR_NOUSER = 0x8002b409, CELL_SAVEDATA_ERROR_NOUSER = 0x8002b409,
CELL_SAVEDATA_ERROR_SIZEOVER = 0x8002b40a, CELL_SAVEDATA_ERROR_SIZEOVER = 0x8002b40a,
CELL_SAVEDATA_ERROR_NODATA = 0x8002b40b, CELL_SAVEDATA_ERROR_NODATA = 0x8002b40b,
CELL_SAVEDATA_ERROR_NOTSUPPORTED = 0x8002b40c, CELL_SAVEDATA_ERROR_NOTSUPPORTED = 0x8002b40c,
}; };
// Callback return codes // Callback return codes
@@ -97,7 +97,7 @@ enum
// Datatypes // Datatypes
struct CellSaveDataSetList struct CellSaveDataSetList
{ {
be_t<u32> sortType; be_t<u32> sortType;
be_t<u32> sortOrder; be_t<u32> sortOrder;
vm::bptr<char> dirNamePrefix; vm::bptr<char> dirNamePrefix;
@@ -105,7 +105,7 @@ struct CellSaveDataSetList
}; };
struct CellSaveDataSetBuf struct CellSaveDataSetBuf
{ {
be_t<u32> dirListMax; be_t<u32> dirListMax;
be_t<u32> fileListMax; be_t<u32> fileListMax;
be_t<u32> reserved[6]; be_t<u32> reserved[6];
@@ -113,16 +113,16 @@ struct CellSaveDataSetBuf
vm::bptr<void> buf; vm::bptr<void> buf;
}; };
struct CellSaveDataNewDataIcon struct CellSaveDataNewDataIcon
{ {
vm::bptr<char> title; vm::bptr<char> title;
be_t<u32> iconBufSize; be_t<u32> iconBufSize;
vm::bptr<void> iconBuf; vm::bptr<void> iconBuf;
vm::bptr<void> reserved; vm::bptr<void> reserved;
}; };
struct CellSaveDataListNewData struct CellSaveDataListNewData
{ {
be_t<u32> iconPosition; be_t<u32> iconPosition;
vm::bptr<char> dirName; vm::bptr<char> dirName;
vm::bptr<CellSaveDataNewDataIcon> icon; vm::bptr<CellSaveDataNewDataIcon> icon;
@@ -130,14 +130,14 @@ struct CellSaveDataListNewData
}; };
struct CellSaveDataDirList struct CellSaveDataDirList
{ {
char dirName[CELL_SAVEDATA_DIRNAME_SIZE]; char dirName[CELL_SAVEDATA_DIRNAME_SIZE];
char listParam[CELL_SAVEDATA_SYSP_LPARAM_SIZE]; char listParam[CELL_SAVEDATA_SYSP_LPARAM_SIZE];
char reserved[8]; char reserved[8];
}; };
struct CellSaveDataListGet struct CellSaveDataListGet
{ {
be_t<u32> dirNum; be_t<u32> dirNum;
be_t<u32> dirListNum; be_t<u32> dirListNum;
vm::bptr<CellSaveDataDirList> dirList; vm::bptr<CellSaveDataDirList> dirList;
@@ -145,7 +145,7 @@ struct CellSaveDataListGet
}; };
struct CellSaveDataListSet struct CellSaveDataListSet
{ {
be_t<u32> focusPosition; be_t<u32> focusPosition;
vm::bptr<char> focusDirName; vm::bptr<char> focusDirName;
be_t<u32> fixedListNum; be_t<u32> fixedListNum;
@@ -155,45 +155,45 @@ struct CellSaveDataListSet
}; };
struct CellSaveDataFixedSet struct CellSaveDataFixedSet
{ {
vm::bptr<char> dirName; vm::bptr<char> dirName;
vm::bptr<CellSaveDataNewDataIcon> newIcon; vm::bptr<CellSaveDataNewDataIcon> newIcon;
be_t<u32> option; be_t<u32> option;
}; };
struct CellSaveDataSystemFileParam struct CellSaveDataSystemFileParam
{ {
char title[CELL_SAVEDATA_SYSP_TITLE_SIZE]; char title[CELL_SAVEDATA_SYSP_TITLE_SIZE];
char subTitle[CELL_SAVEDATA_SYSP_SUBTITLE_SIZE]; char subTitle[CELL_SAVEDATA_SYSP_SUBTITLE_SIZE];
char detail[CELL_SAVEDATA_SYSP_DETAIL_SIZE]; char detail[CELL_SAVEDATA_SYSP_DETAIL_SIZE];
be_t<u32> attribute; be_t<u32> attribute;
char reserved2[4]; char reserved2[4];
char listParam[CELL_SAVEDATA_SYSP_LPARAM_SIZE]; char listParam[CELL_SAVEDATA_SYSP_LPARAM_SIZE];
char reserved[256]; char reserved[256];
}; };
struct CellSaveDataDirStat struct CellSaveDataDirStat
{ {
be_t<s64> atime; be_t<s64> atime;
be_t<s64> mtime; be_t<s64> mtime;
be_t<s64> ctime; be_t<s64> ctime;
char dirName[CELL_SAVEDATA_DIRNAME_SIZE]; char dirName[CELL_SAVEDATA_DIRNAME_SIZE];
}; };
struct CellSaveDataFileStat struct CellSaveDataFileStat
{ {
be_t<u32> fileType; be_t<u32> fileType;
char reserved1[4]; char reserved1[4];
be_t<u64> size; be_t<u64> size;
be_t<s64> atime; be_t<s64> atime;
be_t<s64> mtime; be_t<s64> mtime;
be_t<s64> ctime; be_t<s64> ctime;
char fileName[CELL_SAVEDATA_FILENAME_SIZE]; char fileName[CELL_SAVEDATA_FILENAME_SIZE];
char reserved2[3]; char reserved2[3];
}; };
struct CellSaveDataStatGet struct CellSaveDataStatGet
{ {
be_t<s32> hddFreeSizeKB; be_t<s32> hddFreeSizeKB;
be_t<u32> isNewData; be_t<u32> isNewData;
CellSaveDataDirStat dir; CellSaveDataDirStat dir;
@@ -208,7 +208,7 @@ struct CellSaveDataStatGet
}; };
struct CellSaveDataAutoIndicator struct CellSaveDataAutoIndicator
{ {
be_t<u32> dispPosition; be_t<u32> dispPosition;
be_t<u32> dispMode; be_t<u32> dispMode;
vm::bptr<char> dispMsg; vm::bptr<char> dispMsg;
@@ -217,25 +217,25 @@ struct CellSaveDataAutoIndicator
vm::bptr<void> reserved; vm::bptr<void> reserved;
}; };
struct CellSaveDataStatSet struct CellSaveDataStatSet
{ {
vm::bptr<CellSaveDataSystemFileParam> setParam; vm::bptr<CellSaveDataSystemFileParam> setParam;
be_t<u32> reCreateMode; be_t<u32> reCreateMode;
vm::bptr<CellSaveDataAutoIndicator> indicator; vm::bptr<CellSaveDataAutoIndicator> indicator;
}; };
struct CellSaveDataFileGet struct CellSaveDataFileGet
{ {
be_t<u32> excSize; be_t<u32> excSize;
char reserved[64]; char reserved[64];
}; };
struct CellSaveDataFileSet struct CellSaveDataFileSet
{ {
be_t<u32> fileOperation; be_t<u32> fileOperation;
vm::bptr<void> reserved; vm::bptr<void> reserved;
be_t<u32> fileType; be_t<u32> fileType;
u8 secureFileId[CELL_SAVEDATA_SECUREFILEID_SIZE]; u8 secureFileId[CELL_SAVEDATA_SECUREFILEID_SIZE];
vm::bptr<char> fileName; vm::bptr<char> fileName;
be_t<u32> fileOffset; be_t<u32> fileOffset;
be_t<u32> fileSize; be_t<u32> fileSize;
@@ -243,8 +243,8 @@ struct CellSaveDataFileSet
vm::bptr<void> fileBuf; vm::bptr<void> fileBuf;
}; };
struct CellSaveDataCBResult struct CellSaveDataCBResult
{ {
be_t<s32> result; be_t<s32> result;
be_t<u32> progressBarInc; be_t<u32> progressBarInc;
be_t<s32> errNeedSizeKB; be_t<s32> errNeedSizeKB;
@@ -253,9 +253,9 @@ struct CellSaveDataCBResult
}; };
struct CellSaveDataDoneGet struct CellSaveDataDoneGet
{ {
be_t<s32> excResult; be_t<s32> excResult;
char dirName[CELL_SAVEDATA_DIRNAME_SIZE]; char dirName[CELL_SAVEDATA_DIRNAME_SIZE];
be_t<s32> sizeKB; be_t<s32> sizeKB;
be_t<s32> hddFreeSizeKB; be_t<s32> hddFreeSizeKB;
char reserved[64]; char reserved[64];
+1 -1
View File
@@ -4,7 +4,7 @@
#include "cellScreenshot.h" #include "cellScreenshot.h"
namespace vm { using namespace ps3; }
logs::channel cellScreenshot("cellScreenshot"); logs::channel cellScreenshot("cellScreenshot");
+3 -3
View File
@@ -12,7 +12,7 @@ enum
struct CellScreenShotSetParam struct CellScreenShotSetParam
{ {
vm::ps3::bcptr<char> photo_title; vm::bcptr<char> photo_title;
vm::ps3::bcptr<char> game_title; vm::bcptr<char> game_title;
vm::ps3::bcptr<char> game_comment; vm::bcptr<char> game_comment;
}; };
+2 -1
View File
@@ -2,9 +2,10 @@
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUModule.h"
#include "cellMusic.h"
#include "cellSysutil.h"
#include "cellSearch.h" #include "cellSearch.h"
#include "cellSysutil.h"
logs::channel cellSearch("cellSearch"); logs::channel cellSearch("cellSearch");
+1 -7
View File
@@ -32,7 +32,6 @@ enum
CELL_SEARCH_TITLE_LEN_MAX = 384, CELL_SEARCH_TITLE_LEN_MAX = 384,
CELL_SEARCH_TAG_NUM_MAX = 6, CELL_SEARCH_TAG_NUM_MAX = 6,
CELL_SEARCH_TAG_LEN_MAX = 63, CELL_SEARCH_TAG_LEN_MAX = 63,
CELL_MUSIC_SELECTION_CONTEXT_SIZE = 2048,
CELL_SEARCH_PATH_LEN_MAX = 63, CELL_SEARCH_PATH_LEN_MAX = 63,
CELL_SEARCH_MTOPTION_LEN_MAX = 63, CELL_SEARCH_MTOPTION_LEN_MAX = 63,
CELL_SEARCH_DEVELOPERDATA_LEN_MAX = 64, CELL_SEARCH_DEVELOPERDATA_LEN_MAX = 64,
@@ -226,7 +225,7 @@ enum CellSearchSharableType : s32
}; };
using CellSearchId = s32; using CellSearchId = s32;
using CellSearchSystemCallback = void(CellSearchEvent event, s32 result, vm::ps3::cptr<void> param, vm::ps3::ptr<void> userData); using CellSearchSystemCallback = void(CellSearchEvent event, s32 result, vm::cptr<void> param, vm::ptr<void> userData);
struct CellSearchContentId struct CellSearchContentId
{ {
@@ -339,11 +338,6 @@ struct CellSearchVideoSceneInfo
char tags[CELL_SEARCH_TAG_NUM_MAX][CELL_SEARCH_TAG_LEN_MAX]; char tags[CELL_SEARCH_TAG_NUM_MAX][CELL_SEARCH_TAG_LEN_MAX];
}; };
struct CellMusicSelectionContext
{
char data[CELL_MUSIC_SELECTION_CONTEXT_SIZE];
};
struct CellSearchContentInfoPath struct CellSearchContentInfoPath
{ {
char contentPath[CELL_SEARCH_PATH_LEN_MAX + 1]; char contentPath[CELL_SEARCH_PATH_LEN_MAX + 1];
+1 -1
View File
@@ -3,7 +3,7 @@
#include "cellSpudll.h" #include "cellSpudll.h"
namespace vm { using namespace ps3; }
logs::channel cellSpudll("cellSpudll"); logs::channel cellSpudll("cellSpudll");
+3 -3
View File
@@ -17,8 +17,8 @@ struct CellSpudllHandleConfig
be_t<u32> dmaTag; be_t<u32> dmaTag;
be_t<u32> numMaxReferred; be_t<u32> numMaxReferred;
be_t<u32> numMaxDepend; be_t<u32> numMaxDepend;
vm::ps3::bptr<void> unresolvedSymbolValueForFunc; vm::bptr<void> unresolvedSymbolValueForFunc;
vm::ps3::bptr<void> unresolvedSymbolValueForObject; vm::bptr<void> unresolvedSymbolValueForObject;
vm::ps3::bptr<void> unresolvedSymbolValueForOther; vm::bptr<void> unresolvedSymbolValueForOther;
be_t<u32> __reserved__[9]; be_t<u32> __reserved__[9];
}; };
+2 -2
View File
@@ -2,7 +2,7 @@
#include "cellSync.h" #include "cellSync.h"
namespace vm { using namespace ps3; }
struct CellSpurs; struct CellSpurs;
struct CellSpursTaskset; struct CellSpursTaskset;
@@ -671,7 +671,7 @@ struct alignas(16) CellSpursTaskAttribute2
be_t<u64> eaContext; be_t<u64> eaContext;
CellSpursTaskLsPattern lsPattern; CellSpursTaskLsPattern lsPattern;
vm::bcptr<char> name; vm::bcptr<char> name;
u8 reserved[220]; u8 reserved[220];
}; };

Some files were not shown because too many files have changed in this diff Show More