Compare commits

...

27 Commits

Author SHA1 Message Date
JordanTheToaster
b625e2c47a UI: Remove fractional upscales 2025-05-01 20:24:24 +02:00
refractionpcsx2
97300d59a9 GS/HW: Fixing regressions with readbacks + preloading 2025-05-01 19:28:21 +02:00
PCSX2 Bot
f45840a29f [ci skip] Qt: Update Base Translation. 2025-04-30 20:30:49 -04:00
dependabot[bot]
bfff6ed406 Bump softprops/action-gh-release in the ci-deps group
Bumps the ci-deps group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release).


Updates `softprops/action-gh-release` from 2.2.1 to 2.2.2
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](c95fe14893...da05d55257)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-30 22:55:01 +02:00
KamFretoZ
ad6f5fd6af Savestate: Add backup slot loading ability 2025-04-30 22:53:26 +02:00
TheLastRar
7bdf349b9d Resources: Resize viewport of flag icons to content
Adds icons resized by KamFretoZ and make the necessary adjustments to Qt and FSUI code.

Co-Authored-By: KamFretoZ <14798312+kamfretoz@users.noreply.github.com>
2025-04-30 22:45:04 +02:00
TheLastRar
9412fbcefb FSUI: Use SVG icons for flags and stars 2025-04-30 22:45:04 +02:00
TheLastRar
c2af0097c5 3rdparty: Always enable ImGui math operators 2025-04-30 22:45:04 +02:00
TheLastRar
9e5b69ee54 Deps: Add Pluto(S)VG 2025-04-30 22:45:04 +02:00
lightningterror
f6e0d1d368 common-linux: Fix -Wformat warnings. 2025-04-30 22:43:23 +02:00
lightningterror
5bb18bee17 GS/GL: Guard/track PopDebugGroup calls.
Fixes GL_STACK_UNDERFLOW and GL_INVALID_VALUE issues which spammed the log.
2025-04-30 22:43:23 +02:00
lightningterror
d0fb219939 Misc: Fix compiler warnings. 2025-04-30 22:43:23 +02:00
refractionpcsx2
e2b04726cf GS/HW: Fix a crash on close and old target mem leak 2025-04-30 22:10:35 +02:00
refractionpcsx2
b293cdc9ba GS/HW: Merge contained targets when expanding target backward. 2025-04-30 22:10:35 +02:00
lightningterror
3f93b3a39d GS/HW: Update y region if the source is expected to be in the same target. 2025-04-29 21:56:53 +02:00
lightningterror
a4de6e45db GS/HW: Fix ResizeTexture not getting the proper new_drect values. 2025-04-29 21:56:53 +02:00
lightningterror
213a89ab72 GS/HW: Also unlink source texture from target before deletion on z draws. 2025-04-29 08:56:13 +02:00
lightningterror
8dcca62d0c GS/HW: Make sure we pass src to PreloadTarget. 2025-04-29 00:29:39 +02:00
PCSX2 Bot
4ed0bcbda8 [ci skip] PAD: Update to latest controller database. 2025-04-28 23:47:02 +02:00
refractionpcsx2
b2587e676d GS/TC: Fix possible divide by zero error 2025-04-27 23:58:17 +01:00
JordanTheToaster
90af9b2f01 GS/HW: Use correct vertex colour on target clear 2025-04-26 23:22:53 +02:00
lightningterror
d915a0b945 GS/Shaders: Try to fix Warning X4000: FxaaPixelShader potentially uninitialized variable. 2025-04-26 21:39:53 +02:00
Mrlinkwii
ac9c5eaae9 issues/Github : remove unused links
[skip-ci]
2025-04-26 21:36:16 +02:00
lightningterror
0891da303c GS/HW: Unlink source texture from old target before deletion.
DT Racer hits this path and causes a crash when RT in RT is disabled, so let's make sure source and target texture isn't linked/shared before deleting the target.
2025-04-26 09:37:36 +02:00
refractionpcsx2
55e9b51faa GS/HW: Only reuse dirty targets that were recently accessed 2025-04-26 09:36:57 +02:00
PCSX2 Bot
55dc0ade47 [ci skip] Qt: Update Base Translation. 2025-04-25 20:24:43 -04:00
Sean
2cf7083718 Debugger: Add breakpoint description label (#12534) 2025-04-25 18:08:09 -04:00
118 changed files with 3720 additions and 1350 deletions

View File

@@ -66,10 +66,6 @@ body:
Performance issues as a result of not meeting our hardware requirements are not valid.
Please read our known issues pages for AMD and Intel drivers.
- [Intel Drivers](https://github.com/PCSX2/pcsx2/wiki/OpenGL-and-Intel-GPUs-All-you-need-to-know).
- [AMD Drivers](https://github.com/PCSX2/pcsx2/wiki/OpenGL-and-AMD-GPUs---All-you-need-to-know).
We are **not** accepting issues related to the **libretro** core. The libretro core is being maintained separately at this time
- type: input
id: rev

View File

@@ -68,7 +68,7 @@ jobs:
mv ./release-notes.md ${GITHUB_WORKSPACE}/release-notes.md
- name: Create a GitHub Release (Manual)
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631
if: steps.tag_version.outputs.new_tag && github.event_name == 'workflow_dispatch'
with:
body_path: ./release-notes.md
@@ -77,7 +77,7 @@ jobs:
tag_name: ${{ steps.tag_version.outputs.new_tag }}
- name: Create a GitHub Release (Push)
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631
if: steps.tag_version.outputs.new_tag && github.event_name != 'workflow_dispatch'
with:
body_path: ./release-notes.md

View File

@@ -23,6 +23,8 @@ SDL=SDL3-3.2.10
QT=6.9.0
ZSTD=1.5.7
KDDOCKWIDGETS=2.2.3
PLUTOVG=0.0.13
PLUTOSVG=0.0.6
SHADERC=2024.1
SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec
@@ -51,6 +53,8 @@ aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f shaderc-glslan
5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697 shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz
03ee1a2c06f3b61008478f4abe9423454e53e580b9488b47c8071547c6a9db47 shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz
b8529755b2d54205341766ae168e83177c6120660539f9afba71af6bca4b81ec KDDockWidgets-$KDDOCKWIDGETS.tar.gz
f49d62709d6bf1808ddc9b8f71e22a755484f75c7bbb0fb368f7fb2ffc7cf645 plutovg-$PLUTOVG.tar.gz
01f8aee511bd587a602a166642a96522cc9522efd1e38c2d00e4fbc0aa22d7a0 plutosvg-$PLUTOSVG.tar.gz
EOF
curl -L \
@@ -71,7 +75,9 @@ curl -L \
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
-o "shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Tools/archive/$SHADERC_SPIRVTOOLS.tar.gz" \
-o "KDDockWidgets-$KDDOCKWIDGETS.tar.gz" "https://github.com/KDAB/KDDockWidgets/archive/v$KDDOCKWIDGETS.tar.gz"
-o "KDDockWidgets-$KDDOCKWIDGETS.tar.gz" "https://github.com/KDAB/KDDockWidgets/archive/v$KDDOCKWIDGETS.tar.gz" \
-o "plutovg-$PLUTOVG.tar.gz" "https://github.com/sammycage/plutovg/archive/v$PLUTOVG.tar.gz" \
-o "plutosvg-$PLUTOSVG.tar.gz" "https://github.com/sammycage/plutosvg/archive/v$PLUTOSVG.tar.gz"
shasum -a 256 --check SHASUMS
@@ -221,6 +227,24 @@ cmake --build build --parallel
ninja -C build install
cd ..
echo "Building PlutoVG..."
rm -fr "plutovg-$PLUTOVG"
tar xf "plutovg-$PLUTOVG.tar.gz"
cd "plutovg-$PLUTOVG"
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DPLUTOVG_BUILD_EXAMPLES=OFF -B build -G Ninja
cmake --build build --parallel
ninja -C build install
cd ..
echo "Building PlutoSVG..."
rm -fr "plutosvg-$PLUTOSVG"
tar xf "plutosvg-$PLUTOSVG.tar.gz"
cd "plutosvg-$PLUTOSVG"
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=OFF -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build -G Ninja
cmake --build build --parallel
ninja -C build install
cd ..
echo "Building shaderc..."
rm -fr "shaderc-$SHADERC"
tar xf "shaderc-$SHADERC.tar.gz"

View File

@@ -0,0 +1,28 @@
{
"name": "plutovg",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DBUILD_SHARED_LIBS=ON",
"-DPLUTOVG_BUILD_EXAMPLES=OFF"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/sammycage/plutovg.git",
"tag": "v0.0.13",
"sha256": "5e4712cf873b0c7829a4a6157763e2ad3ac49164"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig"
]
}

View File

@@ -0,0 +1,29 @@
{
"name": "plutosvg",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DBUILD_SHARED_LIBS=ON",
"-DPLUTOSVG_BUILD_EXAMPLES=OFF",
"-DPLUTOSVG_ENABLE_FREETYPE=ON"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/sammycage/plutosvg.git",
"tag": "v0.0.6",
"sha256": "c5388fa96feca1f1376a3d0485d5e35159452707"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig"
]
}

View File

@@ -30,6 +30,8 @@
"modules/21-libbacktrace.json",
"modules/22-shaderc.json",
"modules/23-kddockwidgets.json",
"modules/24-plutovg.json",
"modules/25-plutosvg.json",
{
"name": "pcsx2",
"buildsystem": "cmake-ninja",

View File

@@ -50,6 +50,8 @@ FFMPEG=6.0
MOLTENVK=1.2.9
QT=6.7.3
KDDOCKWIDGETS=2.2.3
PLUTOVG=0.0.13
PLUTOSVG=0.0.6
SHADERC=2024.1
SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec
@@ -95,6 +97,8 @@ aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f shaderc-glslan
5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697 shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz
03ee1a2c06f3b61008478f4abe9423454e53e580b9488b47c8071547c6a9db47 shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz
b8529755b2d54205341766ae168e83177c6120660539f9afba71af6bca4b81ec KDDockWidgets-$KDDOCKWIDGETS.tar.gz
f49d62709d6bf1808ddc9b8f71e22a755484f75c7bbb0fb368f7fb2ffc7cf645 plutovg-$PLUTOVG.tar.gz
01f8aee511bd587a602a166642a96522cc9522efd1e38c2d00e4fbc0aa22d7a0 plutosvg-$PLUTOSVG.tar.gz
EOF
curl -C - -L \
@@ -117,7 +121,9 @@ curl -C - -L \
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
-o "shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Tools/archive/$SHADERC_SPIRVTOOLS.tar.gz" \
-o "KDDockWidgets-$KDDOCKWIDGETS.tar.gz" "https://github.com/KDAB/KDDockWidgets/archive/v$KDDOCKWIDGETS.tar.gz"
-o "KDDockWidgets-$KDDOCKWIDGETS.tar.gz" "https://github.com/KDAB/KDDockWidgets/archive/v$KDDOCKWIDGETS.tar.gz" \
-o "plutovg-$PLUTOVG.tar.gz" "https://github.com/sammycage/plutovg/archive/v$PLUTOVG.tar.gz" \
-o "plutosvg-$PLUTOSVG.tar.gz" "https://github.com/sammycage/plutosvg/archive/v$PLUTOSVG.tar.gz"
shasum -a 256 --check SHASUMS
@@ -370,6 +376,24 @@ cmake --build build --parallel
cmake --install build
cd ..
echo "Building PlutoVG..."
rm -fr "plutovg-$PLUTOVG"
tar xf "plutovg-$PLUTOVG.tar.gz"
cd "plutovg-$PLUTOVG"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOVG_BUILD_EXAMPLES=OFF -B build
make -C build "-j$NPROCS"
make -C build install
cd ..
echo "Building PlutoSVG..."
rm -fr "plutosvg-$PLUTOSVG"
tar xf "plutosvg-$PLUTOSVG.tar.gz"
cd "plutosvg-$PLUTOSVG"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build
make -C build "-j$NPROCS"
make -C build install
cd ..
echo "Cleaning up..."
cd ..
rm -rf deps-build

View File

@@ -32,6 +32,8 @@ FFMPEG=6.0
MOLTENVK=1.2.9
QT=6.7.3
KDDOCKWIDGETS=2.2.3
PLUTOVG=0.0.13
PLUTOSVG=0.0.6
SHADERC=2024.1
SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec
@@ -75,6 +77,8 @@ aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f shaderc-glslan
5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697 shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz
03ee1a2c06f3b61008478f4abe9423454e53e580b9488b47c8071547c6a9db47 shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz
b8529755b2d54205341766ae168e83177c6120660539f9afba71af6bca4b81ec KDDockWidgets-$KDDOCKWIDGETS.tar.gz
f49d62709d6bf1808ddc9b8f71e22a755484f75c7bbb0fb368f7fb2ffc7cf645 plutovg-$PLUTOVG.tar.gz
01f8aee511bd587a602a166642a96522cc9522efd1e38c2d00e4fbc0aa22d7a0 plutosvg-$PLUTOSVG.tar.gz
EOF
curl -L \
@@ -97,7 +101,9 @@ curl -L \
-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \
-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \
-o "shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Tools/archive/$SHADERC_SPIRVTOOLS.tar.gz" \
-o "KDDockWidgets-$KDDOCKWIDGETS.tar.gz" "https://github.com/KDAB/KDDockWidgets/archive/v$KDDOCKWIDGETS.tar.gz"
-o "KDDockWidgets-$KDDOCKWIDGETS.tar.gz" "https://github.com/KDAB/KDDockWidgets/archive/v$KDDOCKWIDGETS.tar.gz" \
-o "plutovg-$PLUTOVG.tar.gz" "https://github.com/sammycage/plutovg/archive/v$PLUTOVG.tar.gz" \
-o "plutosvg-$PLUTOSVG.tar.gz" "https://github.com/sammycage/plutosvg/archive/v$PLUTOSVG.tar.gz"
shasum -a 256 --check SHASUMS
@@ -335,6 +341,24 @@ make -C build "-j$NPROCS"
make -C build install
cd ..
echo "Building PlutoVG..."
rm -fr "plutovg-$PLUTOVG"
tar xf "plutovg-$PLUTOVG.tar.gz"
cd "plutovg-$PLUTOVG"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOVG_BUILD_EXAMPLES=OFF -B build
make -C build "-j$NPROCS"
make -C build install
cd ..
echo "Building PlutoSVG..."
rm -fr "plutosvg-$PLUTOSVG"
tar xf "plutosvg-$PLUTOSVG.tar.gz"
cd "plutosvg-$PLUTOSVG"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build
make -C build "-j$NPROCS"
make -C build install
cd ..
echo "Cleaning up..."
cd ..
rm -rf deps-build

View File

@@ -55,6 +55,8 @@ set ZLIB=1.3.1
set ZLIBSHORT=131
set ZSTD=1.5.7
set KDDOCKWIDGETS=2.2.3
set PLUTOVG=0.0.13
set PLUTOSVG=0.0.6
set SHADERC=2024.1
set SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec
@@ -76,6 +78,8 @@ call :downloadfile "qttranslations-everywhere-src-%QT%.zip" "https://download.qt
call :downloadfile "zlib%ZLIBSHORT%.zip" "https://zlib.net/zlib%ZLIBSHORT%.zip" 72af66d44fcc14c22013b46b814d5d2514673dda3d115e64b690c1ad636e7b17 || goto error
call :downloadfile "zstd-%ZSTD%.zip" "https://github.com/facebook/zstd/archive/refs/tags/v%ZSTD%.zip" 7897bc5d620580d9b7cd3539c44b59d78f3657d33663fe97a145e07b4ebd69a4 || goto error
call :downloadfile "KDDockWidgets-%KDDOCKWIDGETS%.zip" "https://github.com/KDAB/KDDockWidgets/archive/v%KDDOCKWIDGETS%.zip" 1ba8e5b48f3b4d47d2de7121529d448532200fa36d9ed21f93909f6eb03f61cb || goto error
call :downloadfile "plutovg-%PLUTOVG%.zip" "https://github.com/sammycage/plutovg/archive/v%PLUTOVG%.zip" e313baaa7c934503ef601c909661a84e5b795dfa12f0354721cac7a9c27be47e || goto error
call :downloadfile "plutosvg-%PLUTOSVG%.zip" "https://github.com/sammycage/plutosvg/archive/v%PLUTOSVG%.zip" 24826a70d0b168a66eb16ec9d7eeeba0d4ca9d4babc1199889d374918008426e || goto error
call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/google/shaderc/archive/refs/tags/v%SHADERC%.zip" 6c9f42ed6bf42750f5369b089909abfdcf0101488b4a1f41116d5159d00af8e7 || goto error
call :downloadfile "shaderc-glslang-%SHADERC_GLSLANG%.zip" "https://github.com/KhronosGroup/glslang/archive/%SHADERC_GLSLANG%.zip" 03ad8a6fa987af4653d0cfe6bdaed41bcf617f1366a151fb1574da75950cd3e8 || goto error
@@ -252,6 +256,24 @@ cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
echo "Building PlutoVG..."
rmdir /S /Q "plutovg-%PLUTOVG%"
%SEVENZIP% x "plutovg-%PLUTOVG%.zip" || goto error
cd "plutovg-%PLUTOVG%" || goto error
cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DPLUTOVG_BUILD_EXAMPLES=OFF -B build -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
echo "Building PlutoSVG..."
rmdir /S /Q "plutosvg-%PLUTOSVG%"
%SEVENZIP% x "plutosvg-%PLUTOSVG%.zip" || goto error
cd "plutosvg-%PLUTOSVG%" || goto error
cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
echo Building shaderc...
rmdir /S /Q "shaderc-%SHADERC%"
%SEVENZIP% x "shaderc-%SHADERC%.zip" || goto error

View File

@@ -53,6 +53,8 @@ set ZLIB=1.3.1
set ZLIBSHORT=131
set ZSTD=1.5.7
set KDDOCKWIDGETS=2.2.3
set PLUTOVG=0.0.13
set PLUTOSVG=0.0.6
set SHADERC=2024.1
set SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec
@@ -74,6 +76,8 @@ call :downloadfile "qttranslations-everywhere-src-%QT%.zip" "https://download.qt
call :downloadfile "zlib%ZLIBSHORT%.zip" "https://zlib.net/zlib%ZLIBSHORT%.zip" 72af66d44fcc14c22013b46b814d5d2514673dda3d115e64b690c1ad636e7b17 || goto error
call :downloadfile "zstd-%ZSTD%.zip" "https://github.com/facebook/zstd/archive/refs/tags/v%ZSTD%.zip" 7897bc5d620580d9b7cd3539c44b59d78f3657d33663fe97a145e07b4ebd69a4 || goto error
call :downloadfile "KDDockWidgets-%KDDOCKWIDGETS%.zip" "https://github.com/KDAB/KDDockWidgets/archive/v%KDDOCKWIDGETS%.zip" 1ba8e5b48f3b4d47d2de7121529d448532200fa36d9ed21f93909f6eb03f61cb || goto error
call :downloadfile "plutovg-%PLUTOVG%.zip" "https://github.com/sammycage/plutovg/archive/v%PLUTOVG%.zip" e313baaa7c934503ef601c909661a84e5b795dfa12f0354721cac7a9c27be47e || goto error
call :downloadfile "plutosvg-%PLUTOSVG%.zip" "https://github.com/sammycage/plutosvg/archive/v%PLUTOSVG%.zip" 24826a70d0b168a66eb16ec9d7eeeba0d4ca9d4babc1199889d374918008426e || goto error
call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/google/shaderc/archive/refs/tags/v%SHADERC%.zip" 6c9f42ed6bf42750f5369b089909abfdcf0101488b4a1f41116d5159d00af8e7 || goto error
call :downloadfile "shaderc-glslang-%SHADERC_GLSLANG%.zip" "https://github.com/KhronosGroup/glslang/archive/%SHADERC_GLSLANG%.zip" 03ad8a6fa987af4653d0cfe6bdaed41bcf617f1366a151fb1574da75950cd3e8 || goto error
@@ -256,6 +260,24 @@ cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
echo "Building PlutoVG..."
rmdir /S /Q "plutovg-%PLUTOVG%"
%SEVENZIP% x "plutovg-%PLUTOVG%.zip" || goto error
cd "plutovg-%PLUTOVG%" || goto error
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DPLUTOVG_BUILD_EXAMPLES=OFF -B build -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
echo "Building PlutoSVG..."
rmdir /S /Q "plutosvg-%PLUTOSVG%"
%SEVENZIP% x "plutosvg-%PLUTOSVG%.zip" || goto error
cd "plutosvg-%PLUTOSVG%" || goto error
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
echo Building shaderc...
rmdir /S /Q "shaderc-%SHADERC%"
%SEVENZIP% x "shaderc-%SHADERC%.zip" || goto error

View File

@@ -19,6 +19,7 @@ add_library(imgui
target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_include_directories(imgui PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src")
target_link_libraries(imgui PUBLIC Freetype::Freetype)
target_link_libraries(imgui PUBLIC plutosvg::plutosvg)
# Needed for macOS compile.
set_property(TARGET imgui PROPERTY CXX_STANDARD 17)

View File

@@ -33,7 +33,7 @@
<ClCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<AdditionalIncludeDirectories>$(ProjectDir)include;$(ProjectDir)src;$(SolutionDir)deps\include\freetype2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)include;$(ProjectDir)src;$(SolutionDir)deps\include\freetype2;$(SolutionDir)deps\include\plutovg;$(SolutionDir)deps\include\plutosvg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>

View File

@@ -110,7 +110,7 @@
operator MyVec4() const { return MyVec4(x,y,z,w); }
*/
//---- ...Or use Dear ImGui's own very basic math operators.
//#define IMGUI_DEFINE_MATH_OPERATORS
#define IMGUI_DEFINE_MATH_OPERATORS
//---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices.
// Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

View File

@@ -193,7 +193,7 @@
030000007d0400000640000000000000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Windows,
03000000120c0000f61c000000000000,Elite,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
03000000430b00000300000000000000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
03000000062000001801000000000000,EMS TrioLinker Plus II,a:b0,b:b1,x:b2,y:b3,back:b9,start:b8,leftshoulder:b6,rightshoulder:b7,leftstick:b10,rightstick:b11,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b4,righttrigger:b5,platform:Windows,
03000000062000001801000000000000,EMS TrioLinker Plus II,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Windows,
03000000242f000000b7000000000000,ESM 9110,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows,
03000000101c0000181c000000000000,Essential,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b4,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
030000008f0e00000f31000000000000,EXEQ,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,
@@ -579,6 +579,8 @@
030000009b2800001800000000000000,Raphnet Jaguar Adapter,a:b2,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b10,start:b3,x:b11,y:b12,platform:Windows,
030000009b2800006100000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows,
030000009b2800006300000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows,
030000009b2800003c00000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows,
030000009b2800006400000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows,
030000009b2800000200000000000000,Raphnet NES Adapter,a:b7,b:b6,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b4,platform:Windows,
030000009b2800004400000000000000,Raphnet PS1 and PS2 Adapter,a:b1,b:b2,back:b5,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b9,rightx:a3,righty:a4,start:b4,x:b0,y:b3,platform:Windows,
030000009b2800004300000000000000,Raphnet Saturn,a:b0,b:b1,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows,
@@ -629,6 +631,7 @@
030000006f0e00001e01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000006f0e00002801000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
03000000830500007030000000000000,Rockfire Space Ranger,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b9,righttrigger:b8,start:b2,x:b3,y:b4,platform:Windows,
03000000050b0000e318000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,
03000000050b0000e518000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,
03000000050b00005819000000000000,ROG Chakram Core,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,
@@ -1035,6 +1038,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
030000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X,
0300000032150000030a000000000000,Razer Wildcat,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
03000000632500008005000000010000,Redgear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000632500002305000000010000,Redragon Saturn,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
03000000921200004547000000020000,Retro Bit Sega Genesis Controller Adapter,a:b0,b:b2,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,lefttrigger:b14,rightshoulder:b10,righttrigger:b4,start:b12,x:b6,y:b8,platform:Mac OS X,
03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Mac OS X,
03000000790000001100000005010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Mac OS X,
@@ -1253,6 +1257,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000120c0000200e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux,
03000000120c0000210e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux,
03000000120c0000f70e000011010000,Brook Universal Fighting Board,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
03000000d81d00000b00000010010000,Buffalo BSGP1601,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Linux,
03000000e82000006058000001010000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
03000000af1e00002400000010010000,Clockwork Pi DevTerm,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b9,x:b3,y:b0,platform:Linux,
030000000b0400003365000000010000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Linux,
@@ -1288,6 +1293,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
030000008f0e00000800000010010000,Gasia PlayStation Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
03000000451300000010000010010000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
03000000f0250000c283000010010000,Gioteck VX2 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
190000004b4800000010000000010000,GO-Advance Controller,a:b1,b:b0,back:b10,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,leftshoulder:b4,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b13,start:b15,x:b2,y:b3,platform:Linux,
190000004b4800000010000001010000,GO-Advance Controller,a:b1,b:b0,back:b12,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b4,leftstick:b13,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b16,righttrigger:b15,start:b17,x:b2,y:b3,platform:Linux,
190000004b4800000011000000010000,GO-Super Gamepad,a:b0,b:b1,back:b12,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b16,leftshoulder:b4,leftstick:b14,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b3,y:b2,platform:Linux,
@@ -1483,6 +1489,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
030000007e0500001920000011810000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux,
050000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Linux,
050000007e0500001920000001800000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux,
030000007e0500001e20000011810000,NSO Sega Genesis Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,misc1:b3,rightshoulder:b2,righttrigger:b4,start:b5,platform:Linux,
030000007e0500001720000011810000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,
050000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b8,start:b10,x:b3,y:b2,platform:Linux,
050000007e0500001720000001800000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux,

View File

@@ -1 +1,64 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#009B3A" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#FEDF01" d="M32.728 18L18 29.124 3.272 18 18 6.875z"/><circle fill="#002776" cx="17.976" cy="17.924" r="6.458"/><path fill="#CBE9D4" d="M12.277 14.887c-.332.621-.558 1.303-.672 2.023 3.995-.29 9.417 1.891 11.744 4.595.402-.604.7-1.28.883-2.004-2.872-2.808-7.917-4.63-11.955-4.614z"/><path fill="#88C9F9" d="M12 18.233h1v1h-1zm1 2h1v1h-1z"/><path fill="#55ACEE" d="M15 18.233h1v1h-1zm2 1h1v1h-1zm4 2h1v1h-1zm-3 1h1v1h-1zm3-6h1v1h-1z"/><path fill="#3B88C3" d="M19 20.233h1v1h-1z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg6"
sodipodi:docname="NTSC-B.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs6" />
<sodipodi:namedview
id="namedview6"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
fill="#009b3a"
d="m 36,22 c 0,2.209 -1.791,4 -4,4 H 4 C 1.791,26 0,24.209 0,22 V 4 C 0,1.791 1.791,0 4,0 h 28 c 2.209,0 4,1.791 4,4 z"
id="path1" />
<path
fill="#fedf01"
d="M 32.728,13 18,24.124 3.272,13 18,1.875 Z"
id="path2" />
<circle
fill="#002776"
cx="17.976"
cy="12.924"
r="6.4580002"
id="circle2" />
<path
fill="#cbe9d4"
d="m 12.277,9.887 c -0.332,0.621 -0.558,1.303 -0.672,2.023 3.995,-0.29 9.417,1.891 11.744,4.595 0.402,-0.604 0.7,-1.28 0.883,-2.004 C 21.36,11.693 16.315,9.871 12.277,9.887 Z"
id="path3" />
<path
fill="#88c9f9"
d="m 12,13.233 h 1 v 1 h -1 z m 1,2 h 1 v 1 h -1 z"
id="path4" />
<path
fill="#55acee"
d="m 15,13.233 h 1 v 1 h -1 z m 2,1 h 1 v 1 h -1 z m 4,2 h 1 v 1 h -1 z m -3,1 h 1 v 1 h -1 z m 3,-6 h 1 v 1 h -1 z"
id="path5" />
<path
fill="#3b88c3"
d="m 19,15.233 h 1 v 1 h -1 z"
id="path6" />
</svg>

Before

Width:  |  Height:  |  Size: 682 B

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DE2910" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#FFDE02" d="M11.136 8.977l.736.356.589-.566-.111.81.72.386-.804.144-.144.804-.386-.72-.81.111.566-.589zm4.665 2.941l-.356.735.566.59-.809-.112-.386.721-.144-.805-.805-.144.721-.386-.112-.809.59.566zm-.957 3.779l.268.772.817.017-.651.493.237.783-.671-.467-.671.467.236-.783-.651-.493.817-.017zm-3.708 3.28l.736.356.589-.566-.111.81.72.386-.804.144-.144.804-.386-.72-.81.111.566-.589zM7 10.951l.929 2.671 2.826.058-2.253 1.708.819 2.706L7 16.479l-2.321 1.615.819-2.706-2.253-1.708 2.826-.058z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg2"
sodipodi:docname="NTSC-C.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#de2910"
d="m 36,22 c 0,2.209 -1.791,4 -4,4 H 4 C 1.791,26 0,24.209 0,22 V 4 C 0,1.791 1.791,0 4,0 h 28 c 2.209,0 4,1.791 4,4 z"
id="path1" />
<path
fill="#ffde02"
d="m 11.136,3.977 0.736,0.356 0.589,-0.566 -0.111,0.81 0.72,0.386 -0.804,0.144 -0.144,0.804 -0.386,-0.72 -0.81,0.111 0.566,-0.589 z m 4.665,2.941 -0.356,0.735 0.566,0.59 -0.809,-0.112 -0.386,0.721 -0.144,-0.805 -0.805,-0.144 0.721,-0.386 -0.112,-0.809 0.59,0.566 z m -0.957,3.779 0.268,0.772 0.817,0.017 -0.651,0.493 0.237,0.783 -0.671,-0.467 -0.671,0.467 0.236,-0.783 -0.651,-0.493 0.817,-0.017 z m -3.708,3.28 0.736,0.356 0.589,-0.566 -0.111,0.81 0.72,0.386 -0.804,0.144 -0.144,0.804 -0.386,-0.72 -0.81,0.111 0.566,-0.589 z M 7,5.951 7.929,8.622 10.755,8.68 8.502,10.388 9.321,13.094 7,11.479 4.679,13.094 5.498,10.388 3.245,8.68 6.071,8.622 Z"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 696 B

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -1 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" id="svg2" xml:space="preserve"><defs id="defs6"><clipPath id="clipPath18"><path d="M 0,38 38,38 38,0 0,0 0,38 z" id="path20"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g12"><g id="g14"><g clip-path="url(#clipPath18)" id="g16"><g transform="translate(37,10)" id="g22"><path d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -28,0 c -2.209,0 -4,1.791 -4,4 l 0,18 c 0,2.209 1.791,4 4,4 l 28,0 c 2.209,0 4,-1.791 4,-4 L 0,0 z" id="path24" style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><g transform="translate(26,19)" id="g26"><path d="m 0,0 c 0,-3.866 -3.134,-7 -7,-7 -3.866,0 -7,3.134 -7,7 0,3.866 3.134,7 7,7 3.866,0 7,-3.134 7,-7" id="path28" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 45 32.5"
id="svg2"
xml:space="preserve"
sodipodi:docname="NTSC-J.svg"
width="45"
height="32.5"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="16.315789"
inkscape:cx="22.524194"
inkscape:cy="16.303226"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" /><defs
id="defs6"><clipPath
id="clipPath18"><path
d="M 0,38 H 38 V 0 H 0 Z"
id="path20" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,-1.25,40)"
id="g12"><g
id="g14"><g
clip-path="url(#clipPath18)"
id="g16"><g
transform="translate(37,10)"
id="g22"><path
d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 h -28 c -2.209,0 -4,1.791 -4,4 v 18 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 z"
id="path24"
style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(26,19)"
id="g26"><path
d="m 0,0 c 0,-3.866 -3.134,-7 -7,-7 -3.866,0 -7,3.134 -7,7 0,3.866 3.134,7 7,7 3.866,0 7,-3.134 7,-7"
id="path28"
style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 986 B

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -1 +1,52 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FE0000" d="M32 5H17v13H0v9c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#000095" d="M17 5H4C1.791 5 0 6.791 0 9v9h17V5zm-6.063 4.61l2.035-.548-1.491 1.487c-.121-.348-.307-.665-.544-.939zm.251 1.89c0 1.346-1.091 2.438-2.438 2.438S6.312 12.846 6.312 11.5 7.404 9.062 8.75 9.062s2.438 1.092 2.438 2.438zm0-4.222l-.548 2.035c-.273-.237-.591-.423-.939-.544l1.487-1.491zM8.75 6.625l.542 2.034c-.175-.033-.357-.052-.542-.052s-.367.019-.542.052l.542-2.034zm-.951 2.144c-.348.121-.665.307-.939.544l-.548-2.035 1.487 1.491zm-1.236.841c-.237.273-.423.591-.544.939L4.528 9.062l2.035.548zm-.654 1.348c-.034.176-.052.357-.052.542 0 .185.018.367.052.542L3.875 11.5l2.034-.542zm.11 1.492c.121.348.308.666.544.939l-2.035.548 1.491-1.487zm.293 3.272l.548-2.035c.273.236.591.423.939.544l-1.487 1.491zm2.438.653l-.542-2.034c.176.034.357.052.542.052s.367-.018.542-.052l-.542 2.034zm.951-2.144c.348-.121.666-.308.939-.544l.548 2.035-1.487-1.491zm1.236-.841c.237-.273.423-.591.544-.939l1.491 1.487-2.035-.548zm.654-1.348c.034-.176.052-.357.052-.542 0-.185-.018-.367-.052-.542l2.034.542-2.034.542z"/><path fill="#FFF" d="M9.292 8.659L8.75 6.625l-.542 2.034c.175-.033.357-.052.542-.052s.367.019.542.052zM5.857 11.5c0-.185.018-.367.052-.542l-2.034.542 2.034.542c-.033-.175-.052-.357-.052-.542zm2.351 2.841l.542 2.034.542-2.034c-.176.034-.357.052-.542.052s-.367-.019-.542-.052zm3.435-2.841c0 .185-.018.367-.052.542l2.034-.542-2.034-.542c.033.175.052.357.052.542zm-.455-4.222L9.701 8.769c.348.122.666.308.939.544l.548-2.035zm-.251 6.112l2.035.548-1.491-1.487c-.121.348-.307.665-.544.939zm-4.625 2.332l1.487-1.491c-.348-.121-.666-.308-.939-.544l-.548 2.035zm.251-6.112l-2.035-.548 1.491 1.487c.121-.348.307-.665.544-.939zm3.138 4.621l1.487 1.491-.548-2.035c-.274.237-.591.423-.939.544zM6.019 12.45l-1.491 1.487 2.035-.548c-.237-.273-.423-.59-.544-.939zm1.78-3.681L6.312 7.278l.548 2.035c.274-.237.591-.423.939-.544zm5.173.293l-2.035.548c.237.273.423.591.544.939l1.491-1.487z"/><circle fill="#FFF" cx="8.75" cy="11.5" r="2.438"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg3"
sodipodi:docname="NTSC-T.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<path
fill="#fe0000"
d="M 32,0 H 17 V 13 H 0 v 9 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
fill="#000095"
d="M 17,0 H 4 C 1.791,0 0,1.791 0,4 v 9 H 17 Z M 10.937,4.61 12.972,4.062 11.481,5.549 C 11.36,5.201 11.174,4.884 10.937,4.61 Z m 0.251,1.89 c 0,1.346 -1.091,2.438 -2.438,2.438 -1.347,0 -2.438,-1.092 -2.438,-2.438 0,-1.346 1.092,-2.438 2.438,-2.438 1.346,0 2.438,1.092 2.438,2.438 z m 0,-4.222 -0.548,2.035 C 10.367,4.076 10.049,3.89 9.701,3.769 Z M 8.75,1.625 9.292,3.659 C 9.117,3.626 8.935,3.607 8.75,3.607 8.565,3.607 8.383,3.626 8.208,3.659 Z M 7.799,3.769 C 7.451,3.89 7.134,4.076 6.86,4.313 L 6.312,2.278 Z M 6.563,4.61 C 6.326,4.883 6.14,5.201 6.019,5.549 L 4.528,4.062 Z M 5.909,5.958 C 5.875,6.134 5.857,6.315 5.857,6.5 c 0,0.185 0.018,0.367 0.052,0.542 L 3.875,6.5 Z M 6.019,7.45 C 6.14,7.798 6.327,8.116 6.563,8.389 L 4.528,8.937 Z M 6.312,10.722 6.86,8.687 C 7.133,8.923 7.451,9.11 7.799,9.231 Z M 8.75,11.375 8.208,9.341 c 0.176,0.034 0.357,0.052 0.542,0.052 0.185,0 0.367,-0.018 0.542,-0.052 z M 9.701,9.231 C 10.049,9.11 10.367,8.923 10.64,8.687 l 0.548,2.035 z M 10.937,8.39 C 11.174,8.117 11.36,7.799 11.481,7.451 l 1.491,1.487 z M 11.591,7.042 C 11.625,6.866 11.643,6.685 11.643,6.5 11.643,6.315 11.625,6.133 11.591,5.958 L 13.625,6.5 Z"
id="path2" />
<path
fill="#ffffff"
d="M 9.292,3.659 8.75,1.625 8.208,3.659 C 8.383,3.626 8.565,3.607 8.75,3.607 c 0.185,0 0.367,0.019 0.542,0.052 z M 5.857,6.5 c 0,-0.185 0.018,-0.367 0.052,-0.542 L 3.875,6.5 5.909,7.042 C 5.876,6.867 5.857,6.685 5.857,6.5 Z M 8.208,9.341 8.75,11.375 9.292,9.341 C 9.116,9.375 8.935,9.393 8.75,9.393 8.565,9.393 8.383,9.374 8.208,9.341 Z M 11.643,6.5 c 0,0.185 -0.018,0.367 -0.052,0.542 L 13.625,6.5 11.591,5.958 c 0.033,0.175 0.052,0.357 0.052,0.542 z M 11.188,2.278 9.701,3.769 c 0.348,0.122 0.666,0.308 0.939,0.544 z M 10.937,8.39 12.972,8.938 11.481,7.451 C 11.36,7.799 11.174,8.116 10.937,8.39 Z M 6.312,10.722 7.799,9.231 C 7.451,9.11 7.133,8.923 6.86,8.687 Z M 6.563,4.61 4.528,4.062 6.019,5.549 C 6.14,5.201 6.326,4.884 6.563,4.61 Z M 9.701,9.231 11.188,10.722 10.64,8.687 C 10.366,8.924 10.049,9.11 9.701,9.231 Z M 6.019,7.45 4.528,8.937 6.563,8.389 C 6.326,8.116 6.14,7.799 6.019,7.45 Z M 7.799,3.769 6.312,2.278 6.86,4.313 C 7.134,4.076 7.451,3.89 7.799,3.769 Z m 5.173,0.293 -2.035,0.548 c 0.237,0.273 0.423,0.591 0.544,0.939 z"
id="path3" />
<circle
fill="#ffffff"
cx="8.75"
cy="6.5"
r="2.438"
id="circle3" />
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,34 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -4 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_503_3486)">
<rect width="28" height="20" rx="2" fill="white"/>
<mask id="mask0_503_3486" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="28" height="20">
<rect width="28" height="20" rx="2" fill="white"/>
</mask>
<g mask="url(#mask0_503_3486)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28 0H0V1.33333H28V0ZM28 2.66667H0V4H28V2.66667ZM0 5.33333H28V6.66667H0V5.33333ZM28 8H0V9.33333H28V8ZM0 10.6667H28V12H0V10.6667ZM28 13.3333H0V14.6667H28V13.3333ZM0 16H28V17.3333H0V16ZM28 18.6667H0V20H28V18.6667Z" fill="#D02F44"/>
<rect width="12" height="9.33333" fill="#46467F"/>
<g filter="url(#filter0_d_503_3486)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.66665 1.99999C2.66665 2.36818 2.36817 2.66666 1.99998 2.66666C1.63179 2.66666 1.33331 2.36818 1.33331 1.99999C1.33331 1.63181 1.63179 1.33333 1.99998 1.33333C2.36817 1.33333 2.66665 1.63181 2.66665 1.99999ZM5.33331 1.99999C5.33331 2.36818 5.03484 2.66666 4.66665 2.66666C4.29846 2.66666 3.99998 2.36818 3.99998 1.99999C3.99998 1.63181 4.29846 1.33333 4.66665 1.33333C5.03484 1.33333 5.33331 1.63181 5.33331 1.99999ZM7.33331 2.66666C7.7015 2.66666 7.99998 2.36818 7.99998 1.99999C7.99998 1.63181 7.7015 1.33333 7.33331 1.33333C6.96512 1.33333 6.66665 1.63181 6.66665 1.99999C6.66665 2.36818 6.96512 2.66666 7.33331 2.66666ZM10.6666 1.99999C10.6666 2.36818 10.3682 2.66666 9.99998 2.66666C9.63179 2.66666 9.33331 2.36818 9.33331 1.99999C9.33331 1.63181 9.63179 1.33333 9.99998 1.33333C10.3682 1.33333 10.6666 1.63181 10.6666 1.99999ZM3.33331 3.99999C3.7015 3.99999 3.99998 3.70152 3.99998 3.33333C3.99998 2.96514 3.7015 2.66666 3.33331 2.66666C2.96512 2.66666 2.66665 2.96514 2.66665 3.33333C2.66665 3.70152 2.96512 3.99999 3.33331 3.99999ZM6.66665 3.33333C6.66665 3.70152 6.36817 3.99999 5.99998 3.99999C5.63179 3.99999 5.33331 3.70152 5.33331 3.33333C5.33331 2.96514 5.63179 2.66666 5.99998 2.66666C6.36817 2.66666 6.66665 2.96514 6.66665 3.33333ZM8.66665 3.99999C9.03484 3.99999 9.33331 3.70152 9.33331 3.33333C9.33331 2.96514 9.03484 2.66666 8.66665 2.66666C8.29846 2.66666 7.99998 2.96514 7.99998 3.33333C7.99998 3.70152 8.29846 3.99999 8.66665 3.99999ZM10.6666 4.66666C10.6666 5.03485 10.3682 5.33333 9.99998 5.33333C9.63179 5.33333 9.33331 5.03485 9.33331 4.66666C9.33331 4.29847 9.63179 3.99999 9.99998 3.99999C10.3682 3.99999 10.6666 4.29847 10.6666 4.66666ZM7.33331 5.33333C7.7015 5.33333 7.99998 5.03485 7.99998 4.66666C7.99998 4.29847 7.7015 3.99999 7.33331 3.99999C6.96512 3.99999 6.66665 4.29847 6.66665 4.66666C6.66665 5.03485 6.96512 5.33333 7.33331 5.33333ZM5.33331 4.66666C5.33331 5.03485 5.03484 5.33333 4.66665 5.33333C4.29846 5.33333 3.99998 5.03485 3.99998 4.66666C3.99998 4.29847 4.29846 3.99999 4.66665 3.99999C5.03484 3.99999 5.33331 4.29847 5.33331 4.66666ZM1.99998 5.33333C2.36817 5.33333 2.66665 5.03485 2.66665 4.66666C2.66665 4.29847 2.36817 3.99999 1.99998 3.99999C1.63179 3.99999 1.33331 4.29847 1.33331 4.66666C1.33331 5.03485 1.63179 5.33333 1.99998 5.33333ZM3.99998 5.99999C3.99998 6.36819 3.7015 6.66666 3.33331 6.66666C2.96512 6.66666 2.66665 6.36819 2.66665 5.99999C2.66665 5.6318 2.96512 5.33333 3.33331 5.33333C3.7015 5.33333 3.99998 5.6318 3.99998 5.99999ZM5.99998 6.66666C6.36817 6.66666 6.66665 6.36819 6.66665 5.99999C6.66665 5.6318 6.36817 5.33333 5.99998 5.33333C5.63179 5.33333 5.33331 5.6318 5.33331 5.99999C5.33331 6.36819 5.63179 6.66666 5.99998 6.66666ZM9.33331 5.99999C9.33331 6.36819 9.03484 6.66666 8.66665 6.66666C8.29846 6.66666 7.99998 6.36819 7.99998 5.99999C7.99998 5.6318 8.29846 5.33333 8.66665 5.33333C9.03484 5.33333 9.33331 5.6318 9.33331 5.99999ZM9.99998 8C10.3682 8 10.6666 7.70152 10.6666 7.33333C10.6666 6.96514 10.3682 6.66666 9.99998 6.66666C9.63179 6.66666 9.33331 6.96514 9.33331 7.33333C9.33331 7.70152 9.63179 8 9.99998 8ZM7.99998 7.33333C7.99998 7.70152 7.7015 8 7.33331 8C6.96512 8 6.66665 7.70152 6.66665 7.33333C6.66665 6.96514 6.96512 6.66666 7.33331 6.66666C7.7015 6.66666 7.99998 6.96514 7.99998 7.33333ZM4.66665 8C5.03484 8 5.33331 7.70152 5.33331 7.33333C5.33331 6.96514 5.03484 6.66666 4.66665 6.66666C4.29846 6.66666 3.99998 6.96514 3.99998 7.33333C3.99998 7.70152 4.29846 8 4.66665 8ZM2.66665 7.33333C2.66665 7.70152 2.36817 8 1.99998 8C1.63179 8 1.33331 7.70152 1.33331 7.33333C1.33331 6.96514 1.63179 6.66666 1.99998 6.66666C2.36817 6.66666 2.66665 6.96514 2.66665 7.33333Z" fill="url(#paint0_linear_503_3486)"/>
</g>
</g>
</g>
<defs>
<filter id="filter0_d_503_3486" x="1.33331" y="1.33333" width="9.33331" height="7.66667" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_503_3486"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_503_3486" result="shape"/>
</filter>
<linearGradient id="paint0_linear_503_3486" x1="1.33331" y1="1.33333" x2="1.33331" y2="7.99999" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#F0F0F0"/>
</linearGradient>
<clipPath id="clip0_503_3486">
<rect width="28" height="20" rx="2" fill="white"/>
</clipPath>
</defs>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="800"
height="571.42859"
viewBox="0 -4 28 20.000001"
fill="none"
version="1.1"
id="svg8"
sodipodi:docname="NTSC-U.svg"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview8"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="0.96875"
inkscape:cx="400"
inkscape:cy="285.93548"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<g
clip-path="url(#clip0_503_3486)"
id="g5"
transform="translate(0,-4)">
<rect
width="28"
height="20"
rx="2"
fill="#ffffff"
id="rect1"
x="0"
y="0" />
<mask
id="mask0_503_3486"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="28"
height="20">
<rect
width="28"
height="20"
rx="2"
fill="#ffffff"
id="rect2"
x="0"
y="0" />
</mask>
<g
mask="url(#mask0_503_3486)"
id="g4">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M 28,0 H 0 v 1.33333 h 28 z m 0,2.66667 H 0 V 4 H 28 Z M 0,5.33333 H 28 V 6.66667 H 0 Z M 28,8 H 0 V 9.33333 H 28 Z M 0,10.6667 H 28 V 12 H 0 Z m 28,2.6666 H 0 v 1.3334 H 28 Z M 0,16 h 28 v 1.3333 H 0 Z m 28,2.6667 H 0 V 20 h 28 z"
fill="#d02f44"
id="path2" />
<rect
width="12"
height="9.3333302"
fill="#46467f"
id="rect3"
x="0"
y="0" />
<g
filter="url(#filter0_d_503_3486)"
id="g3">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="m 2.66665,1.99999 c 0,0.36819 -0.29848,0.66667 -0.66667,0.66667 -0.36819,0 -0.66667,-0.29848 -0.66667,-0.66667 0,-0.36818 0.29848,-0.66666 0.66667,-0.66666 0.36819,0 0.66667,0.29848 0.66667,0.66666 z m 2.66666,0 c 0,0.36819 -0.29847,0.66667 -0.66666,0.66667 -0.36819,0 -0.66667,-0.29848 -0.66667,-0.66667 0,-0.36818 0.29848,-0.66666 0.66667,-0.66666 0.36819,0 0.66666,0.29848 0.66666,0.66666 z m 2,0.66667 c 0.36819,0 0.66667,-0.29848 0.66667,-0.66667 0,-0.36818 -0.29848,-0.66666 -0.66667,-0.66666 -0.36819,0 -0.66666,0.29848 -0.66666,0.66666 0,0.36819 0.29847,0.66667 0.66666,0.66667 z M 10.6666,1.99999 c 0,0.36819 -0.2984,0.66667 -0.66662,0.66667 -0.36819,0 -0.66667,-0.29848 -0.66667,-0.66667 0,-0.36818 0.29848,-0.66666 0.66667,-0.66666 0.36822,0 0.66662,0.29848 0.66662,0.66666 z m -7.33329,2 c 0.36819,0 0.66667,-0.29847 0.66667,-0.66666 0,-0.36819 -0.29848,-0.66667 -0.66667,-0.66667 -0.36819,0 -0.66666,0.29848 -0.66666,0.66667 0,0.36819 0.29847,0.66666 0.66666,0.66666 z M 6.66665,3.33333 c 0,0.36819 -0.29848,0.66666 -0.66667,0.66666 -0.36819,0 -0.66667,-0.29847 -0.66667,-0.66666 0,-0.36819 0.29848,-0.66667 0.66667,-0.66667 0.36819,0 0.66667,0.29848 0.66667,0.66667 z m 2,0.66666 c 0.36819,0 0.66666,-0.29847 0.66666,-0.66666 0,-0.36819 -0.29847,-0.66667 -0.66666,-0.66667 -0.36819,0 -0.66667,0.29848 -0.66667,0.66667 0,0.36819 0.29848,0.66666 0.66667,0.66666 z m 1.99995,0.66667 c 0,0.36819 -0.2984,0.66667 -0.66662,0.66667 -0.36819,0 -0.66667,-0.29848 -0.66667,-0.66667 0,-0.36819 0.29848,-0.66667 0.66667,-0.66667 0.36822,0 0.66662,0.29848 0.66662,0.66667 z M 7.33331,5.33333 c 0.36819,0 0.66667,-0.29848 0.66667,-0.66667 0,-0.36819 -0.29848,-0.66667 -0.66667,-0.66667 -0.36819,0 -0.66666,0.29848 -0.66666,0.66667 0,0.36819 0.29847,0.66667 0.66666,0.66667 z m -2,-0.66667 c 0,0.36819 -0.29847,0.66667 -0.66666,0.66667 -0.36819,0 -0.66667,-0.29848 -0.66667,-0.66667 0,-0.36819 0.29848,-0.66667 0.66667,-0.66667 0.36819,0 0.66666,0.29848 0.66666,0.66667 z M 1.99998,5.33333 c 0.36819,0 0.66667,-0.29848 0.66667,-0.66667 0,-0.36819 -0.29848,-0.66667 -0.66667,-0.66667 -0.36819,0 -0.66667,0.29848 -0.66667,0.66667 0,0.36819 0.29848,0.66667 0.66667,0.66667 z m 2,0.66666 c 0,0.3682 -0.29848,0.66667 -0.66667,0.66667 -0.36819,0 -0.66666,-0.29847 -0.66666,-0.66667 0,-0.36819 0.29847,-0.66666 0.66666,-0.66666 0.36819,0 0.66667,0.29847 0.66667,0.66666 z m 2,0.66667 c 0.36819,0 0.66667,-0.29847 0.66667,-0.66667 0,-0.36819 -0.29848,-0.66666 -0.66667,-0.66666 -0.36819,0 -0.66667,0.29847 -0.66667,0.66666 0,0.3682 0.29848,0.66667 0.66667,0.66667 z M 9.33331,5.99999 c 0,0.3682 -0.29847,0.66667 -0.66666,0.66667 -0.36819,0 -0.66667,-0.29847 -0.66667,-0.66667 0,-0.36819 0.29848,-0.66666 0.66667,-0.66666 0.36819,0 0.66666,0.29847 0.66666,0.66666 z M 9.99998,8 c 0.36822,0 0.66662,-0.29848 0.66662,-0.66667 0,-0.36819 -0.2984,-0.66667 -0.66662,-0.66667 -0.36819,0 -0.66667,0.29848 -0.66667,0.66667 C 9.33331,7.70152 9.63179,8 9.99998,8 Z m -2,-0.66667 C 7.99998,7.70152 7.7015,8 7.33331,8 6.96512,8 6.66665,7.70152 6.66665,7.33333 c 0,-0.36819 0.29847,-0.66667 0.66666,-0.66667 0.36819,0 0.66667,0.29848 0.66667,0.66667 z M 4.66665,8 C 5.03484,8 5.33331,7.70152 5.33331,7.33333 5.33331,6.96514 5.03484,6.66666 4.66665,6.66666 4.29846,6.66666 3.99998,6.96514 3.99998,7.33333 3.99998,7.70152 4.29846,8 4.66665,8 Z m -2,-0.66667 C 2.66665,7.70152 2.36817,8 1.99998,8 1.63179,8 1.33331,7.70152 1.33331,7.33333 c 0,-0.36819 0.29848,-0.66667 0.66667,-0.66667 0.36819,0 0.66667,0.29848 0.66667,0.66667 z"
fill="url(#paint0_linear_503_3486)"
id="path3"
style="fill:url(#paint0_linear_503_3486)" />
</g>
</g>
</g>
<defs
id="defs8">
<filter
id="filter0_d_503_3486"
x="1.33331"
y="1.33333"
width="9.3333101"
height="7.6666698"
filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB">
<feFlood
flood-opacity="0"
result="BackgroundImageFix"
id="feFlood5" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
id="feColorMatrix5" />
<feOffset
dy="1"
id="feOffset5" />
<feColorMatrix
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"
id="feColorMatrix6" />
<feBlend
mode="normal"
in2="BackgroundImageFix"
result="effect1_dropShadow_503_3486"
id="feBlend6" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_503_3486"
result="shape"
id="feBlend7" />
</filter>
<linearGradient
id="paint0_linear_503_3486"
x1="1.33331"
y1="1.33333"
x2="1.33331"
y2="7.99999"
gradientUnits="userSpaceOnUse">
<stop
stop-color="white"
id="stop7" />
<stop
offset="1"
stop-color="#F0F0F0"
id="stop8" />
</linearGradient>
<clipPath
id="clip0_503_3486">
<rect
width="28"
height="20"
rx="2"
fill="#ffffff"
id="rect8"
x="0"
y="0" />
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -1 +1,58 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00247D" d="M32 5H4c-.205 0-.407.015-.604.045l-.004 1.754-2.73-.004C.244 7.427 0 8.185 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path d="M9 26.023l-1.222 1.129.121-1.66-1.645-.251 1.373-.94-.829-1.443 1.591.488L9 21.797l.612 1.549 1.591-.488-.83 1.443 1.374.94-1.645.251.121 1.66zM27.95 9.562l-.799.738.079-1.086-1.077-.164.899-.615-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.615-1.076.164.079 1.086zm-4 6l-.799.739.079-1.086-1.077-.164.899-.616-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.616-1.076.164.079 1.086zm9-2l-.799.739.079-1.086-1.077-.164.899-.616-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.616-1.076.164.079 1.086zm-5 14l-.799.739.079-1.086-1.077-.164.899-.616-.542-.944 1.04.319.4-1.013.401 1.013 1.041-.319-.543.944.898.616-1.076.164.079 1.086zM31 16l.294.596.657.095-.475.463.112.655L31 17.5l-.588.309.112-.655-.475-.463.657-.095z" fill="#FFF"/><path fill="#00247D" d="M19 18V5H4c-.32 0-.604.045-.604.045l-.004 1.754-2.73-.004S.62 6.854.535 7C.195 7.589 0 8.272 0 9v9h19z"/><path fill="#EEE" d="M19 5h-2.331L12 8.269V5H7v2.569L3.396 5.045c-.614.094-1.19.325-1.672.665L6.426 9H4.69L.967 6.391c-.11.129-.211.262-.305.404L3.813 9H0v5h3.885L0 16.766V18h3.332L7 15.432V18h5v-3.269L16.668 18H19v-2.029L16.185 14H19V9h-2.814L19 7.029V5z"/><path fill="#CF1B2B" d="M11 5H8v5H0v3h8v5h3v-5h8v-3h-8z"/><path fill="#CF1B2B" d="M19 5h-1.461L12 8.879V9h1.571L19 5.198zm-17.276.71c-.281.195-.534.423-.757.681L4.69 9h1.735L1.724 5.71zM6.437 14L.734 18h1.727L7 14.822V14zM19 17.802v-1.22L15.313 14H13.57z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg6"
sodipodi:docname="PAL-A.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs6" />
<sodipodi:namedview
id="namedview6"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
fill="#00247d"
d="M 32,0 H 4 C 3.795,0 3.593,0.015 3.396,0.045 L 3.392,1.799 0.662,1.795 C 0.244,2.427 0,3.185 0,4 v 18 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
d="M 9,21.023 7.778,22.152 7.899,20.492 6.254,20.241 7.627,19.301 6.798,17.858 8.389,18.346 9,16.797 l 0.612,1.549 1.591,-0.488 -0.83,1.443 1.374,0.94 -1.645,0.251 0.121,1.66 z M 27.95,4.562 27.151,5.3 27.23,4.214 26.153,4.05 27.052,3.435 26.51,2.491 27.55,2.81 27.95,1.797 28.351,2.81 29.392,2.491 28.849,3.435 29.747,4.05 28.671,4.214 28.75,5.3 Z m -4,6 -0.799,0.739 0.079,-1.086 -1.077,-0.164 0.899,-0.616 -0.542,-0.944 1.04,0.319 0.4,-1.013 0.401,1.013 1.041,-0.319 -0.543,0.944 0.898,0.616 -1.076,0.164 0.079,1.086 z m 9,-2 -0.799,0.739 0.079,-1.086 -1.077,-0.164 0.899,-0.616 -0.542,-0.944 1.04,0.319 0.4,-1.013 0.401,1.013 1.041,-0.319 -0.543,0.944 0.898,0.616 -1.076,0.164 0.079,1.086 z m -5,14 -0.799,0.739 0.079,-1.086 -1.077,-0.164 0.899,-0.616 -0.542,-0.944 1.04,0.319 0.4,-1.013 0.401,1.013 1.041,-0.319 -0.543,0.944 0.898,0.616 -1.076,0.164 0.079,1.086 z M 31,11 l 0.294,0.596 0.657,0.095 -0.475,0.463 0.112,0.655 L 31,12.5 l -0.588,0.309 0.112,-0.655 -0.475,-0.463 0.657,-0.095 z"
fill="#ffffff"
id="path2" />
<path
fill="#00247d"
d="M 19,13 V 0 H 4 C 3.68,0 3.396,0.045 3.396,0.045 L 3.392,1.799 0.662,1.795 C 0.662,1.795 0.62,1.854 0.535,2 0.195,2.589 0,3.272 0,4 v 9 z"
id="path3" />
<path
fill="#eeeeee"
d="M 19,0 H 16.669 L 12,3.269 V 0 H 7 V 2.569 L 3.396,0.045 C 2.782,0.139 2.206,0.37 1.724,0.71 L 6.426,4 H 4.69 L 0.967,1.391 C 0.857,1.52 0.756,1.653 0.662,1.795 L 3.813,4 H 0 V 9 H 3.885 L 0,11.766 V 13 H 3.332 L 7,10.432 V 13 h 5 V 9.731 L 16.668,13 H 19 V 10.971 L 16.185,9 H 19 V 4 H 16.186 L 19,2.029 Z"
id="path4" />
<path
fill="#cf1b2b"
d="M 11,0 H 8 V 5 H 0 v 3 h 8 v 5 h 3 V 8 h 8 V 5 h -8 z"
id="path5" />
<path
fill="#cf1b2b"
d="M 19,0 H 17.539 L 12,3.879 V 4 h 1.571 L 19,0.198 Z M 1.724,0.71 C 1.443,0.905 1.19,1.133 0.967,1.391 L 4.69,4 H 6.425 Z M 6.437,9 0.734,13 H 2.461 L 7,9.822 V 9 Z M 19,12.802 v -1.22 L 15.313,9 H 13.57 Z"
id="path6" />
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1 +1,58 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DE3830" d="M32 5H6.5L19 13.5h17V9c0-2.209-1.791-4-4-4z"/><path fill="#002395" d="M6.5 31H32c2.209 0 4-1.791 4-4v-4.5H19L6.5 31z"/><path fill="#141414" d="M0 11v14l10.5-7z"/><path fill="#FFB611" d="M0 9v2l10.5 7L0 25v2l13.5-9z"/><path fill="#007A4D" d="M3.541 5.028C1.548 5.257 0 6.947 0 9l13.5 9L0 27c0 2.053 1.548 3.743 3.541 3.972L18.5 20.5H36v-5H18.5L3.541 5.028z"/><path fill="#EEE" d="M6.5 5H4c-.156 0-.308.011-.459.028L18.5 15.5H36v-2H19L6.5 5zM3.541 30.972c.151.017.303.028.459.028h2.5L19 22.5h17v-2H18.5L3.541 30.972z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg6"
sodipodi:docname="PAL-AF.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs6" />
<sodipodi:namedview
id="namedview6"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
fill="#de3830"
d="M 32,0 H 6.5 L 19,8.5 H 36 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
fill="#002395"
d="M 6.5,26 H 32 c 2.209,0 4,-1.791 4,-4 V 17.5 H 19 Z"
id="path2" />
<path
fill="#141414"
d="M 0,6 V 20 L 10.5,13 Z"
id="path3" />
<path
fill="#ffb611"
d="M 0,4 V 6 L 10.5,13 0,20 v 2 l 13.5,-9 z"
id="path4" />
<path
fill="#007a4d"
d="M 3.541,0.028 C 1.548,0.257 0,1.947 0,4 L 13.5,13 0,22 c 0,2.053 1.548,3.743 3.541,3.972 L 18.5,15.5 H 36 v -5 H 18.5 Z"
id="path5" />
<path
fill="#eeeeee"
d="M 6.5,0 H 4 C 3.844,0 3.692,0.011 3.541,0.028 L 18.5,10.5 H 36 v -2 H 19 Z M 3.541,25.972 C 3.692,25.989 3.844,26 4,26 H 6.5 L 19,17.5 h 17 v -2 H 18.5 Z"
id="path6" />
</svg>

Before

Width:  |  Height:  |  Size: 607 B

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,2 +1,48 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--twemoji" preserveAspectRatio="xMidYMid meet"><path fill="#EEE" d="M0 13h36v10H0z"></path><path fill="#ED2939" d="M32 5H4a4 4 0 0 0-4 4v4h36V9a4 4 0 0 0-4-4zM4 31h28a4 4 0 0 0 4-4v-4H0v4a4 4 0 0 0 4 4z"></path></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="800"
height="577.77777"
viewBox="0 0 36 26"
aria-hidden="true"
role="img"
class="iconify iconify--twemoji"
preserveAspectRatio="xMidYMid"
version="1.1"
id="svg2"
sodipodi:docname="PAL-AU.svg"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="0.96875"
inkscape:cx="400"
inkscape:cy="289.03226"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#eeeeee"
d="M 0,8 H 36 V 18 H 0 Z"
id="path1" />
<path
fill="#ed2939"
d="M 32,0 H 4 A 4,4 0 0 0 0,4 V 8 H 36 V 4 A 4,4 0 0 0 32,0 Z M 4,26 h 28 a 4,4 0 0 0 4,-4 V 18 H 0 v 4 a 4,4 0 0 0 4,4 z"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 520 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#141414" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#FEE833" d="M12 5h12v26H12z"/><path fill="#EE232C" d="M32 5h-8v26h8c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg3"
sodipodi:docname="PAL-BE.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<path
fill="#141414"
d="M 4,0 C 1.791,0 0,1.791 0,4 v 18 c 0,2.209 1.791,4 4,4 h 8 V 0 Z"
id="path1" />
<path
fill="#fee833"
d="M 12,0 H 24 V 26 H 12 Z"
id="path2" />
<path
fill="#ee232c"
d="m 32,0 h -8 v 26 h 8 c 2.209,0 4,-1.791 4,-4 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path3" />
</svg>

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#039" d="M32 5H4C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path d="M18.539 9.705l.849-.617h-1.049l-.325-.998-.324.998h-1.049l.849.617-.325.998.849-.617.849.617zm0 17.333l.849-.617h-1.049l-.325-.998-.324.998h-1.049l.849.617-.325.998.849-.617.849.617zm-8.666-8.667l.849-.617h-1.05l-.324-.998-.325.998H7.974l.849.617-.324.998.849-.617.849.617zm1.107-4.285l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.617.849.617zm0 8.619l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.617.849.617zm3.226-11.839l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.617.849.617zm0 15.067l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.616.849.616zm11.921-7.562l-.849-.617h1.05l.324-.998.325.998h1.049l-.849.617.324.998-.849-.617-.849.617zm-1.107-4.285l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.617-.849.617zm0 8.619l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.617-.849.617zm-3.226-11.839l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.617-.849.617zm0 15.067l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.616-.849.616z" fill="#FC0"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg2"
sodipodi:docname="PAL-E.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#003399"
d="M 32,0 H 4 C 1.791,0 0,1.791 0,4 v 18 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
d="M 18.539,4.705 19.388,4.088 H 18.339 L 18.014,3.09 17.69,4.088 h -1.049 l 0.849,0.617 -0.325,0.998 0.849,-0.617 0.849,0.617 z m 0,17.333 0.849,-0.617 h -1.049 l -0.325,-0.998 -0.324,0.998 h -1.049 l 0.849,0.617 -0.325,0.998 0.849,-0.617 0.849,0.617 z M 9.873,13.371 10.722,12.754 H 9.672 L 9.348,11.756 9.023,12.754 H 7.974 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z M 10.98,9.086 11.829,8.469 h -1.05 L 10.455,7.471 10.131,8.469 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z m 0,8.619 0.849,-0.617 h -1.05 l -0.324,-0.998 -0.324,0.998 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z M 14.206,5.866 15.055,5.249 h -1.05 L 13.681,4.251 13.357,5.249 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z m 0,15.067 0.849,-0.617 h -1.05 l -0.324,-0.998 -0.324,0.998 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.616 0.849,0.616 z m 11.921,-7.562 -0.849,-0.617 h 1.05 l 0.324,-0.998 0.325,0.998 h 1.049 l -0.849,0.617 0.324,0.998 -0.849,-0.617 -0.849,0.617 z M 25.02,9.086 24.171,8.469 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 l -0.849,0.617 0.324,0.998 -0.849,-0.617 -0.849,0.617 z m 0,8.619 -0.849,-0.617 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 l -0.849,0.617 0.324,0.998 -0.849,-0.617 -0.849,0.617 z M 21.794,5.866 20.945,5.249 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 L 22.844,5.866 23.168,6.864 22.319,6.247 21.47,6.864 Z m 0,15.067 -0.849,-0.617 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 l -0.849,0.617 0.324,0.998 -0.849,-0.616 -0.849,0.616 z"
fill="#ffcc00"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(36,9)" id="g20"><path id="path22" style="fill:#ed2939;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -8,0 0,26 8,0 c 2.209,0 4,-1.791 4,-4 L 0,0 Z"/></g><g transform="translate(4,31)" id="g24"><path id="path26" style="fill:#002495;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c -2.209,0 -4,-1.791 -4,-4 l 0,-18 c 0,-2.209 1.791,-4 4,-4 l 8,0 0,26 -8,0 z"/></g><path id="path28" style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 24,5 12,5 12,31 24,31 24,5 Z"/></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 45 32.5"
xml:space="preserve"
version="1.1"
id="svg2"
sodipodi:docname="PAL-F.svg"
width="45"
height="32.5"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="17.222222"
inkscape:cx="22.5"
inkscape:cy="16.258065"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" /><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
id="clipPath16"
clipPathUnits="userSpaceOnUse"><path
id="path18"
d="M 0,36 H 36 V 0 H 0 Z" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,0,38.75)"
id="g10"><g
id="g12"><g
clip-path="url(#clipPath16)"
id="g14"><g
transform="translate(36,9)"
id="g20"><path
id="path22"
style="fill:#ed2939;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 h -8 v 26 h 8 c 2.209,0 4,-1.791 4,-4 z" /></g><g
transform="translate(4,31)"
id="g24"><path
id="path26"
style="fill:#002495;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c -2.209,0 -4,-1.791 -4,-4 v -18 c 0,-2.209 1.791,-4 4,-4 H 8 V 0 Z" /></g><path
id="path28"
style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="M 24,5 H 12 v 26 h 12 z" /></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1 +1,50 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EDECEC" d="M32 5H18v10h18V9c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M11 5H4C1.791 5 0 6.791 0 9v6h11V5z"/><path fill="#EDECEC" d="M32 31H18V21h18v6c0 2.209-1.791 4-4 4zm-21 0H4c-2.209 0-4-1.791-4-4v-6h11v10z"/><path fill="#003580" d="M18 5h-7v10H0v6h11v10h7V21h18v-6H18z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg4"
sodipodi:docname="PAL-FI.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4" />
<sodipodi:namedview
id="namedview4"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
fill="#edecec"
d="M 32,0 H 18 V 10 H 36 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
fill="#eeeeee"
d="M 11,0 H 4 C 1.791,0 0,1.791 0,4 v 6 h 11 z"
id="path2" />
<path
fill="#edecec"
d="M 32,26 H 18 V 16 h 18 v 6 c 0,2.209 -1.791,4 -4,4 z M 11,26 H 4 C 1.791,26 0,24.209 0,22 v -6 h 11 z"
id="path3" />
<path
fill="#003580"
d="M 18,0 H 11 V 10 H 0 v 6 h 11 v 10 h 7 V 16 H 36 V 10 H 18 Z"
id="path4" />
</svg>

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve" version="1.1" id="svg2"><metadata id="metadata8"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs6"><clipPath id="clipPath16" clipPathUnits="userSpaceOnUse"><path id="path18" d="M 0,36 36,36 36,0 0,0 0,36 Z"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,45)" id="g10"><g id="g12"><g clip-path="url(#clipPath16)" id="g14"><g transform="translate(0,9)" id="g20"><path id="path22" style="fill:#ffcd05;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 c 0,-2.209 1.791,-4 4,-4 l 28,0 c 2.209,0 4,1.791 4,4 L 36,4 0,4 0,0 Z"/></g><path id="path24" style="fill:#ed1f24;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,13 36,0 0,9 -36,0 0,-9 z"/><g transform="translate(32,31)" id="g26"><path id="path28" style="fill:#141414;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 0,0 -28,0 c -2.209,0 -4,-1.791 -4,-4 l 0,-5 36,0 0,5 C 4,-1.791 2.209,0 0,0"/></g></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 45 32.5"
xml:space="preserve"
version="1.1"
id="svg2"
sodipodi:docname="PAL-G.svg"
width="45"
height="32.5"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="17.222222"
inkscape:cx="22.5"
inkscape:cy="16.258065"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" /><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
id="clipPath16"
clipPathUnits="userSpaceOnUse"><path
id="path18"
d="M 0,36 H 36 V 0 H 0 Z" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,0,38.75)"
id="g10"><g
id="g12"><g
clip-path="url(#clipPath16)"
id="g14"><g
transform="translate(0,9)"
id="g20"><path
id="path22"
style="fill:#ffcd05;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 c 0,-2.209 1.791,-4 4,-4 h 28 c 2.209,0 4,1.791 4,4 V 4 H 0 Z" /></g><path
id="path24"
style="fill:#ed1f24;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,13 h 36 v 9 H 0 Z" /><g
transform="translate(32,31)"
id="g26"><path
id="path28"
style="fill:#141414;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 0,0 h -28 c -2.209,0 -4,-1.791 -4,-4 V -9 H 4 v 5 C 4,-1.791 2.209,0 0,0" /></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,2 +1,56 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--twemoji" preserveAspectRatio="xMidYMid meet"><path fill="#0D5EB0" d="M4 31h28a3.98 3.98 0 0 0 1.935-.5H2.065A3.98 3.98 0 0 0 4 31z"></path><path fill="#EEE" d="M8.5 19.5H0V22h36v-2.5H14zM0 27c0 .17.014.336.035.5h35.931c.02-.164.034-.33.034-.5v-2H0v2zm14-13h22v2.5H14zm0-5.5V11h22V9c0-.17-.014-.336-.035-.5H14z"></path><path fill="#0D5EB0" d="M14 11h22v3H14zM0 22h36v3H0zm2.065 8.5h31.87a4.002 4.002 0 0 0 2.031-3H.035a3.998 3.998 0 0 0 2.03 3zM0 14h5.5v5.5H0zm14 2.5V14H8.5v5.5H36v-3zm19.935-11A3.98 3.98 0 0 0 32 5H4A4.002 4.002 0 0 0 .034 8.5C.014 8.664 0 8.83 0 9v2h5.5V5.5h3V11H14V8.5h21.965a3.998 3.998 0 0 0-2.03-3z"></path><path fill="#EEE" d="M8.5 11V5h-3v6H0v3h5.5v5.5h3V14H14v-3z"></path></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="800"
height="577.77783"
viewBox="0 0 36 26.000002"
aria-hidden="true"
role="img"
class="iconify iconify--twemoji"
preserveAspectRatio="xMidYMid"
version="1.1"
id="svg4"
sodipodi:docname="PAL-GR.svg"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4" />
<sodipodi:namedview
id="namedview4"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="0.96875"
inkscape:cx="400"
inkscape:cy="289.03226"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
fill="#0d5eb0"
d="m 4,26.000002 h 28 a 3.98,3.98 0 0 0 1.935,-0.5 H 2.065 a 3.98,3.98 0 0 0 1.935,0.5 z"
id="path1" />
<path
fill="#eeeeee"
d="M 8.5,14.500002 H 0 v 2.5 h 36 v -2.5 H 14 Z m -8.5,7.5 c 0,0.17 0.014,0.336 0.035,0.5 h 35.931 c 0.02,-0.164 0.034,-0.33 0.034,-0.5 v -2 H 0 Z M 14,9.0000017 H 36 V 11.500002 H 14 Z m 0,-5.5 v 2.5 h 22 v -2 c 0,-0.17 -0.014,-0.336 -0.035,-0.5 z"
id="path2" />
<path
fill="#0d5eb0"
d="m 14,6.0000017 h 22 v 3 H 14 Z M 0,17.000002 h 36 v 3 H 0 Z m 2.065,8.5 h 31.87 a 4.002,4.002 0 0 0 2.031,-3 H 0.035 a 3.998,3.998 0 0 0 2.03,3 z M 0,9.0000017 H 5.5 V 14.500002 H 0 Z M 14,11.500002 V 9.0000017 H 8.5 V 14.500002 H 36 v -3 z M 33.935,0.5000017 A 3.98,3.98 0 0 0 32,1.6977483e-6 H 4 A 4.002,4.002 0 0 0 0.034,3.5000017 c -0.02,0.164 -0.034,0.33 -0.034,0.5 v 2 h 5.5 v -5.5 h 3 v 5.5 H 14 v -2.5 h 21.965 a 3.998,3.998 0 0 0 -2.03,-3 z"
id="path3" />
<path
fill="#eeeeee"
d="M 8.5,6.0000017 V 1.6977483e-6 h -3 V 6.0000017 H 0 v 3 h 5.5 v 5.5000003 h 3 V 9.0000017 H 14 v -3 z"
id="path4" />
</svg>

Before

Width:  |  Height:  |  Size: 1009 B

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CE2B37" d="M36 27c0 2.209-1.791 4-4 4h-8V5h8c2.209 0 4 1.791 4 4v18z"/><path fill="#009246" d="M4 5C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h8V5H4z"/><path fill="#EEE" d="M12 5h12v26H12z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg3"
sodipodi:docname="PAL-I.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<path
fill="#ce2b37"
d="m 36,22 c 0,2.209 -1.791,4 -4,4 H 24 V 0 h 8 c 2.209,0 4,1.791 4,4 z"
id="path1" />
<path
fill="#009246"
d="M 4,0 C 1.791,0 0,1.791 0,4 v 18 c 0,2.209 1.791,4 4,4 h 8 V 0 Z"
id="path2" />
<path
fill="#eeeeee"
d="M 12,0 H 24 V 26 H 12 Z"
id="path3" />
</svg>

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +1,68 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#138808" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-4H0v4z"/><path fill="#EEE" d="M0 13h36v10H0z"/><path fill="#F93" d="M36 13V9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v4h36z"/><circle fill="navy" cx="18" cy="18" r="4"/><circle fill="#EEE" cx="18" cy="18" r="3"/><path fill="#6666B3" d="M18 15l.146 2.264 1.001-2.035-.73 2.147 1.704-1.498-1.497 1.705 2.147-.731-2.035 1.002L21 18l-2.264.146 2.035 1.001-2.147-.73 1.497 1.704-1.704-1.497.73 2.147-1.001-2.035L18 21l-.146-2.264-1.002 2.035.731-2.147-1.705 1.497 1.498-1.704-2.147.73 2.035-1.001L15 18l2.264-.146-2.035-1.002 2.147.731-1.498-1.705 1.705 1.498-.731-2.147 1.002 2.035z"/><circle fill="navy" cx="18" cy="18" r="1"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg5"
sodipodi:docname="PAL-IN.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs5" />
<sodipodi:namedview
id="namedview5"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg5" />
<path
fill="#138808"
d="m 0,22 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 V 18 H 0 Z"
id="path1" />
<path
fill="#eeeeee"
d="M 0,8 H 36 V 18 H 0 Z"
id="path2" />
<path
fill="#ff9933"
d="M 36,8 V 4 C 36,1.791 34.209,0 32,0 H 4 C 1.791,0 0,1.791 0,4 v 4 z"
id="path3" />
<circle
fill="#000080"
cx="18"
cy="13"
r="4"
id="circle3" />
<circle
fill="#eeeeee"
cx="18"
cy="13"
r="3"
id="circle4" />
<path
fill="#6666b3"
d="m 18,10 0.146,2.264 1.001,-2.035 -0.73,2.147 1.704,-1.498 -1.497,1.705 2.147,-0.731 -2.035,1.002 L 21,13 l -2.264,0.146 2.035,1.001 -2.147,-0.73 1.497,1.704 -1.704,-1.497 0.73,2.147 L 18.146,13.736 18,16 l -0.146,-2.264 -1.002,2.035 0.731,-2.147 -1.705,1.497 1.498,-1.704 -2.147,0.73 2.035,-1.001 L 15,13 l 2.264,-0.146 -2.035,-1.002 2.147,0.731 -1.498,-1.705 1.705,1.498 -0.731,-2.147 1.002,2.035 z"
id="path4" />
<circle
fill="#000080"
cx="18"
cy="13"
r="1"
id="circle5" />
</svg>

Before

Width:  |  Height:  |  Size: 765 B

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#039" d="M32 5H4C1.791 5 0 6.791 0 9v18c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path d="M18.539 9.705l.849-.617h-1.049l-.325-.998-.324.998h-1.049l.849.617-.325.998.849-.617.849.617zm0 17.333l.849-.617h-1.049l-.325-.998-.324.998h-1.049l.849.617-.325.998.849-.617.849.617zm-8.666-8.667l.849-.617h-1.05l-.324-.998-.325.998H7.974l.849.617-.324.998.849-.617.849.617zm1.107-4.285l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.617.849.617zm0 8.619l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.617.849.617zm3.226-11.839l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.617.849.617zm0 15.067l.849-.617h-1.05l-.324-.998-.324.998h-1.05l.849.617-.324.998.849-.616.849.616zm11.921-7.562l-.849-.617h1.05l.324-.998.325.998h1.049l-.849.617.324.998-.849-.617-.849.617zm-1.107-4.285l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.617-.849.617zm0 8.619l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.617-.849.617zm-3.226-11.839l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.617-.849.617zm0 15.067l-.849-.617h1.05l.324-.998.324.998h1.05l-.849.617.324.998-.849-.616-.849.616z" fill="#FC0"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg2"
sodipodi:docname="PAL-M.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#003399"
d="M 32,0 H 4 C 1.791,0 0,1.791 0,4 v 18 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
d="M 18.539,4.705 19.388,4.088 H 18.339 L 18.014,3.09 17.69,4.088 h -1.049 l 0.849,0.617 -0.325,0.998 0.849,-0.617 0.849,0.617 z m 0,17.333 0.849,-0.617 h -1.049 l -0.325,-0.998 -0.324,0.998 h -1.049 l 0.849,0.617 -0.325,0.998 0.849,-0.617 0.849,0.617 z M 9.873,13.371 10.722,12.754 H 9.672 L 9.348,11.756 9.023,12.754 H 7.974 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z M 10.98,9.086 11.829,8.469 h -1.05 L 10.455,7.471 10.131,8.469 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z m 0,8.619 0.849,-0.617 h -1.05 l -0.324,-0.998 -0.324,0.998 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z M 14.206,5.866 15.055,5.249 h -1.05 L 13.681,4.251 13.357,5.249 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.617 0.849,0.617 z m 0,15.067 0.849,-0.617 h -1.05 l -0.324,-0.998 -0.324,0.998 h -1.05 l 0.849,0.617 -0.324,0.998 0.849,-0.616 0.849,0.616 z m 11.921,-7.562 -0.849,-0.617 h 1.05 l 0.324,-0.998 0.325,0.998 h 1.049 l -0.849,0.617 0.324,0.998 -0.849,-0.617 -0.849,0.617 z M 25.02,9.086 24.171,8.469 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 l -0.849,0.617 0.324,0.998 -0.849,-0.617 -0.849,0.617 z m 0,8.619 -0.849,-0.617 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 l -0.849,0.617 0.324,0.998 -0.849,-0.617 -0.849,0.617 z M 21.794,5.866 20.945,5.249 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 L 22.844,5.866 23.168,6.864 22.319,6.247 21.47,6.864 Z m 0,15.067 -0.849,-0.617 h 1.05 l 0.324,-0.998 0.324,0.998 h 1.05 l -0.849,0.617 0.324,0.998 -0.849,-0.616 -0.849,0.616 z"
fill="#ffcc00"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M0 14h36v8H0z"/><path fill="#AE1F28" d="M32 5H4C1.791 5 0 6.791 0 9v5h36V9c0-2.209-1.791-4-4-4z"/><path fill="#20478B" d="M4 31h28c2.209 0 4-1.791 4-4v-5H0v5c0 2.209 1.791 4 4 4z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg3"
sodipodi:docname="PAL-NL.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<path
fill="#eeeeee"
d="m 0,9 h 36 v 8 H 0 Z"
id="path1" />
<path
fill="#ae1f28"
d="M 32,0 H 4 C 1.791,0 0,1.791 0,4 V 9 H 36 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path2" />
<path
fill="#20478b"
d="m 4,26 h 28 c 2.209,0 4,-1.791 4,-4 V 17 H 0 v 5 c 0,2.209 1.791,4 4,4 z"
id="path3" />
</svg>

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF2B2D" d="M10 5H4C1.791 5 0 6.791 0 9v6h10V5zm22 0H16v10h20V9c0-2.209-1.791-4-4-4zM16 31h16c2.209 0 4-1.791 4-4.5V21H16v10zM0 21v5.5C0 29.209 1.791 31 4 31h6V21H0z"/><path fill="#002868" d="M14.5 5h-2.944l-.025 11.5H0v3h11.525L11.5 31h3V19.5H36v-3H14.5z"/><path fill="#EDECEC" d="M14.5 31H16V21h20v-1.5H14.5zM16 5h-1.5v11.5H36V15H16zm-4.5 0H10v10H0v1.5h11.5zM0 19.5V21h10v10h1.5V19.5z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg3"
sodipodi:docname="PAL-NO.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<path
fill="#ef2b2d"
d="M 10,0 H 4 C 1.791,0 0,1.791 0,4 v 6 H 10 Z M 32,0 H 16 V 10 H 36 V 4 C 36,1.791 34.209,0 32,0 Z M 16,26 h 16 c 2.209,0 4,-1.791 4,-4.5 V 16 H 16 Z M 0,16 v 5.5 C 0,24.209 1.791,26 4,26 h 6 V 16 Z"
id="path1" />
<path
fill="#002868"
d="M 14.5,0 H 11.556 L 11.531,11.5 H 0 v 3 H 11.525 L 11.5,26 h 3 V 14.5 H 36 v -3 H 14.5 Z"
id="path2" />
<path
fill="#edecec"
d="M 14.5,26 H 16 V 16 H 36 V 14.5 H 14.5 Z M 16,0 H 14.5 V 11.5 H 36 V 10 H 16 Z M 11.5,0 H 10 V 10 H 0 v 1.5 H 11.5 Z M 0,14.5 V 16 h 10 v 10 h 1.5 V 14.5 Z"
id="path3" />
</svg>

Before

Width:  |  Height:  |  Size: 467 B

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1 +1,66 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#060" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#D52B1E" d="M32 5H15v26h17c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#FFCC4D" d="M15 10c-4.419 0-8 3.581-8 8 0 4.418 3.581 8 8 8 4.418 0 8-3.582 8-8 0-4.419-3.582-8-8-8zm-6.113 4.594l1.602 1.602-2.46 1.23c.083-1.022.383-1.981.858-2.832zm-.858 3.979l4.4 2.207-2.706 1.804.014.021c-.96-1.097-1.583-2.492-1.708-4.032zM14 24.92c-.937-.134-1.813-.453-2.592-.92H14v.92zM14 23h-3.099L14 20.934V23zm0-3.268l-.607.405L9.118 18l2.116-1.058L14 19.707v.025zm0-1.439l-3.543-3.543 3.543.59v2.953zm0-3.992l-4.432-.713c1.084-1.333 2.65-2.253 4.432-2.508v3.221zm7.113.293c.475.851.775 1.81.858 2.833l-2.46-1.23 1.602-1.603zM16 11.08c1.782.256 3.348 1.175 4.432 2.508L16 14.301V11.08zm0 4.26l3.543-.591L16 18.293V15.34zm0 4.367l2.765-2.765L20.882 18l-4.274 2.137-.608-.405v-.025zm0 5.213V24h2.592c-.779.467-1.655.786-2.592.92zM16 23v-2.066L19.099 23H16zm4.264-.395l.014-.021-2.706-1.804 4.4-2.207c-.126 1.54-.749 2.935-1.708 4.032z"/><path fill="#D52B1E" d="M11 13v7c0 2.209 1.791 4 4 4s4-1.791 4-4v-7h-8z"/><path fill="#FFF" d="M12 14v6c0 1.656 1.343 3 3 3s3-1.344 3-3v-6h-6z"/><path fill="#829ACD" d="M13 17h4v2h-4z"/><path fill="#829ACD" d="M14 16h2v4h-2z"/><path fill="#039" d="M12 17h1v2h-1zm2 0h2v2h-2zm3 0h1v2h-1zm-3 3h2v2h-2zm0-6h2v2h-2z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg8"
sodipodi:docname="PAL-P.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview8"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<path
fill="#006600"
d="m 36,22 c 0,2.209 -1.791,4 -4,4 H 4 C 1.791,26 0,24.209 0,22 V 4 C 0,1.791 1.791,0 4,0 h 28 c 2.209,0 4,1.791 4,4 z"
id="path1" />
<path
fill="#d52b1e"
d="M 32,0 H 15 v 26 h 17 c 2.209,0 4,-1.791 4,-4 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path2" />
<path
fill="#ffcc4d"
d="m 15,5 c -4.419,0 -8,3.581 -8,8 0,4.418 3.581,8 8,8 4.418,0 8,-3.582 8,-8 0,-4.419 -3.582,-8 -8,-8 z m -6.113,4.594 1.602,1.602 -2.46,1.23 C 8.112,11.404 8.412,10.445 8.887,9.594 Z m -0.858,3.979 4.4,2.207 -2.706,1.804 0.014,0.021 C 8.777,16.508 8.154,15.113 8.029,13.573 Z M 14,19.92 C 13.063,19.786 12.187,19.467 11.408,19 H 14 Z M 14,18 H 10.901 L 14,15.934 Z M 14,14.732 13.393,15.137 9.118,13 11.234,11.942 14,14.707 Z M 14,13.293 10.457,9.75 14,10.34 Z M 14,9.301 9.568,8.588 C 10.652,7.255 12.218,6.335 14,6.08 Z m 7.113,0.293 c 0.475,0.851 0.775,1.81 0.858,2.833 l -2.46,-1.23 z M 16,6.08 c 1.782,0.256 3.348,1.175 4.432,2.508 L 16,9.301 Z M 16,10.34 19.543,9.749 16,13.293 Z m 0,4.367 2.765,-2.765 L 20.882,13 16.608,15.137 16,14.732 Z m 0,5.213 V 19 h 2.592 C 17.813,19.467 16.937,19.786 16,19.92 Z M 16,18 V 15.934 L 19.099,18 Z m 4.264,-0.395 0.014,-0.021 -2.706,-1.804 4.4,-2.207 c -0.126,1.54 -0.749,2.935 -1.708,4.032 z"
id="path3" />
<path
fill="#d52b1e"
d="m 11,8 v 7 c 0,2.209 1.791,4 4,4 2.209,0 4,-1.791 4,-4 V 8 Z"
id="path4" />
<path
fill="#ffffff"
d="m 12,9 v 6 c 0,1.656 1.343,3 3,3 1.657,0 3,-1.344 3,-3 V 9 Z"
id="path5" />
<path
fill="#829acd"
d="m 13,12 h 4 v 2 h -4 z"
id="path6" />
<path
fill="#829acd"
d="m 14,11 h 2 v 4 h -2 z"
id="path7" />
<path
fill="#003399"
d="m 12,12 h 1 v 2 h -1 z m 2,0 h 2 v 2 h -2 z m 3,0 h 1 v 2 h -1 z m -3,3 h 2 v 2 h -2 z m 0,-6 h 2 v 2 h -2 z"
id="path8" />
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EEE" d="M32 5H4C1.791 5 0 6.791 0 9v9h36V9c0-2.209-1.791-4-4-4z"/><path fill="#DC143C" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-9H0v9z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg2"
sodipodi:docname="PAL-PL.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#eeeeee"
d="M 32,0 H 4 C 1.791,0 0,1.791 0,4 v 9 H 36 V 4 C 36,1.791 34.209,0 32,0 Z"
id="path1" />
<path
fill="#dc143c"
d="m 0,22 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 V 13 H 0 Z"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 228 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" id="svg2" xml:space="preserve"><defs id="defs6"><clipPath id="clipPath18"><path d="M 0,38 38,38 38,0 0,0 0,38 z" id="path20"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g12"><g id="g14"><g clip-path="url(#clipPath18)" id="g16"><g transform="translate(37,10)" id="g22"><path d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -28,0 c -2.209,0 -4,1.791 -4,4 l 0,4 36,0 0,-4 z" id="path24" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><path d="M 37,14 1,14 1,24 37,24 37,14 z" id="path26" style="fill:#3b88c3;fill-opacity:1;fill-rule:nonzero;stroke:none"/><g transform="translate(33,32)" id="g28"><path d="m 0,0 -28,0 c -2.209,0 -4,-1.791 -4,-4 l 0,-4 36,0 0,4 C 4,-1.791 2.209,0 0,0" id="path30" style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 45 32.5"
id="svg2"
xml:space="preserve"
sodipodi:docname="PAL-R.svg"
width="45"
height="32.5"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="16.315789"
inkscape:cx="22.524194"
inkscape:cy="16.303226"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" /><defs
id="defs6"><clipPath
id="clipPath18"><path
d="M 0,38 H 38 V 0 H 0 Z"
id="path20" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,-1.25,40)"
id="g12"><g
id="g14"><g
clip-path="url(#clipPath18)"
id="g16"><g
transform="translate(37,10)"
id="g22"><path
d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 h -28 c -2.209,0 -4,1.791 -4,4 V 4 H 0 Z"
id="path24"
style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><path
d="M 37,14 H 1 v 10 h 36 z"
id="path26"
style="fill:#3b88c3;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
transform="translate(33,32)"
id="g28"><path
d="m 0,0 h -28 c -2.209,0 -4,-1.791 -4,-4 V -8 H 4 v 4 C 4,-1.791 2.209,0 0,0"
id="path30"
style="fill:#eeeeee;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1 +1,87 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 47.5 47.5" style="enable-background:new 0 0 47.5 47.5;" id="svg2" xml:space="preserve"><defs id="defs6"><clipPath id="clipPath18"><path d="M 0,38 38,38 38,0 0,0 0,38 z" id="path20"/></clipPath></defs><g transform="matrix(1.25,0,0,-1.25,0,47.5)" id="g12"><g id="g14"><g clip-path="url(#clipPath18)" id="g16"><g transform="translate(37,10)" id="g22"><path d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 l -28,0 c -2.209,0 -4,1.791 -4,4 l 0,18 c 0,2.209 1.791,4 4,4 l 28,0 c 2.209,0 4,-1.791 4,-4 L 0,0 z" id="path24" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><path d="M 37,13 1,13 1,25 37,25 37,13 z" id="path26" style="fill:#ffcc4d;fill-opacity:1;fill-rule:nonzero;stroke:none"/><g transform="translate(10,20)" id="g28"><path d="m 0,0 0,-3 c 0,-1.657 1.343,-3 3,-3 1.657,0 3,1.343 3,3 L 6,0 0,0 z" id="path30" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><path d="m 13,18 3,0 0,3 -3,0 0,-3 z" id="path32" style="fill:#f4a2b2;fill-opacity:1;fill-rule:nonzero;stroke:none"/><path d="m 13,18 -3,0 0,3 3,0 0,-3 z" id="path34" style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none"/><g transform="translate(16,22.5)" id="g36"><path d="m 0,0 c 0,-0.829 -1.343,-1.5 -3,-1.5 -1.657,0 -3,0.671 -3,1.5 0,0.829 1.343,1.5 3,1.5 1.657,0 3,-0.671 3,-1.5" id="path38" style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><g transform="translate(16,23.25)" id="g40"><path d="m 0,0 c 0,0.414 -1.343,0.75 -3,0.75 -1.657,0 -3,-0.336 -3,-0.75 0,-0.414 1.343,-0.75 3,-0.75 1.657,0 3,0.336 3,0.75" id="path42" style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g><path d="m 8,14 1,0 0,7 -1,0 0,-7 z" id="path44" style="fill:#99aab5;fill-opacity:1;fill-rule:nonzero;stroke:none"/><path d="m 18,14 -1,0 0,7 1,0 0,-7 z" id="path46" style="fill:#99aab5;fill-opacity:1;fill-rule:nonzero;stroke:none"/><path d="m 10,14 -3,0 0,1 3,0 0,-1 z" id="path48" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none"/><path d="m 19,14 -3,0 0,1 3,0 0,-1 z" id="path50" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none"/><path d="m 9,21 -1,0 0,1 1,0 0,-1 z" id="path52" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none"/><path d="m 18,21 -1,0 0,1 1,0 0,-1 z" id="path54" style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none"/></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 45 32.5"
id="svg2"
xml:space="preserve"
sodipodi:docname="PAL-S.svg"
width="45"
height="32.5"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="16.315789"
inkscape:cx="22.524194"
inkscape:cy="16.303226"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" /><defs
id="defs6"><clipPath
id="clipPath18"><path
d="M 0,38 H 38 V 0 H 0 Z"
id="path20" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,-1.25,40)"
id="g12"><g
id="g14"><g
clip-path="url(#clipPath18)"
id="g16"><g
transform="translate(37,10)"
id="g22"><path
d="m 0,0 c 0,-2.209 -1.791,-4 -4,-4 h -28 c -2.209,0 -4,1.791 -4,4 v 18 c 0,2.209 1.791,4 4,4 h 28 c 2.209,0 4,-1.791 4,-4 z"
id="path24"
style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><path
d="M 37,13 H 1 v 12 h 36 z"
id="path26"
style="fill:#ffcc4d;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
transform="translate(10,20)"
id="g28"><path
d="m 0,0 v -3 c 0,-1.657 1.343,-3 3,-3 1.657,0 3,1.343 3,3 v 3 z"
id="path30"
style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><path
d="m 13,18 h 3 v 3 h -3 z"
id="path32"
style="fill:#f4a2b2;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
d="m 13,18 h -3 v 3 h 3 z"
id="path34"
style="fill:#dd2e44;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
transform="translate(16,22.5)"
id="g36"><path
d="m 0,0 c 0,-0.829 -1.343,-1.5 -3,-1.5 -1.657,0 -3,0.671 -3,1.5 0,0.829 1.343,1.5 3,1.5 1.657,0 3,-0.671 3,-1.5"
id="path38"
style="fill:#ea596e;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(16,23.25)"
id="g40"><path
d="m 0,0 c 0,0.414 -1.343,0.75 -3,0.75 -1.657,0 -3,-0.336 -3,-0.75 0,-0.414 1.343,-0.75 3,-0.75 1.657,0 3,0.336 3,0.75"
id="path42"
style="fill:#ffac33;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><path
d="m 8,14 h 1 v 7 H 8 Z"
id="path44"
style="fill:#99aab5;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
d="m 18,14 h -1 v 7 h 1 z"
id="path46"
style="fill:#99aab5;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
d="M 10,14 H 7 v 1 h 3 z"
id="path48"
style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
d="m 19,14 h -3 v 1 h 3 z"
id="path50"
style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
d="M 9,21 H 8 v 1 h 1 z"
id="path52"
style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" /><path
d="m 18,21 h -1 v 1 h 1 z"
id="path54"
style="fill:#66757f;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#006AA7" d="M15.5 31H32c2.209 0 4-1.791 4-4.5v-6H15.5V31zM32 5H15.5v10.5H36V9c0-2.209-1.791-4-4-4zM10.5 5H4C1.792 5 .002 6.789 0 8.997V15.5h10.5V5zM0 20.5v6.004C.002 29.211 1.792 31 4 31h6.5V20.5H0z"/><path fill="#FECC00" d="M15.5 5h-5v10.5H0v5h10.5V31h5V20.5H36v-5H15.5z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg2"
sodipodi:docname="PAL-SW.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#006aa7"
d="M 15.5,26 H 32 c 2.209,0 4,-1.791 4,-4.5 v -6 H 15.5 Z M 32,0 H 15.5 V 10.5 H 36 V 4 C 36,1.791 34.209,0 32,0 Z M 10.5,0 H 4 C 1.792,0 0.002,1.789 0,3.997 V 10.5 H 10.5 Z M 0,15.5 v 6.004 C 0.002,24.211 1.792,26 4,26 h 6.5 V 15.5 Z"
id="path1" />
<path
fill="#fecc00"
d="m 15.5,0 h -5 V 10.5 H 0 v 5 H 10.5 V 26 h 5 V 15.5 H 36 v -5 H 15.5 Z"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,2 +1,48 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 36 36" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--twemoji" preserveAspectRatio="xMidYMid meet"><path fill="#D32D27" d="M31 27a4 4 0 0 1-4 4H9a4 4 0 0 1-4-4V9a4 4 0 0 1 4-4h18a4 4 0 0 1 4 4v18z"></path><path fill="#FFF" d="M25 16.063h-5v-5h-4v5h-5V20h5v5.063h4V20h5z"></path></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="577.77777"
height="577.77777"
viewBox="0 0 26 26"
aria-hidden="true"
role="img"
class="iconify iconify--twemoji"
preserveAspectRatio="xMidYMid"
version="1.1"
id="svg2"
sodipodi:docname="PAL-SWI.svg"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<sodipodi:namedview
id="namedview2"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="0.96875"
inkscape:cx="288.51613"
inkscape:cy="289.03226"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#d32d27"
d="m 26,22 a 4,4 0 0 1 -4,4 H 4 A 4,4 0 0 1 0,22 V 4 A 4,4 0 0 1 4,0 h 18 a 4,4 0 0 1 4,4 z"
id="path1" />
<path
fill="#ffffff"
d="m 20,11.063 h -5 v -5 h -4 v 5 H 6 V 15 h 5 v 5.063 h 4 V 15 h 5 z"
id="path2" />
</svg>

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1,50 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#00247D" d="M0 9.059V13h5.628zM4.664 31H13v-5.837zM23 25.164V31h8.335zM0 23v3.941L5.63 23zM31.337 5H23v5.837zM36 26.942V23h-5.631zM36 13V9.059L30.371 13zM13 5H4.664L13 10.837z"/><path fill="#CF1B2B" d="M25.14 23l9.712 6.801c.471-.479.808-1.082.99-1.749L28.627 23H25.14zM13 23h-2.141l-9.711 6.8c.521.53 1.189.909 1.938 1.085L13 23.943V23zm10-10h2.141l9.711-6.8c-.521-.53-1.188-.909-1.937-1.085L23 12.057V13zm-12.141 0L1.148 6.2C.677 6.68.34 7.282.157 7.949L7.372 13h3.487z"/><path fill="#EEE" d="M36 21H21v10h2v-5.836L31.335 31H32c1.117 0 2.126-.461 2.852-1.199L25.14 23h3.487l7.215 5.052c.093-.337.158-.686.158-1.052v-.058L30.369 23H36v-2zM0 21v2h5.63L0 26.941V27c0 1.091.439 2.078 1.148 2.8l9.711-6.8H13v.943l-9.914 6.941c.294.07.598.116.914.116h.664L13 25.163V31h2V21H0zM36 9c0-1.091-.439-2.078-1.148-2.8L25.141 13H23v-.943l9.915-6.942C32.62 5.046 32.316 5 32 5h-.663L23 10.837V5h-2v10h15v-2h-5.629L36 9.059V9zM13 5v5.837L4.664 5H4c-1.118 0-2.126.461-2.852 1.2l9.711 6.8H7.372L.157 7.949C.065 8.286 0 8.634 0 9v.059L5.628 13H0v2h15V5h-2z"/><path fill="#CF1B2B" d="M21 15V5h-6v10H0v6h15v10h6V21h15v-6z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 36 26"
version="1.1"
id="svg4"
sodipodi:docname="PAL-UK.svg"
width="36"
height="26"
inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4" />
<sodipodi:namedview
id="namedview4"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="21.527778"
inkscape:cx="18"
inkscape:cy="13.006452"
inkscape:window-width="1920"
inkscape:window-height="1006"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
fill="#00247d"
d="M 0,4.059 V 8 H 5.628 Z M 4.664,26 H 13 V 20.163 Z M 23,20.164 V 26 h 8.335 z M 0,18 v 3.941 L 5.63,18 Z M 31.337,0 H 23 V 5.837 Z M 36,21.942 V 18 H 30.369 Z M 36,8 V 4.059 L 30.371,8 Z M 13,0 H 4.664 L 13,5.837 Z"
id="path1" />
<path
fill="#cf1b2b"
d="m 25.14,18 9.712,6.801 c 0.471,-0.479 0.808,-1.082 0.99,-1.749 L 28.627,18 Z M 13,18 h -2.141 l -9.711,6.8 c 0.521,0.53 1.189,0.909 1.938,1.085 L 13,18.943 Z M 23,8 h 2.141 L 34.852,1.2 C 34.331,0.67 33.664,0.291 32.915,0.115 L 23,7.057 Z M 10.859,8 1.148,1.2 C 0.677,1.68 0.34,2.282 0.157,2.949 L 7.372,8 Z"
id="path2" />
<path
fill="#eeeeee"
d="M 36,16 H 21 v 10 h 2 V 20.164 L 31.335,26 H 32 c 1.117,0 2.126,-0.461 2.852,-1.199 L 25.14,18 h 3.487 l 7.215,5.052 C 35.935,22.715 36,22.366 36,22 V 21.942 L 30.369,18 H 36 Z M 0,16 v 2 H 5.63 L 0,21.941 V 22 c 0,1.091 0.439,2.078 1.148,2.8 L 10.859,18 H 13 v 0.943 L 3.086,25.884 C 3.38,25.954 3.684,26 4,26 H 4.664 L 13,20.163 V 26 h 2 V 16 Z M 36,4 C 36,2.909 35.561,1.922 34.852,1.2 L 25.141,8 H 23 V 7.057 L 32.915,0.115 C 32.62,0.046 32.316,0 32,0 H 31.337 L 23,5.837 V 0 H 21 V 10 H 36 V 8 H 30.371 L 36,4.059 Z M 13,0 V 5.837 L 4.664,0 H 4 C 2.882,0 1.874,0.461 1.148,1.2 L 10.859,8 H 7.372 L 0.157,2.949 C 0.065,3.286 0,3.634 0,4 V 4.059 L 5.628,8 H 0 v 2 H 15 V 0 Z"
id="path3" />
<path
fill="#cf1b2b"
d="M 21,10 V 0 H 15 V 10 H 0 v 6 h 15 v 10 h 6 V 16 h 15 v -6 z"
id="path4" />
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -160,10 +160,7 @@ float FxaaLuma(float4 rgba)
float4 FxaaPixelShader(float2 pos, FxaaTex tex, float2 fxaaRcpFrame, float fxaaSubpix, float fxaaEdgeThreshold, float fxaaEdgeThresholdMin)
{
float2 posM;
posM.x = pos.x;
posM.y = pos.y;
float2 posM = pos;
float4 rgbyM = FxaaTexTop(tex, posM);
rgbyM.w = RGBLuminance(rgbyM.xyz);
#define lumaM rgbyM.w
@@ -186,9 +183,10 @@ float4 FxaaPixelShader(float2 pos, FxaaTex tex, float2 fxaaRcpFrame, float fxaaS
float rangeMaxScaled = rangeMax * fxaaEdgeThreshold;
float rangeMaxClamped = max(fxaaEdgeThresholdMin, rangeMaxScaled);
bool earlyExit = range < rangeMaxClamped;
#if (FxaaEarlyExit == 1)
if(earlyExit) { return rgbyM; }
// Potential optimization, early exit.
if (range < rangeMaxClamped)
return rgbyM;
#endif
float lumaNW = FxaaLuma(FxaaTexOff(tex, posM, int2(-1,-1), fxaaRcpFrame.xy));

View File

@@ -19,6 +19,8 @@ find_package(LZ4 REQUIRED)
find_package(WebP REQUIRED) # v1.3.2, spews an error on Linux because no pkg-config.
find_package(SDL3 3.2.6 REQUIRED)
find_package(Freetype 2.11.1 REQUIRED)
find_package(plutovg 0.0.13 REQUIRED)
find_package(plutosvg 0.0.6 REQUIRED)
if(USE_VULKAN)
find_package(Shaderc REQUIRED)

View File

@@ -54,18 +54,18 @@ u64 GetAvailablePhysicalMemory()
while (fgets(line, sizeof(line), file))
{
// Modern kernels provide MemAvailable directly - preferred and most accurate.
if (sscanf(line, "MemAvailable: %llu kB", &mem_available) == 1)
if (sscanf(line, "MemAvailable: %lu kB", &mem_available) == 1)
{
fclose(file);
return mem_available * _1kb;
}
// Fallback values for manual approximation.
sscanf(line, "MemFree: %llu kB", &mem_free);
sscanf(line, "Buffers: %llu kB", &buffers);
sscanf(line, "Cached: %llu kB", &cached);
sscanf(line, "SReclaimable: %llu kB", &sreclaimable);
sscanf(line, "Shmem: %llu kB", &shmem);
sscanf(line, "MemFree: %lu kB", &mem_free);
sscanf(line, "Buffers: %lu kB", &buffers);
sscanf(line, "Cached: %lu kB", &cached);
sscanf(line, "SReclaimable: %lu kB", &sreclaimable);
sscanf(line, "Shmem: %lu kB", &shmem);
}
fclose(file);

View File

@@ -4,7 +4,7 @@
<ItemDefinitionGroup>
<Link>
<AdditionalLibraryDirectories>$(DepsLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies);freetype.lib;jpeg.lib;libpng16.lib;libwebp.lib;lz4.lib;SDL3.lib;zlib.lib;zstd.lib;kddockwidgets-qt62.lib</AdditionalDependencies>
<AdditionalDependencies>%(AdditionalDependencies);freetype.lib;jpeg.lib;libpng16.lib;libwebp.lib;lz4.lib;SDL3.lib;zlib.lib;zstd.lib;kddockwidgets-qt62.lib;plutovg.lib;plutosvg.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
@@ -20,6 +20,8 @@
<DepsDLLs Include="$(DepsBinDir)zlib1.dll" />
<DepsDLLs Include="$(DepsBinDir)zstd.dll" />
<DepsDLLs Include="$(DepsBinDir)kddockwidgets-qt62.dll" />
<DepsDLLs Include="$(DepsBinDir)plutovg.dll" />
<DepsDLLs Include="$(DepsBinDir)plutosvg.dll" />
</ItemGroup>
<Target Name="DepsCopyDLLs"
AfterTargets="Build"

View File

@@ -42,6 +42,7 @@ BreakpointDialog::BreakpointDialog(QWidget* parent, DebugInterface* cpu, Breakpo
m_ui.rdoExecute->setChecked(true);
m_ui.chkEnable->setChecked(bp->enabled);
m_ui.txtAddress->setText(QtUtils::FilledQStringFromValue(bp->addr, 16));
m_ui.txtDescription->setText(QString::fromStdString(bp->description));
if (bp->hasCond)
m_ui.txtCondition->setText(QString::fromStdString(bp->cond.expressionString));
@@ -53,6 +54,8 @@ BreakpointDialog::BreakpointDialog(QWidget* parent, DebugInterface* cpu, Breakpo
m_ui.txtAddress->setText(QtUtils::FilledQStringFromValue(mc->start, 16));
m_ui.txtSize->setText(QtUtils::FilledQStringFromValue(mc->end - mc->start, 16));
m_ui.txtDescription->setText(QString::fromStdString(mc->description));
m_ui.chkRead->setChecked(mc->memCond & MEMCHECK_READ);
m_ui.chkWrite->setChecked(mc->memCond & MEMCHECK_WRITE);
m_ui.chkChange->setChecked(mc->memCond & MEMCHECK_WRITE_ONCHANGE);
@@ -102,6 +105,7 @@ void BreakpointDialog::accept()
}
bp->addr = address;
bp->description = m_ui.txtDescription->text().toStdString();
bp->enabled = m_ui.chkEnable->isChecked();
@@ -138,6 +142,7 @@ void BreakpointDialog::accept()
mc->start = startAddress;
mc->end = startAddress + size;
mc->description = m_ui.txtDescription->text().toStdString();
if (!m_ui.txtCondition->text().isEmpty())
{

View File

@@ -10,7 +10,7 @@
<x>0</x>
<y>0</y>
<width>375</width>
<height>250</height>
<height>300</height>
</rect>
</property>
<property name="sizePolicy">
@@ -22,19 +22,19 @@
<property name="minimumSize">
<size>
<width>375</width>
<height>250</height>
<height>300</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>375</width>
<height>250</height>
<height>300</height>
</size>
</property>
<property name="baseSize">
<size>
<width>375</width>
<height>250</height>
<height>300</height>
</size>
</property>
<property name="windowTitle">
@@ -44,7 +44,7 @@
<property name="geometry">
<rect>
<x>20</x>
<y>210</y>
<y>260</y>
<width>341</width>
<height>32</height>
</rect>
@@ -102,14 +102,17 @@
<rect>
<x>110</x>
<y>10</y>
<width>251</width>
<height>41</height>
<width>250</width>
<height>79</height>
</rect>
</property>
<property name="title">
<string/>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
@@ -139,6 +142,29 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Description</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtDescription">
<property name="minimumSize">
<size>
<width>0</width>
<height>19</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>19</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QGroupBox" name="grpMemory">
@@ -148,7 +174,7 @@
<property name="geometry">
<rect>
<x>110</x>
<y>50</y>
<y>100</y>
<width>251</width>
<height>91</height>
</rect>
@@ -224,13 +250,13 @@
<property name="geometry">
<rect>
<x>110</x>
<y>140</y>
<y>190</y>
<width>251</width>
<height>61</height>
</rect>
</property>
<property name="title">
<string></string>
<string/>
</property>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">

View File

@@ -72,11 +72,13 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
switch (index.column())
{
case BreakpointColumns::ENABLED:
return "";
return (bp->enabled) ? tr("Enabled") : tr("Disabled");
case BreakpointColumns::TYPE:
return tr("Execute");
case BreakpointColumns::OFFSET:
return QtUtils::FilledQStringFromValue(bp->addr, 16);
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(bp->description);
case BreakpointColumns::SIZE_LABEL:
return QString::fromStdString(m_cpu.GetSymbolGuardian().FunctionStartingAtAddress(bp->addr).name);
case BreakpointColumns::OPCODE:
@@ -105,6 +107,8 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
}
case BreakpointColumns::OFFSET:
return QtUtils::FilledQStringFromValue(mc->start, 16);
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(mc->description);
case BreakpointColumns::SIZE_LABEL:
return QString::number(mc->end - mc->start, 16);
case BreakpointColumns::OPCODE:
@@ -116,6 +120,29 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
}
}
}
else if (role == Qt::EditRole)
{
if (const auto* bp = std::get_if<BreakPoint>(&bp_mc))
{
switch (index.column())
{
case BreakpointColumns::CONDITION:
return bp->hasCond ? QString::fromStdString(bp->cond.expressionString) : "";
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(bp->description);
}
}
else if (const auto* mc = std::get_if<MemCheck>(&bp_mc))
{
switch (index.column())
{
case BreakpointColumns::CONDITION:
return mc->hasCond ? QString::fromStdString(mc->cond.expressionString) : "";
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(mc->description);
}
}
}
else if (role == BreakpointModel::DataRole)
{
if (const auto* bp = std::get_if<BreakPoint>(&bp_mc))
@@ -128,6 +155,8 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
return MEMCHECK_INVALID;
case BreakpointColumns::OFFSET:
return bp->addr;
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(bp->description);
case BreakpointColumns::SIZE_LABEL:
return QString::fromStdString(m_cpu.GetSymbolGuardian().FunctionStartingAtAddress(bp->addr).name);
case BreakpointColumns::OPCODE:
@@ -149,6 +178,8 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
return mc->memCond;
case BreakpointColumns::OFFSET:
return mc->start;
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(mc->description);
case BreakpointColumns::SIZE_LABEL:
return mc->end - mc->start;
case BreakpointColumns::OPCODE:
@@ -172,6 +203,8 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
return MEMCHECK_INVALID;
case BreakpointColumns::OFFSET:
return QtUtils::FilledQStringFromValue(bp->addr, 16);
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(bp->description);
case BreakpointColumns::SIZE_LABEL:
return QString::fromStdString(m_cpu.GetSymbolGuardian().FunctionStartingAtAddress(bp->addr).name);
case BreakpointColumns::OPCODE:
@@ -191,6 +224,8 @@ QVariant BreakpointModel::data(const QModelIndex& index, int role) const
return mc->memCond;
case BreakpointColumns::OFFSET:
return QtUtils::FilledQStringFromValue(mc->start, 16);
case BreakpointColumns::DESCRIPTION:
return QString::fromStdString(mc->description);
case BreakpointColumns::SIZE_LABEL:
return mc->end - mc->start;
case BreakpointColumns::OPCODE:
@@ -233,6 +268,8 @@ QVariant BreakpointModel::headerData(int section, Qt::Orientation orientation, i
case BreakpointColumns::OFFSET:
//: Warning: limited space available. Abbreviate if needed.
return tr("OFFSET");
case BreakpointColumns::DESCRIPTION:
return "DESCRIPTION";
case BreakpointColumns::SIZE_LABEL:
//: Warning: limited space available. Abbreviate if needed.
return tr("SIZE / LABEL");
@@ -260,6 +297,8 @@ QVariant BreakpointModel::headerData(int section, Qt::Orientation orientation, i
return "TYPE";
case BreakpointColumns::OFFSET:
return "OFFSET";
case BreakpointColumns::DESCRIPTION:
return "DESCRIPTION";
case BreakpointColumns::SIZE_LABEL:
return "SIZE / LABEL";
case BreakpointColumns::OPCODE:
@@ -282,6 +321,7 @@ Qt::ItemFlags BreakpointModel::flags(const QModelIndex& index) const
switch (index.column())
{
case BreakpointColumns::CONDITION:
case BreakpointColumns::DESCRIPTION:
return Qt::ItemFlag::ItemIsEnabled | Qt::ItemFlag::ItemIsSelectable | Qt::ItemFlag::ItemIsEditable;
case BreakpointColumns::TYPE:
case BreakpointColumns::OPCODE:
@@ -395,6 +435,27 @@ bool BreakpointModel::setData(const QModelIndex& index, const QVariant& value, i
emit dataChanged(index, index);
return true;
}
else if (role == Qt::EditRole && index.column() == BreakpointColumns::DESCRIPTION)
{
// Update BreakPoint description
if (auto* bp = std::get_if<BreakPoint>(&bp_mc))
{
const QString descValue = value.toString();
Host::RunOnCPUThread([cpu = m_cpu.getCpuType(), bp, descValue] {
CBreakPoints::ChangeBreakPointDescription(cpu, bp->addr, descValue.toStdString());
});
}
// Update MemCheck description
else if (auto* mc = std::get_if<MemCheck>(&bp_mc))
{
const QString descValue = value.toString();
Host::RunOnCPUThread([cpu = m_cpu.getCpuType(), mc, descValue] {
CBreakPoints::ChangeMemCheckDescription(cpu, mc->start, mc->end, descValue.toStdString());
});
}
emit dataChanged(index, index);
return true;
}
return false;
}
@@ -451,7 +512,7 @@ bool BreakpointModel::insertBreakpointRows(int row, int count, std::vector<Break
{
Host::RunOnCPUThread([cpu = m_cpu.getCpuType(), bp = *bp] {
CBreakPoints::AddBreakPoint(cpu, bp.addr, false, bp.enabled);
CBreakPoints::ChangeBreakPointDescription(cpu, bp.addr, bp.description);
if (bp.hasCond)
{
CBreakPoints::ChangeBreakPointAddCond(cpu, bp.addr, bp.cond);
@@ -462,6 +523,7 @@ bool BreakpointModel::insertBreakpointRows(int row, int count, std::vector<Break
{
Host::RunOnCPUThread([cpu = m_cpu.getCpuType(), mc = *mc] {
CBreakPoints::AddMemCheck(cpu, mc.start, mc.end, mc.memCond, mc.result);
CBreakPoints::ChangeMemCheckDescription(cpu, mc.start, mc.end, mc.description);
if (mc.hasCond)
{
CBreakPoints::ChangeMemCheckAddCond(cpu, mc.start, mc.end, mc.cond);
@@ -548,6 +610,12 @@ void BreakpointModel::loadBreakpointFromFieldList(QStringList fields)
return;
}
// Description
if (!fields[BreakpointColumns::DESCRIPTION].isEmpty())
{
bp.description = fields[BreakpointColumns::DESCRIPTION].toStdString();
}
insertBreakpointRows(0, 1, {bp});
}
else
@@ -608,6 +676,12 @@ void BreakpointModel::loadBreakpointFromFieldList(QStringList fields)
}
mc.result = static_cast<MemCheckResult>(result);
// Description
if (!fields[BreakpointColumns::DESCRIPTION].isEmpty())
{
mc.description = fields[BreakpointColumns::DESCRIPTION].toStdString();
}
insertBreakpointRows(0, 1, {mc});
}
}

View File

@@ -21,6 +21,7 @@ public:
ENABLED = 0,
TYPE,
OFFSET,
DESCRIPTION,
SIZE_LABEL,
OPCODE,
CONDITION,
@@ -38,6 +39,7 @@ public:
QHeaderView::ResizeMode::ResizeToContents,
QHeaderView::ResizeMode::ResizeToContents,
QHeaderView::ResizeMode::ResizeToContents,
QHeaderView::ResizeMode::ResizeToContents,
QHeaderView::ResizeMode::Stretch,
QHeaderView::ResizeMode::Stretch,
QHeaderView::ResizeMode::ResizeToContents,

View File

@@ -21,11 +21,7 @@ BreakpointView::BreakpointView(const DebuggerViewParameters& parameters)
connect(m_ui.breakpointList, &QTableView::doubleClicked, this, &BreakpointView::onDoubleClicked);
m_ui.breakpointList->setModel(m_model);
for (std::size_t i = 0; auto mode : BreakpointModel::HeaderResizeModes)
{
m_ui.breakpointList->horizontalHeader()->setSectionResizeMode(i, mode);
i++;
}
this->resizeColumns();
}
void BreakpointView::onDoubleClicked(const QModelIndex& index)
@@ -124,6 +120,7 @@ void BreakpointView::contextDelete()
void BreakpointView::contextNew()
{
BreakpointDialog* bpDialog = new BreakpointDialog(this, &cpu(), *m_model);
connect(bpDialog, &QDialog::accepted, this, &BreakpointView::resizeColumns);
bpDialog->setAttribute(Qt::WA_DeleteOnClose);
bpDialog->show();
}
@@ -140,6 +137,7 @@ void BreakpointView::contextEdit()
auto bpObject = m_model->at(selectedRow);
BreakpointDialog* bpDialog = new BreakpointDialog(this, &cpu(), *m_model, bpObject, selectedRow);
connect(bpDialog, &QDialog::accepted, this, &BreakpointView::resizeColumns);
bpDialog->setAttribute(Qt::WA_DeleteOnClose);
bpDialog->show();
}
@@ -172,3 +170,12 @@ void BreakpointView::saveBreakpointsToDebuggerSettings()
{
DebuggerSettingsManager::saveGameSettings(m_model);
}
void BreakpointView::resizeColumns()
{
for (std::size_t i = 0; auto mode : BreakpointModel::HeaderResizeModes)
{
m_ui.breakpointList->horizontalHeader()->setSectionResizeMode(i, mode);
i++;
}
}

View File

@@ -32,6 +32,8 @@ public:
void contextEdit();
void contextPasteCSV();
void resizeColumns();
void saveBreakpointsToDebuggerSettings();
private:

View File

@@ -12,7 +12,7 @@
#include "VMManager.h"
std::mutex DebuggerSettingsManager::writeLock;
const QString DebuggerSettingsManager::settingsFileVersion = "0.00";
const QString DebuggerSettingsManager::settingsFileVersion = "0.01";
QJsonObject DebuggerSettingsManager::loadGameSettingsJSON()
{
@@ -62,6 +62,17 @@ void DebuggerSettingsManager::loadGameSettings(BreakpointModel* bpModel)
return;
}
// Breakpoint descriptions were added at debugger settings file version 0.01. If loading
// saved breakpoints from a previous version (only 0.00 existed prior), the breakpoints will be
// missing a description. This code will add in an empty description so that the previous
// version, 0.00, is compatible with 0.01.
bool isMissingDescription = false;
const QJsonValue savedVersionValue = loadGameSettingsJSON().value("Version");
if (!savedVersionValue.isUndefined())
{
isMissingDescription = savedVersionValue.toString().toStdString() == "0.00";
}
const QJsonArray breakpointsArray = breakpointsValue.toArray();
for (u32 row = 0; row < breakpointsArray.size(); row++)
{
@@ -71,7 +82,13 @@ void DebuggerSettingsManager::loadGameSettings(BreakpointModel* bpModel)
Console.WriteLn("Debugger Settings Manager: Failed to load invalid Breakpoint object.");
continue;
}
const QJsonObject rowObject = rowValue.toObject();
QJsonObject rowObject = rowValue.toObject();
// Add empty description for saved breakpoints from debugger settings versions prior to 0.01
if (isMissingDescription)
{
rowObject.insert(QString("DESCRIPTION"), QJsonValue(""));
}
QStringList fields;
u32 col = 0;

View File

@@ -578,7 +578,7 @@ void GameListModel::loadThemeSpecificImages()
m_type_pixmaps[type] = getIconForType(static_cast<GameList::EntryType>(type)).pixmap(QSize(24, 24));
for (u32 i = 0; i < static_cast<u32>(GameList::Region::Count); i++)
m_region_pixmaps[i] = getIconForRegion(static_cast<GameList::Region>(i)).pixmap(QSize(42, 30));
m_region_pixmaps[i] = getIconForRegion(static_cast<GameList::Region>(i)).pixmap(QSize(36, 26));
}
void GameListModel::loadCommonImages()

View File

@@ -2819,7 +2819,7 @@ QString MainWindow::getDiscDevicePath(const QString& title)
return ret;
}
void MainWindow::startGameListEntry(const GameList::Entry* entry, std::optional<s32> save_slot, std::optional<bool> fast_boot)
void MainWindow::startGameListEntry(const GameList::Entry* entry, std::optional<s32> save_slot, std::optional<bool> fast_boot, bool load_backup)
{
std::shared_ptr<VMBootParameters> params = std::make_shared<VMBootParameters>();
params->fast_boot = fast_boot;
@@ -2828,7 +2828,7 @@ void MainWindow::startGameListEntry(const GameList::Entry* entry, std::optional<
if (save_slot.has_value() && !entry->serial.empty())
{
std::string state_filename = VMManager::GetSaveStateFileName(entry->serial.c_str(), entry->crc, save_slot.value());
std::string state_filename = VMManager::GetSaveStateFileName(entry->serial.c_str(), entry->crc, save_slot.value(), load_backup);
if (!FileSystem::FileExists(state_filename.c_str()))
{
QMessageBox::critical(this, tr("Error"), tr("This save state does not exist."));
@@ -2953,12 +2953,12 @@ std::optional<bool> MainWindow::promptForResumeState(const QString& save_state_p
return std::nullopt;
}
void MainWindow::loadSaveStateSlot(s32 slot)
void MainWindow::loadSaveStateSlot(s32 slot, bool load_backup)
{
if (s_vm_valid)
{
// easy when we're running
g_emu_thread->loadStateFromSlot(slot);
g_emu_thread->loadStateFromSlot(slot, load_backup);
return;
}
else
@@ -2968,7 +2968,7 @@ void MainWindow::loadSaveStateSlot(s32 slot)
if (!entry)
return;
startGameListEntry(entry, slot, std::nullopt);
startGameListEntry(entry, slot, std::nullopt, load_backup);
}
}
@@ -3015,15 +3015,6 @@ void MainWindow::populateLoadStateMenu(QMenu* menu, const QString& filename, con
QAction* delete_save_states_action = menu->addAction(tr("Delete Save States..."));
// don't include undo in the right click menu
if (!is_right_click_menu)
{
QAction* load_undo_state = menu->addAction(tr("Undo Load State"));
load_undo_state->setEnabled(false); // CanUndoLoadState()
// connect(load_undo_state, &QAction::triggered, this, &QtHostInterface::undoLoadState);
menu->addSeparator();
}
const QByteArray game_serial_utf8(serial.toUtf8());
std::string state_filename;
FILESYSTEM_STAT_DATA sd;
@@ -3053,6 +3044,18 @@ void MainWindow::populateLoadStateMenu(QMenu* menu, const QString& filename, con
has_any_states = true;
}
for (s32 i = 1; i <= VMManager::NUM_SAVE_STATE_SLOTS; i++)
{
FILESYSTEM_STAT_DATA sd;
state_filename = VMManager::GetSaveStateFileName(game_serial_utf8.constData(), crc, i, true);
if (!FileSystem::StatFile(state_filename.c_str(), &sd))
continue;
action = menu->addAction(tr("Load Backup Slot %1 (%2)").arg(i).arg(formatTimestampForSaveStateMenu(sd.ModificationTime)));
connect(action, &QAction::triggered, [this, i]() { loadSaveStateSlot(i, true); });
has_any_states = true;
}
delete_save_states_action->setEnabled(has_any_states);
if (has_any_states)
{

View File

@@ -267,13 +267,13 @@ private:
QString getDiscDevicePath(const QString& title);
void startGameListEntry(
const GameList::Entry* entry, std::optional<s32> save_slot = std::nullopt, std::optional<bool> fast_boot = std::nullopt);
const GameList::Entry* entry, std::optional<s32> save_slot = std::nullopt, std::optional<bool> fast_boot = std::nullopt, bool load_backup = false);
void setGameListEntryCoverImage(const GameList::Entry* entry);
void clearGameListEntryPlayTime(const GameList::Entry* entry);
void goToWikiPage(const GameList::Entry* entry);
std::optional<bool> promptForResumeState(const QString& save_state_path);
void loadSaveStateSlot(s32 slot);
void loadSaveStateSlot(s32 slot, bool load_backup = false);
void loadSaveStateFile(const QString& filename, const QString& state_filename);
void populateLoadStateMenu(QMenu* menu, const QString& filename, const QString& serial, quint32 crc);
void populateSaveStateMenu(QMenu* menu, const QString& serial, quint32 crc);

View File

@@ -320,18 +320,18 @@ void EmuThread::loadState(const QString& filename)
VMManager::LoadState(filename.toUtf8().constData());
}
void EmuThread::loadStateFromSlot(qint32 slot)
void EmuThread::loadStateFromSlot(qint32 slot, bool load_backup)
{
if (!isOnEmuThread())
{
QMetaObject::invokeMethod(this, "loadStateFromSlot", Qt::QueuedConnection, Q_ARG(qint32, slot));
QMetaObject::invokeMethod(this, "loadStateFromSlot", Qt::QueuedConnection, Q_ARG(qint32, slot), Q_ARG(bool, load_backup));
return;
}
if (!VMManager::HasValidVM())
return;
VMManager::LoadStateFromSlot(slot);
VMManager::LoadStateFromSlot(slot, load_backup);
}
void EmuThread::saveState(const QString& filename)

View File

@@ -87,7 +87,7 @@ public Q_SLOTS:
void setVMPaused(bool paused);
void shutdownVM(bool save_state = true);
void loadState(const QString& filename);
void loadStateFromSlot(qint32 slot);
void loadStateFromSlot(qint32 slot, bool load_backup = false);
void saveState(const QString& filename);
void saveStateToSlot(qint32 slot);
void toggleFullscreen();

View File

@@ -1240,13 +1240,8 @@ void GraphicsSettingsWidget::populateUpscaleMultipliers(u32 max_upscale_multipli
{
static constexpr std::pair<const char*, float> templates[] = {
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "Native (PS2) (Default)"), 1.0f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "1.25x Native (~450px)"), 1.25f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "1.5x Native (~540px)"), 1.5f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "1.75x Native (~630px)"), 1.75f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "2x Native (~720px/HD)"), 2.0f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "2.5x Native (~900px/HD+)"), 2.5f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "3x Native (~1080px/FHD)"), 3.0f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "3.5x Native (~1260px)"), 3.5f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "4x Native (~1440px/QHD)"), 4.0f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "5x Native (~1800px/QHD+)"), 5.0f},
{QT_TRANSLATE_NOOP("GraphicsSettingsWidget", "6x Native (~2160px/4K UHD)"), 6.0f},

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,6 @@
// SPDX-FileCopyrightText: 2002-2025 PCSX2 Dev Team
// SPDX-License-Identifier: GPL-3.0+
#define IMGUI_DEFINE_MATH_OPERATORS
#include "Achievements.h"
#include "BuildVersion.h"
#include "CDVD/CDVD.h"

View File

@@ -1157,6 +1157,8 @@ target_link_libraries(PCSX2_FLAGS INTERFACE
Zstd::Zstd
demanglegnu
ccc
plutovg::plutovg
plutosvg::plutosvg
${LIBC_LIBRARIES}
)
@@ -1284,7 +1286,7 @@ function(setup_main_executable target)
# Copy dependency libraries.
set(DEPS_BINDIR "${CMAKE_SOURCE_DIR}/deps/bin")
set(DEPS_TO_COPY freetype.dll harfbuzz.dll jpeg62.dll libpng16.dll libsharpyuv.dll libwebp.dll lz4.dll SDL3.dll shaderc_shared.dll zlib1.dll zstd.dll kddockwidgets-qt62.dll)
set(DEPS_TO_COPY freetype.dll harfbuzz.dll jpeg62.dll libpng16.dll libsharpyuv.dll libwebp.dll lz4.dll SDL3.dll shaderc_shared.dll zlib1.dll zstd.dll kddockwidgets-qt62.dll plutovg.dll plutosvg.dll)
foreach(DEP_TO_COPY ${DEPS_TO_COPY})
install(FILES "${DEPS_BINDIR}/${DEP_TO_COPY}" DESTINATION "${CMAKE_SOURCE_DIR}/bin")
endforeach()

View File

@@ -285,6 +285,16 @@ BreakPointCond* CBreakPoints::GetBreakPointCondition(BreakPointCpu cpu, u32 addr
return NULL;
}
void CBreakPoints::ChangeBreakPointDescription(BreakPointCpu cpu, u32 addr, const std::string& description)
{
const size_t bp = FindBreakpoint(cpu, addr, true, false);
if (bp != INVALID_BREAKPOINT)
{
breakPoints_[bp].description = description;
Update();
}
}
void CBreakPoints::AddMemCheck(BreakPointCpu cpu, u32 start, u32 end, MemCheckCondition cond, MemCheckResult result)
{
// This will ruin any pending memchecks.
@@ -356,6 +366,16 @@ void CBreakPoints::ChangeMemCheckAddCond(BreakPointCpu cpu, u32 start, u32 end,
}
}
void CBreakPoints::ChangeMemCheckDescription(BreakPointCpu cpu, u32 start, u32 end, const std::string& description)
{
const size_t mc = FindMemCheck(cpu, start, end);
if (mc != INVALID_MEMCHECK)
{
memChecks_[mc].description = description;
Update(cpu);
}
}
void CBreakPoints::ClearAllMemChecks()
{
// This will ruin any pending memchecks.

View File

@@ -37,6 +37,8 @@ struct BreakPoint
BreakPointCond cond;
BreakPointCpu cpu;
std::string description;
bool operator==(const BreakPoint& other) const
{
return addr == other.addr;
@@ -78,6 +80,8 @@ struct MemCheck
MemCheckResult result;
BreakPointCpu cpu;
std::string description;
u32 numHits;
u32 lastPC;
@@ -119,12 +123,14 @@ public:
static void ChangeBreakPointAddCond(BreakPointCpu cpu, u32 addr, const BreakPointCond& cond);
static void ChangeBreakPointRemoveCond(BreakPointCpu cpu, u32 addr);
static BreakPointCond* GetBreakPointCondition(BreakPointCpu cpu, u32 addr);
static void ChangeBreakPointDescription(BreakPointCpu cpu, u32 addr, const std::string& description);
static void AddMemCheck(BreakPointCpu cpu, u32 start, u32 end, MemCheckCondition cond, MemCheckResult result);
static void RemoveMemCheck(BreakPointCpu cpu, u32 start, u32 end);
static void ChangeMemCheck(BreakPointCpu cpu, u32 start, u32 end, MemCheckCondition cond, MemCheckResult result);
static void ChangeMemCheckRemoveCond(BreakPointCpu cpu, u32 start, u32 end);
static void ChangeMemCheckAddCond(BreakPointCpu cpu, u32 start, u32 end, const BreakPointCond& cond);
static void ChangeMemCheckDescription(BreakPointCpu cpu, u32 start, u32 end, const std::string& description);
static void ClearAllMemChecks();
static void SetSkipFirst(BreakPointCpu cpu, u32 pc);

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