Browse Source

dos: Switch to dos-vbe-rebase branch

Also cleans up dos-prep.sh and adds a bit of logging to display.cpp
pull/8160/head
Gleb Mazovetskiy 7 months ago
parent
commit
c7b26690c4
  1. 72
      Packaging/windows/dos-prep.sh
  2. 6
      Source/utils/display.cpp

72
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 "$@"

6
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

Loading…
Cancel
Save