45 Commits
Author SHA1 Message Date
str1k3r c988bd564d update submodule 2026-08-15 19:00:49 -04:00
str1k3r 71a972a033 fix: windows64 release workflow 2026-08-15 18:17:06 -04:00
str1k3r a047df6dc4 feat: release workflow for windows64 only 2026-08-15 22:08:57 +00:00
str1k3r 1763155fc6 fix: missing stuff from last commit 2026-08-15 17:17:27 -04:00
str1k3r 1a903c65dc fix: down DPAD opening 2 menus. small UI Parity, fix debug ifdefs, add -resolution arg, remove random debugbreak 2026-08-15 14:46:34 -04:00
str1k3r 9d19fdc5f5 feat: Fullscreen, fix sending input when window not focused, fix iggy lib not being copied & request dedicated GPU 2026-08-14 19:44:30 -04:00
qloakandstr1k3r 14cd85e7ed fix: Xbox 360 fixes (#31)
Fixes black text and newer DLCs crashingReviewed-on: cafeberry/cafeberry#31

Co-authored-by: qloak <realminecart@gmail.com>
2026-08-14 21:32:25 +00:00
str1k3r 82e802873f fix: duplicates for windows64 & update postbuild copies 2026-08-14 16:50:56 -04:00
str1k3r ecb1a93444 fix: Miles Sound System on Windows64 & Move all msscmp's to media folders 2026-08-14 16:37:58 -04:00
6a49df36cc 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>
2026-08-14 10:48:38 +00:00
bad3a41225 perf + fix: windows performance optimizations + x360 fixes + ps3 hdd corruption fix (#27)
title

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>
2026-08-14 05:09:20 +00:00
str1k3r 46caf4727c fix: g_bResolutionSetByCMD causing windows64 to not compile sometimes 2026-08-13 19:09:39 -04:00
str1k3r 47ea98fc86 fix: widescreen check only working if res was not cmd set 2026-08-13 00:21:01 -04:00
str1k3r d0362d2458 fix: res set over cmd not applying 2026-08-12 21:36:08 -04:00
str1k3r 82783c0812 feat(Windows64): safely exit game & get monitors size that has the game window instead of primary 2026-08-12 18:18:41 -04:00
str1k3r bd0cc59a54 chore: update .gitignore 2026-08-11 21:25:56 -04:00
str1k3r 81d41a6a04 feat(Windows64): use screen size instead of window size, fix exit game, fix oprhaned saves on exit without saving 2026-08-11 20:27:34 -04:00
str1k3r 0031cae3e3 fix: m_fScreen Width & Height missing .0f for 8th gen consoles 2026-08-11 18:45:04 -04:00
str1k3r 251cd8e304 feat(Windows64): fetch screen size instead of hardcoding & cleanup project filter 2026-08-11 18:36:29 -04:00
str1k3r df2a4d85ef fix: save space indicator & windows64 image scaling 2026-08-11 15:29:53 -04:00
str1k3r b737c3eccb feat(Windows64): ReloadSkin on another thread & improved screen height to swf 2026-08-10 00:28:30 -04:00
str1k3r 77a4ee39b5 fix: postbuilds 2026-08-09 23:43:30 -04:00
str1k3r 7fb2db5ed7 fix: SD3 lib being copied & update paths 2026-08-09 22:45:13 -04:00
str1k3r 90a2391e92 fix: SDL3 dll not being copied 2026-08-09 10:58:07 -04:00
str1k3r 36afa4a59f feat: SDL3 4JLibs 2026-08-09 00:34:21 -04:00
str1k3r eb317d8fbd chore: Bump 4JLibs 2026-08-08 21:08:50 -04:00
str1k3r af2040a849 fix: 4JLibs building, windows64 files not copying & add buildsteps to solution filter 2026-08-08 20:56:23 -04:00
str1k3r 9cba342973 feat: update submodule, more proper 4JLibs checks 2026-08-08 19:58:37 -04:00
str1k3r 8055f4dfc7 fix: world thumbnails 2026-08-08 15:09:57 -04:00
str1k3r 3ea3c08372 update submodule
SDL was being a bitch
2026-08-08 15:00:18 -04:00
str1k3r 9a729de7c3 fix: submodule tracking unneeded files 2026-08-08 14:19:49 -04:00
str1k3r 274f2ddc61 fix: submodule 2026-08-08 14:11:30 -04:00
str1k3r 831ec7292d fix: save space indicator
Credits to smartcmd for the base of this
2026-08-08 14:08:00 -04:00
str1k3r 13285fbffa feat: 4JLibs submodule 2026-08-08 14:06:08 -04:00
str1k3r 3866e525f1 fix(Windows64): 720p crash, Update README & .gitignore 2026-08-03 21:55:05 -04:00
str1k3r 9254fbcdb3 fix: ps3 zip not ignoring .self, stop tracking .vcxproj.user 2026-08-03 18:28:00 -04:00
str1k3r e8d19516e6 fix: windows64 release build
Release is actually a "Debug without extra shit" so we dont use _FINAL_BUILD
2026-08-03 16:32:30 -04:00
str1k3r 8bae3cfbc1 fix: ps3 zip 2026-08-03 15:27:43 -04:00
str1k3r 7f4227d902 fix: my mistake on workflow 2026-08-03 15:14:31 -04:00
str1k3r d9327ff1f5 fix: dangling build on workflow 2026-08-03 15:11:57 -04:00
str1k3r d770e58992 fix: workflows throwing GHES error 2026-08-03 15:03:16 -04:00
str1k3r 0889edf3bd chore: make the SPU Tasks SLN use $(Configuration) & $(Platform) 2026-08-03 14:40:28 -04:00
str1k3r 6e13d5d4c0 fix: PS3 & Windows64 ContentPackage, Exclude PSVita libs & OldSDK from other plats 2026-08-03 14:27:03 -04:00
str1k3r cffdcb1971 fix: release workflow notes 2026-08-03 10:31:04 +00:00
str1k3r eb80f3e52b fix(PS3): SPU Tasks not being built 2026-08-02 20:47:50 -04:00
246 changed files with 2264 additions and 5515 deletions
+114
View File
@@ -0,0 +1,114 @@
name: Build & Release Windows64
on:
workflow_dispatch:
inputs:
version:
description: 'Version tag for release (e.g. v1.0.0).'
required: true
default: ''
notes:
description: 'URL to notes for release.'
required: false
default: ''
jobs:
validate:
runs-on: windows-2022
steps:
- name: Validate version format
run: |
if (-not ("${{ inputs.version }}" -match '^v\d+\.\d+\.\d+[a-zA-Z0-9.-]*$')) {
Write-Error "Version '${{ inputs.version }}' doesn't match expected format (e.g. v1.0.0)"
exit 1
}
build:
needs: validate
strategy:
matrix:
configuration: [ContentPackage]
platform: [Windows64]
include:
- platform: Windows64
sdk_label: windows-2022 # str1k3r - can run on any runner
runs-on: [windows-2022, "${{ matrix.sdk_label }}"]
steps:
- name: Checkout Repository
uses: https://github.com/actions/checkout@v4
with:
fetch-depth: 1
clean: false
lfs: false
submodules: true
- name: Build Cafeberry
run: |
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" MinecraftConsoles.sln `
/p:Configuration=${{ matrix.configuration }} `
/p:Platform=${{ matrix.platform }} `
/m
- name: Zip Build
run: |
7z a -r "LCEWindows64.zip" "./x64/${{ matrix.configuration }}/*" "-x!*.pdb" "-x!*.pch" "-x!*.ilk" "-x!*.lib" "-x!*.exp"
- name: Stage artifacts
run: |
New-Item -ItemType Directory -Force -Path staging
Copy-Item "LCE${{ matrix.platform }}.zip" staging/
Copy-Item "./x64/${{ matrix.configuration }}/Minecraft.Client.exe" staging/
- name: Upload artifacts
uses: https://github.com/christopherHX/gitea-upload-artifact@v4
with:
name: build-${{ matrix.platform }}
path: staging/*
compression-level: 0
release:
needs: build
runs-on: windows-2022
steps:
- name: Download all build artifacts
uses: https://github.com/christopherHX/gitea-download-artifact@v4
with:
path: downloaded
- name: Fetch release notes
id: notes
run: |
$notesSource = "${{ inputs.notes }}"
$fallback = "## Cafeberry`n`n### Whoever made this release forgot to put notes, sorry!"
if ($notesSource -match '^https?://') {
try {
$body = (Invoke-WebRequest -Uri $notesSource -UseBasicParsing).Content
if ([string]::IsNullOrWhiteSpace($body)) { $body = $fallback }
} catch {
$body = $fallback
}
} else {
$body = $fallback
}
$delimiter = "EOF_$([System.Guid]::NewGuid().ToString('N'))"
$content = "description<<$delimiter`n$body`n$delimiter`n"
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::AppendAllText($env:GITHUB_OUTPUT, $content, $utf8NoBom)
- name: Publish Release
uses: akkuman/gitea-release-action@v1
with:
name: ${{ inputs.version }}
server_url: ${{ gitea.server_url }}
repository: ${{ gitea.repository }}
token: ${{ gitea.token }}
tag_name: ${{ inputs.version }}
prerelease: false
verbose: true
files: downloaded/**/*
body: ${{ steps.notes.outputs.description }}
+2 -1
View File
@@ -38,4 +38,5 @@
*.sdf
*.opensdf
*.v11.suo
*.vcxproj.user
*.vcxproj.user
*.aps
+5
View File
@@ -0,0 +1,5 @@
[submodule "Minecraft.Client/Windows64/4JLibs"]
path = Minecraft.Client/Windows64/4JLibs
url = https://gitea.str1k3r.xyz/cafeberry/4JLibs.git
ignore = untracked
branch = main
+2 -66
View File
@@ -50,16 +50,11 @@
#else
#include "Common\UI\UI.h"
#endif
#if defined __PS3__ && !defined DISABLE_PSN
#ifdef __PS3__
#include "PS3/Network/SonyVoiceChat.h"
#endif
#include "DLCTexturePack.h"
#if defined _WINDOWS64 || defined DISABLE_PSN || defined _DISABLE_XBLIVE
#include "Xbox\Network\NetworkPlayerXbox.h"
#include "Common\Network\PlatformNetworkManager.h"
#endif
#ifdef _DURANGO
#include "..\Minecraft.World\DurangoStats.h"
#include "..\Minecraft.World\GenericStats.h"
@@ -786,32 +781,6 @@ void ClientConnection::handleAddPlayer(shared_ptr<AddPlayerPacket> packet)
player->m_displayName = player->name;
#endif
#if defined _WINDOWS64 || defined DISABLE_PSN || defined _DISABLE_XBLIVE
{
PlayerUID pktXuid = player->getXuid();
const PlayerUID WIN64_XUID_BASE = (PlayerUID)0xe000d45248242f2e;
if (pktXuid >= WIN64_XUID_BASE && pktXuid < WIN64_XUID_BASE + MINECRAFT_NET_MAX_PLAYERS)
{
BYTE smallId = (BYTE)(pktXuid - WIN64_XUID_BASE);
INetworkPlayer *np = g_NetworkManager.GetPlayerBySmallId(smallId);
if (np != NULL)
{
NetworkPlayerXbox *npx = (NetworkPlayerXbox *)np;
IQNetPlayer *qp = npx->GetQNetPlayer();
if (qp != NULL)
{
wcsncpy(qp->m_gamertag, packet->name.c_str(), 31);
qp->m_gamertag[31] = L'\0';
if (g_NetworkManager.IsHost())
{
g_NetworkManager.UpdateAndSetGameSessionData();
}
}
}
}
}
#endif
// printf("\t\t\t\t%d: Add player\n",packet->id,packet->yRot);
int item = packet->carriedItem;
@@ -954,39 +923,6 @@ void ClientConnection::handleMoveEntitySmall(shared_ptr<MoveEntityPacketSmall> p
void ClientConnection::handleRemoveEntity(shared_ptr<RemoveEntitiesPacket> packet)
{
#if defined _WINDOWS64 || defined DISABLE_PSN || defined _DISABLE_XBLIVE
if (!g_NetworkManager.IsHost())
{
for (int i = 0; i < packet->ids.length; i++)
{
shared_ptr<Entity> entity = getEntity(packet->ids[i]);
if (entity != NULL && entity->GetType() == eTYPE_PLAYER)
{
shared_ptr<Player> player = dynamic_pointer_cast<Player>(entity);
if (player != NULL)
{
PlayerUID xuid = player->getXuid();
INetworkPlayer *np = g_NetworkManager.GetPlayerByXuid(xuid);
if (np != NULL)
{
NetworkPlayerXbox *npx = (NetworkPlayerXbox *)np;
IQNetPlayer *qp = npx->GetQNetPlayer();
if (qp != NULL)
{
extern CPlatformNetworkManagerStub *g_pPlatformNetworkManager;
g_pPlatformNetworkManager->NotifyPlayerLeaving(qp);
qp->m_smallId = 0;
qp->m_isRemote = false;
qp->m_isHostPlayer = false;
qp->m_gamertag[0] = 0;
qp->SetCustomDataValue(0);
}
}
}
}
}
}
#endif
for (int i = 0; i < packet->ids.length; i++)
{
level->removeEntity(packet->ids[i]);
@@ -2005,7 +1941,7 @@ void ClientConnection::handlePreLogin(shared_ptr<PreLoginPacket> packet)
isAtLeastOneFriend = TRUE;
cantPlayContentRestricted= FALSE;
#if !defined DISABLE_PSN && ( defined __PS3__ || defined __ORBIS__ || defined __PSVITA__)
#if ( defined __PS3__ || defined __ORBIS__ || defined __PSVITA__)
if(!g_NetworkManager.IsHost() && !app.GetGameHostOption(eGameHostOption_FriendsOfFriends))
{
+2 -1
View File
@@ -875,7 +875,8 @@ enum EControllerActions
MINECRAFT_ACTION_SPAWN_CREEPER,
MINECRAFT_ACTION_CHANGE_SKIN,
MINECRAFT_ACTION_FLY_TOGGLE,
MINECRAFT_ACTION_RENDER_DEBUG
MINECRAFT_ACTION_RENDER_DEBUG,
MINECRAFT_ACTION_RENDER_DEBUG_SCREEN
};
enum eMCLang
+1 -1
View File
@@ -162,7 +162,7 @@ MOJANG_DATA;
typedef struct
{
eDLCContentType eDLCType;
#if !defined(DISABLE_PSN) && (defined( __PS3__) || defined(__ORBIS__) || defined (__PSVITA__))
#if defined( __PS3__) || defined(__ORBIS__) || defined (__PSVITA__)
char chImageURL[256];//SCE_NP_COMMERCE2_URL_LEN
#else
+10 -4
View File
@@ -59,7 +59,7 @@ void SoundEngine::playMusicTick() {};
#ifdef _WINDOWS64
char SoundEngine::m_szSoundPath[]={"Windows64Media\\Sound\\"};
char SoundEngine::m_szMusicPath[]={"music\\"};
char SoundEngine::m_szRedistName[]={"redist64"};
char SoundEngine::m_szRedistName[]={"Windows64\\redist64"}; //str1k3r - moved this to a the Windows64 dir so its out of plain view
#elif defined _DURANGO
char SoundEngine::m_szSoundPath[]={"Sound\\"};
char SoundEngine::m_szMusicPath[]={"music\\"};
@@ -791,7 +791,9 @@ void SoundEngine::play(int iSound, float x, float y, float z, float volume, floa
char *SoundName = (char *)ConvertSoundPathToName(name);
strcat((char *)szSoundName,SoundName);
// app.DebugPrintf(6,"PlaySound - %d - %s - %s (%f %f %f, vol %f, pitch %f)\n",iSound, SoundName, szSoundName,x,y,z,volume,pitch);
#ifdef _DEBUG
app.DebugPrintf(6,"PlaySound - %d - %s - %s (%f %f %f, vol %f, pitch %f)\n",iSound, SoundName, szSoundName,x,y,z,volume,pitch);
#endif
AUDIO_INFO AudioInfo;
AudioInfo.x=x;
@@ -846,9 +848,11 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
char *SoundName = (char *)ConvertSoundPathToName(name);
strcat((char *)szSoundName,SoundName);
// app.DebugPrintf("UI: Playing %s, volume %f, pitch %f\n",SoundName,volume,pitch);
//app.DebugPrintf("PlaySound - %d - %s\n",iSound, SoundName);
#ifdef _DEBUG
app.DebugPrintf("UI: Playing %s, volume %f, pitch %f\n",SoundName,volume,pitch);
app.DebugPrintf("PlaySound - %d - %s\n",iSound, SoundName);
#endif
AUDIO_INFO AudioInfo;
memset(&AudioInfo,0,sizeof(AUDIO_INFO));
@@ -1136,10 +1140,12 @@ int SoundEngine::OpenStreamThreadProc( void* lpParameter )
SoundEngine *soundEngine = (SoundEngine *)lpParameter;
soundEngine->m_hStream = AIL_open_stream(soundEngine->m_hDriver,soundEngine->m_szStreamName,0);
#ifdef _DEBUG
if(soundEngine->m_hStream==0)
{
app.DebugPrintf("SoundEngine::OpenStreamThreadProc - Could not open - %s\n",soundEngine->m_szStreamName);
}
#endif
return 0;
}
@@ -0,0 +1,80 @@
param(
[string]$ProjectDir,
[string]$Platform,
[string]$Configuration
)
if ($ProjectDir -match "Minecraft.World") {
$BaseDir = "$ProjectDir..\Minecraft.Client\"
} elseif ($ProjectDir -match "Minecraft.Client") {
$BaseDir = $ProjectDir
} else {
Write-Host "4JLibs: Unknown project directory: '$ProjectDir'"
exit 1
}
switch ($Platform) {
"x64" { $LibsDir = Join-Path $BaseDir "Windows64\4JLibs\"; $ExpectedCount = 4; $PlatformName = "Windows64" }
"Durango" { $LibsDir = Join-Path $BaseDir "Durango\4JLibs\"; $ExpectedCount = 4; $PlatformName = "Durango" }
"Xbox 360" { $LibsDir = Join-Path $BaseDir "Xbox\4JLibs\"; $ExpectedCount = 5; $PlatformName = "Xbox" }
"PS3" { $LibsDir = Join-Path $BaseDir "PS3\4JLibs\"; $ExpectedCount = 4; $PlatformName = "PS3" }
"Orbis" { $LibsDir = Join-Path $BaseDir "Orbis\4JLibs\"; $ExpectedCount = 4; $PlatformName = "Orbis" }
"PSVita" { $LibsDir = Join-Path $BaseDir "PSVita\4JLibs\"; $ExpectedCount = 4; $PlatformName = "PSVita" }
default { Write-Host "4JLibs: Unknown platform: '$Platform'"; exit 1 }
}
if ($Configuration -match "ContentPackage" -or $Configuration -match "Release") {
$BuildConfig = "Release"
} elseif ($Configuration -match "Debug") {
$BuildConfig = "Debug"
} else {
Write-Host "4JLibs: Configuration did not match any known patterns, defaulting to Debug"
$BuildConfig = "Debug"
}
if (-not (Test-Path $LibsDir)) {
Write-Host "4JLibs: $PlatformName 4JLibs directory not found"
exit 1
} elseif (-not (Test-Path "$LibsDir\Headers\$PlatformName")) {
Write-Host "4JLibs: $PlatformName 4JLibs Headers directory not found"
exit 1
} elseif (-not (Test-Path "$LibsDir\Headers")) {
Write-Host "4JLibs: Headers directory not found"
exit 1
}
$incPath = Join-Path $LibsDir "inc"
$libsPath = Join-Path $LibsDir "libs"
$incCount = (Get-ChildItem -Path $incPath -Filter "*.h" -ErrorAction SilentlyContinue).Count
if ($BuildConfig -eq "Release") {
$libCount = (Get-ChildItem -Path $libsPath -Filter "*_r.lib" -ErrorAction SilentlyContinue).Count
} else {
$libCount = (Get-ChildItem -Path $libsPath -Filter "*_d.lib" -ErrorAction SilentlyContinue).Count
}
if ($incCount -lt $ExpectedCount) {
Write-Host "4JLibs: Copying header files for $PlatformName"
xcopy "$LibsDir\Headers\$PlatformName\*" "$incPath" /E /I /Y
} else {
Write-Host "4JLibs: inc files already present, skipping copy."
}
if ($libCount -lt $ExpectedCount) {
Write-Host "4JLibs: Building 4JLibs for $PlatformName in $BuildConfig"
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" `
(Join-Path $LibsDir "4JLibs.sln") `
/p:Configuration=$BuildConfig `
/p:Platform=$PlatformName `
/v:minimal `
/m
if ($LASTEXITCODE -ne 0) {
Write-Host "4JLibs: Build failed with exit code: $LASTEXITCODE"
exit $LASTEXITCODE
}
} else {
Write-Host "4JLibs: libs already present, skipping build."
}

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

Before

Width:  |  Height:  |  Size: 308 KiB

After

Width:  |  Height:  |  Size: 308 KiB

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Some files were not shown because too many files have changed in this diff Show More