From c7b26690c4a70fe0d399a1c7ca287fac6740af01 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sun, 31 Aug 2025 18:42:47 +0100 Subject: [PATCH] dos: Switch to dos-vbe-rebase branch Also cleans up dos-prep.sh and adds a bit of logging to display.cpp --- Packaging/windows/dos-prep.sh | 72 +++++++++++++++++++---------------- Source/utils/display.cpp | 6 +++ 2 files changed, 45 insertions(+), 33 deletions(-) diff --git a/Packaging/windows/dos-prep.sh b/Packaging/windows/dos-prep.sh index 9dea48806..c3e7f43ee 100755 --- a/Packaging/windows/dos-prep.sh +++ b/Packaging/windows/dos-prep.sh @@ -2,6 +2,8 @@ set -euo pipefail +INSTALL_PREFIX=/opt/i386-pc-msdosdjgpp-toolchain + # only use sudo when necessary if [ `id -u` -ne 0 ]; then SUDO=sudo @@ -10,40 +12,44 @@ else fi # Install dependencies on Debian / Ubuntu: -if which apt-get 2>/dev/null; then - set -x - $SUDO apt-get update - $SUDO apt-get install bison flex curl gcc g++ make texinfo zlib1g-dev tar bzip2 \ - gzip xz-utils unzip python3-dev m4 dos2unix nasm cmake - { set +x; } 2>/dev/null -fi - -INSTALL_PREFIX=/opt/i386-pc-msdosdjgpp-toolchain - -set -x -mkdir -p tmp/dos-prep -cd tmp/dos-prep +install_system_deps() { + if which apt-get 2>/dev/null; then + set -x + $SUDO apt-get update + $SUDO apt-get install bison flex curl gcc g++ make texinfo zlib1g-dev tar bzip2 \ + gzip xz-utils unzip python3-dev m4 dos2unix nasm cmake + { set +x; } 2>/dev/null + fi +} # Build and install DJGPP -git clone https://github.com/jwt27/build-gcc.git -cd build-gcc -$SUDO ./build-djgpp.sh --prefix="$INSTALL_PREFIX" --batch binutils gcc-14.2.0 djgpp-cvs -cd - -$SUDO rm -rf build-gcc - -# Activate DJGPP environment -{ set +x; } 2>/dev/null -set +eu -source "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" -set -eu -set -x +build_and_install_djgpp() { + git clone https://github.com/jwt27/build-gcc.git + cd build-gcc + $SUDO ./build-djgpp.sh --prefix="$INSTALL_PREFIX" --batch binutils gcc-14.2.0 djgpp-cvs + cd - + $SUDO rm -rf build-gcc +} # Build and install SDL2 for DOS -git clone --branch=dos-vbe https://github.com/diasurgical/SDL.git -cd SDL -autoreconf -fi -./configure --host=i386-pc-msdosdjgpp --prefix="${INSTALL_PREFIX}/i386-pc-msdosdjgpp" --disable-shared --enable-static --enable-video-svga --enable-timer-dos --enable-uclock -make -j$(nproc) -$SUDO "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" make install -cd - -rm -rf SDL +build_and_install_sdl2() { + git clone --branch=dos-vbe-rebase https://github.com/diasurgical/SDL.git + cd SDL + "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" autoreconf -fi --verbose + "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" ./configure --host=i386-pc-msdosdjgpp --prefix="${INSTALL_PREFIX}/i386-pc-msdosdjgpp" --disable-shared --enable-static --enable-video-svga --enable-timer-dos --enable-uclock + "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" make -j$(nproc) + $SUDO "${INSTALL_PREFIX}/bin/i386-pc-msdosdjgpp-setenv" make install + cd - + rm -rf SDL +} + +main() { + set -x + mkdir -p tmp/dos-prep + cd tmp/dos-prep + install_system_deps + build_and_install_djgpp + build_and_install_sdl2 +} + +main "$@" diff --git a/Source/utils/display.cpp b/Source/utils/display.cpp index 0773eabee..fd89a9158 100644 --- a/Source/utils/display.cpp +++ b/Source/utils/display.cpp @@ -130,6 +130,12 @@ SDL_DisplayMode GetNearestDisplayMode(Size preferredSize) nearestDisplayMode = displayMode; } + LogVerbose("Nearest display mode to {}x{} is {}x{} {}bpp {}Hz", + preferredSize.width, preferredSize.height, + nearestDisplayMode.w, nearestDisplayMode.h, + SDL_BITSPERPIXEL(nearestDisplayMode.format), + nearestDisplayMode.refresh_rate); + return nearestDisplayMode; } #endif