diff --git a/.github/workflows/vita.yml b/.github/workflows/vita.yml index 582f1de534..0f635d831f 100644 --- a/.github/workflows/vita.yml +++ b/.github/workflows/vita.yml @@ -27,7 +27,7 @@ jobs: cmake --build SDL_build --config Release cmake --install SDL_build git clone --depth 1 https://github.com/Rinnegatamante/vitaGL.git - make -C vitaGL HAVE_WRAPPED_ALLOCATORS=1 -j4 install + make -C vitaGL HAVE_WRAPPED_ALLOCATORS=1 HAVE_SHADER_CACHE=1 NO_DEBUG=1 -j4 install - uses: actions/checkout@v4 with: diff --git a/core/linux-dist/main.cpp b/core/linux-dist/main.cpp index 72199ecd36..cc1b0f2729 100644 --- a/core/linux-dist/main.cpp +++ b/core/linux-dist/main.cpp @@ -21,7 +21,7 @@ #include #include #include -int _newlib_heap_size_user = 246 * 1024 * 1024; +int _newlib_heap_size_user = 250 * 1024 * 1024; unsigned int sceUserMainThreadStackSize = 1 * 1024 * 1024; bool is_standalone = false; diff --git a/core/linux/vita_vmem.cpp b/core/linux/vita_vmem.cpp index d71ac4547f..d5b607e51e 100644 --- a/core/linux/vita_vmem.cpp +++ b/core/linux/vita_vmem.cpp @@ -57,8 +57,8 @@ static SceUID vmem_block = -1; bool init(void **vmem_base_addr, void **sh4rcb_addr, size_t ramSize) { - // Now try to allocate a contiguous piece of memory. - reserved_size = 512 * 1024 * 1024 + ALIGN(sizeof(Sh4RCB), PAGE_SIZE) + ARAM_SIZE_MAX; + // Now try to allocate a contiguous piece of memory. Extra 8MB is for ARAM mapping at 0x20000000 + reserved_size = 512 * 1024 * 1024 + ALIGN(sizeof(Sh4RCB), PAGE_SIZE) + 8_MB; reserved_base = nullptr; reserved_block = kuKernelMemReserve(&reserved_base, reserved_size, SCE_KERNEL_MEMBLOCK_TYPE_USER_RW); verify(reserved_block >= 0); diff --git a/core/rend/gui.cpp b/core/rend/gui.cpp index 36825125ee..fa04efb897 100644 --- a/core/rend/gui.cpp +++ b/core/rend/gui.cpp @@ -2732,18 +2732,23 @@ static void gui_display_settings() "Over/Underclock the main SH4 CPU. Default is 200 MHz. Other values may crash, freeze or trigger unexpected nuclear reactions.", "%d MHz"); } - ImGui::Spacing(); #ifdef __vita__ - ImGui::Text("Self-Modifying Code Checks:"); - ImGui::Columns(3, "DynarecSmcChecks", false); - OptionRadioButton("Off", config::DynarecSmcChecks, 0, "Disables checks for self-modifying code"); - ImGui::NextColumn(); - OptionRadioButton("Reduced", config::DynarecSmcChecks, 1, "Performs a simplified check for self-modifying code"); - ImGui::NextColumn(); - OptionRadioButton("Full", config::DynarecSmcChecks, 2, "Checks the whole code block for self-modifying code"); - ImGui::Columns(1, nullptr, false); - ImGui::Spacing(); + if (config::DynarecEnabled) + { + ImGui::Spacing(); + header("Dynarec Options"); + ImGui::Text("Self-Modifying Code Checks:"); + ImGui::Columns(3, "DynarecSmcChecks", false); + OptionRadioButton("Off", config::DynarecSmcChecks, 0, "Disables checks for self-modifying code"); + ImGui::NextColumn(); + OptionRadioButton("Reduced", config::DynarecSmcChecks, 1, "Performs a simplified check for self-modifying code"); + ImGui::NextColumn(); + OptionRadioButton("Full", config::DynarecSmcChecks, 2, "Checks the whole code block for self-modifying code"); + ImGui::Columns(1, nullptr, false); + ImGui::Spacing(); + } #endif + ImGui::Spacing(); header("Other"); { OptionCheckbox("HLE BIOS", config::UseReios, "Force high-level BIOS emulation"); diff --git a/core/types.h b/core/types.h index b3656cdc2f..08ebfa1e71 100644 --- a/core/types.h +++ b/core/types.h @@ -264,9 +264,10 @@ constexpr size_t operator""_GB(unsigned long long x) #if !defined(__vita__) constexpr u32 RAM_SIZE_MAX = 32_MB; constexpr u32 VRAM_SIZE_MAX = 16_MB; +constexpr u32 ARAM_SIZE_MAX = 8_MB; #else // Vita does not target Atomiswave/Naomi constexpr u32 RAM_SIZE_MAX = 16_MB; constexpr u32 VRAM_SIZE_MAX = 8_MB; +constexpr u32 ARAM_SIZE_MAX = 2_MB; #endif -constexpr u32 ARAM_SIZE_MAX = 8_MB;