26 Commits
Author SHA1 Message Date
str1k3r 4099ed477d fix(Orbis): stop asserting when voicechat fails 2026-07-22 17:36:58 -04:00
str1k3r f992d40795 Merge branch 'main' into ps4 2026-07-21 21:07:42 +00:00
str1k3r 454fefaf20 Merge branch 'main' into ps4 2026-07-19 16:34:48 +01:00
str1k3r db803a04b5 feat(ps3): use new sonyleaderboardmanager
This also removes SPU objfiles
2026-07-19 10:59:57 -04:00
str1k3r a113e32cb0 feat: move windows64 to its own sentient folder & remove gamehdd saves 2026-07-19 08:03:30 -04:00
str1k3r f19c1b2a30 chore: remove ContentPackage_Vita
This also cleans up the vcxproj so x360 stuff isnt duplicated across platforms
2026-07-19 07:06:14 -04:00
str1k3r 1d9df53595 feat(durango): postbuild estimation 2026-07-19 06:09:34 -04:00
str1k3r 82ce6313c1 feat: ReleaseForArt almost building 2026-07-19 03:23:00 -04:00
str1k3r bb714b3706 feat: build actual final builds & contentpackage almost building
Previously Windows64 Release was just building debug with somethings disabled this builds 1:1 what 4J would of built for consoles using release

This also gets ContentPackage closer to building for Windows64
2026-07-19 00:42:36 -04:00
str1k3r 80f0e4845a fix(PSVita): postbuild copying sounds into wrong spot 2026-07-18 10:39:16 -04:00
str1k3r 5c9171ca3c chore: link postbuilds to all configurations
This also fully removes the Win32 build option
2026-07-18 09:02:39 -04:00
pieeebot 31214d179a chore: remove unnecessary note for PS Vita in README. 2026-07-18 13:29:05 +01:00
str1k3r 9a0c759b65 chore: add ReleaseForArt to .gitignore 2026-07-18 04:59:05 -04:00
str1k3r 8fd70b0fca chore: improve .gitignore 2026-07-18 04:50:21 -04:00
str1k3r 0d66c59e10 Fix(Orbis): build and update readme info for vita
Reviewed-on: https://git.neolegacy.dev/pieeebot/cafeberry/pulls/14
2026-07-18 09:33:17 +01:00
552eden 3092e99d0e fixed ps4 compile issue and updated readme 2026-07-18 11:27:23 +03:00
str1k3r 4c082384c4 refactor: cleaup 2026-07-18 03:27:30 -04:00
str1k3r a8069727c3 feat(psvita): psvita builds
Reviewed-on: https://git.neolegacy.dev/pieeebot/cafeberry/pulls/13
2026-07-18 08:23:10 +01:00
552eden 13b827d21f Merge branch 'ps4' of https://git.neolegacy.dev/pieeebot/cafeberry into ps4
# Conflicts:
#	Minecraft.Client/Common/Leaderboards/SonyLeaderboardManager.cpp
#	Minecraft.Client/Common/UI/IUIScene_PauseMenu.cpp
#	Minecraft.Client/Common/UI/UIComponent_PressStartToPlay.cpp
#	Minecraft.Client/OrbisMedia/strings.h
#	MinecraftConsoles.sln
2026-07-18 10:01:09 +03:00
552eden 9f181ba8c1 make vita content package target build 2026-07-18 09:45:14 +03:00
str1k3r 6ee614dfda fix(orbis): better fix for orbis voicechat crash
This most likely can be fixed a more proper way but this is what works and is better then the previous method
2026-07-18 01:19:10 -04:00
str1k3r 388626dbba fix(orbis): strings
Both IDS_CORRUPT_OPTIONS_DELETE & IDS_CORRUPT_OPTIONS_RETRY are placeholders as of now
2026-07-18 00:36:37 -04:00
str1k3r 0a38bb51bc fix(orbis): voicechat crash 2026-07-17 13:45:53 -04:00
str1k3r 9171922767 refactor: cleanup 2026-07-17 13:45:22 -04:00
e70ef09900 first buildable orbis version. a bit ugly. (#9)
this is the first buildable ps4 orbis version

---------

Co-authored-by: 552eden <552eden@gmail.com>
Reviewed-on: https://git.neolegacy.dev/pieeebot/cafeberry/pulls/9
Co-authored-by: ubergamer-pie <81+ubergamer-pie@noreply.neolegacy.dev>
Co-committed-by: ubergamer-pie <81+ubergamer-pie@noreply.neolegacy.dev>
2026-07-17 17:55:42 +01:00
552eden 1bd4a3455c first buildable orbis version. a bit ugly. 2026-07-17 19:24:48 +03:00
92 changed files with 4557 additions and 11503 deletions
+43 -48
View File
@@ -1,55 +1,50 @@
/ORBIS_Debug
/ORBIS_Release
/PS3_Debug
/PS3_Release
/PSVita_Debug
/PSVita_Release
/X360_Debug
/X360_Release
/Release
/Debug
/*Debug
/*Release
/*ContentPackage
/*ContentPackage_NO_TU
/*ContentPackage_SYMBOLS
/*ReleaseForArt
/x64
/ipch
.vs/
/Minecraft.Client/ORBIS_Debug
/Minecraft.Client/ORBIS_Release
/Minecraft.Client/PS3_Debug
/Minecraft.Client/PS3_Release
/Minecraft.Client/PSVita_Debug
/Minecraft.Client/PSVita_Release
/Minecraft.Client/X360_Debug
/Minecraft.Client/X360_Release
/Minecraft.Client/Debug
/Minecraft.Client/Release
/Minecraft.Client/x64
# Minecraft.Client
/Minecraft.Client/x64/
/Minecraft.Client/x64_*
/Minecraft.Client/*Debug
/Minecraft.Client/*Release
/Minecraft.Client/*ContentPackage
/Minecraft.Client/*ContentPackage_NO_TU
/Minecraft.Client/*ContentPackage_SYMBOLS
/Minecraft.Client/*ReleaseForArt
/Minecraft.Client/Windows64/GameHDD
/Minecraft.World/ORBIS_Debug
/Minecraft.World/ORBIS_Release
/Minecraft.World/PS3_Debug
/Minecraft.World/PS3_Release
/Minecraft.World/PSVita_Debug
/Minecraft.World/PSVita_Release
/Minecraft.World/X360_Debug
/Minecraft.World/X360_Release
/Minecraft.World/Debug
/Minecraft.World/Release
/Minecraft.World/x64_Debug
/Minecraft.World/x64_Release
MinecraftConsoles.opensdf
MinecraftConsoles.v11.suo
MinecraftConsoles.sdf
# Minecraft.world
/Minecraft.World/x64/
/Minecraft.World/x64_*
/Minecraft.World/*Debug
/Minecraft.World/*Release
/Minecraft.World/*ContentPackage
/Minecraft.World/*ContentPackage_NO_TU
/Minecraft.World/*ContentPackage_SYMBOLS
/Minecraft.World/*ReleaseForArt
/Minecraft.Client/PS3/SPU_Tasks/Texture_blit/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_cull/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/CompressedTileStorage_compress/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/CompressedTile/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/PS3_Debug
/Minecraft.Client/PS3/SPU_Tasks/Texture_blit/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_cull/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/CompressedTileStorage_compress/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/CompressedTile/PS3_Release
/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/PS3_Release
# PS3 SPU
/Minecraft.Client/PS3/SPU_Tasks/objFiles/
/Minecraft.Client/PS3/SPU_Tasks/Texture_blit/PS3*
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/PS3*
/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_cull/PS3*
/Minecraft.Client/PS3/SPU_Tasks/CompressedTileStorage_compress/PS3*
/Minecraft.Client/PS3/SPU_Tasks/CompressedTile/PS3*
/Minecraft.Client/PS3/SPU_Tasks/ChunkUpdate/PS3*
# Misc
*.pkg
*.bat
/*.gp4p
/*.vpk
/*.gp4
*-app
*.sdf
*.opensdf
*.v11.suo
+58
View File
@@ -0,0 +1,58 @@
@echo off
setlocal
:: -------------------------------------------------------
:: Paths
:: -------------------------------------------------------
set TOOLS=C:\Program Files (x86)\SCE\ORBIS\Tools\Publishing Tools\bin
set SRC_GAME=Minecraft.Client\PS4_GAME
set SRC_ELF=ORBIS_Release\Minecraft.Client.elf
set STAGING=CUSA00283-app
set OUT_PKG=CUSA00283-app.pkg
:: -------------------------------------------------------
:: 1. Clean and create staging folder
:: -------------------------------------------------------
echo [1/5] Staging files...
if exist "%STAGING%" rmdir /S /Q "%STAGING%"
xcopy /E /I /Y "%SRC_GAME%" "%STAGING%"
:: -------------------------------------------------------
:: 2. Replace eboot.bin with freshly compiled ELF
:: -------------------------------------------------------
echo [2/5] Injecting eboot.bin...
copy /Y "%SRC_ELF%" "%STAGING%\eboot.bin"
:: -------------------------------------------------------
:: 3. Create placeholder keystone (256 zero bytes)
:: Required by gengp4_app before it will generate the GP4
:: -------------------------------------------------------
echo [3/5] Creating keystone...
powershell -NoProfile -Command ^
copy /Y "keystone" "%STAGING%\sce_sys\keystone'
:: -------------------------------------------------------
:: 4. Generate GP4 project file
:: Backup param.sfo first as gengp4 may modify it
:: -------------------------------------------------------
echo [4/5] Generating GP4...
copy /Y "%STAGING%\sce_sys\param.sfo" "%STAGING%\sce_sys\param.sfo.bak"
"%TOOLS%\gengp4_app.exe" "%STAGING%"
:: -------------------------------------------------------
:: 4b. Fix gengp4 bug: default_id is 1-indexed but scenario id is 0-indexed
:: -------------------------------------------------------
echo [4b/5] Patching GP4 default_id...
powershell -NoProfile -Command ^
"(Get-Content '%STAGING%.gp4') -replace 'default_id=""1""', 'default_id=""0""' | Set-Content '%STAGING%.gp4'"
:: -------------------------------------------------------
:: 5. Build PKG
:: -------------------------------------------------------
echo [5/5] Building PKG...
if exist "%OUT_PKG%" del /Q "%OUT_PKG%"
"%TOOLS%\orbis-pub-cmd.exe" img_create "%STAGING%.gp4" "%OUT_PKG%"
echo.
echo Done! Output: %OUT_PKG%
pause
+16 -6
View File
@@ -1964,6 +1964,7 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
#elif defined __PSVITA__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
int ret = -1;
/*
if(!CGameNetworkManager::usingAdhocMode()) // we don't need to be friends in PSN for adhoc mode
{
int ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, false);
@@ -1974,10 +1975,11 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
friendCount = friendList.get()->size();
}
}
}
}*/
#else // __ORBIS__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
/*
//sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
std::vector<sce::Toolkit::NP::FriendsList> friendList;
sce::Toolkit::NP::FriendInfoRequest requestParam;
memset(&requestParam,0,sizeof(requestParam));
@@ -1986,14 +1988,16 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
requestParam.offset = 0;
requestParam.userInfo.userId = ProfileManager.getUserID(ProfileManager.GetPrimaryPad());
int ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, &requestParam, false);
//int ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, &requestParam, false);
int ret = 42069;
if( ret == 0 )
{
if( friendList.hasResult() )
if( friendList.hasResult())
{
friendCount = friendList.get()->size();
}
}
}*/
int ret = 42069;
#endif
if( ret == 0 )
{
@@ -2003,12 +2007,18 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
{
#ifdef __PS3__
ret = sceNpBasicGetFriendListEntry( i, &npid );
#elif defined __ORBIS__
//dont touch npid
#else
npid = friendList.get()->at(i).npid;
#endif
if( ret == 0 )
{
#ifndef __ORBIS__
if(strcmp(npid.handle.data, packet->m_playerXuids[packet->m_hostIndex].getOnlineID()) == 0)
#else
if(1==2)
#endif
{
isFriend = true;
break;
@@ -77,20 +77,21 @@ char SoundEngine::m_szRedistName[]={"redist"};
char SoundEngine::m_szSoundPath[]={"PS3/Sound/"};
char SoundEngine::m_szMusicPath[]={"music/"};
char SoundEngine::m_szRedistName[]={"redist"};
#ifdef _CONTENT_PACKAGE
#endif
/*#ifdef _CONTENT_PACKAGE // strk1k3r - not needed use default paths instead.
char SoundEngine::m_szSoundPath[]={"Sound/"};
#elif defined _ART_BUILD
char SoundEngine::m_szSoundPath[]={"Sound/"};
#endif
#endif*/
#ifdef __PS3__
#define USE_SPURS
#ifdef USE_SPURS
#include <cell/spurs.h>
#else
#include <sys/spu_image.h>
#endif
#endif
F32 AILCALLBACK custom_falloff_function (HSAMPLE S,
+2 -2
View File
@@ -127,7 +127,7 @@ CMinecraftApp::CMinecraftApp()
m_bChangingSessionType = false;
m_bReallyChangingSessionType = false;
#ifdef _DEBUG
#ifdef _DEBUG_MENUS_ENABLED
#ifdef _CONTENT_PACKAGE
m_bDebugOptions=false; // make them off by default in a content package build
@@ -2386,7 +2386,7 @@ void CMinecraftApp::ClearGameSettingsChangedFlag(int iPad)
// Remove the debug settings in the content package build
//
////////////////////////////
#ifdef _DEBUG
#ifdef _DEBUG_MENUS_ENABLED
unsigned int CMinecraftApp::GetGameSettingsDebugMask(int iPad,bool bOverridePlayer) //bOverridePlayer is to force the send for the server to get the read options
{
return 0;
@@ -9,7 +9,7 @@ const wstring LeaderboardManager::filterNames[eNumFilterModes] =
L"Friends", L"MyScore", L"TopRank"
};
#if !defined(_WINDOWS64) && !defined(_DURANGO) && !defined(__ORBIS__) && !defined(__PS3__) && !defined(__PSVITA__) && !defined(_XBOX)
#if !defined(_DURANGO) && !defined(_WINDOWS64) && !defined(_XBOX) // str1k3r - only needed for sony platforms.
LeaderboardManager *LeaderboardManager::m_instance = NULL;
#endif
@@ -154,7 +154,7 @@ void SonyLeaderboardManager::scoreboardThreadInternal()
// The following NP call should be reserved for asynchronous multiplayer modes that require PS Plus to be accessed.
//
// Note 2:
// The message is not displayed with a user without PlayStation®Plus subscription and they are able to access the Leaderboards.
// The message is not displayed with a user without PlayStationPlus subscription and they are able to access the Leaderboards.
// NotifyAsyncPlusFeature();
@@ -204,11 +204,10 @@ HRESULT SonyLeaderboardManager::fillByIdsQuery(const SceNpId &myNpId, SceNpId* &
case eFM_Friends:
{
// 4J-JEV: Implementation for Orbis & Vita as they a very similar.
#if (defined __ORBIS__) || (defined __PSVITA__)
#if (defined __PSVITA__)
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> s_friendList;
ret = getFriendsList(s_friendList);
if(ret != SCE_TOOLKIT_NP_SUCCESS)
{
// Error handling
@@ -246,7 +245,11 @@ HRESULT SonyLeaderboardManager::fillByIdsQuery(const SceNpId &myNpId, SceNpId* &
npIds[0] = myNpId;
}
#elif (defined __ORBIS__)
// Error handling
if (m_eStatsState != eStatsState_Canceled) m_eStatsState = eStatsState_Failed;
app.DebugPrintf("[SonyLeaderboardManager] 'getFriendslist' fail, 0x%x.\n", ret);
return false;
#elif (defined __PS3__)
// PS3
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

@@ -1 +1,93 @@
// Currently a stub as we dont know what would go here
param(
[string]$OutDir,
[string]$ProjectDir
)
Write-Host "Durango Postbuild script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"Durango\StoreImages",
"Common\Media",
"Common\res",
"DLCImages",
"Tutorial",
"Durango",
"music",
"Sound",
"Xbox",
"DLC",
"CU",
)
foreach ($dir in $directories) {
New-Item -ItemType Directory -Path (Join-Path $OutDir $dir) -Force | Out-Null
}
$folderCopies = @(
@{ Source = "Common\Media"; Dest = "Common\Media" },
@{ Source = "Common\res"; Dest = "Common\res" },
@{ Source = "Durango\Sound"; Dest = "Sound" },
@{ Source = "DurangoMedia\DLC"; Dest = "DLC" },
@{ Source = "DurangoMedia\Tutorial"; Dest = "Tutorial" },
@{ Source = "music"; Dest = "music" },
@{ Source = "Durango\DLCImages"; Dest = "DLCImages" },
@{ Source = "Durango\CU"; Dest = "CU" },
)
foreach ($copy in $folderCopies) {
$src = Join-Path $ProjectDir $copy.Source
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
xcopy /q /y /i /s /e /d "$src" "$dst" 2>$null
}
}
$fileCopies = @(
@{ Source = "Durango\DurangoExtras\xcompress.dll"; Dest = "xcompress.dll" },
@{ Source = "Durango\DLCXbox1.cmp"; Dest = "DLCXbox1.cmp" }
)
foreach ($copy in $fileCopies) {
$src = Join-Path $ProjectDir $copy.Source
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
Copy-Item -Path $src -Destination $dst -Force
}
}
$deleteDirs = @(
"Common\Media\Sound",
"Common\Media\Graphics",
"Common\Media\de-DE",
"Common\Media\es-ES",
"Common\Media\fr-FR",
"Common\Media\it-IT",
"Common\Media\ja-JP",
"Common\Media\ko-KR",
"Common\Media\pt-BR",
"Common\Media\pt-PT",
"Common\Media\zh-CHT"
)
foreach ($dir in $deleteDirs) {
$path = Join-Path $OutDir $dir
if (Test-Path $path) {
Remove-Item $path -Recurse -Force -ErrorAction SilentlyContinue
}
}
$delDirs = @(
"Common\Media",
"Common\Media\font"
)
foreach ($dir in $delDirs) {
if ($delDirs -contains $dir) {
$path = Join-Path $OutDir $dir
if (Test-Path $path) {
Get-ChildItem -Path $path -Recurse -Include *.swf, *.txt, *.resx, *.xml, *.loc, *.lang, *.col, *.h, *.xui, *.abc, "Mojang Font_7.ttf", "Mojang Font_11.ttf", MediaWindows64.arc, MediaOrbis.arc, MediaPS3.arc, MediaPSVita.arc -File |
Remove-Item -Force -ErrorAction SilentlyContinue
}
}
}
@@ -6,13 +6,13 @@ param(
Write-Host "Orbis Postbuild script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"music",
"Orbis",
"Common",
"Common\Media",
"Common\Tutorial",
"Common\res",
"Sound"
"PS4_GAME\music",
"PS4_GAME\Orbis",
"PS4_GAME\Common",
"PS4_GAME\Common\Media",
"PS4_GAME\Common\Tutorial",
"PS4_GAME\Common\res",
"PS4_GAME\Orbis\Sound"
)
foreach ($dir in $directories) {
@@ -27,7 +27,7 @@ $folderCopies = @(
@{ Source = "PS3\Sound"; Dest = "PS4_GAME\Sound" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_module"; Dest = "PS4_GAME\sce_module" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_gls"; Dest = "PS4_GAME\sce_gls" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_sys"; Dest = "PS4_GAME\sce_sys" },
@{ Source = "Common\Postbuilds\Contents\Orbis\sce_sys"; Dest = "PS4_GAME\sce_sys" }
)
foreach ($copy in $folderCopies) {
@@ -41,7 +41,7 @@ foreach ($copy in $folderCopies) {
$fileCopies = @(
@{ Source = "Orbis\PS4ProductCodes.bin"; Dest = "PS4_GAME\Orbis\PS4ProductCodes.bin" },
@{ Source = "Orbis\session_image.jpg"; Dest = "PS4_GAME\Orbis\session_image.jpg" },
@{ Source = "Orbis\session_image.jpg"; Dest = "PS4_GAME\Orbis\session_image.jpg" }
)
foreach ($copy in $fileCopies) {
@@ -6,12 +6,12 @@ param(
Write-Host "PSVita Postbuild script started. Output Directory: $OutDir, Project Directory: $ProjectDir"
$directories = @(
"music",
"PSVita",
"Common",
"Common\Media",
"Common\res",
"Sound"
"PSVITA_GAME\music",
"PSVITA_GAME\PSVita",
"PSVITA_GAME\Common",
"PSVITA_GAME\Common\Media",
"PSVITA_GAME\Common\res",
"PSVITA_GAME\Sound"
)
foreach ($dir in $directories) {
@@ -22,13 +22,17 @@ $folderCopies = @(
@{ Source = "music"; Dest = "PSVITA_GAME\music" },
@{ Source = "Common\Media"; Dest = "PSVITA_GAME\Common\Media" },
@{ Source = "Common\res"; Dest = "PSVITA_GAME\Common\res" },
@{ Source = "PSVita\Sound"; Dest = "PSVITA_GAME\Sound" },
@{ Source = "Common\Postbuilds\Contents\PSVita\sce_module"; Dest = "PSVITA_GAME\sce_module" },
@{ Source = "PSVita\Sound"; Dest = "PSVITA_GAME\PSVita\Sound" },
@{ Source = "$env:SCE_PSP2_SDK_DIR\target\sce_module"; Dest = "PSVITA_GAME\sce_module" },
@{ Source = "Common\Postbuilds\Contents\PSVita\sce_sys"; Dest = "PSVITA_GAME\sce_sys" }
)
foreach ($copy in $folderCopies) {
$src = Join-Path $ProjectDir $copy.Source
if ([System.IO.Path]::IsPathRooted($copy.Source)) {
$src = $copy.Source
} else {
$src = Join-Path $ProjectDir $copy.Source
}
$dst = Join-Path $OutDir $copy.Dest
if (Test-Path $src) {
@@ -39,7 +43,7 @@ foreach ($copy in $folderCopies) {
$fileCopies = @(
@{ Source = "PSVita\PSVitaProductCodes.bin"; Dest = "PSVITA_GAME\PSVita\PSVitaProductCodes.bin" },
@{ Source = "PSVita\session_image.png"; Dest = "PSVITA_GAME\PSVita\session_image.png" },
@{ Source = "Common\Postbuilds\Contents\PSVita\icon.png"; Dest = "PSVITA_GAME\icon.png" },
@{ Source = "Common\Postbuilds\Contents\PSVita\icon.png"; Dest = "PSVITA_GAME\icon.png" }
)
foreach ($copy in $fileCopies) {
@@ -10,7 +10,6 @@
#include "..\..\TexturePack.h"
#include "..\..\DLCTexturePack.h"
#include "..\..\..\Minecraft.World\StringHelpers.h"
#ifndef _XBOX
#include "UI.h"
#endif
@@ -2,7 +2,6 @@
#include "UI.h"
#include "UIComponent_PressStartToPlay.h"
#include "..\..\..\Minecraft.World\StringHelpers.h"
UIComponent_PressStartToPlay::UIComponent_PressStartToPlay(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
{
// Setup all the Iggy references we need for this scene
@@ -23,7 +23,7 @@ UIScene_HelpAndOptionsMenu::UIScene_HelpAndOptionsMenu(int iPad, void *initData,
// We don't have a reinstall content, so remove the button
removeControl( &m_buttons[BUTTON_HAO_REINSTALL], false );
#ifndef _DEBUG
#ifdef _FINAL_BUILD
removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
#else
if(!app.DebugSettingsOn()) removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
@@ -121,7 +121,7 @@ void UIScene_HelpAndOptionsMenu::updateComponents()
void UIScene_HelpAndOptionsMenu::handleReload()
{
#ifndef _DEBUG
#ifdef _FINAL_BUILD
removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
#else
if(!app.DebugSettingsOn()) removeControl( &m_buttons[BUTTON_HAO_DEBUG], false);
@@ -61,7 +61,7 @@ UIScene_InGamePlayerOptionsMenu::UIScene_InGamePlayerOptionsMenu(int iPad, void
if(m_editingSelf)
{
#ifndef _DEBUG // (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
#if (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
removeControl( &m_checkboxes[eControl_Op], true );
#else
m_checkboxes[eControl_Op].init(L"DEBUG: Creative",eControl_Op,Player::getPlayerGamePrivilege(m_playerPrivileges,Player::ePlayerGamePrivilege_CreativeMode));
@@ -254,7 +254,7 @@ void UIScene_InGamePlayerOptionsMenu::handleReload()
if(m_editingSelf)
{
#ifndef _DEBUG // (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
#if (defined(_CONTENT_PACKAGE) || defined(_FINAL_BUILD) && !defined(_DEBUG_MENUS_ENABLED))
removeControl( &m_checkboxes[eControl_Op], true );
#endif
File diff suppressed because it is too large Load Diff
@@ -12,9 +12,13 @@
// Singleton
OrbisNPToolkit NPToolkit;
#ifndef __ORBIS__ // sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70
sce::Toolkit::NP::Utilities::Future< sce::Toolkit::NP::NpSessionInformation > OrbisNPToolkit::sm_createJoinFuture;
#endif
sce::Toolkit::NP::NpSessionInformation OrbisNPToolkit::m_currentSessionInfo;
#ifndef __ORBIS__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::MessageAttachment> OrbisNPToolkit::m_messageData;
#endif
void OrbisNPToolkit::presenceCallback( const sce::Toolkit::NP::Event& event )
@@ -130,29 +134,53 @@ void OrbisNPToolkit::sessionsCallback( const sce::Toolkit::NP::Event& event)
{
case sce::Toolkit::NP::Event::npSessionCreateResult: ///< An event generated when the %Np session creation process has been completed.
app.DebugPrintf("npSessionCreateResult");
if(sm_createJoinFuture.hasResult())
#ifdef __ORBIS__
// sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70 -
// no way to retrieve the NpSessionInformation payload; m_currentSessionInfo stays zeroed.
if(event.returnCode >= 0)
{
app.DebugPrintf("Session Created Successfully\n");
}
else
{
app.DebugPrintf("Session Creation Failed 0x%x\n",event.returnCode);
}
#else
if(sm_createJoinFuture.hasResult())
{
app.DebugPrintf("Session Created Successfully\n");
m_currentSessionInfo = *sm_createJoinFuture.get();
}
else
}
else
{
app.DebugPrintf("Session Creation Failed 0x%x\n",sm_createJoinFuture.getError());
}
sm_createJoinFuture.reset();
#endif
break;
case sce::Toolkit::NP::Event::npSessionJoinResult: ///< An event generated when the join %Np session process has been completed.
app.DebugPrintf("npSessionJoinResult");
if(sm_createJoinFuture.hasResult())
#ifdef __ORBIS__
if(event.returnCode >= 0)
{
app.DebugPrintf("Session joined successfully\n");
}
else
{
app.DebugPrintf("Session join Failed 0x%x\n",event.returnCode);
}
#else
if(sm_createJoinFuture.hasResult())
{
app.DebugPrintf("Session joined successfully\n");
m_currentSessionInfo = *sm_createJoinFuture.get();
}
else
}
else
{
app.DebugPrintf("Session join Failed 0x%x\n",sm_createJoinFuture.getError());
}
sm_createJoinFuture.reset();
#endif
break;
case sce::Toolkit::NP::Event::npSessionError: ///< An event generated when there was error performing the current %Np session process.
app.DebugPrintf("npSessionError");
@@ -207,6 +235,12 @@ void OrbisNPToolkit::gameCustomDataCallback( const sce::Toolkit::NP::Event& even
break;
case sce::Toolkit::NP::Event::gameCustomDataGameDataResult:
app.DebugPrintf("gameCustomDataGameDataResult");
#ifdef __ORBIS__
// sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70 -
// the MessageAttachment payload can't be retrieved, so invite data is unavailable.
app.DebugPrintf("gameCustomDataGameDataResult stubbed (no Future in SDK 1.70), returnCode 0x%08x\n", event.returnCode);
ORBIS_STUBBED;
#else
if(m_messageData.hasResult())
{
SQRNetworkManager_Orbis::GetInviteDataAndProcess(m_messageData.get());
@@ -229,6 +263,7 @@ void OrbisNPToolkit::gameCustomDataCallback( const sce::Toolkit::NP::Event& even
break;
}
}
#endif
break;
case sce::Toolkit::NP::Event::gameCustomDataMessageResult:
app.DebugPrintf("gameCustomDataMessageResult");
@@ -350,6 +385,20 @@ void OrbisNPToolkit::init()
}
// Get network status and inform library
#ifdef __ORBIS__
// sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70 -
// query the net state directly instead of going through NetInfo::getNetInfo
int32_t netState = SCE_NET_CTL_STATE_DISCONNECTED;
if (sceNetCtlGetState(&netState) == SCE_OK)
{
ProfileManager.SetNetworkStatus(netState == SCE_NET_CTL_STATE_IPOBTAINED);
}
else
{
// Error means we're disconnected
ProfileManager.SetNetworkStatus(false);
}
#else
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::NetStateBasic> netStateFuture = sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::NetStateBasic>();
sce::Toolkit::NP::NetInfo::Interface::getNetInfo(&netStateFuture);
@@ -369,6 +418,7 @@ void OrbisNPToolkit::init()
// Error message means we're disconnected
ProfileManager.SetNetworkStatus(false);
}
#endif
// // Register Client ID for Auth
// ret = sce::Toolkit::NP::Interface::registerClientId(CLIENT_ID_FOR_SAMPLE);
@@ -409,7 +459,13 @@ void OrbisNPToolkit::createNPSession()
char test[3] = {'R','K','B'};
createSessionRequest.sessionData= test;
createSessionRequest.sessionDataSize = 3;
#ifdef __ORBIS__
// Sessions::Interface::create requires a Future out-param that SDK 1.70 doesn't implement
app.DebugPrintf("createNPSession stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
#else
ret = sce::Toolkit::NP::Sessions::Interface::create(&createSessionRequest,&sm_createJoinFuture);
#endif
}
@@ -447,12 +503,18 @@ void OrbisNPToolkit::getMessageData(SceNpGameCustomDataEventParam* paramData)
req.itemId = paramData->itemId;
req.userInfo.userId = userId;
#ifdef __ORBIS__
// GameCustomData::Interface::getGameData requires a Future out-param that SDK 1.70 doesn't implement
app.DebugPrintf("getMessageData stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
#else
ret = sce::Toolkit::NP::GameCustomData::Interface::getGameData(&req, &m_messageData);
if( ret < 0 ) {
//Error handling
} else {
//Error handling
}
#endif
//
@@ -809,7 +809,9 @@ int SQRNetworkManager_Orbis::BasicEventThreadProc( void *lpParameter )
int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
{
SQRNetworkManager_Orbis *manager = (SQRNetworkManager_Orbis *)lpParameter;
#ifndef __ORBIS__
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> friendList;
#endif
int ret = 0;
manager->m_aFriendSearchResults.clear();
@@ -828,13 +830,13 @@ int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
requestParam.userInfo.userId = ProfileManager.getUserID(ProfileManager.GetPrimaryPad());
bool async = false;
#ifndef __ORBIS__
ret = sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendList, &requestParam, async);
if(ret != SCE_OK)
{
app.DebugPrintf("getFriendslist failed! 0x%08x\n", ret);
return 0;
}
if (friendList.hasResult())
{
sce::Toolkit::NP::FriendsList::const_iterator iter ;
@@ -851,12 +853,11 @@ int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
sce::Toolkit::NP::PresenceRequest presenceRequest;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::PresenceInfo> presenceInfo;
int presenceInfo;
memset(&presenceRequest,0,sizeof(presenceRequest));
strncpy(presenceRequest.onlineId.data,iter->npid.handle.data, strlen(iter->npid.handle.data));
presenceRequest.presenceType = SCE_TOOLKIT_NP_PRESENCE_TYPE_INCONTEXT_INFO;
presenceRequest.userInfo.userId = ProfileManager.getUserID(ProfileManager.GetPrimaryPad());;
ret = sce::Toolkit::NP::Presence::Interface::getPresence(&presenceRequest,&presenceInfo,false);
if( ret < 0 )
{
@@ -903,6 +904,10 @@ int SQRNetworkManager_Orbis::GetFriendsThreadProc( void* lpParameter )
app.DebugPrintf("Check sign-in status\n");
}
#else
app.DebugPrintf( "Friend list is disabled on this build -UbEr\n");
#endif
return 0;
}
@@ -44,9 +44,11 @@ bool SonyCommerce_Orbis::m_bLicenseChecked=false; // Check the trial/
#ifndef __ORBIS__ // sce::Toolkit::NP::Utilities::Future is not implemented in SDK 1.70
sce::Toolkit::NP::Utilities::Future<std::vector<sce::Toolkit::NP::ProductInfo> > g_productList;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::CategoryInfo> g_categoryInfo;
sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::ProductInfoDetailed> g_detailedProductInfo;
#endif
SonyCommerce_Orbis::ProductInfoDetailed s_trialUpgradeProductInfoDetailed;
@@ -180,8 +182,15 @@ int SonyCommerce_Orbis::getProductList(std::vector<ProductInfo>* productList, ch
params.serviceLabel = 0;
app.DebugPrintf("Getting Product List ...\n");
#ifdef __ORBIS__
// Commerce::Interface::getProductList requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("getProductList stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
ret = sce::Toolkit::NP::Commerce::Interface::getProductList(&g_productList, params, true);
if (ret < 0)
if (ret < 0)
{
app.DebugPrintf("CommerceInterface::getProductList() error. ret = 0x%x\n", ret);
return ret;
@@ -192,7 +201,8 @@ int SonyCommerce_Orbis::getProductList(std::vector<ProductInfo>* productList, ch
// result has returned immediately (don't think this should happen, but was handled in the samples
copyProductList(productList, g_productList.get());
m_event = e_event_commerceGotProductList;
}
}
#endif
return ret;
}
@@ -241,19 +251,27 @@ int SonyCommerce_Orbis::getCategoryInfo(CategoryInfo *pInfo, char *categoryId)
app.DebugPrintf("Getting Category Information...\n");
#ifdef __ORBIS__
// Commerce::Interface::getCategoryInfo requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("getCategoryInfo stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
ret = sce::Toolkit::NP::Commerce::Interface::getCategoryInfo(&g_categoryInfo, params, true);
if (ret < 0)
if (ret < 0)
{
// error
app.DebugPrintf("Commerce::Interface::getCategoryInfo error: 0x%x\n", ret);
return ret;
}
else if (g_categoryInfo.hasResult())
else if (g_categoryInfo.hasResult())
{
// result has returned immediately (don't think this should happen, but was handled in the samples
copyCategoryInfo(pInfo, g_categoryInfo.get());
m_event = e_event_commerceGotCategoryInfo;
}
#endif
return ret;
}
@@ -289,20 +307,28 @@ int SonyCommerce_Orbis::getDetailedProductInfo(ProductInfoDetailed *pInfo, const
strcpy(params.productId, productId);
app.DebugPrintf("Getting Detailed Product Information ... \n");
app.DebugPrintf("Getting Detailed Product Information ... \n");
#ifdef __ORBIS__
// Commerce::Interface::getDetailedProductInfo requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("getDetailedProductInfo stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
ret = sce::Toolkit::NP::Commerce::Interface::getDetailedProductInfo(&g_detailedProductInfo, params, true);
if (ret < 0)
if (ret < 0)
{
app.DebugPrintf("CommerceInterface::getDetailedProductInfo() error. ret = 0x%x\n", ret);
return ret;
}
if (g_detailedProductInfo.hasResult())
if (g_detailedProductInfo.hasResult())
{
// result has returned immediately (don't think this should happen, but was handled in the samples
copyDetailedProductInfo(pInfo, g_detailedProductInfo.get());
m_event = e_event_commerceGotDetailedProductInfo;
}
#endif
return ret;
}
@@ -339,19 +365,27 @@ int SonyCommerce_Orbis::addDetailedProductInfo(ProductInfo *pInfo, const char *p
strcpy(params.productId, productId);
app.DebugPrintf("Getting Detailed Product Information ... \n");
app.DebugPrintf("Getting Detailed Product Information ... \n");
#ifdef __ORBIS__
// Commerce::Interface::getDetailedProductInfo requires a Future out-param that SDK 1.70 doesn't implement -
// report failure so the commerce flow errors out and runs the callback
app.DebugPrintf("addDetailedProductInfo stubbed (no Future in SDK 1.70)\n");
ORBIS_STUBBED;
ret = -1;
#else
ret = sce::Toolkit::NP::Commerce::Interface::getDetailedProductInfo(&g_detailedProductInfo, params, true);
if (ret < 0)
if (ret < 0)
{
app.DebugPrintf("CommerceInterface::addDetailedProductInfo() error. ret = 0x%x\n", ret);
}
if (g_detailedProductInfo.hasResult())
if (g_detailedProductInfo.hasResult())
{
// result has returned immediately (don't think this should happen, but was handled in the samples
copyAddDetailedProductInfo(pInfo, g_detailedProductInfo.get());
m_event = e_event_commerceAddedDetailedProductInfo;
}
#endif
return ret;
}
@@ -600,7 +634,7 @@ int SonyCommerce_Orbis::createSession()
//
// sce::Toolkit::NP::Commerce::Interface::CreateSession
//
// This function is provided to maintain compatibility with the PlayStation®Vita and PlayStation®3 platforms. Because commerce on the PlayStation®4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
// This function is provided to maintain compatibility with the PlayStationVita and PlayStation3 platforms. Because commerce on the PlayStation4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
int ret = sce::Toolkit::NP::Commerce::Interface::createSession();
@@ -656,7 +690,12 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
}
case sce::Toolkit::NP::Event::UserEvent::commerceGotCategoryInfo:
{
#ifdef __ORBIS__
// Future payload unavailable in SDK 1.70 - the request is stubbed so this shouldn't fire
app.DebugPrintf("commerceGotCategoryInfo stubbed (no Future in SDK 1.70)\n");
#else
copyCategoryInfo(m_pCategoryInfo, g_categoryInfo.get());
#endif
m_pCategoryInfo = NULL;
m_event = e_event_commerceGotCategoryInfo;
break;
@@ -664,7 +703,12 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
case sce::Toolkit::NP::Event::UserEvent::commerceGotProductList:
{
#ifdef __ORBIS__
// Future payload unavailable in SDK 1.70 - the request is stubbed so this shouldn't fire
app.DebugPrintf("commerceGotProductList stubbed (no Future in SDK 1.70)\n");
#else
copyProductList(m_pProductInfoList, g_productList.get());
#endif
m_pProductInfoDetailed = NULL;
m_event = e_event_commerceGotProductList;
break;
@@ -672,6 +716,12 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
case sce::Toolkit::NP::Event::UserEvent::commerceGotDetailedProductInfo:
{
#ifdef __ORBIS__
// Future payload unavailable in SDK 1.70 - the request is stubbed so this shouldn't fire
app.DebugPrintf("commerceGotDetailedProductInfo stubbed (no Future in SDK 1.70)\n");
m_pProductInfoDetailed = NULL;
m_pProductInfo = NULL;
#else
if(m_pProductInfoDetailed)
{
copyDetailedProductInfo(m_pProductInfoDetailed, g_detailedProductInfo.get());
@@ -682,6 +732,7 @@ void SonyCommerce_Orbis::commerce2Handler( const sce::Toolkit::NP::Event& event)
copyAddDetailedProductInfo(m_pProductInfo, g_detailedProductInfo.get());
m_pProductInfo = NULL;
}
#endif
m_event = e_event_commerceGotDetailedProductInfo;
break;
}
@@ -1145,8 +1196,8 @@ void SonyCommerce_Orbis::CreateSession( CallbackFunc cb, LPVOID lpParam )
setCallback(cb,lpParam);
// We don't need to create a session on PS4, from the Sony docs -
// This function is provided to maintain compatibility with the PlayStation®Vita and PlayStation®3
// platforms. Because commerce on the PlayStation®4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
// This function is provided to maintain compatibility with the PlayStationVita and PlayStation3
// platforms. Because commerce on the PlayStation4 is not session based, SCE_TOOLKIT_NP_SUCCESS is always returned.
@@ -35,14 +35,23 @@ int g_loadedPCMVoiceDataSizes[4];
int g_loadedPCMVoiceDataPos[4];
char* g_loadedPCMVoiceData[4];
static void CreatePort(uint32_t *portId, const SceVoicePortParam *pArg)
{
C4JThread::PushAffinityAllCores(); // PS4 only
int err = sceVoiceCreatePort( portId, pArg );
assert(err == SCE_OK);
assert(*portId != SCE_VOICE_INVALID_PORT_ID);
C4JThread::PopAffinity(); // PS4 only
static bool CreatePort(uint32_t *portId, const SceVoicePortParam *pArg)
{
C4JThread::PushAffinityAllCores();
*portId = SCE_VOICE_INVALID_PORT_ID;
int err = sceVoiceCreatePort(portId, pArg);
//assert(err == SCE_OK);
//assert(*portId != VOICE_INVALID_PORT_ID);
C4JThread::PopAffinity();
if (err != SCE_OK || *portId == SCE_VOICE_INVALID_PORT_ID)
{
return false;
}
return true;
}
static void DeletePort(uint32_t& port)
@@ -122,7 +131,12 @@ void SonyVoiceChat_Orbis::init()
portArgs.volume = 1.0f;
portArgs.voice.bitrate = VOICE_ENCODED_FORMAT;
#endif
CreatePort( &m_voiceOutPort, &portArgs );
//CreatePort( &m_voiceOutPort, &portArgs );
if (!CreatePort(&m_voiceOutPort, &portArgs))
{
return;
}
start();
m_bInitialised = true;
@@ -8,7 +8,6 @@
static const int sc_maxVoiceDataSize = 2048;
class VoicePacket
{
static const int MAX_LOCAL_PLAYER_COUNT = 4;
@@ -86,10 +85,10 @@ public:
SceUserServiceUserId m_localUserID;
public:
SQRLocalVoiceDevice()
: m_headsetPort(SCE_VOICE_INVALID_PORT_ID)
SQRLocalVoiceDevice()
: m_localUserID(SCE_USER_SERVICE_USER_ID_INVALID)
, m_headsetPort(SCE_VOICE_INVALID_PORT_ID)
, m_microphonePort(SCE_VOICE_INVALID_PORT_ID)
, m_localUserID(SCE_USER_SERVICE_USER_ID_INVALID)
{
for(int i=0;i<4;i++)
m_localConnections[i] = 0;
@@ -1675,9 +1675,69 @@ Can also be used for low-level lighting.</value>
<data name="IDS_DESC_SKULL">
<value>Mob Heads can be placed as a decoration, or worn as a mask in the helmet slot.</value>
</data>
</data>
<data name="IDS_SQUID">
<data name="IDS_DESC_COMMAND_BLOCK">
<value>Used to execute commands.</value>
</data>
<data name="IDS_DESC_BEACON">
<value>Projects a beam of light into the sky and can provide Status Effects to nearby players.</value>
</data>
<data name="IDS_DESC_CHEST_TRAP">
<value>Stores blocks and items inside. Place two chest side by side to create a larger chest with double capacity. The trapped chest also creates a Redstone charge when opened.</value>
</data>
<data name="IDS_DESC_WEIGHTED_PLATE_LIGHT">
<value>Provides a Redstone charge. The charge will be stronger if more items are on the plate.</value>
</data>
<data name="IDS_DESC_WEIGHTED_PLATE_HEAVY">
<value>Provides a Redstone charge. The charge will be stronger if more items are on the plate. Requires more weight than the light plate.</value>
</data>
<data name="IDS_DESC_REDSTONE_BLOCK">
<value>Used as a redstone power source. Can be crafted back into Redstone.</value>
</data>
<data name="IDS_DESC_HOPPER">
<value>Used to catch items or to transfer items into and out of containers.</value>
</data>
<data name="IDS_DESC_ACTIVATOR_RAIL">
<value>A type of rail that can enable or disable Minecarts with Hoppers and trigger Minecarts with TNT.</value>
</data>
<data name="IDS_DESC_DROPPER">
<value>Used to hold and drop items, or push items into another container, when given a Redstone charge.</value>
</data>
<data name="IDS_DESC_STAINED_CLAY">
<value>Colorful blocks crafted by dyeing Hardened clay.</value>
</data>
<data name="IDS_DESC_HAY">
<value>Can be fed to Horses, Donkeys or Mules to heal up to 10 Hearts. Speeds up the growth of foals.</value>
</data>
<data name="IDS_DESC_HARDENED_CLAY">
<value>Created by smelting Clay in a furnace.</value>
</data>
<data name="IDS_DESC_STAINED_GLASS">
<value>Crafted from glass and a dye.</value>
</data>
<data name="IDS_DESC_STAINED_GLASS_PANE">
<value>Crafted from Stained Glass</value>
</data>
<data name="IDS_DESC_COAL_BLOCK">
<value>A compact way of storing Coal. Can be used as fuel in a Furnace.</value>
</data>
<data name="IDS_SQUID">
<value>Squid</value>
</data>
@@ -2895,9 +2955,13 @@ Can also be used for low-level lighting.</value>
<data name="IDS_TILE_JUNGLE_PLANKS">
<value>Jungle Wood Planks</value>
</data>
</data>
<data name="IDS_TILE_SAPLING">
<data name="IDS_TILE_PLANKS">
<value>Wood Planks (any type)</value>
</data>
<data name="IDS_TILE_SAPLING">
<value>Sapling</value>
</data>
@@ -5688,9 +5752,41 @@ Can also be used for low-level lighting.</value>
<data name="IDS_TOOLTIPS_CLEARSLOTS">
<value>Clear All Slots</value>
</data>
</data>
<data name="IDS_CONFIRM_OK">
<data name="IDS_TOOLTIPS_MOUNT">
<value>Mount</value>
</data>
<data name="IDS_TOOLTIPS_DISMOUNT">
<value>Dismount</value>
</data>
<data name="IDS_TOOLTIPS_SADDLEBAGS">
<value>Attach Chest</value>
</data>
<data name="IDS_TOOLTIPS_FIREWORK_LAUNCH">
<value>Launch</value>
</data>
<data name="IDS_TOOLTIPS_LEASH">
<value>Leash</value>
</data>
<data name="IDS_TOOLTIPS_UNLEASH">
<value>Release</value>
</data>
<data name="IDS_TOOLTIPS_ATTACH">
<value>Attach</value>
</data>
<data name="IDS_TOOLTIPS_NAME">
<value>Name</value>
</data>
<data name="IDS_CONFIRM_OK">
<value>OK</value>
</data>
@@ -5700,9 +5796,13 @@ Can also be used for low-level lighting.</value>
<data name="IDS_DOWNLOADABLECONTENT">
<value>Minecraft Store</value>
</data>
</data>
<data name="IDS_EXIT_GAME">
<data name="IDS_CONFIRM_LEAVE_VIA_INVITE">
<value>Are you sure you want to leave your current game and join the new one? Any unsaved progress will be lost.</value>
</data>
<data name="IDS_EXIT_GAME">
<value>Exit Game</value>
</data>
@@ -5732,9 +5832,17 @@ Can also be used for low-level lighting.</value>
<data name="IDS_CORRUPT_OR_DAMAGED_SAVE_TEXT">
<value>This save is corrupt or damaged. Would you like to delete it?</value>
</data>
</data>
<data name="IDS_CONFIRM_EXIT_GAME_CONFIRM_DISCONNECT_SAVE">
<data name="IDS_CORRUPT_OPTIONS_RETRY">
<value>Str1k3r: Placeholder</value>
</data>
<data name="IDS_CORRUPT_OPTIONS_DELETE">
<value>Str1k3r: Placeholder</value>
</data>
<data name="IDS_CONFIRM_EXIT_GAME_CONFIRM_DISCONNECT_SAVE">
<value>Are you sure you want to exit to the main menu and disconnect all players from the game? Any unsaved progress will be lost.</value>
</data>
@@ -5744,9 +5852,13 @@ Can also be used for low-level lighting.</value>
<data name="IDS_EXIT_GAME_NO_SAVE">
<value>Exit without saving</value>
</data>
</data>
<data name="IDS_CONFIRM_EXIT_GAME_PROGRESS_LOST">
<data name="IDS_CONFIRM_EXIT_GAME">
<value>Are you sure you want to exit to the main menu? Any unsaved progress will be lost.</value>
</data>
<data name="IDS_CONFIRM_EXIT_GAME_PROGRESS_LOST">
<value>Are you sure you want to exit to the main menu? Your progress will be lost!</value>
</data>
@@ -6503,9 +6615,13 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_GAMEMODE_CREATIVE">
<value>Game Mode: Creative</value>
</data>
</data>
<data name="IDS_SURVIVAL">
<data name="IDS_GAMEMODE_ADVENTURE">
<value>Game Mode: Adventure</value>
</data>
<data name="IDS_SURVIVAL">
<value>Survival</value>
</data>
@@ -6517,6 +6633,10 @@ Would you like to install the mash-up pack or texture pack now?</value>
<value>Adventure</value>
</data>
<data name="IDS_ADVENTURE">
<value>Adventure</value>
</data>
<data name="IDS_CREATED_IN_SURVIVAL">
<value>Created in Survival Mode</value>
</data>
@@ -6555,9 +6675,13 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_LEVELTYPE_SUPERFLAT">
<value>Superflat</value>
</data>
</data>
<data name="IDS_GAMEOPTION_ONLINE">
<data name="IDS_GAMEOPTION_SEED">
<value>Enter a seed to generate the same terrain again. Leave blank for a random world.</value>
</data>
<data name="IDS_GAMEOPTION_ONLINE">
<value>When enabled, the game will be an online game.</value>
</data>
@@ -6575,13 +6699,29 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_GAMEOPTION_TRUST">
<value>When disabled, players joining the game cannot build or mine until authorised.</value>
</data>
</data>
<data name="IDS_GAMEOPTION_FIRE_SPREADS">
<data name="IDS_INCREASE_WORLD_SIZE">
<value>Increase World Size</value>
</data>
<data name="IDS_INCREASE_WORLD_SIZE_OVERWRITE_EDGES">
<value>Overwrite World Edges</value>
</data>
<data name="IDS_GAMEOPTION_FIRE_SPREADS">
<value>When enabled, fire may spread to nearby flammable blocks.</value>
</data>
</data>
<data name="IDS_GAMEOPTION_TNT_EXPLODES">
<data name="IDS_GAMEOPTION_INCREASE_WORLD_SIZE">
<value>Select a larger world size to increase the amount of the world that you can explore. Larger worlds cannot be made smaller again.</value>
</data>
<data name="IDS_GAMEOPTION_INCREASE_WORLD_SIZE_OVERWRITE_EDGES">
<value>When enabled, the outer 32 tiles around the world edge will be overwritten by newly generated tiles to make the world size increase seamless. When disabled, the world size increase will leave all original tiles intact.</value>
</data>
<data name="IDS_GAMEOPTION_TNT_EXPLODES">
<value>When enabled, TNT will explode when activated.</value>
</data>
@@ -7110,9 +7250,13 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_MAX_CHICKENS_BRED">
<value>This animal can't enter Love Mode. The maximum number of breeding Chickens has been reached.</value>
</data>
</data>
<data name="IDS_MAX_MUSHROOMCOWS_BRED">
<data name="IDS_MAX_HORSES_BRED">
<value>This animal can't enter Love Mode. The maximum number of breeding horses has been reached.</value>
</data>
<data name="IDS_MAX_MUSHROOMCOWS_BRED">
<value>This animal can't enter Love Mode. The maximum number of breeding Mooshrooms has been reached.</value>
</data>
@@ -7162,7 +7306,11 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_CREDITS">
<value>Credits</value>
</data>
</data>
<data name="IDS_LANGUAGE_SELECTOR">
<value>Languages</value>
</data>
<data name="IDS_REINSTALL_CONTENT">
<value>Reinstall Content</value>
@@ -7566,9 +7714,25 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_POTION_POISON">
<value>Poison</value>
</data>
</data>
<data name="IDS_POTION_MOVESPEED_POSTFIX">
<data name="IDS_POTION_WITHER">
<value>Wither</value>
</data>
<data name="IDS_POTION_HEALTHBOOST">
<value>Health Boost</value>
</data>
<data name="IDS_POTION_ABSORPTION">
<value>Absorption</value>
</data>
<data name="IDS_POTION_SATURATION">
<value>Saturation</value>
</data>
<data name="IDS_POTION_MOVESPEED_POSTFIX">
<value>of Swiftness</value>
</data>
@@ -7642,9 +7806,25 @@ Would you like to install the mash-up pack or texture pack now?</value>
<data name="IDS_POTION_POISON_POSTFIX">
<value>of Poison</value>
</data>
</data>
<data name="IDS_POTION_POTENCY_0">
<data name="IDS_POTION_WITHER_POSTFIX">
<value>of Decay</value>
</data>
<data name="IDS_POTION_HEALTHBOOST_POSTFIX">
<value>of Health Boost</value>
</data>
<data name="IDS_POTION_ABSORPTION_POSTFIX">
<value>of Absorption</value>
</data>
<data name="IDS_POTION_SATURATION_POSTFIX">
<value>of Saturation</value>
</data>
<data name="IDS_POTION_POTENCY_0">
<value/>
</data>
@@ -7837,6 +8017,10 @@ Would you like to install the mash-up pack or texture pack now?</value>
<value>Reduces health of the affected players, animals and monsters over time.</value>
</data>
<data name="IDS_POTION_EFFECTS_WHENDRANK">
<value>When Applied:</value>
</data>
<data name="IDS_ATTRIBUTE_NAME_HORSE_JUMPSTRENGTH">
<value>Horse Jump Strength</value>
</data>
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="IDS_LANG_SYSTEM">
<value>System Language</value>
</data>
<data name="IDS_LANG_ENGLISH">
<value>English</value>
</data>
<data name="IDS_LANG_GERMAN">
<value>German</value>
</data>
<data name="IDS_LANG_SPANISH">
<value>Spanish</value>
</data>
<data name="IDS_LANG_SPANISH_SPAIN">
<value>Spanish (Spain)</value>
</data>
<data name="IDS_LANG_SPANISH_LATIN_AMERICA">
<value>Spanish (Latin America)</value>
</data>
<data name="IDS_LANG_FRENCH">
<value>French</value>
</data>
<data name="IDS_LANG_ITALIAN">
<value>Italian</value>
</data>
<data name="IDS_LANG_PORTUGUESE">
<value>Portuguese</value>
</data>
<data name="IDS_LANG_PORTUGUESE_PORTUGAL">
<value>Portuguese (Portugal)</value>
</data>
<data name="IDS_LANG_PORTUGUESE_BRAZIL">
<value>Portuguese (Brazil)</value>
</data>
<data name="IDS_LANG_JAPANESE">
<value>Japanese</value>
</data>
<data name="IDS_LANG_KOREAN">
<value>Korean</value>
</data>
<data name="IDS_LANG_CHINESE_TRADITIONAL">
<value>Chinese (Traditional)</value>
</data>
<data name="IDS_LANG_CHINESE_SIMPLIFIED">
<value>Chinese (Simplified)</value>
</data>
<data name="IDS_LANG_DANISH">
<value>Danish</value>
</data>
<data name="IDS_LANG_FINISH">
<value>Finnish</value>
</data>
<data name="IDS_LANG_DUTCH">
<value>Dutch</value>
</data>
<data name="IDS_LANG_POLISH">
<value>Polish</value>
</data>
<data name="IDS_LANG_RUSSIAN">
<value>Russian</value>
</data>
<data name="IDS_LANG_SWEDISH">
<value>Swedish</value>
</data>
<data name="IDS_LANG_NORWEGIAN">
<value>Norwegian</value>
</data>
<data name="IDS_LANG_GREEK">
<value>Greek</value>
</data>
<data name="IDS_LANG_TURKISH">
<value>Turkish</value>
</data>
</root>
@@ -270,6 +270,10 @@ If you try to save while using the trial version, you will be given the option t
<value>Download Failed. Please try again later.</value>
</data>
<data name="IDS_SAVE_TRANSFER_WRONG_VERSION">
<value>The saved file in the download area has a version number that Minecraft: PlayStation®4 Edition does not yet support.</value>
</data>
<data name="IDS_DISCONNECTED_NAT_TYPE_MISMATCH">
<value>Failed to join the game due to a restrictive NAT type. Please check your network settings.</value>
</data>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,110 +1,33 @@
#pragma once
#include "..\..\Common\Leaderboards\LeaderboardManager.h"
#include "..\..\..\Minecraft.World\x64headers\extraX64.h"
#include "Common\Leaderboards\SonyLeaderboardManager.h"
#include "Common\Leaderboards\LeaderboardManager.h"
#include "PS3\Passphrase\ps3__np_conf.h"
using namespace std;
class PS3LeaderboardManager : public LeaderboardManager
class PS3LeaderboardManager : public SonyLeaderboardManager
{
protected:
enum EStatsState
{
eStatsState_Idle,
eStatsState_Getting,
eStatsState_Failed,
eStatsState_Ready,
eStatsState_Canceled,
//eStatsState_Writing,
eStatsState_Max
};
public:
PS3LeaderboardManager();
virtual ~PS3LeaderboardManager();
private:
unsigned short m_openSessions;
protected:
C4JThread *m_threadScoreboard;
bool m_running;
virtual HRESULT initialiseScoreUtility();
int32_t m_titleContext;
int m_transactionCtx;
virtual bool scoreUtilityAlreadyInitialised(HRESULT hr);
//SceNpId m_myNpId;
virtual HRESULT createTitleContext(const SceNpId &npId);
static int scoreboardThreadEntry(LPVOID lpParam);
void scoreboardThreadInternal();
virtual HRESULT destroyTitleContext(int titleContext);
bool getScoreByIds();
bool getScoreByRange();
virtual HRESULT createTransactionContext(int titleContext);
bool setScore();
queue<RegisterScore> m_views;
virtual HRESULT abortTransactionContext(int transactionContext);
CRITICAL_SECTION m_csViewsLock;
virtual HRESULT destroyTransactionContext(int transactionContext);
EStatsState m_eStatsState; //State of the stats read
// EFilterMode m_eFilterMode;
virtual HRESULT getFriendsList(const SceNpId &myNpId, SceNpId* &npIds, uint32_t &len);
ReadScore *m_scores;
unsigned int m_maxRank;
//SceNpScoreRankData *m_stats;
public:
virtual void Tick();
//Open a session
virtual bool OpenSession();
//Close a session
virtual void CloseSession();
//Delete a session
virtual void DeleteSession();
//Write the given stats
//This is called synchronously and will not free any memory allocated for views when it is done
virtual bool WriteStats(unsigned int viewCount, ViewIn views);
virtual bool ReadStats_Friends(LeaderboardReadListener *listener, int difficulty, EStatsType type, PlayerUID myUID, unsigned int startIndex, unsigned int readCount);
virtual bool ReadStats_MyScore(LeaderboardReadListener *listener, int difficulty, EStatsType type, PlayerUID myUID, unsigned int readCount);
virtual bool ReadStats_TopRank(LeaderboardReadListener *listener, int difficulty, EStatsType type, unsigned int startIndex, unsigned int readCount);
//Perform a flush of the stats
virtual void FlushStats();
//Cancel the current operation
virtual void CancelOperation();
//Is the leaderboard manager idle.
virtual bool isIdle();
private:
int getBoardId(int difficulty, EStatsType);
//LeaderboardManager::ReadScore *filterJustScorers(unsigned int &num, LeaderboardManager::ReadScore *friendsData);
SceNpScorePlayerRankData *addPadding(unsigned int num, SceNpScoreRankData *rankData);
void convertToOutput(unsigned int &num, ReadScore *out, SceNpScorePlayerRankData *rankData, SceNpScoreComment *comm);
void toBinary(void *out, SceNpScoreComment *in);
void fromBinary(SceNpScoreComment **out, void *in);
void toBase32(SceNpScoreComment *out, void *in);
void fromBase32(void *out, SceNpScoreComment *in);
void toSymbols(char *);
void fromSymbols(char *);
bool test_string(string);
void initReadScoreStruct(ReadScore &out, SceNpScoreRankData &);
void fillReadScoreStruct(ReadScore &out, SceNpScoreComment &comment);
static bool SortByRank(const ReadScore &lhs, const ReadScore &rhs);
virtual char * getComment(SceNpScoreComment *comment);
};
@@ -55,7 +55,10 @@ HRESULT PSVitaLeaderboardManager::destroyTransactionContext(int transactionConte
HRESULT PSVitaLeaderboardManager::getFriendsList(sce::Toolkit::NP::Utilities::Future<sce::Toolkit::NP::FriendsList> &friendsList)
{
return sce::Toolkit::NP::Friends::Interface::getFriendslist(&friendsList, false);
// Stubbed: the vendored libSceNpToolkit_rtti.a only exports getFriendslist() for
// Future<vector<Friend>>, but this SDK's headers declare FriendsList as vector<NpUser>,
// so the real call is an undefined symbol at link time. Fail gracefully until the lib is updated.
return -1;
}
char *PSVitaLeaderboardManager::getComment(SceNpScoreComment *comment)
+1 -1
View File
@@ -340,7 +340,7 @@ typedef XUID GameSessionUID;
#ifdef _FINAL_BUILD
#if defined(_FINAL_BUILD) && !defined(_WINDOWS64)
#define printf BREAKTHECOMPILE
#define wprintf BREAKTHECOMPILE
#undef OutputDebugString
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -135,7 +135,7 @@ typedef XUID GameSessionUID;
#include "PerformanceTimer.h"
#ifdef _FINAL_BUILD
#if defined(_FINAL_BUILD) && !defined(_WINDOWS64)
#define printf BREAKTHECOMPILE
#define wprintf BREAKTHECOMPILE
#undef OutputDebugString
+46 -45
View File
@@ -48,29 +48,30 @@ Global
ReleaseForArt|Xbox 360 = ReleaseForArt|Xbox 360
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|Durango.ActiveCfg = ContentPackage_NO_TU|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|ORBIS.ActiveCfg = ContentPackage_NO_TU|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|Durango.ActiveCfg = ContentPackage_NO_TU|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|ORBIS.ActiveCfg = ContentPackage_NO_TU|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|PS3.ActiveCfg = ContentPackage_NO_TU|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|PS3.Build.0 = ContentPackage_NO_TU|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|PSVita.ActiveCfg = ContentPackage_NO_TU|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|PSVita.ActiveCfg = ContentPackage_NO_TU|PSVita
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|Windows64.ActiveCfg = ContentPackage_NO_TU|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|Xbox 360.ActiveCfg = ContentPackage_NO_TU|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|Durango.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|ORBIS.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|Windows64.Build.0 = ContentPackage_NO_TU|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage_NO_TU|Xbox 360.ActiveCfg = ContentPackage_NO_TU|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|Durango.ActiveCfg = CONTENTPACKAGE_SYMBOLS|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|ORBIS.ActiveCfg = CONTENTPACKAGE_SYMBOLS|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|PS3.ActiveCfg = CONTENTPACKAGE_SYMBOLS|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|PS3.Build.0 = CONTENTPACKAGE_SYMBOLS|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|PSVita.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|PSVita.ActiveCfg = CONTENTPACKAGE_SYMBOLS|PSVita
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|Windows64.ActiveCfg = CONTENTPACKAGE_SYMBOLS|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|Xbox 360.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Durango.ActiveCfg = ContentPackage|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|ORBIS.ActiveCfg = ContentPackage|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|Windows64.Build.0 = CONTENTPACKAGE_SYMBOLS|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.CONTENTPACKAGE_SYMBOLS|Xbox 360.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Durango.ActiveCfg = ContentPackage|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|ORBIS.ActiveCfg = ContentPackage|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|PS3.ActiveCfg = ContentPackage|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|PS3.Build.0 = ContentPackage|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|PSVita.ActiveCfg = ContentPackage|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|PSVita.ActiveCfg = ContentPackage|PSVita
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|PSVita.Build.0 = ContentPackage|PSVita
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Windows64.ActiveCfg = ContentPackage|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Windows64.Build.0 = ContentPackage|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Xbox 360.ActiveCfg = ContentPackage|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|Durango.ActiveCfg = Debug|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Xbox 360.ActiveCfg = ContentPackage|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ContentPackage|Xbox 360.Build.0 = ContentPackage|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|Durango.ActiveCfg = Debug|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|ORBIS.Build.0 = Debug|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|PS3.ActiveCfg = Debug|PS3
@@ -80,8 +81,7 @@ Global
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|Windows64.ActiveCfg = Debug|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|Windows64.Build.0 = Debug|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|Durango.ActiveCfg = Release|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|Durango.ActiveCfg = Release|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|ORBIS.ActiveCfg = Release|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|ORBIS.Build.0 = Release|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|PS3.ActiveCfg = Release|PS3
@@ -91,36 +91,38 @@ Global
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|Windows64.ActiveCfg = Release|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|Windows64.Build.0 = Release|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.Release|Xbox 360.Build.0 = Release|Xbox 360
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|Durango.ActiveCfg = ReleaseForArt|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|ORBIS.ActiveCfg = ReleaseForArt|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|ORBIS.ActiveCfg = ReleaseForArt|ORBIS
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|PS3.ActiveCfg = ReleaseForArt|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|PS3.Build.0 = ReleaseForArt|PS3
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|PSVita.ActiveCfg = ReleaseForArt|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|PSVita.ActiveCfg = ReleaseForArt|PSVita
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|Windows64.ActiveCfg = ReleaseForArt|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|Xbox 360.ActiveCfg = ReleaseForArt|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|Durango.ActiveCfg = ContentPackage_NO_TU|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|ORBIS.ActiveCfg = ContentPackage_NO_TU|Win32
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|Windows64.Build.0 = ReleaseForArt|x64
{F046C3CE-9749-4823-B32B-D9CC10B1A2C8}.ReleaseForArt|Xbox 360.ActiveCfg = ReleaseForArt|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|Durango.ActiveCfg = ContentPackage_NO_TU|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|ORBIS.ActiveCfg = ContentPackage_NO_TU|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|PS3.ActiveCfg = ContentPackage_NO_TU|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|PS3.Build.0 = ContentPackage_NO_TU|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|PSVita.ActiveCfg = ContentPackage_NO_TU|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|PSVita.ActiveCfg = ContentPackage_NO_TU|PSVita
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|Windows64.ActiveCfg = ContentPackage_NO_TU|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|Xbox 360.ActiveCfg = ContentPackage_NO_TU|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|Durango.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|ORBIS.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|Windows64.Build.0 = ContentPackage_NO_TU|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage_NO_TU|Xbox 360.ActiveCfg = ContentPackage_NO_TU|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|Durango.ActiveCfg = CONTENTPACKAGE_SYMBOLS|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|ORBIS.ActiveCfg = CONTENTPACKAGE_SYMBOLS|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|PS3.ActiveCfg = CONTENTPACKAGE_SYMBOLS|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|PS3.Build.0 = CONTENTPACKAGE_SYMBOLS|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|PSVita.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|PSVita.ActiveCfg = CONTENTPACKAGE_SYMBOLS|PSVita
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|Windows64.ActiveCfg = CONTENTPACKAGE_SYMBOLS|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|Xbox 360.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Durango.ActiveCfg = ContentPackage|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|ORBIS.ActiveCfg = ContentPackage|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|Windows64.Build.0 = CONTENTPACKAGE_SYMBOLS|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.CONTENTPACKAGE_SYMBOLS|Xbox 360.ActiveCfg = CONTENTPACKAGE_SYMBOLS|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Durango.ActiveCfg = ContentPackage|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|ORBIS.ActiveCfg = ContentPackage|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|PS3.ActiveCfg = ContentPackage|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|PS3.Build.0 = ContentPackage|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|PSVita.ActiveCfg = ContentPackage|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Windows64.ActiveCfg = ContentPackage|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Xbox 360.ActiveCfg = ContentPackage|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|Durango.ActiveCfg = Debug|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|PSVita.ActiveCfg = ContentPackage|PSVita
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|PSVita.Build.0 = ContentPackage|PSVita
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Windows64.ActiveCfg = ContentPackage|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Windows64.Build.0 = ContentPackage|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Xbox 360.ActiveCfg = ContentPackage|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ContentPackage|Xbox 360.Build.0 = ContentPackage|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|Durango.ActiveCfg = Debug|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|ORBIS.Build.0 = Debug|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|PS3.ActiveCfg = Debug|PS3
@@ -130,8 +132,7 @@ Global
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|Windows64.ActiveCfg = Debug|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|Windows64.Build.0 = Debug|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|Xbox 360.ActiveCfg = Debug|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Debug|Xbox 360.Build.0 = Debug|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|Durango.ActiveCfg = Release|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|Durango.ActiveCfg = Release|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|ORBIS.ActiveCfg = Release|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|ORBIS.Build.0 = Release|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|PS3.ActiveCfg = Release|PS3
@@ -142,14 +143,14 @@ Global
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|Windows64.Build.0 = Release|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|Windows64.Deploy.0 = Release|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|Xbox 360.ActiveCfg = Release|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.Release|Xbox 360.Build.0 = Release|Xbox 360
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|Durango.ActiveCfg = ReleaseForArt|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|ORBIS.ActiveCfg = ReleaseForArt|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|ORBIS.ActiveCfg = ReleaseForArt|ORBIS
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|PS3.ActiveCfg = ReleaseForArt|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|PS3.Build.0 = ReleaseForArt|PS3
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|PSVita.ActiveCfg = ReleaseForArt|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|PSVita.ActiveCfg = ReleaseForArt|PSVita
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|Windows64.ActiveCfg = ReleaseForArt|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|Xbox 360.ActiveCfg = ReleaseForArt|Win32
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|Windows64.Build.0 = ReleaseForArt|x64
{1B9A8C38-DD48-448C-AA24-E1A35E0089A3}.ReleaseForArt|Xbox 360.ActiveCfg = ReleaseForArt|Xbox 360
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
+2 -2
View File
@@ -8,9 +8,9 @@ Cafeberry is a project aiming to update the December 17th 2014 codebase (mostly)
| :------------- | :-------------------- | :------------------------------------------------------------------------ |
| PS3 | Active | SPU variants for TU19 blocks are missing, needs to be further optimized. |
| Xbox 360 | On hold | Havent tested, should work? |
| PS4 | Active | Only Buildable on Windows 7 With 1.70 SDK. See Notes |
| PS4 | Active | Only buildable on Windows 7 With 1.70 SDK. See Notes |
| Xbox One | On hold | Needs to be re-coded to run on Developer Mode UWP instead. |
| PS Vita | On hold | Fails during compilation due to missing network library dependencies. |
| PS Vita | Active | Only buildable on Windows 7 With 3.75 SDK. |
| Wii U & Switch | Work in progress | UI System (ImXui) is still in progress, need to decompile the rest. |
**Notes:**
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<psproject fmt="gp4" version="1000">
<volume>
<volume_type>bd25</volume_type>
<volume_id>PS4VOLUME</volume_id>
<volume_ts>2026-03-07 18:24:23</volume_ts>
<iso_fs_type>UDF2.50+ISO Lv3+Joliet</iso_fs_type>
<mdi_date>2026-03-07</mdi_date>
<mdi_copyright></mdi_copyright>
<mdi_producer></mdi_producer>
</volume>
<components layer0_align="outer">
<component component_type="system" label="">
<component_extent layer_no="0" order="0"/>
</component>
<component component_type="updater" label="">
<component_extent layer_no="0" order="1"/>
</component>
<component component_type="ps4_app" pkg_path="cafeberry.pkg" label="">
<component_extent layer_no="0" order="2"/>
</component>
</components>
</psproject>
BIN
View File
Binary file not shown.
+1186
View File
File diff suppressed because it is too large Load Diff