revert perf + fix: windows performance optimizations + x360 fixes + ps3 hdd corruption fix (#27)

revert perf + fix: windows performance optimizations + x360 fixes + ps3 hdd corruption fix (#27)

windows optimizations include:

- adding WPO/LTCG
- fixing potential memory leaks
- reducing unneeded busy waits

xbox 360 fixes include:

- all item names displaying as black
- adding newer dlcs crashing game

ps3 fix was that, when holding the ps button, it'd corrupt the hdd. NEEDS TESTING! just a guess fix since I don't have a PS3.

---------

Co-authored-by: pieeebot <piebot00@gmail.com>
Co-authored-by: piebot <piebot00@gmail.com>
Co-authored-by: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com>
Co-authored-by: str1k3r <1+str1k3r@noreply.localhost>
Co-authored-by: pieeebot <10+pieeebot@noreply.neolegacy.dev>
Co-authored-by: qloak <53+qloak@noreply.neolegacy.dev>
Reviewed-on: cafeberry/cafeberry#27
Co-authored-by: qloak <realminecart@gmail.com>
This commit is contained in:
2026-08-14 10:48:38 +00:00
co-authored by pieeebot str1k3r pieeebot qloak qloak
parent bad3a41225
commit 6a49df36cc
34 changed files with 82 additions and 209 deletions
@@ -406,12 +406,6 @@ bool DLCManager::processDLCDataFile(DWORD &dwFilesProcessed, PBYTE pbData, DWORD
unsigned int uiVersion=*(unsigned int *)pbData;
uiCurrentByte+=sizeof(int);
if(uiVersion > CURRENT_DLC_VERSION_NUM)
{
if(pbData!=NULL) delete [] pbData;
app.DebugPrintf("DLC version of %d is newer than this build can read (%d)\n", uiVersion, CURRENT_DLC_VERSION_NUM);
return false;
}
if(uiVersion < CURRENT_DLC_VERSION_NUM)
{
if(pbData!=NULL) delete [] pbData;
@@ -619,11 +613,6 @@ DWORD DLCManager::retrievePackID(PBYTE pbData, DWORD dwLength, DLCPack *pack)
unsigned int uiVersion=*(unsigned int *)pbData;
uiCurrentByte+=sizeof(int);
if(uiVersion > CURRENT_DLC_VERSION_NUM)
{
app.DebugPrintf("DLC version of %d is newer than this build can read (%d)\n", uiVersion, CURRENT_DLC_VERSION_NUM);
return 0;
}
if(uiVersion < CURRENT_DLC_VERSION_NUM)
{
app.DebugPrintf("DLC version of %d is too old to be read\n", uiVersion);
@@ -1,7 +1,7 @@
/*
base64.cpp and base64.h
Copyright (C) 2004-2008 Ren� Nyffenegger
Copyright (C) 2004-2008 René Nyffenegger
This source code is provided 'as-is', without any express or implied
warranty. In no event will the author be held liable for any damages
@@ -21,7 +21,7 @@
3. This notice may not be removed or altered from any source distribution.
Ren� Nyffenegger rene.nyffenegger@adp-gmbh.ch
René Nyffenegger rene.nyffenegger@adp-gmbh.ch
*/
@@ -41,7 +41,7 @@ static inline bool is_base64(unsigned char c) {
}
// 4J ADDED,
std::string base64_encode(const std::string& str)
std::string base64_encode(std::string str)
{
return base64_encode( reinterpret_cast<const unsigned char*>(str.c_str()), str.length() );
}
@@ -2,6 +2,6 @@
#include <string>
std::string base64_encode(const std::string& str);
std::string base64_encode(std::string str);
std::string base64_encode(unsigned char const* , unsigned int len);
std::string base64_decode(std::string const& s);
@@ -314,13 +314,13 @@ bool CGameNetworkManager::StartNetworkGame(Minecraft *minecraft, LPVOID lpParame
Minecraft *pMinecraft = Minecraft::GetInstance();
// Make sure that we have transitioned through any joining/creating stages and are actually playing the game, so that we know the players should be valid
bool changedMessage = false;
while(!IsReadyToPlayOrIdle())
{
changedMessage = true;
pMinecraft->progressRenderer->progressStage( g_NetworkManager.CorrectErrorIDS(IDS_PROGRESS_SAVING_TO_DISC) ); // "Finalizing..." vaguest message I could find
pMinecraft->progressRenderer->progressStagePercentage( g_NetworkManager.GetJoiningReadyPercentage() );
Sleep(0);
}
while(!IsReadyToPlayOrIdle())
{
changedMessage = true;
pMinecraft->progressRenderer->progressStage( g_NetworkManager.CorrectErrorIDS(IDS_PROGRESS_SAVING_TO_DISC) ); // "Finalizing..." vaguest message I could find
pMinecraft->progressRenderer->progressStagePercentage( g_NetworkManager.GetJoiningReadyPercentage() );
Sleep(10);
}
if( changedMessage )
{
pMinecraft->progressRenderer->progressStagePercentage( 100 );
@@ -898,7 +898,7 @@ int CGameNetworkManager::RunNetworkGameThreadProc( void* lpParameter )
TexturePack *tPack = Minecraft::GetInstance()->skins->getSelected();
while ( tPack->isLoadingData() || (Minecraft::GetInstance()->skins->needsUIUpdate() || ui.IsReloadingSkin()) )
{
Sleep(0);
Sleep(1);
}
ui.CleanUpSkinReload();
if(app.GetDisconnectReason() == DisconnectPacket::eDisconnect_None)
@@ -935,7 +935,7 @@ int CGameNetworkManager::ServerThreadProc( void* lpParameter )
{
while((Minecraft::GetInstance()->skins->needsUIUpdate() || ui.IsReloadingSkin()))
{
Sleep(0);
Sleep(1);
}
param->levelGen->loadBaseSaveData();
}
@@ -977,7 +977,7 @@ int CGameNetworkManager::ExitAndJoinFromInviteThreadProc( void* lpParam )
while( g_NetworkManager.IsInSession() )
{
Sleep(0);
Sleep(1);
}
// Xbox should always be online when receiving invites - on PS3 we need to check & ask the user to sign in
@@ -1237,7 +1237,7 @@ int CGameNetworkManager::ChangeSessionTypeThreadProc( void* lpParam )
// wait for the current session to end
while( g_NetworkManager.IsInSession() )
{
Sleep(0);
Sleep(1);
}
// Reset this flag as the we don't need to know that we only lost the room only from this point onwards, the behaviour is exactly the same
@@ -454,7 +454,12 @@ void CXuiSceneAbstractContainer::SetPointerText(vector<HtmlString> *description,
return;
}
wstring combinedText = HtmlString::Compose(description);
wstring combinedText;
for(size_t i = 0; i < description->size(); ++i)
{
combinedText += (*description)[i].text;
if(i + 1 < description->size()) combinedText += L"\n";
}
vector<wstring> unformattedStrings;
for(size_t i = 0; i < description->size(); ++i)