early-access version 2892
This commit is contained in:
parent
c788e6a23a
commit
0e7a8bf50a
6 changed files with 39 additions and 9 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2891.
|
This is the source code for early-access 2892.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
#include "core/core_timing.h"
|
#include "core/core_timing.h"
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#include <intrin.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
using Callback = Dynarmic::A32::Coprocessor::Callback;
|
using Callback = Dynarmic::A32::Coprocessor::Callback;
|
||||||
using CallbackOrAccessOneWord = Dynarmic::A32::Coprocessor::CallbackOrAccessOneWord;
|
using CallbackOrAccessOneWord = Dynarmic::A32::Coprocessor::CallbackOrAccessOneWord;
|
||||||
using CallbackOrAccessTwoWords = Dynarmic::A32::Coprocessor::CallbackOrAccessTwoWords;
|
using CallbackOrAccessTwoWords = Dynarmic::A32::Coprocessor::CallbackOrAccessTwoWords;
|
||||||
|
@ -47,12 +51,31 @@ CallbackOrAccessOneWord DynarmicCP15::CompileSendOneWord(bool two, unsigned opc1
|
||||||
switch (opc2) {
|
switch (opc2) {
|
||||||
case 4:
|
case 4:
|
||||||
// CP15_DATA_SYNC_BARRIER
|
// CP15_DATA_SYNC_BARRIER
|
||||||
// This is a dummy write, we ignore the value written here.
|
return Callback{
|
||||||
return &dummy_value;
|
[](Dynarmic::A32::Jit*, void*, std::uint32_t, std::uint32_t) -> std::uint64_t {
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
_mm_mfence();
|
||||||
|
_mm_lfence();
|
||||||
|
#else
|
||||||
|
asm volatile("mfence\n\tlfence\n\t" : : : "memory");
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
std::nullopt,
|
||||||
|
};
|
||||||
case 5:
|
case 5:
|
||||||
// CP15_DATA_MEMORY_BARRIER
|
// CP15_DATA_MEMORY_BARRIER
|
||||||
// This is a dummy write, we ignore the value written here.
|
return Callback{
|
||||||
return &dummy_value;
|
[](Dynarmic::A32::Jit*, void*, std::uint32_t, std::uint32_t) -> std::uint64_t {
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
_mm_mfence();
|
||||||
|
#else
|
||||||
|
asm volatile("mfence\n\t" : : : "memory");
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
std::nullopt,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ public:
|
||||||
ARM_Dynarmic_32& parent;
|
ARM_Dynarmic_32& parent;
|
||||||
u32 uprw = 0;
|
u32 uprw = 0;
|
||||||
u32 uro = 0;
|
u32 uro = 0;
|
||||||
|
|
||||||
|
friend class ARM_Dynarmic_32;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -1089,8 +1089,8 @@ QStringList GRenderWindow::GetUnsupportedGLExtensions() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!unsupported_ext.empty()) {
|
if (!unsupported_ext.empty()) {
|
||||||
LOG_ERROR(Frontend, "GPU does not support all required extensions: {}",
|
const std::string gl_renderer{reinterpret_cast<const char*>(glGetString(GL_RENDERER))};
|
||||||
glGetString(GL_RENDERER));
|
LOG_ERROR(Frontend, "GPU does not support all required extensions: {}", gl_renderer);
|
||||||
}
|
}
|
||||||
for (const QString& ext : unsupported_ext) {
|
for (const QString& ext : unsupported_ext) {
|
||||||
LOG_ERROR(Frontend, "Unsupported GL extension: {}", ext.toStdString());
|
LOG_ERROR(Frontend, "Unsupported GL extension: {}", ext.toStdString());
|
||||||
|
|
|
@ -3358,7 +3358,8 @@ void GMainWindow::MigrateConfigFiles() {
|
||||||
}
|
}
|
||||||
const auto origin = config_dir_fs_path / filename;
|
const auto origin = config_dir_fs_path / filename;
|
||||||
const auto destination = config_dir_fs_path / "custom" / filename;
|
const auto destination = config_dir_fs_path / "custom" / filename;
|
||||||
LOG_INFO(Frontend, "Migrating config file from {} to {}", origin, destination);
|
LOG_INFO(Frontend, "Migrating config file from {} to {}", origin.string(),
|
||||||
|
destination.string());
|
||||||
if (!Common::FS::RenameFile(origin, destination)) {
|
if (!Common::FS::RenameFile(origin, destination)) {
|
||||||
// Delete the old config file if one already exists in the new location.
|
// Delete the old config file if one already exists in the new location.
|
||||||
Common::FS::RemoveFile(origin);
|
Common::FS::RemoveFile(origin);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
|
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
|
||||||
"name": "yuzu",
|
"name": "yuzu",
|
||||||
"builtin-baseline": "cef0b3ec767df6e83806899fe9525f6cf8d7bc91",
|
"builtin-baseline": "9b22b40c6c61bf0da2d46346dd44a11e90972cc9",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
"boost-algorithm",
|
"boost-algorithm",
|
||||||
|
@ -37,6 +37,10 @@
|
||||||
{
|
{
|
||||||
"name": "catch2",
|
"name": "catch2",
|
||||||
"version": "2.13.9"
|
"version": "2.13.9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fmt",
|
||||||
|
"version": "9.0.0"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue