mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-15 03:08:36 +12:00
Stub libfs_utility_init to bypass FSCK checks by vsh.
This commit is contained in:
parent
1e605de31e
commit
9c5c4457b6
8 changed files with 99 additions and 1 deletions
|
@ -333,6 +333,7 @@ target_sources(rpcs3_emu PRIVATE
|
|||
Cell/Modules/sys_rsxaudio_.cpp
|
||||
Cell/Modules/sys_spinlock.cpp
|
||||
Cell/Modules/sys_spu_.cpp
|
||||
Cell/Modules/libfs_utility_init.cpp
|
||||
)
|
||||
|
||||
if(NOT MSVC)
|
||||
|
|
85
rpcs3/Emu/Cell/Modules/libfs_utility_init.cpp
Normal file
85
rpcs3/Emu/Cell/Modules/libfs_utility_init.cpp
Normal file
|
@ -0,0 +1,85 @@
|
|||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
|
||||
LOG_CHANNEL(libfs_utility_init);
|
||||
|
||||
error_code fs_utility_init_1F3CD9F1()
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_1F3CD9F1()");
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
error_code fs_utility_init_263172B8(u32 arg1)
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_263172B8(0x%0x)", arg1);
|
||||
// arg1 usually 0x3 ??
|
||||
|
||||
// This method seems to call fsck on the various partitions, among other checks
|
||||
// Negative numbers indicate an error
|
||||
// Some positive numbers are deemed illegal, others (including 0) are accepted as valid
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
error_code fs_utility_init_4E949DA4()
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_4E949DA4()");
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
error_code fs_utility_init_665DF255()
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_665DF255()");
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
error_code fs_utility_init_6B5896B0(vm::ptr<u64> dest)
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_6B5896B0(dest=*0x%0x)", dest);
|
||||
|
||||
if (!dest)
|
||||
{
|
||||
return CELL_EFAULT;
|
||||
}
|
||||
|
||||
// This method writes the number of partitions to the address pointed to by dest
|
||||
*dest = 2;
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
||||
error_code fs_utility_init_A9B04535(u32 arg1)
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_A9B04535(0x%0x)", arg1);
|
||||
// This method seems to call fsck on the various partitions, among other checks
|
||||
// Negative numbers indicate an error
|
||||
// Some positive numbers are deemed illegal, others (including 0) are accepted as valid
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
||||
error_code fs_utility_init_E7563CE6()
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_E7563CE6()");
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
||||
error_code fs_utility_init_F691D443()
|
||||
{
|
||||
libfs_utility_init.todo("fs_utility_init_F691D443()");
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
DECLARE(ppu_module_manager::libfs_utility_init)("fs_utility_init", []()
|
||||
{
|
||||
REG_FNID(fs_utility_init, 0x1F3CD9F1, fs_utility_init_1F3CD9F1);
|
||||
REG_FNID(fs_utility_init, 0x263172B8, fs_utility_init_263172B8);
|
||||
REG_FNID(fs_utility_init, 0x4E949DA4, fs_utility_init_4E949DA4);
|
||||
REG_FNID(fs_utility_init, 0x665DF255, fs_utility_init_665DF255);
|
||||
REG_FNID(fs_utility_init, 0x6B5896B0, fs_utility_init_6B5896B0);
|
||||
REG_FNID(fs_utility_init, 0xA9B04535, fs_utility_init_A9B04535);
|
||||
REG_FNID(fs_utility_init, 0xE7563CE6, fs_utility_init_E7563CE6);
|
||||
REG_FNID(fs_utility_init, 0xF691D443, fs_utility_init_F691D443);
|
||||
});
|
1
rpcs3/Emu/Cell/Modules/libfs_utility_init.h
Normal file
1
rpcs3/Emu/Cell/Modules/libfs_utility_init.h
Normal file
|
@ -0,0 +1 @@
|
|||
#pragma once
|
|
@ -228,6 +228,7 @@ static void ppu_initialize_modules(ppu_linkage_info* link)
|
|||
&ppu_module_manager::cellVpost,
|
||||
&ppu_module_manager::libad_async,
|
||||
&ppu_module_manager::libad_core,
|
||||
&ppu_module_manager::libfs_utility_init,
|
||||
&ppu_module_manager::libmedi,
|
||||
&ppu_module_manager::libmixer,
|
||||
&ppu_module_manager::libsnd3,
|
||||
|
|
|
@ -248,6 +248,7 @@ public:
|
|||
static const ppu_static_module cellVpost;
|
||||
static const ppu_static_module libad_async;
|
||||
static const ppu_static_module libad_core;
|
||||
static const ppu_static_module libfs_utility_init;
|
||||
static const ppu_static_module libmedi;
|
||||
static const ppu_static_module libmixer;
|
||||
static const ppu_static_module libsnd3;
|
||||
|
|
|
@ -25,6 +25,7 @@ LOG_CHANNEL(sys_prx);
|
|||
// <string: firmware sprx, int: should hle if 1>
|
||||
extern const std::map<std::string_view, int> g_prx_list
|
||||
{
|
||||
{ "/dev_flash/sys/internal/libfs_utility_init.sprx", 1 },
|
||||
{ "libaacenc.sprx", 0 },
|
||||
{ "libaacenc_spurs.sprx", 0 },
|
||||
{ "libac3dec.sprx", 0 },
|
||||
|
@ -225,7 +226,7 @@ static error_code prx_load_module(const std::string& vpath, u64 flags, vm::ptr<s
|
|||
}
|
||||
else if (vpath0.starts_with("/"))
|
||||
{
|
||||
// Special case (currently unused): HLE for files outside of "/dev_flash/sys/external/"
|
||||
// Special case : HLE for files outside of "/dev_flash/sys/external/"
|
||||
// Have to specify full path for them
|
||||
ignore = g_prx_list.count(vpath0) && g_prx_list.at(vpath0);
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\cache_utils.cpp" />
|
||||
<ClCompile Include="Emu\Cell\Modules\libfs_utility_init.cpp" />
|
||||
<ClCompile Include="Emu\Cell\Modules\sys_crashdump.cpp" />
|
||||
<ClCompile Include="Emu\Io\Turntable.cpp" />
|
||||
<ClCompile Include="Emu\Io\GHLtar.cpp" />
|
||||
|
@ -439,6 +440,7 @@
|
|||
<ClInclude Include="Emu\Cell\Modules\cellRemotePlay.h" />
|
||||
<ClInclude Include="Emu\Cell\Modules\cellSsl.h" />
|
||||
<ClInclude Include="Emu\Cell\Modules\cellStorage.h" />
|
||||
<ClInclude Include="Emu\Cell\Modules\libfs_utility_init.h" />
|
||||
<ClInclude Include="Emu\Cell\Modules\sys_crashdump.h" />
|
||||
<ClInclude Include="Emu\Io\Turntable.h" />
|
||||
<ClInclude Include="Emu\Io\GHLtar.h" />
|
||||
|
|
|
@ -996,6 +996,9 @@
|
|||
<ClCompile Include="util\media_utils.cpp">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\Cell\Modules\libfs_utility_init.cpp">
|
||||
<Filter>Emu\Cell\Modules</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Crypto\aes.h">
|
||||
|
@ -1968,6 +1971,9 @@
|
|||
<ClInclude Include="util\media_utils.h">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\Cell\Modules\libfs_utility_init.h">
|
||||
<Filter>Emu\Cell\Modules</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Emu\RSX\Common\Interpreter\FragmentInterpreter.glsl">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue