Merge branch 'master' of https://github.com/86Box/86Box into qt

This commit is contained in:
ts-korhonen
2021-12-20 22:30:50 +02:00
44 changed files with 751 additions and 584 deletions

View File

@@ -20,3 +20,11 @@ tab_width = 8
[*.manifest] [*.manifest]
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
[*.yml]
indent_style = space
indent_size = 2
[**/CMakeLists.txt]
indent_style = space
indent_size = 4

View File

@@ -84,7 +84,7 @@ jobs:
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
name: '86Box-${{ matrix.build.name }}-MSYS2-${{ matrix.environment.msystem }}-${{ github.sha }}' name: '86Box-${{ matrix.build.name }}-MSYS2-${{ matrix.environment.msystem }}-${{ github.sha }}'
path: build/artifacts/bin/** path: build/artifacts/**
vs2019: vs2019:
name: VS2019 ${{ matrix.build.name }} ${{ matrix.target-arch }} build (${{ matrix.toolset }}) name: VS2019 ${{ matrix.build.name }} ${{ matrix.target-arch }} build (${{ matrix.toolset }})
@@ -130,7 +130,7 @@ jobs:
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
name: '86Box-${{ matrix.build.name }}-VS2019-${{ matrix.target-arch }}-${{ matrix.toolset }}-${{ github.sha }}' name: '86Box-${{ matrix.build.name }}-VS2019-${{ matrix.target-arch }}-${{ matrix.toolset }}-${{ github.sha }}'
path: build/artifacts/bin/** path: build/artifacts/**
linux: linux:
name: "Linux GCC 11" name: "Linux GCC 11"

2
.gitignore vendored
View File

@@ -5,7 +5,6 @@
CMakeFiles CMakeFiles
Makefile Makefile
*.a *.a
*.cmake
/src/*.exe /src/*.exe
/src/86Box /src/86Box
/src/include/86box/version.h /src/include/86box/version.h
@@ -22,7 +21,6 @@ Makefile
/src/*.log /src/*.log
/src/*.dmp /src/*.dmp
/src/nvr/ /src/nvr/
/src/printer/
/src/roms/ /src/roms/
/src/screenshots/ /src/screenshots/

View File

@@ -1,16 +1,16 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
@@ -18,22 +18,28 @@ cmake_minimum_required(VERSION 3.16)
cmake_policy(SET CMP0091 NEW) cmake_policy(SET CMP0091 NEW)
cmake_policy(SET CMP0079 NEW) cmake_policy(SET CMP0079 NEW)
if(VCPKG_TOOLCHAIN AND VCPKG_TARGET_TRIPLET MATCHES "static")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
project(86Box project(86Box
VERSION 3.1 VERSION 3.1
DESCRIPTION "Emulator of x86-based systems" DESCRIPTION "Emulator of x86-based systems"
HOMEPAGE_URL "https://86box.net" HOMEPAGE_URL "https://86box.net"
LANGUAGES C CXX) LANGUAGES C CXX)
if(WIN32 AND VCPKG_TOOLCHAIN)
if(VCPKG_TARGET_TRIPLET MATCHES "-windows-static$")
# `-static` triplet, use the statically linked CRT
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
else()
# Regular triplet (or `-static-md`), use the dynamically linked CRT
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
endif()
endif()
# Detect the target architecture by trying to compile `src/arch_detect.c` # Detect the target architecture by trying to compile `src/arch_detect.c`
try_compile(RESULT_VAR ${CMAKE_BINARY_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/src/arch_detect.c" OUTPUT_VARIABLE ARCH) try_compile(RESULT_VAR ${CMAKE_BINARY_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/src/arch_detect.c" OUTPUT_VARIABLE ARCH)
string(REGEX MATCH "ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}") string(REGEX MATCH "ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}")
string(REPLACE "ARCH " "" ARCH "${ARCH}") string(REPLACE "ARCH " "" ARCH "${ARCH}")
if (NOT ARCH) if (NOT ARCH)
set(ARCH unknown) set(ARCH unknown)
endif() endif()
include(CPack) include(CPack)
@@ -44,82 +50,91 @@ add_compile_definitions(CMAKE)
add_compile_definitions("$<$<CONFIG:Debug>:DEBUG>") add_compile_definitions("$<$<CONFIG:Debug>:DEBUG>")
if(WIN32) if(WIN32)
# Disables *_s function warnings # Disables *_s function warnings
add_compile_definitions(_CRT_SECURE_NO_WARNINGS) add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
# Disables POSIX name warnings # Disables POSIX name warnings
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS) add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS)
# Disables WinSock deprecation warnings # Disables WinSock deprecation warnings
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS) add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS)
endif() endif()
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
option(RELEASE "Release build" OFF) # Optional features
option(USB "USB support" OFF) #
option(DYNAREC "Dynamic recompiler" ON) # Option Description Def.
option(FLUIDSYNTH "FluidSynth" ON) # ------ ----------- ----
option(MUNT "MUNT" ON) option(RELEASE "Release build" OFF)
option(VRAMDUMP "Video RAM dumping" OFF) option(USB "USB support" OFF)
option(DINPUT "DirectInput" OFF) option(DYNAREC "Dynamic recompiler" ON)
option(DISCORD "Discord integration" ON) option(FLUIDSYNTH "FluidSynth" ON)
option(QT "QT GUI" ON) option(MUNT "MUNT" ON)
option(CPPTHREADS "C++11 threads" ON) option(VRAMDUMP "Video RAM dumping" OFF)
option(DINPUT "DirectInput" OFF)
option(DISCORD "Discord integration" ON)
option(CPPTHREADS "C++11 threads" ON)
option(NEW_DYNAREC "Use the PCem v15 (\"new\") dynamic recompiler" OFF)
option(MINITRACE "Enable Chrome tracing using the modified minitrace library" OFF)
option(DEV_BRANCH "Development branch" OFF)
option(QT "QT GUI" ON)
option(NEW_DYNAREC "Use the PCem v15 (\"new\") dynamic recompiler" OFF) # Development branch features
#
# Option Description Def. Condition Otherwise
# ------ ----------- ---- --------- ---------
cmake_dependent_option(AMD_K5 "AMD K5" ON "DEV_BRANCH" OFF)
cmake_dependent_option(CYRIX_6X86 "Cyrix 6x86" ON "DEV_BRANCH" OFF)
cmake_dependent_option(GUSMAX "Gravis UltraSound MAX" ON "DEV_BRANCH" OFF)
cmake_dependent_option(HEDAKA "Hedaka HED-919" ON "DEV_BRANCH" OFF)
cmake_dependent_option(I450KX "Intel i450KX" ON "DEV_BRANCH" OFF)
cmake_dependent_option(LASERXT "VTech Laser XT" ON "DEV_BRANCH" OFF)
cmake_dependent_option(MGA "Matrox Mystique graphics adapters" ON "DEV_BRANCH" OFF)
cmake_dependent_option(NO_SIO "Machines without emulated Super I/O chips" ON "DEV_BRANCH" OFF)
cmake_dependent_option(OLIVETTI "Olivetti M290" ON "DEV_BRANCH" OFF)
cmake_dependent_option(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF)
cmake_dependent_option(OPENGL "OpenGL 3.0 Core renderer" ON "DEV_BRANCH" OFF)
cmake_dependent_option(PAS16 "Pro Audio Spectrum 16" OFF "DEV_BRANCH" OFF)
cmake_dependent_option(PS2M70T4 "IBM PS/2 model 70 (type 4)" ON "DEV_BRANCH" OFF)
cmake_dependent_option(S3TRIO3D2X "S3 Trio3D/2X" ON "DEV_BRANCH" OFF)
cmake_dependent_option(SIO_DETECT "Super I/O Detection Helper" ON "DEV_BRANCH" OFF)
cmake_dependent_option(M154X "ALi ALADDiN IV" ON "DEV_BRANCH" OFF)
cmake_dependent_option(M6117 "ALi M6117" ON "DEV_BRANCH" OFF)
cmake_dependent_option(VGAWONDER "ATI VGA Wonder (ATI-18800)" ON "DEV_BRANCH" OFF)
cmake_dependent_option(VNC "VNC renderer" OFF "DEV_BRANCH" OFF)
cmake_dependent_option(XL24 "ATI VGA Wonder XL24 (ATI-28800-6)" ON "DEV_BRANCH" OFF)
cmake_dependent_option(VECT486VL "HP Vectra 486VL" ON "DEV_BRANCH" OFF)
option(MINITRACE "Enable Chrome tracing using the modified minitrace library" OFF) # Determine the build type
set(RELEASE_BUILD OFF)
option(DEV_BRANCH "Development branch" OFF) set(BETA_BUILD OFF)
CMAKE_DEPENDENT_OPTION(AMD_K5 "AMD K5" ON "DEV_BRANCH" OFF) set(ALPHA_BUILD OFF)
CMAKE_DEPENDENT_OPTION(CYRIX_6X86 "Cyrix 6x86" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(GUSMAX "Gravis UltraSound MAX" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(HEDAKA "Hedaka HED-919" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(I450KX "Intel i450KX" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(LASERXT "VTech Laser XT" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(MGA "Matrox Mystique graphics adapters" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(NO_SIO "Machines without emulated Super I/O chips" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(OLIVETTI "Olivetti M290" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(OPENGL "OpenGL 3.0 Core renderer" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(PAS16 "Pro Audio Spectrum 16" OFF "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(PS2M70T4 "IBM PS/2 model 70 (type 4)" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(S3TRIO3D2X "S3 Trio3D/2X" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(SIO_DETECT "Super I/O Detection Helper" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(M154X "ALi ALADDiN IV" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(M6117 "ALi M6117" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(VGAWONDER "ATI VGA Wonder (ATI-18800)" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(VNC "VNC renderer" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(XL24 "ATI VGA Wonder XL24 (ATI-28800-6)" ON "DEV_BRANCH" OFF)
CMAKE_DEPENDENT_OPTION(VECT486VL "HP Vectra 486VL" ON "DEV_BRANCH" OFF)
string(TOLOWER "${BUILD_TYPE}" BUILD_TYPE_LOWER) string(TOLOWER "${BUILD_TYPE}" BUILD_TYPE_LOWER)
if(BUILD_TYPE_LOWER STREQUAL "release") if(BUILD_TYPE_LOWER STREQUAL "release")
add_compile_definitions(RELEASE_BUILD) # Release build
set(RELEASE_BUILD ON)
add_compile_definitions(RELEASE_BUILD)
elseif(BUILD_TYPE_LOWER STREQUAL "beta") elseif(BUILD_TYPE_LOWER STREQUAL "beta")
add_compile_definitions(BETA_BUILD) # Beta build
set(BETA_BUILD ON)
add_compile_definitions(BETA_BUILD)
elseif(BUILD_TYPE_LOWER STREQUAL "alpha") elseif(BUILD_TYPE_LOWER STREQUAL "alpha")
add_compile_definitions(ALPHA_BUILD) # Alpha build
set(ALPHA_BUILD ON)
add_compile_definitions(ALPHA_BUILD)
endif() endif()
# HACK: Avoid a MSVC2019 compiler bug on ARM64 Debug builds # Variables introduced by richardg867 for versioning stuff
if(MSVC_TOOLSET_VERSION GREATER_EQUAL 142 AND ARCH STREQUAL "arm64") if(NOT CMAKE_PROJECT_VERSION_PATCH)
# Define a cache option in case somebody wants to disable this workaround set(CMAKE_PROJECT_VERSION_PATCH 0)
set(AVOID_LNK1322 ON CACHE BOOL "Prevent LNK1322 on MSVC2019 ARM64 debug builds")
if(AVOID_LNK1322)
message(STATUS "Working around LNK1322 (86Box#1268)")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Gy")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Gy")
endif()
endif() endif()
if(NOT EMU_BUILD_NUM)
# HACK: MinGW and macOS <10.15 does not have `timespec_get` set(EMU_BUILD_NUM 0)
include(CheckSymbolExists) endif()
check_symbol_exists(timespec_get time.h HAS_TIMESPEC_GET) if(NOT EMU_COPYRIGHT_YEAR)
if(HAS_TIMESPEC_GET) set(EMU_COPYRIGHT_YEAR 2021)
add_compile_definitions(HAS_TIMESPEC_GET)
endif() endif()
add_subdirectory(src) add_subdirectory(src)

View File

@@ -0,0 +1,4 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
set(CMAKE_C_FLAGS "-march=armv8-a -mfloat-abi=hard ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-march=armv8-a -mfloat-abi=hard ${CMAKE_CXX_FLAGS}")

View File

@@ -0,0 +1,4 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard ${CMAKE_CXX_FLAGS}")

View File

@@ -0,0 +1,4 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
set(CMAKE_C_FLAGS "-m32 -march=i686 -msse2 -mfpmath=sse ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-m32 -march=i686 -msse2 -mfpmath=sse ${CMAKE_CXX_FLAGS}")

View File

@@ -0,0 +1,4 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
set(CMAKE_C_FLAGS "-m64 -march=x86-64 -msse2 -mfpmath=sse ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-m64 -march=x86-64 -msse2 -mfpmath=sse ${CMAKE_CXX_FLAGS}")

10
cmake/flags-gcc.cmake Normal file
View File

@@ -0,0 +1,10 @@
set(CMAKE_CONFIGURATION_TYPES Debug;Release;Optimized)
set(CMAKE_C_FLAGS "-fomit-frame-pointer -mstackrealign -Wall -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
set(CMAKE_C_FLAGS_RELEASE "-g0 -O3")
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
set(CMAKE_C_FLAGS_DEBUG "-ggdb -Og")
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
set(CMAKE_C_FLAGS_OPTIMIZED "-march=native -mtune=native -O3 -ffp-contract=fast -flto")
set(CMAKE_CXX_FLAGS_OPTIMIZED ${CMAKE_C_FLAGS_OPTIMIZED})

View File

@@ -0,0 +1,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc-arm64.cmake)
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_RC_COMPILER rc)
set(CMAKE_C_COMPILER_TARGET aarch64-pc-windows-msvc)
set(CMAKE_CXX_COMPILER_TARGET aarch64-pc-windows-msvc)
set(CMAKE_SYSTEM_PROCESSOR ARM64)

View File

@@ -0,0 +1,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc-i686.cmake)
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_RC_COMPILER rc)
set(CMAKE_C_COMPILER_TARGET i686-pc-windows-msvc)
set(CMAKE_CXX_COMPILER_TARGET i686-pc-windows-msvc)
set(CMAKE_SYSTEM_PROCESSOR X86)

View File

@@ -0,0 +1,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc-x86_64.cmake)
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_RC_COMPILER rc)
set(CMAKE_C_COMPILER_TARGET x86_64-pc-windows-msvc)
set(CMAKE_CXX_COMPILER_TARGET x86_64-pc-windows-msvc)
set(CMAKE_SYSTEM_PROCESSOR AMD64)

View File

@@ -1,136 +1,80 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# dob205 # dob205
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# Copyright 2021 dob205. # Copyright 2021 dob205.
# #
# Prepare the macOS app bundle icon depending on the release channel
set(APP_ICON_MACOSX)
if (APPLE)
if(RELEASE_BUILD)
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/release/86Box.icns)
elseif(BETA_BUILD)
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/beta/86Box.icns)
elseif(ALPHA_BUILD)
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/dev/86Box.icns)
else()
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/branch/86Box.icns)
endif()
set_source_files_properties(${APP_ICON_MACOSX} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources")
endif()
# WIN32 marks us as a GUI app on Windows # WIN32 marks us as a GUI app on Windows
# MACOSX_BUNDLE prepares a macOS application bundle including with the app icon
add_executable(86Box WIN32 MACOSX_BUNDLE 86box.c config.c log.c random.c timer.c io.c acpi.c apm.c add_executable(86Box WIN32 MACOSX_BUNDLE 86box.c config.c log.c random.c timer.c io.c acpi.c apm.c
dma.c ddma.c nmi.c pic.c pit.c port_6x.c port_92.c ppi.c pci.c mca.c usb.c fifo8.c dma.c ddma.c nmi.c pic.c pit.c port_6x.c port_92.c ppi.c pci.c mca.c usb.c fifo8.c
device.c nvr.c nvr_at.c nvr_ps2.c ${APP_ICON_MACOSX}) device.c nvr.c nvr_at.c nvr_ps2.c)
if(CPPTHREADS) if(CPPTHREADS)
target_sources(86Box PRIVATE thread.cpp) target_sources(86Box PRIVATE thread.cpp)
endif()
if(APPLE)
target_link_libraries(86Box "-framework AppKit")
endif() endif()
if(NEW_DYNAREC) if(NEW_DYNAREC)
add_compile_definitions(USE_NEW_DYNAREC) add_compile_definitions(USE_NEW_DYNAREC)
endif() endif()
if(RELEASE) if(RELEASE)
add_compile_definitions(RELEASE_BUILD) add_compile_definitions(RELEASE_BUILD)
endif() endif()
if(DYNAREC) if(DYNAREC)
add_compile_definitions(USE_DYNAREC) add_compile_definitions(USE_DYNAREC)
endif() endif()
if(VRAMDUMP) if(VRAMDUMP)
add_compile_definitions(ENABLE_VRAM_DUMP) add_compile_definitions(ENABLE_VRAM_DUMP)
endif() endif()
if(DEV_BRANCH) if(DEV_BRANCH)
add_compile_definitions(DEV_BRANCH) add_compile_definitions(DEV_BRANCH)
endif() endif()
if(VNC) if(VNC)
add_compile_definitions(USE_VNC) add_compile_definitions(USE_VNC)
add_library(vnc OBJECT vnc.c vnc_keymap.c) add_library(vnc OBJECT vnc.c vnc_keymap.c)
target_link_libraries(86Box vnc vncserver) target_link_libraries(86Box vnc vncserver)
if (WIN32) if (WIN32)
target_link_libraries(86Box ws2_32) target_link_libraries(86Box ws2_32)
endif() endif()
endif() endif()
target_link_libraries(86Box cpu chipset mch dev mem fdd game cdrom zip mo hdd target_link_libraries(86Box cpu chipset mch dev mem fdd game cdrom zip mo hdd
net print scsi sio snd vid voodoo plat ui) net print scsi sio snd vid voodoo plat ui)
if(WIN32 AND ARCH STREQUAL "i386") if(WIN32 AND ARCH STREQUAL "i386")
if(MSVC) if(MINGW)
target_link_options(86Box PRIVATE "/LARGEADDRESSAWARE") target_link_options(86Box PRIVATE "LINKER:--large-address-aware")
else() else()
target_link_options(86Box PRIVATE "LINKER:--large-address-aware") target_link_options(86Box PRIVATE "LINKER:/LARGEADDRESSAWARE")
endif() endif()
endif() endif()
if(MINGW) if(MINGW)
target_link_options(86Box PRIVATE "-static") target_link_options(86Box PRIVATE "-static")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".dll.a") set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".dll.a")
endif() endif()
# Variables introduced by richardg867 for versioning stuff
if(NOT CMAKE_PROJECT_VERSION_PATCH)
set(CMAKE_PROJECT_VERSION_PATCH 0)
endif()
if(NOT EMU_BUILD_NUM)
set(EMU_BUILD_NUM 0)
endif()
if(NOT EMU_COPYRIGHT_YEAR)
set(EMU_COPYRIGHT_YEAR 2021)
endif()
#some macOS specific configuration steps
if(APPLE) if(APPLE)
# Force using the newest library if it's installed by homebrew # Force using the newest library if it's installed by homebrew
set(CMAKE_FIND_FRAMEWORK LAST) set(CMAKE_FIND_FRAMEWORK LAST)
# prepare stuff for macOS app bundles
set(CMAKE_MACOSX_BUNDLE 1)
# setting our compilation target to macOS 10.13 High Sierra
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
# set the Info.plist properly
set_target_properties(86Box PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.plist.in)
set(MACOSX_BUNDLE_GUI_IDENTIFIER net.86Box.86Box)
set(MACOSX_BUNDLE_BUNDLE_NAME 86Box)
set(MACOSX_BUNDLE_BUNDLE_VERSION 3.1.${EMU_BUILD_NUM})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "3.1.${EMU_BUILD_NUM}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "3.1.${EMU_BUILD_NUM}")
set(MACOSX_BUNDLE_ICON_FILE 86Box.icns)
set(MACOSX_BUNDLE_INFO_STRING "A emulator of old computers")
set(MACOSX_BUNDLE_COPYRIGHT "© 2007-${EMU_COPYRIGHT_YEAR} 86Box contributors")
# preparing the code signing for easier distribution, Apple dev certificate needed at one point
#set(XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES")
#set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-")
#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements)
# setting our compilation target to macOS 10.13 High Sierra
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
endif() endif()
if(QT) if(QT)
@@ -149,7 +93,9 @@ endif()
find_package(Freetype REQUIRED) find_package(Freetype REQUIRED)
include_directories(${FREETYPE_INCLUDE_DIRS}) include_directories(${FREETYPE_INCLUDE_DIRS})
if(APPLE) if(APPLE)
target_link_libraries(86Box Freetype::Freetype) # bundles freetype for the macOS app bundle # Freetype is dynamically loaded by the emulator, however, we link it
# on macOS so it gets copied to the bundle by the installation process
target_link_libraries(86Box Freetype::Freetype)
endif() endif()
find_package(OpenAL REQUIRED) find_package(OpenAL REQUIRED)
@@ -158,16 +104,12 @@ target_link_libraries(86Box ${OPENAL_LIBRARY})
find_package(SDL2 REQUIRED) find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS}) include_directories(${SDL2_INCLUDE_DIRS})
if(MINGW) if(WIN32 AND TARGET SDL2::SDL2-static)
target_link_libraries(86Box SDL2::SDL2-static) target_link_libraries(86Box SDL2::SDL2-static)
elseif(WIN32) elseif(TARGET SDL2::SDL2)
target_link_libraries(86Box SDL2::SDL2) target_link_libraries(86Box SDL2::SDL2)
else() else()
if (TARGET SDL2::SDL2) target_link_libraries(86Box ${SDL2_LIBRARIES})
target_link_libraries(86Box SDL2::SDL2)
else()
target_link_libraries(86Box ${SDL2_LIBRARIES})
endif()
endif() endif()
find_package(PNG REQUIRED) find_package(PNG REQUIRED)
@@ -175,17 +117,17 @@ include_directories(${PNG_INCLUDE_DIRS})
target_link_libraries(86Box PNG::PNG) target_link_libraries(86Box PNG::PNG)
if(VCPKG_TOOLCHAIN) if(VCPKG_TOOLCHAIN)
# vcpkg includes a config file for rtmidi # vcpkg includes a config file for rtmidi
find_package(RtMidi REQUIRED) find_package(RtMidi REQUIRED)
target_link_libraries(86Box RtMidi::rtmidi) target_link_libraries(86Box RtMidi::rtmidi)
else() else()
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(RTMIDI REQUIRED IMPORTED_TARGET rtmidi) pkg_check_modules(RTMIDI REQUIRED IMPORTED_TARGET rtmidi)
target_link_libraries(86Box PkgConfig::RTMIDI) target_link_libraries(86Box PkgConfig::RTMIDI)
if(WIN32) if(WIN32)
target_link_libraries(PkgConfig::RTMIDI INTERFACE winmm) target_link_libraries(PkgConfig::RTMIDI INTERFACE winmm)
endif() endif()
endif() endif()
configure_file(include/86box/version.h.in include/86box/version.h @ONLY) configure_file(include/86box/version.h.in include/86box/version.h @ONLY)
@@ -193,9 +135,9 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
include_directories(include) include_directories(include)
if(NEW_DYNAREC) if(NEW_DYNAREC)
include_directories(cpu codegen_new) include_directories(cpu codegen_new)
else() else()
include_directories(cpu codegen) include_directories(cpu codegen)
endif() endif()
add_subdirectory(cdrom) add_subdirectory(cdrom)
@@ -203,9 +145,9 @@ add_subdirectory(chipset)
add_subdirectory(cpu) add_subdirectory(cpu)
if(NEW_DYNAREC) if(NEW_DYNAREC)
add_subdirectory(codegen_new) add_subdirectory(codegen_new)
else() else()
add_subdirectory(codegen) add_subdirectory(codegen)
endif() endif()
if(MINITRACE) if(MINITRACE)
@@ -214,22 +156,24 @@ if(MINITRACE)
target_link_libraries(86Box minitrace) target_link_libraries(86Box minitrace)
endif() endif()
if(APPLE) if(WIN32 OR APPLE)
install(TARGETS 86Box DESTINATION "bin") # Copy the binary to the root of the install prefix on Windows and macOS
install(TARGETS 86Box DESTINATION ".")
else() else()
install(TARGETS 86Box) # On Linux we want to copy the binary to the `bin` folder.
install(TARGETS 86Box)
endif() endif()
# adjustments for macOS app bundles # Install our dependencies to the macOS bundle
if(APPLE) if(APPLE)
set(APPS ${CMAKE_CURRENT_BINARY_DIR}/86Box.app) install(CODE "
install(CODE " include(BundleUtilities)
include(InstallRequiredSystemLibraries) get_filename_component(CMAKE_INSTALL_PREFIX_ABSOLUTE \${CMAKE_INSTALL_PREFIX} ABSOLUTE)
include(BundleUtilities) fixup_bundle(\"\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/86Box.app\" \"\" \"\")"
fixup_bundle(\"${APPS}\" \"\" \"\")" COMPONENT Runtime)
COMPONENT Runtime)
# needed for Qt packaging if (QT)
# needed for Qt packaging
# get the macdeployqt path # get the macdeployqt path
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION) get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY) get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
@@ -242,16 +186,29 @@ if(APPLE)
-always-overwrite -always-overwrite
COMMENT "Running macdeployqt..." COMMENT "Running macdeployqt..."
) )
endif()
endif() endif()
# Install our dependencies if using vcpkg
if(VCPKG_TOOLCHAIN) if(VCPKG_TOOLCHAIN)
x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION "bin") x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION ".")
endif() endif()
# Install the PDB file on Windows builds
if(MSVC) if(MSVC)
install(FILES $<TARGET_PDB_FILE:86Box> # CMake fully supports PDB files on MSVC-compatible compilers
CONFIGURATIONS Debug RelWithDebInfo install(FILES $<TARGET_PDB_FILE:86Box>
DESTINATION "bin") CONFIGURATIONS Debug RelWithDebInfo
DESTINATION ".")
elseif(WIN32)
# Other compilers/linkers (such as Clang in GCC-compatible mode) also
# emit PDB files when targeting Windows, however, CMake only supports
# the relevant properties with MSVC and clones. Try to install
# the PDB file assuming it's in the same path as the EXE.
install(FILES "$<TARGET_FILE_DIR:86Box>/$<TARGET_FILE_BASE_NAME:86Box>.pdb"
CONFIGURATIONS Debug RelWithDebInfo
DESTINATION "."
OPTIONAL)
endif() endif()
add_subdirectory(device) add_subdirectory(device)
@@ -273,7 +230,7 @@ endif()
if (QT) if (QT)
add_subdirectory(qt) add_subdirectory(qt)
elseif(WIN32) elseif(WIN32)
add_subdirectory(win) add_subdirectory(win)
else() else()
add_subdirectory(unix) add_subdirectory(unix)
endif() endif()

View File

@@ -1,16 +1,16 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(cdrom OBJECT cdrom.c cdrom_image_backend.c cdrom_image.c) add_library(cdrom OBJECT cdrom.c cdrom_image_backend.c cdrom_image.c)

View File

@@ -1,26 +1,26 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(chipset OBJECT 82c100.c acc2168.c cs8230.c ali1429.c ali1489.c ali1531.c ali1541.c ali1543.c add_library(chipset OBJECT 82c100.c acc2168.c cs8230.c ali1429.c ali1489.c ali1531.c ali1541.c ali1543.c
ali1621.c ali6117.c headland.c ims8848.c intel_82335.c contaq_82c59x.c cs4031.c intel_420ex.c ali1621.c ali6117.c headland.c ims8848.c intel_82335.c contaq_82c59x.c cs4031.c intel_420ex.c
intel_4x0.c intel_i450kx.c intel_sio.c intel_piix.c ../ioapic.c neat.c opti283.c opti291.c opti391.c intel_4x0.c intel_i450kx.c intel_sio.c intel_piix.c ../ioapic.c neat.c opti283.c opti291.c opti391.c
opti495.c opti822.c opti895.c opti5x7.c scamp.c scat.c sis_85c310.c sis_85c4xx.c opti495.c opti822.c opti895.c opti5x7.c scamp.c scat.c sis_85c310.c sis_85c4xx.c
sis_85c496.c sis_85c50x.c sis_5511.c sis_5571.c via_vt82c49x.c via_vt82c505.c sis_85c310.c sis_85c496.c sis_85c50x.c sis_5511.c sis_5571.c via_vt82c49x.c via_vt82c505.c sis_85c310.c
sis_85c4xx.c sis_85c496.c sis_85c50x.c gc100.c stpc.c umc_8886.c umc_hb4.c via_apollo.c sis_85c4xx.c sis_85c496.c sis_85c50x.c gc100.c stpc.c umc_8886.c umc_hb4.c via_apollo.c
via_pipc.c vl82c480.c wd76c10.c) via_pipc.c vl82c480.c wd76c10.c)
if(OLIVETTI) if(OLIVETTI)
target_sources(chipset PRIVATE olivetti_eva.c) target_sources(chipset PRIVATE olivetti_eva.c)
endif() endif()

View File

@@ -1,31 +1,31 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
if(DYNAREC) if(DYNAREC)
add_library(dynarec OBJECT codegen.c codegen_ops.c) add_library(dynarec OBJECT codegen.c codegen_ops.c)
if(ARCH STREQUAL "i386") if(ARCH STREQUAL "i386")
target_sources(dynarec PRIVATE codegen_x86.c target_sources(dynarec PRIVATE codegen_x86.c
codegen_accumulate_x86.c) codegen_accumulate_x86.c)
elseif(ARCH STREQUAL "x86_64") elseif(ARCH STREQUAL "x86_64")
target_sources(dynarec PRIVATE codegen_x86-64.c target_sources(dynarec PRIVATE codegen_x86-64.c
codegen_accumulate_x86-64.c) codegen_accumulate_x86-64.c)
else() else()
message(SEND_ERROR message(SEND_ERROR
"Dynarec is incompatible with target platform ${ARCH}") "Dynarec is incompatible with target platform ${ARCH}")
endif() endif()
target_link_libraries(86Box dynarec cgt) target_link_libraries(86Box dynarec cgt)
endif() endif()

View File

@@ -1,51 +1,51 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
if(DYNAREC) if(DYNAREC)
add_library(dynarec OBJECT codegen.c codegen_accumulate.c add_library(dynarec OBJECT codegen.c codegen_accumulate.c
codegen_allocator.c codegen_block.c codegen_ir.c codegen_ops.c codegen_allocator.c codegen_block.c codegen_ir.c codegen_ops.c
codegen_ops_3dnow.c codegen_ops_branch.c codegen_ops_arith.c codegen_ops_3dnow.c codegen_ops_branch.c codegen_ops_arith.c
codegen_ops_fpu_arith.c codegen_ops_fpu_constant.c codegen_ops_fpu_arith.c codegen_ops_fpu_constant.c
codegen_ops_fpu_loadstore.c codegen_ops_fpu_misc.c codegen_ops_fpu_loadstore.c codegen_ops_fpu_misc.c
codegen_ops_helpers.c codegen_ops_jump.c codegen_ops_logic.c codegen_ops_helpers.c codegen_ops_jump.c codegen_ops_logic.c
codegen_ops_misc.c codegen_ops_mmx_arith.c codegen_ops_mmx_cmp.c codegen_ops_misc.c codegen_ops_mmx_arith.c codegen_ops_mmx_cmp.c
codegen_ops_mmx_loadstore.c codegen_ops_mmx_logic.c codegen_ops_mmx_loadstore.c codegen_ops_mmx_logic.c
codegen_ops_mmx_pack.c codegen_ops_mmx_shift.c codegen_ops_mov.c codegen_ops_mmx_pack.c codegen_ops_mmx_shift.c codegen_ops_mov.c
codegen_ops_shift.c codegen_ops_stack.c codegen_reg.c) codegen_ops_shift.c codegen_ops_stack.c codegen_reg.c)
if(ARCH STREQUAL "i386") if(ARCH STREQUAL "i386")
target_sources(dynarec PRIVATE codegen_backend_x86.c target_sources(dynarec PRIVATE codegen_backend_x86.c
codegen_backend_x86_ops.c codegen_backend_x86_ops_fpu.c codegen_backend_x86_ops.c codegen_backend_x86_ops_fpu.c
codegen_backend_x86_ops_sse.c codegen_backend_x86_ops_sse.c
codegen_backend_x86_uops.c) codegen_backend_x86_uops.c)
elseif(ARCH STREQUAL "x86_64") elseif(ARCH STREQUAL "x86_64")
target_sources(dynarec PRIVATE codegen_backend_x86-64.c target_sources(dynarec PRIVATE codegen_backend_x86-64.c
codegen_backend_x86-64_ops.c codegen_backend_x86-64_ops.c
codegen_backend_x86-64_ops_sse.c codegen_backend_x86-64_ops_sse.c
codegen_backend_x86-64_uops.c) codegen_backend_x86-64_uops.c)
elseif(ARCH STREQUAL "arm64") elseif(ARCH STREQUAL "arm64")
target_sources(dynarec PRIVATE codegen_backend_arm64.c target_sources(dynarec PRIVATE codegen_backend_arm64.c
codegen_backend_arm64_ops.c codegen_backend_arm64_uops.c codegen_backend_arm64_ops.c codegen_backend_arm64_uops.c
codegen_backend_arm64_imm.c) codegen_backend_arm64_imm.c)
elseif(ARCH STREQUAL "arm") elseif(ARCH STREQUAL "arm")
target_sources(dynarec PRIVATE codegen_backend_arm.c target_sources(dynarec PRIVATE codegen_backend_arm.c
codegen_backend_arm_ops.c codegen_backend_arm_uops.c) codegen_backend_arm_ops.c codegen_backend_arm_uops.c)
else() else()
message(SEND_ERROR message(SEND_ERROR
"Dynarec is incompatible with target platform ${ARCH}") "Dynarec is incompatible with target platform ${ARCH}")
endif() endif()
target_link_libraries(86Box dynarec cgt) target_link_libraries(86Box dynarec cgt)
endif() endif()

View File

@@ -1,32 +1,32 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(cpu OBJECT cpu.c cpu_table.c fpu.c x86.c 808x.c 386.c 386_common.c 386_dynarec.c add_library(cpu OBJECT cpu.c cpu_table.c fpu.c x86.c 808x.c 386.c 386_common.c 386_dynarec.c
386_dynarec_ops.c x86seg.c x87.c x87_timings.c) 386_dynarec_ops.c x86seg.c x87.c x87_timings.c)
if(AMD_K5) if(AMD_K5)
target_compile_definitions(cpu PRIVATE USE_AMD_K5) target_compile_definitions(cpu PRIVATE USE_AMD_K5)
endif() endif()
if(CYRIX_6X86) if(CYRIX_6X86)
target_compile_definitions(cpu PRIVATE USE_CYRIX_6X86) target_compile_definitions(cpu PRIVATE USE_CYRIX_6X86)
endif() endif()
if(DYNAREC) if(DYNAREC)
add_library(cgt OBJECT codegen_timing_486.c codegen_timing_686.c add_library(cgt OBJECT codegen_timing_486.c codegen_timing_686.c
codegen_timing_common.c codegen_timing_k6.c codegen_timing_common.c codegen_timing_k6.c
codegen_timing_pentium.c codegen_timing_p6.c codegen_timing_pentium.c codegen_timing_p6.c
codegen_timing_winchip.c codegen_timing_winchip2.c) codegen_timing_winchip.c codegen_timing_winchip2.c)
endif() endif()

View File

@@ -1,24 +1,24 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(dev OBJECT bugger.c cassette.c cartridge.c hasp.c hwm.c hwm_lm75.c hwm_lm78.c hwm_gl518sm.c add_library(dev OBJECT bugger.c cassette.c cartridge.c hasp.c hwm.c hwm_lm75.c hwm_lm78.c hwm_gl518sm.c
hwm_vt82c686.c ibm_5161.c isamem.c isartc.c ../lpt.c pci_bridge.c hwm_vt82c686.c ibm_5161.c isamem.c isartc.c ../lpt.c pci_bridge.c
postcard.c serial.c clock_ics9xxx.c isapnp.c i2c.c i2c_gpio.c postcard.c serial.c clock_ics9xxx.c isapnp.c i2c.c i2c_gpio.c
smbus_piix4.c smbus_ali7101.c keyboard.c keyboard_xt.c keyboard_at.c smbus_piix4.c smbus_ali7101.c keyboard.c keyboard_xt.c keyboard_at.c
mouse.c mouse_bus.c mouse_serial.c mouse_ps2.c phoenix_486_jumper.c) mouse.c mouse_bus.c mouse_serial.c mouse_ps2.c phoenix_486_jumper.c)
if(LASERXT) if(LASERXT)
target_compile_definitions(dev PRIVATE USE_LASERXT) target_compile_definitions(dev PRIVATE USE_LASERXT)
endif() endif()

View File

@@ -1,21 +1,21 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(hdd OBJECT hdd.c hdd_image.c hdd_table.c hdc.c hdc_st506_xt.c add_library(hdd OBJECT hdd.c hdd_image.c hdd_table.c hdc.c hdc_st506_xt.c
hdc_st506_at.c hdc_xta.c hdc_esdi_at.c hdc_esdi_mca.c hdc_xtide.c hdc_st506_at.c hdc_xta.c hdc_esdi_at.c hdc_esdi_mca.c hdc_xtide.c
hdc_ide.c hdc_ide_opti611.c hdc_ide_cmd640.c hdc_ide_cmd646.c hdc_ide_sff8038i.c) hdc_ide.c hdc_ide_opti611.c hdc_ide_cmd640.c hdc_ide_cmd646.c hdc_ide_sff8038i.c)
add_library(zip OBJECT zip.c) add_library(zip OBJECT zip.c)

View File

@@ -1,18 +1,18 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(minivhd STATIC cwalk.c libxml2_encoding.c minivhd_convert.c add_library(minivhd STATIC cwalk.c libxml2_encoding.c minivhd_convert.c
minivhd_create.c minivhd_io.c minivhd_manage.c minivhd_struct_rw.c minivhd_create.c minivhd_io.c minivhd_manage.c minivhd_struct_rw.c
minivhd_util.c) minivhd_util.c)

View File

@@ -1,17 +1,17 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(fdd OBJECT fdd.c fdc.c fdc_magitronic.c fdc_pii15xb.c fdi2raw.c fdd_common.c add_library(fdd OBJECT fdd.c fdc.c fdc_magitronic.c fdc_pii15xb.c fdi2raw.c fdd_common.c
fdd_86f.c fdd_fdi.c fdd_imd.c fdd_img.c fdd_json.c fdd_mfm.c fdd_td0.c) fdd_86f.c fdd_fdi.c fdd_imd.c fdd_img.c fdd_json.c fdd_mfm.c fdd_td0.c)

View File

@@ -1,17 +1,17 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(game OBJECT gameport.c joystick_standard.c add_library(game OBJECT gameport.c joystick_standard.c
joystick_ch_flightstick_pro.c joystick_sw_pad.c joystick_tm_fcs.c) joystick_ch_flightstick_pro.c joystick_sw_pad.c joystick_tm_fcs.c)

View File

@@ -80,16 +80,18 @@ static const struct {
const char *internal_name; const char *internal_name;
const joystick_if_t *joystick; const joystick_if_t *joystick;
} joysticks[] = { } joysticks[] = {
{ "none", &joystick_none }, { "none", &joystick_none },
{ "standard_2button", &joystick_standard }, { "2axis_2button", &joystick_2axis_2button },
{ "standard_4button", &joystick_standard_4button }, { "2axis_4button", &joystick_2axis_4button },
{ "standard_6button", &joystick_standard_6button }, { "2axis_6button", &joystick_2axis_6button },
{ "standard_8button", &joystick_standard_8button }, { "2axis_8button", &joystick_2axis_8button },
{ "4axis_4button", &joystick_4axis_4button }, { "3axis_2button", &joystick_3axis_2button },
{ "3axis_4button", &joystick_3axis_4button },
{ "4axis_4button", &joystick_4axis_4button },
{ "ch_flighstick_pro", &joystick_ch_flightstick_pro }, { "ch_flighstick_pro", &joystick_ch_flightstick_pro },
{ "sidewinder_pad", &joystick_sw_pad }, { "sidewinder_pad", &joystick_sw_pad },
{ "thrustmaster_fcs", &joystick_tm_fcs }, { "thrustmaster_fcs", &joystick_tm_fcs },
{ "", NULL } { "", NULL }
}; };
static joystick_instance_t *joystick_instance = NULL; static joystick_instance_t *joystick_instance = NULL;
@@ -452,6 +454,15 @@ const device_t gameport_201_device = {
NULL NULL
}; };
const device_t gameport_208_device = {
"Game port (Port 208h-20fh)",
0, 0x080208,
gameport_init,
gameport_close,
NULL, { NULL }, NULL,
NULL
};
const device_t gameport_pnp_device = { const device_t gameport_pnp_device = {
"Game port (Plug and Play only)", "Game port (Plug and Play only)",
0, 0x080000, 0, 0x080000,

View File

@@ -145,6 +145,26 @@ static int joystick_standard_read_axis_4button(void *p, int axis)
} }
} }
static int joystick_standard_read_axis_3axis(void *p, int axis)
{
if (!JOYSTICK_PRESENT(0))
return AXIS_NOT_PRESENT;
switch (axis)
{
case 0:
return joystick_state[0].axis[0];
case 1:
return joystick_state[0].axis[1];
case 2:
return joystick_state[0].axis[2];
case 3:
return 0;
default:
return 0;
}
}
static int joystick_standard_read_axis_4axis(void *p, int axis) static int joystick_standard_read_axis_4axis(void *p, int axis)
{ {
if (!JOYSTICK_PRESENT(0)) if (!JOYSTICK_PRESENT(0))
@@ -216,9 +236,9 @@ static void joystick_standard_a0_over(void *p)
{ {
} }
const joystick_if_t joystick_standard = const joystick_if_t joystick_2axis_2button =
{ {
"Standard 2-button joystick(s)", "2-axis, 2-button joystick(s)",
joystick_standard_init, joystick_standard_init,
joystick_standard_close, joystick_standard_close,
joystick_standard_read, joystick_standard_read,
@@ -232,9 +252,9 @@ const joystick_if_t joystick_standard =
{"X axis", "Y axis"}, {"X axis", "Y axis"},
{"Button 1", "Button 2"} {"Button 1", "Button 2"}
}; };
const joystick_if_t joystick_standard_4button = const joystick_if_t joystick_2axis_4button =
{ {
"Standard 4-button joystick", "2-axis, 4-button joystick",
joystick_standard_init, joystick_standard_init,
joystick_standard_close, joystick_standard_close,
joystick_standard_read_4button, joystick_standard_read_4button,
@@ -248,9 +268,41 @@ const joystick_if_t joystick_standard_4button =
{"X axis", "Y axis"}, {"X axis", "Y axis"},
{"Button 1", "Button 2", "Button 3", "Button 4"} {"Button 1", "Button 2", "Button 3", "Button 4"}
}; };
const joystick_if_t joystick_3axis_2button =
{
"3-axis, 2-button joystick",
joystick_standard_init,
joystick_standard_close,
joystick_standard_read,
joystick_standard_write,
joystick_standard_read_axis_3axis,
joystick_standard_a0_over,
3,
2,
0,
1,
{"X axis", "Y axis", "Z axis"},
{"Button 1", "Button 2"}
};
const joystick_if_t joystick_3axis_4button =
{
"3-axis, 4-button joystick",
joystick_standard_init,
joystick_standard_close,
joystick_standard_read_4button,
joystick_standard_write,
joystick_standard_read_axis_3axis,
joystick_standard_a0_over,
3,
4,
0,
1,
{"X axis", "Y axis", "Z axis"},
{"Button 1", "Button 2", "Button 3", "Button 4"}
};
const joystick_if_t joystick_4axis_4button = const joystick_if_t joystick_4axis_4button =
{ {
"4-axis 4-button joystick", "4-axis, 4-button joystick",
joystick_standard_init, joystick_standard_init,
joystick_standard_close, joystick_standard_close,
joystick_standard_read_4button, joystick_standard_read_4button,
@@ -264,9 +316,9 @@ const joystick_if_t joystick_4axis_4button =
{"X axis", "Y axis", "Z axis", "zX axis"}, {"X axis", "Y axis", "Z axis", "zX axis"},
{"Button 1", "Button 2", "Button 3", "Button 4"} {"Button 1", "Button 2", "Button 3", "Button 4"}
}; };
const joystick_if_t joystick_standard_6button = const joystick_if_t joystick_2axis_6button =
{ {
"Standard 6-button joystick", "2-axis, 6-button joystick",
joystick_standard_init, joystick_standard_init,
joystick_standard_close, joystick_standard_close,
joystick_standard_read_4button, joystick_standard_read_4button,
@@ -280,9 +332,9 @@ const joystick_if_t joystick_standard_6button =
{"X axis", "Y axis"}, {"X axis", "Y axis"},
{"Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6"} {"Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6"}
}; };
const joystick_if_t joystick_standard_8button = const joystick_if_t joystick_2axis_8button =
{ {
"Standard 8-button joystick", "2-axis, 8-button joystick",
joystick_standard_init, joystick_standard_init,
joystick_standard_close, joystick_standard_close,
joystick_standard_read_4button, joystick_standard_read_4button,

View File

@@ -15,7 +15,7 @@
* connected * connected
* - Packet preceeded by high data (currently 50us), and * - Packet preceeded by high data (currently 50us), and
* followed by low data (currently 160us) - timings are * followed by low data (currently 160us) - timings are
* probably wrong, but good enoughfor everything I've tried * probably wrong, but good enough for everything I've tried
* - Analog inputs are only used to time ID packet request. * - Analog inputs are only used to time ID packet request.
* If A0 timing out is followed after ~64us by another 0x201 * If A0 timing out is followed after ~64us by another 0x201
* write then an ID packet is triggered * write then an ID packet is triggered
@@ -259,7 +259,7 @@ static void sw_a0_over(void *p)
{ {
sw_data *sw = (sw_data *)p; sw_data *sw = (sw_data *)p;
timer_set_delay_u64(&sw->trigger_timer, TIMER_USEC * 10000); timer_set_delay_u64(&sw->trigger_timer, TIMER_USEC * 10000);
} }
const joystick_if_t joystick_sw_pad = const joystick_if_t joystick_sw_pad =
@@ -273,7 +273,7 @@ const joystick_if_t joystick_sw_pad =
sw_a0_over, sw_a0_over,
2, 2,
10, 10,
0, 0,
4, 4,
{"X axis", "Y axis"}, {"X axis", "Y axis"},
{"A", "B", "C", "X", "Y", "Z", "L", "R", "Start", "M"} {"A", "B", "C", "X", "Y", "Z", "L", "R", "Start", "M"}

View File

@@ -108,6 +108,7 @@ extern "C" {
#ifdef EMU_DEVICE_H #ifdef EMU_DEVICE_H
extern const device_t gameport_device; extern const device_t gameport_device;
extern const device_t gameport_201_device; extern const device_t gameport_201_device;
extern const device_t gameport_208_device;
extern const device_t gameport_pnp_device; extern const device_t gameport_pnp_device;
extern const device_t gameport_pnp_6io_device; extern const device_t gameport_pnp_6io_device;
extern const device_t gameport_sio_device; extern const device_t gameport_sio_device;

View File

@@ -35,8 +35,10 @@
* USA. * USA.
*/ */
extern const joystick_if_t joystick_standard; extern const joystick_if_t joystick_2axis_2button;
extern const joystick_if_t joystick_standard_4button; extern const joystick_if_t joystick_2axis_4button;
extern const joystick_if_t joystick_3axis_2button;
extern const joystick_if_t joystick_3axis_4button;
extern const joystick_if_t joystick_4axis_4button; extern const joystick_if_t joystick_4axis_4button;
extern const joystick_if_t joystick_standard_6button; extern const joystick_if_t joystick_2axis_6button;
extern const joystick_if_t joystick_standard_8button; extern const joystick_if_t joystick_2axis_8button;

View File

@@ -1,3 +1,53 @@
include_directories("./mac") #
target_sources(86Box PUBLIC "./macOSXGlue.m") # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus.
#
# This file is part of the 86Box distribution.
#
# CMake build script.
#
# Authors: dob205,
# Jerome Vernet
# David Hrdlička, <hrdlickadavid@outlook.com>
#
# Copyright 2021 dob205.
# Copyright 2021 Jerome Vernet.
# Copyright 2021 David Hrdlička.
#
# Pick the bundle icon depending on the release channel
if(RELEASE_BUILD)
set(APP_ICON_MACOSX icons/release/86Box.icns)
elseif(BETA_BUILD)
set(APP_ICON_MACOSX icons/beta/86Box.icns)
elseif(ALPHA_BUILD)
set(APP_ICON_MACOSX icons/dev/86Box.icns)
else()
set(APP_ICON_MACOSX icons/branch/86Box.icns)
endif()
target_link_libraries(86Box "-framework AppKit")
target_sources(86Box PRIVATE macOSXGlue.m ${APP_ICON_MACOSX})
# Make sure the icon is copied to the bundle
set_source_files_properties(${APP_ICON_MACOSX}
TARGET_DIRECTORY 86Box
PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
# Prepare long version string
if(EMU_BUILD)
set(LONG_VER_STRING "${CMAKE_PROJECT_VERSION} [${EMU_BUILD}]")
else()
set(LONG_VER_STRING "${CMAKE_PROJECT_VERSION}")
endif()
# Generate Info.plist
configure_file(Info.plist.in Info.plist @ONLY)
set_target_properties(86Box
PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
#set(XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES")
#set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-")
#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements)

View File

@@ -7,29 +7,29 @@
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string> <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
<key>CFBundleGetInfoString</key> <key>CFBundleGetInfoString</key>
<string>${MACOSX_BUNDLE_INFO_STRING}</string> <string>An emulator of old computers</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string> <string>86Box.icns</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string> <string>net.86Box.86Box</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleLongVersionString</key> <key>CFBundleLongVersionString</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string> <string>@LONG_VER_STRING@</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string> <string>86Box</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string> <string>@CMAKE_PROJECT_VERSION@</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string> <string>@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@.@EMU_BUILD_NUM@</string>
<key>CSResourcesFileMapped</key> <key>CSResourcesFileMapped</key>
<true/> <true/>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>${MACOSX_BUNDLE_COPYRIGHT}</string> <string>© 2007-@EMU_COPYRIGHT_YEAR@ 86Box contributors</string>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
<string>NSApplication</string> <string>NSApplication</string>
<key>NSHighResolutionCapable</key> <key>NSHighResolutionCapable</key>

View File

@@ -1,42 +1,42 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(mch OBJECT machine.c machine_table.c m_xt.c m_xt_compaq.c add_library(mch OBJECT machine.c machine_table.c m_xt.c m_xt_compaq.c
m_xt_philips.c m_xt_philips.c
m_xt_t1000.c m_xt_t1000_vid.c m_xt_xi8088.c m_xt_zenith.c m_pcjr.c m_xt_t1000.c m_xt_t1000_vid.c m_xt_xi8088.c m_xt_zenith.c m_pcjr.c
m_amstrad.c m_europc.c m_xt_olivetti.c m_tandy.c m_v86p.c m_amstrad.c m_europc.c m_xt_olivetti.c m_tandy.c m_v86p.c
m_at.c m_at_commodore.c m_at.c m_at_commodore.c
m_at_t3100e.c m_at_t3100e_vid.c m_ps1.c m_ps1_hdc.c m_ps2_isa.c m_at_t3100e.c m_at_t3100e_vid.c m_ps1.c m_ps1_hdc.c m_ps2_isa.c
m_ps2_mca.c m_at_compaq.c m_at_286_386sx.c m_at_386dx_486.c m_ps2_mca.c m_at_compaq.c m_at_286_386sx.c m_at_386dx_486.c
m_at_socket4.c m_at_socket5.c m_at_socket7_3v.c m_at_socket7.c m_at_socket4.c m_at_socket5.c m_at_socket7_3v.c m_at_socket7.c
m_at_sockets7.c m_at_socket8.c m_at_slot1.c m_at_slot2.c m_at_socket370.c m_at_sockets7.c m_at_socket8.c m_at_slot1.c m_at_slot2.c m_at_socket370.c
m_at_misc.c) m_at_misc.c)
if(LASERXT) if(LASERXT)
target_sources(mch PRIVATE m_xt_laserxt.c) target_sources(mch PRIVATE m_xt_laserxt.c)
target_compile_definitions(mch PRIVATE USE_LASERXT) target_compile_definitions(mch PRIVATE USE_LASERXT)
endif() endif()
if(NO_SIO) if(NO_SIO)
target_compile_definitions(mch PRIVATE NO_SIO) target_compile_definitions(mch PRIVATE NO_SIO)
endif() endif()
if(OPEN_AT) if(OPEN_AT)
target_compile_definitions(mch PRIVATE USE_OPEN_AT) target_compile_definitions(mch PRIVATE USE_OPEN_AT)
endif() endif()
if(M154X) if(M154X)
target_compile_definitions(mch PRIVATE USE_M154X) target_compile_definitions(mch PRIVATE USE_M154X)
endif() endif()

View File

@@ -1,17 +1,17 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(mem OBJECT catalyst_flash.c i2c_eeprom.c intel_flash.c mem.c rom.c add_library(mem OBJECT catalyst_flash.c i2c_eeprom.c intel_flash.c mem.c rom.c
smram.c spd.c sst_flash.c) smram.c spd.c sst_flash.c)

View File

@@ -1,20 +1,20 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(net OBJECT network.c net_pcap.c net_slirp.c net_dp8390.c net_3c503.c add_library(net OBJECT network.c net_pcap.c net_slirp.c net_dp8390.c net_3c503.c
net_ne2000.c net_pcnet.c net_wd8003.c net_plip.c) net_ne2000.c net_pcnet.c net_wd8003.c net_plip.c)
add_subdirectory(slirp) add_subdirectory(slirp)
target_link_libraries(86Box slirp) target_link_libraries(86Box slirp)

View File

@@ -1,16 +1,16 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(slirp STATIC arp_table.c bootp.c cksum.c dnssearch.c if.c ip_icmp.c add_library(slirp STATIC arp_table.c bootp.c cksum.c dnssearch.c if.c ip_icmp.c

View File

@@ -1,16 +1,16 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(print OBJECT png.c prt_cpmap.c prt_escp.c prt_text.c prt_ps.c) add_library(print OBJECT png.c prt_cpmap.c prt_escp.c prt_text.c prt_ps.c)

View File

@@ -1,18 +1,18 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(scsi OBJECT scsi.c scsi_device.c scsi_cdrom.c scsi_disk.c add_library(scsi OBJECT scsi.c scsi_device.c scsi_cdrom.c scsi_disk.c
scsi_x54x.c scsi_aha154x.c scsi_buslogic.c scsi_ncr5380.c scsi_x54x.c scsi_aha154x.c scsi_buslogic.c scsi_ncr5380.c
scsi_ncr53c8xx.c scsi_pcscsi.c scsi_spock.c) scsi_ncr53c8xx.c scsi_pcscsi.c scsi_spock.c)

View File

@@ -1,26 +1,26 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(sio OBJECT sio_acc3221.c sio_f82c710.c sio_82091aa.c sio_fdc37c6xx.c add_library(sio OBJECT sio_acc3221.c sio_f82c710.c sio_82091aa.c sio_fdc37c6xx.c
sio_fdc37c67x.c sio_fdc37c669.c sio_fdc37c93x.c sio_fdc37m60x.c sio_fdc37c67x.c sio_fdc37c669.c sio_fdc37c93x.c sio_fdc37m60x.c
sio_it8661f.c sio_it8661f.c
sio_pc87306.c sio_pc87307.c sio_pc87309.c sio_pc87310.c sio_pc87311.c sio_pc87332.c sio_pc87306.c sio_pc87307.c sio_pc87309.c sio_pc87310.c sio_pc87311.c sio_pc87332.c
sio_prime3b.c sio_prime3c.c sio_prime3b.c sio_prime3c.c
sio_w83787f.c sio_w83877f.c sio_w83977f.c sio_um8669f.c sio_w83787f.c sio_w83877f.c sio_w83977f.c sio_um8669f.c
sio_vt82c686.c) sio_vt82c686.c)
if(SIO_DETECT) if(SIO_DETECT)
target_sources(sio PRIVATE sio_detect.c) target_sources(sio PRIVATE sio_detect.c)
endif() endif()

View File

@@ -1,44 +1,44 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(snd OBJECT sound.c openal.c snd_opl.c snd_opl_nuked.c snd_resid.cc add_library(snd OBJECT sound.c openal.c snd_opl.c snd_opl_nuked.c snd_resid.cc
midi.c midi_rtmidi.cpp snd_speaker.c snd_pssj.c snd_lpt_dac.c snd_ac97_codec.c snd_ac97_via.c midi.c midi_rtmidi.cpp snd_speaker.c snd_pssj.c snd_lpt_dac.c snd_ac97_codec.c snd_ac97_via.c
snd_lpt_dss.c snd_adlib.c snd_adlibgold.c snd_ad1848.c snd_audiopci.c snd_lpt_dss.c snd_adlib.c snd_adlibgold.c snd_ad1848.c snd_audiopci.c
snd_azt2316a.c snd_cms.c snd_cs423x.c snd_gus.c snd_sb.c snd_sb_dsp.c snd_azt2316a.c snd_cms.c snd_cs423x.c snd_gus.c snd_sb.c snd_sb_dsp.c
snd_emu8k.c snd_mpu401.c snd_sn76489.c snd_ssi2001.c snd_wss.c snd_ym7128.c) snd_emu8k.c snd_mpu401.c snd_sn76489.c snd_ssi2001.c snd_wss.c snd_ym7128.c)
if(FLUIDSYNTH) if(FLUIDSYNTH)
target_compile_definitions(snd PRIVATE USE_FLUIDSYNTH) target_compile_definitions(snd PRIVATE USE_FLUIDSYNTH)
target_sources(snd PRIVATE midi_fluidsynth.c) target_sources(snd PRIVATE midi_fluidsynth.c)
endif() endif()
if(MUNT) if(MUNT)
target_compile_definitions(snd PRIVATE USE_MUNT) target_compile_definitions(snd PRIVATE USE_MUNT)
target_sources(snd PRIVATE midi_mt32.c) target_sources(snd PRIVATE midi_mt32.c)
add_subdirectory(munt) add_subdirectory(munt)
target_link_libraries(86Box mt32emu) target_link_libraries(86Box mt32emu)
endif() endif()
if(PAS16) if(PAS16)
target_compile_definitions(snd PRIVATE USE_PAS16) target_compile_definitions(snd PRIVATE USE_PAS16)
target_sources(snd PRIVATE snd_pas16.c) target_sources(snd PRIVATE snd_pas16.c)
endif() endif()
if(GUSMAX) if(GUSMAX)
target_compile_definitions(snd PRIVATE USE_GUSMAX) target_compile_definitions(snd PRIVATE USE_GUSMAX)
endif() endif()
add_subdirectory(resid-fp) add_subdirectory(resid-fp)

View File

@@ -1,26 +1,26 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(mt32emu STATIC Analog.cpp BReverbModel.cpp File.cpp FileStream.cpp add_library(mt32emu STATIC Analog.cpp BReverbModel.cpp File.cpp FileStream.cpp
LA32Ramp.cpp LA32FloatWaveGenerator.cpp LA32WaveGenerator.cpp LA32Ramp.cpp LA32FloatWaveGenerator.cpp LA32WaveGenerator.cpp
MidiStreamParser.cpp Part.cpp Partial.cpp PartialManager.cpp MidiStreamParser.cpp Part.cpp Partial.cpp PartialManager.cpp
Poly.cpp ROMInfo.cpp SampleRateConverter.cpp Poly.cpp ROMInfo.cpp SampleRateConverter.cpp
srchelper/srctools/src/FIRResampler.cpp srchelper/srctools/src/FIRResampler.cpp
srchelper/srctools/src/IIR2xResampler.cpp srchelper/srctools/src/IIR2xResampler.cpp
srchelper/srctools/src/LinearResampler.cpp srchelper/srctools/src/LinearResampler.cpp
srchelper/srctools/src/ResamplerModel.cpp srchelper/srctools/src/ResamplerModel.cpp
srchelper/srctools/src/SincResampler.cpp srchelper/srctools/src/SincResampler.cpp
srchelper/InternalResampler.cpp Synth.cpp Tables.cpp TVA.cpp TVF.cpp srchelper/InternalResampler.cpp Synth.cpp Tables.cpp TVA.cpp TVF.cpp
TVP.cpp sha1/sha1.cpp c_interface/c_interface.cpp) TVP.cpp sha1/sha1.cpp c_interface/c_interface.cpp)

View File

@@ -1,19 +1,19 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(resid-fp STATIC convolve-sse.cc convolve.cc envelope.cc extfilt.cc add_library(resid-fp STATIC convolve-sse.cc convolve.cc envelope.cc extfilt.cc
filter.cc pot.cc sid.cc voice.cc wave.cc wave6581_PST.cc filter.cc pot.cc sid.cc voice.cc wave.cc wave6581_PST.cc
wave6581_PS_.cc wave6581_P_T.cc wave6581__ST.cc wave8580_PST.cc wave6581_PS_.cc wave6581_P_T.cc wave6581__ST.cc wave8580_PST.cc
wave8580_PS_.cc wave8580_P_T.cc wave8580__ST.cc) wave8580_PS_.cc wave8580_P_T.cc wave8580__ST.cc)

View File

@@ -1,3 +1,20 @@
#
# 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus.
#
# This file is part of the 86Box distribution.
#
# CMake build script.
#
# Authors: Cacodemon345
# David Hrdlička, <hrdlickadavid@outlook.com>
#
# Copyright 2021 Cacodemon345.
# Copyright 2021 David Hrdlička.
#
add_library(plat OBJECT unix.c) add_library(plat OBJECT unix.c)
if (NOT CPPTHREADS) if (NOT CPPTHREADS)

View File

@@ -1,55 +1,55 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
add_library(vid OBJECT agpgart.c video.c vid_table.c vid_cga.c vid_cga_comp.c add_library(vid OBJECT agpgart.c video.c vid_table.c vid_cga.c vid_cga_comp.c
vid_compaq_cga.c vid_mda.c vid_hercules.c vid_herculesplus.c vid_compaq_cga.c vid_mda.c vid_hercules.c vid_herculesplus.c
vid_incolor.c vid_colorplus.c vid_genius.c vid_pgc.c vid_im1024.c vid_incolor.c vid_colorplus.c vid_genius.c vid_pgc.c vid_im1024.c
vid_sigma.c vid_wy700.c vid_ega.c vid_ega_render.c vid_svga.c vid_sigma.c vid_wy700.c vid_ega.c vid_ega_render.c vid_svga.c
vid_svga_render.c vid_ddc.c vid_vga.c vid_ati_eeprom.c vid_ati18800.c vid_svga_render.c vid_ddc.c vid_vga.c vid_ati_eeprom.c vid_ati18800.c
vid_ati28800.c vid_ati_mach64.c vid_ati68860_ramdac.c vid_bt48x_ramdac.c vid_ati28800.c vid_ati_mach64.c vid_ati68860_ramdac.c vid_bt48x_ramdac.c
vid_av9194.c vid_icd2061.c vid_ics2494.c vid_ics2595.c vid_cl54xx.c vid_av9194.c vid_icd2061.c vid_ics2494.c vid_ics2595.c vid_cl54xx.c
vid_et4000.c vid_sc1148x_ramdac.c vid_sc1502x_ramdac.c vid_et4000w32.c vid_et4000.c vid_sc1148x_ramdac.c vid_sc1502x_ramdac.c vid_et4000w32.c
vid_stg_ramdac.c vid_ht216.c vid_oak_oti.c vid_paradise.c vid_rtg310x.c vid_stg_ramdac.c vid_ht216.c vid_oak_oti.c vid_paradise.c vid_rtg310x.c
vid_f82c425.c vid_ti_cf62011.c vid_tvga.c vid_tgui9440.c vid_tkd8001_ramdac.c vid_f82c425.c vid_ti_cf62011.c vid_tvga.c vid_tgui9440.c vid_tkd8001_ramdac.c
vid_att20c49x_ramdac.c vid_s3.c vid_s3_virge.c vid_ibm_rgb528_ramdac.c vid_att20c49x_ramdac.c vid_s3.c vid_s3_virge.c vid_ibm_rgb528_ramdac.c
vid_sdac_ramdac.c vid_ogc.c vid_nga.c vid_tvp3026_ramdac.c vid_att2xc498_ramdac.c) vid_sdac_ramdac.c vid_ogc.c vid_nga.c vid_tvp3026_ramdac.c vid_att2xc498_ramdac.c)
if(MGA) if(MGA)
target_compile_definitions(vid PRIVATE USE_MGA) target_compile_definitions(vid PRIVATE USE_MGA)
target_sources(vid PRIVATE vid_mga.c) target_sources(vid PRIVATE vid_mga.c)
endif() endif()
if(VGAWONDER) if(VGAWONDER)
target_compile_definitions(vid PRIVATE USE_VGAWONDER) target_compile_definitions(vid PRIVATE USE_VGAWONDER)
endif() endif()
if(XL24) if(XL24)
target_compile_definitions(vid PRIVATE USE_XL24) target_compile_definitions(vid PRIVATE USE_XL24)
endif() endif()
add_library(voodoo OBJECT vid_voodoo.c vid_voodoo_banshee.c add_library(voodoo OBJECT vid_voodoo.c vid_voodoo_banshee.c
vid_voodoo_banshee_blitter.c vid_voodoo_blitter.c vid_voodoo_display.c vid_voodoo_banshee_blitter.c vid_voodoo_blitter.c vid_voodoo_display.c
vid_voodoo_fb.c vid_voodoo_fifo.c vid_voodoo_reg.c vid_voodoo_render.c vid_voodoo_fb.c vid_voodoo_fifo.c vid_voodoo_reg.c vid_voodoo_render.c
vid_voodoo_setup.c vid_voodoo_texture.c) vid_voodoo_setup.c vid_voodoo_texture.c)
if(NOT MSVC AND (ARCH STREQUAL "i386" OR ARCH STREQUAL "x86_64")) if(NOT MSVC AND (ARCH STREQUAL "i386" OR ARCH STREQUAL "x86_64"))
target_compile_options(voodoo PRIVATE "-msse2") target_compile_options(voodoo PRIVATE "-msse2")
endif() endif()
# Suppress GCC false positive warnings in vid_voodoo_codegen_x86[-64].h # Suppress GCC false positive warnings in vid_voodoo_codegen_x86[-64].h
# that cause ~3000 lines to be output into the logs each time # that cause ~3000 lines to be output into the logs each time
if(CMAKE_C_COMPILER_ID STREQUAL "GNU") if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_options(voodoo PRIVATE "-Wstringop-overflow=0") target_compile_options(voodoo PRIVATE "-Wstringop-overflow=0")
endif() endif()

View File

@@ -1,53 +1,53 @@
# #
# 86Box A hypervisor and IBM PC system emulator that specializes in # 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM # running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent # PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus. # system designs based on the PCI bus.
# #
# This file is part of the 86Box distribution. # This file is part of the 86Box distribution.
# #
# CMake build script. # CMake build script.
# #
# Authors: David Hrdlička, <hrdlickadavid@outlook.com> # Authors: David Hrdlička, <hrdlickadavid@outlook.com>
# #
# Copyright 2020,2021 David Hrdlička. # Copyright 2020,2021 David Hrdlička.
# #
enable_language(RC) enable_language(RC)
add_library(plat OBJECT win.c win_dynld.c win_cdrom.c win_keyboard.c add_library(plat OBJECT win.c win_dynld.c win_cdrom.c win_keyboard.c
win_crashdump.c win_mouse.c) win_crashdump.c win_mouse.c)
add_library(ui OBJECT win_ui.c win_icon.c win_stbar.c win_sdl.c win_dialog.c win_about.c add_library(ui OBJECT win_ui.c win_icon.c win_stbar.c win_sdl.c win_dialog.c win_about.c
win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c
win_jsconf.c win_media_menu.c win_preferences.c win_discord.c glad.c win_opengl.c win_jsconf.c win_media_menu.c win_preferences.c win_discord.c glad.c win_opengl.c
win_opengl_glslp.c 86Box.rc) win_opengl_glslp.c 86Box.rc)
if(NOT CPPTHREADS) if(NOT CPPTHREADS)
target_sources(plat PRIVATE win_thread.c) target_sources(plat PRIVATE win_thread.c)
endif()
if(MSVC)
# MSVC complains when we include the manifest from 86Box.rc...
# On the bright side, CMake supports passing the manifest as a source
# file when using MSVC, so we might just as well do that!
target_compile_definitions(ui PRIVATE NO_INCLUDE_MANIFEST)
target_sources(86Box PRIVATE 86Box.manifest)
# Append null to resource strings (fixes file dialogs)
set_property(SOURCE 86Box.rc PROPERTY COMPILE_FLAGS -n)
endif() endif()
if(NOT MINGW) if(NOT MINGW)
target_sources(plat PRIVATE win_opendir.c) # MSVC linker adds its own manifest to the executable, which fails if
# we include ours in 86Box.rc. We therefore need to pass the manifest
# directly as as a source file, so the linker can use that instead.
set_property(SOURCE 86Box.rc PROPERTY COMPILE_DEFINITIONS NO_INCLUDE_MANIFEST)
target_sources(86Box PRIVATE 86Box.manifest)
# Append null to resource strings (fixes file dialogs)
set_property(SOURCE 86Box.rc PROPERTY COMPILE_FLAGS -n)
# `opendir` is only included in MinGW, so include an implementation
# for other builds.
target_sources(plat PRIVATE win_opendir.c)
endif() endif()
if(DINPUT) if(DINPUT)
target_sources(plat PRIVATE win_joystick.cpp) target_sources(plat PRIVATE win_joystick.cpp)
target_link_libraries(86Box dinput8) target_link_libraries(86Box dinput8)
else() else()
target_sources(plat PRIVATE win_joystick_rawinput.c) target_sources(plat PRIVATE win_joystick_rawinput.c)
endif() endif()
target_link_libraries(86Box advapi32 comctl32 comdlg32 gdi32 shell32 iphlpapi target_link_libraries(86Box advapi32 comctl32 comdlg32 gdi32 shell32 iphlpapi
dxguid imm32 hid setupapi uxtheme version winmm psapi) dxguid imm32 hid setupapi uxtheme version winmm psapi)

View File

@@ -1,6 +1,6 @@
{ {
"name": "86box", "name": "86box",
"version-string": "3.0", "version-string": "3.1",
"homepage": "https://86box.net/", "homepage": "https://86box.net/",
"documentation": "http://86box.readthedocs.io/", "documentation": "http://86box.readthedocs.io/",
"license": "GPL-2.0-only", "license": "GPL-2.0-only",