early-access version 3901

This commit is contained in:
pineappleEA 2023-09-28 17:32:20 +02:00
parent 8cf4e0ab0c
commit f49abee7e2
10 changed files with 16 additions and 19 deletions

View file

@ -1,7 +1,7 @@
yuzu emulator early access yuzu emulator early access
============= =============
This is the source code for early-access 3900. This is the source code for early-access 3901.
## Legal Notice ## Legal Notice

View file

@ -141,10 +141,6 @@ public:
if (nsp->IsExtractedType()) { if (nsp->IsExtractedType()) {
return InstallError; return InstallError;
} }
} else if (file_extension == "xci") {
jconst xci =
std::make_shared<FileSys::XCI>(m_vfs->OpenFile(filename, FileSys::Mode::Read));
nsp = xci->GetSecurePartitionNSP();
} else { } else {
return ErrorFilenameExtension; return ErrorFilenameExtension;
} }

View file

@ -145,6 +145,8 @@ void MiiEdit::MiiEditOutput(MiiEditResult result, s32 index) {
.index{index}, .index{index},
}; };
LOG_INFO(Input, "called, result={}, index={}", result, index);
std::vector<u8> out_data(sizeof(MiiEditAppletOutput)); std::vector<u8> out_data(sizeof(MiiEditAppletOutput));
std::memcpy(out_data.data(), &applet_output, sizeof(MiiEditAppletOutput)); std::memcpy(out_data.data(), &applet_output, sizeof(MiiEditAppletOutput));

View file

@ -168,7 +168,7 @@ Result DatabaseManager::FindIndex(s32& out_index, const Common::UUID& create_id,
return ResultSuccess; return ResultSuccess;
} }
for (std::size_t i = 0; i <= index; ++i) { for (std::size_t i = 0; i < index; ++i) {
if (database.Get(i).IsSpecial()) { if (database.Get(i).IsSpecial()) {
continue; continue;
} }

View file

@ -37,7 +37,7 @@ void CharInfo::SetFromStoreData(const StoreData& store_data) {
eyebrow_aspect = store_data.GetEyebrowAspect(); eyebrow_aspect = store_data.GetEyebrowAspect();
eyebrow_rotate = store_data.GetEyebrowRotate(); eyebrow_rotate = store_data.GetEyebrowRotate();
eyebrow_x = store_data.GetEyebrowX(); eyebrow_x = store_data.GetEyebrowX();
eyebrow_y = store_data.GetEyebrowY(); eyebrow_y = store_data.GetEyebrowY() + 3;
nose_type = store_data.GetNoseType(); nose_type = store_data.GetNoseType();
nose_scale = store_data.GetNoseScale(); nose_scale = store_data.GetNoseScale();
nose_y = store_data.GetNoseY(); nose_y = store_data.GetNoseY();

View file

@ -113,7 +113,7 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
.values[MiiUtil::GetRandomValue<std::size_t>(eyebrow_type_info.values_count)]); .values[MiiUtil::GetRandomValue<std::size_t>(eyebrow_type_info.values_count)]);
const auto eyebrow_rotate_1{race == Race::Asian ? 6 : 0}; const auto eyebrow_rotate_1{race == Race::Asian ? 6 : 0};
const auto eyebrow_y{race == Race::Asian ? 9 : 10}; const auto eyebrow_y{race == Race::Asian ? 6 : 7};
const auto eyebrow_rotate_offset{32 - RawData::EyebrowRotateLookup[eyebrow_rotate_1] + 6}; const auto eyebrow_rotate_offset{32 - RawData::EyebrowRotateLookup[eyebrow_rotate_1] + 6};
const auto eyebrow_rotate{ const auto eyebrow_rotate{
32 - RawData::EyebrowRotateLookup[static_cast<std::size_t>(data.eyebrow_type.Value())]}; 32 - RawData::EyebrowRotateLookup[static_cast<std::size_t>(data.eyebrow_type.Value())]};

View file

@ -1374,7 +1374,7 @@ NFP::AmiiboName NfcDevice::GetAmiiboName(const NFP::AmiiboSettings& settings) co
// Convert from utf16 to utf8 // Convert from utf16 to utf8
const auto amiibo_name_utf8 = Common::UTF16ToUTF8(settings_amiibo_name.data()); const auto amiibo_name_utf8 = Common::UTF16ToUTF8(settings_amiibo_name.data());
memcpy(amiibo_name.data(), amiibo_name_utf8.data(), amiibo_name_utf8.size() - 1); memcpy(amiibo_name.data(), amiibo_name_utf8.data(), amiibo_name_utf8.size());
return amiibo_name; return amiibo_name;
} }

View file

@ -1160,7 +1160,7 @@ struct QueryCacheRuntimeImpl {
cpu_memory_), cpu_memory_),
primitives_needed_minus_suceeded_streamer( primitives_needed_minus_suceeded_streamer(
static_cast<size_t>(QueryType::StreamingPrimitivesNeededMinusSucceeded), runtime, 0u), static_cast<size_t>(QueryType::StreamingPrimitivesNeededMinusSucceeded), runtime, 0u),
hcr_setup{}, hcr_is_set{}, is_hcr_running{} { hcr_setup{}, hcr_is_set{}, is_hcr_running{}, maxwell3d{} {
hcr_setup.sType = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT; hcr_setup.sType = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
hcr_setup.pNext = nullptr; hcr_setup.pNext = nullptr;
@ -1235,7 +1235,9 @@ void QueryCacheRuntime::Bind3DEngine(Maxwell3D* maxwell3d) {
template <typename Func> template <typename Func>
void QueryCacheRuntime::View3DRegs(Func&& func) { void QueryCacheRuntime::View3DRegs(Func&& func) {
if (impl->maxwell3d) {
func(*impl->maxwell3d); func(*impl->maxwell3d);
}
} }
void QueryCacheRuntime::EndHostConditionalRendering() { void QueryCacheRuntime::EndHostConditionalRendering() {

View file

@ -3129,10 +3129,9 @@ void GMainWindow::OnMenuInstallToNAND() {
QFuture<InstallResult> future; QFuture<InstallResult> future;
InstallResult result; InstallResult result;
if (file.endsWith(QStringLiteral("xci"), Qt::CaseInsensitive) || if (file.endsWith(QStringLiteral("nsp"), Qt::CaseInsensitive)) {
file.endsWith(QStringLiteral("nsp"), Qt::CaseInsensitive)) {
future = QtConcurrent::run([this, &file] { return InstallNSPXCI(file); }); future = QtConcurrent::run([this, &file] { return InstallNSP(file); });
while (!future.isFinished()) { while (!future.isFinished()) {
QCoreApplication::processEvents(); QCoreApplication::processEvents();
@ -3191,7 +3190,7 @@ void GMainWindow::OnMenuInstallToNAND() {
ui->action_Install_File_NAND->setEnabled(true); ui->action_Install_File_NAND->setEnabled(true);
} }
InstallResult GMainWindow::InstallNSPXCI(const QString& filename) { InstallResult GMainWindow::InstallNSP(const QString& filename) {
const auto qt_raw_copy = [this](const FileSys::VirtualFile& src, const auto qt_raw_copy = [this](const FileSys::VirtualFile& src,
const FileSys::VirtualFile& dest, std::size_t block_size) { const FileSys::VirtualFile& dest, std::size_t block_size) {
if (src == nullptr || dest == nullptr) { if (src == nullptr || dest == nullptr) {
@ -3225,9 +3224,7 @@ InstallResult GMainWindow::InstallNSPXCI(const QString& filename) {
return InstallResult::Failure; return InstallResult::Failure;
} }
} else { } else {
const auto xci = std::make_shared<FileSys::XCI>( return InstallResult::Failure;
vfs->OpenFile(filename.toStdString(), FileSys::Mode::Read));
nsp = xci->GetSecurePartitionNSP();
} }
if (nsp->GetStatus() != Loader::ResultStatus::Success) { if (nsp->GetStatus() != Loader::ResultStatus::Success) {

View file

@ -393,7 +393,7 @@ private:
void RemoveCacheStorage(u64 program_id); void RemoveCacheStorage(u64 program_id);
bool SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id, bool SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id,
u64* selected_title_id, u8* selected_content_record_type); u64* selected_title_id, u8* selected_content_record_type);
InstallResult InstallNSPXCI(const QString& filename); InstallResult InstallNSP(const QString& filename);
InstallResult InstallNCA(const QString& filename); InstallResult InstallNCA(const QString& filename);
void MigrateConfigFiles(); void MigrateConfigFiles();
void UpdateWindowTitle(std::string_view title_name = {}, std::string_view title_version = {}, void UpdateWindowTitle(std::string_view title_name = {}, std::string_view title_version = {},