Saturnin is a Sega Saturn emulator
Before doing anything after cloning the repository, remove template extensions from properties files in the ./props directory.
Next, you must update user macros from properties sheets inside VS2022 to set up your directories. To do so, open the Property Manager first ( View | Property Manager ), then update the solution sheet macros according to your setup.
They are handled using vcpkg. You'll find in ./saturnin/lib/vcpkg everything necessary to build the libraries used by Saturnin.
Follow these steps:
- remove template extension from vcpkg.cfg.template
- update vcpkg_full_path in vcpkg.cfg according to your vcpkg install.
- run install_libraries.bat dynamic for building and installing dynamic libraries or install_libraries.bat static for building and installing static ones.
List of used libraries for reference:
- argagg : A simple C++11 command line argument parser.
- date : A date and time library based on the C++11/14/17 header.
- embed : std::embed implementation for the poor (C++17).
- glbinding : A C++ binding for the OpenGL API, generated using the gl.xml specification.
- glfw3 : A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
- glm : OpenGL Mathematics (GLM).
- dear imgui : Bloat-free Graphical User interface for C++ with minimal dependencies.
- libconfig : C/C++ library for processing configuration files.
- libzip : A C library for reading, creating, and modifying zip archives.
- libzippp : C++ wrapper for libzip.
- lodepng : PNG encoder and decoder in C and C++.
- spdlog : Fast C++ logging library.
- thread-pool : A fast, lightweight, and easy-to-use C++17 thread pool library
- Runik (Renaud Toumazet)