andreondra / use

A platform for emulator development

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

USE logo

USE: the Universal System Emulator

The USE is a platform created to ease the development of software-based emulators of archaic hardware. The project aims to be easily understandable, extensible, portable and tries to follow good programming practices while utilizing the newest C++ standard.

Documentation

A documentation for the project is available at 📃 GitHub Pages. It contains user manual, contributor's guide, developer's guide and API documentation which is generated on every push to the main branch.

Prebuilt binaries

For Windows there is a prebuilt-binary built from the latest commit to the main branch in 🗞️ Releases.

Quick start on Linux/macOS/Windows

This is a quick start guide on how to prepare the platform either for development of your own emulator or just testing.

Note that there are some required system packages (CMake will report), for Ubuntu they are: libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl-dev.

Get the repository

git clone https://github.com/andreondra/use.git

Configure the CMake project

cd use
mkdir build
cd build
cmake ..
cmake --build . -j 4 -t use

The CMake will download most of the dependecies, however, depending on your platform, there may be some other libraries required. Please check the output of the cmake .. command. If there is any problem, do not hesitate to open an Issue.

Run the project

./use

Building the docs

You can use a prebuilt documentation on GitHub pages, which is built from every commit to the main branch, or you can build the documentation on your own. The process is the same as with building the executable except you change the target:

  • -t docs to build only autogenerated Doxygen API documentation.
  • -t sphinxdocs to build a complete documentation including manuals with Sphinx and ReadTheDocs theme.

Cross-compiling on Linux for Windows

On Fedora you follow the steps described above but instead of cmake use a script mingw64-cmake. That's it. This script should be also available for Arch Linux.

On Ubuntu you need to use a special toolchain file. Add to the cmake commands this parameter: -DCMAKE_TOOLCHAIN_FILE=../cmake_src/mingw-w64-x86_64.cmake

Contributing

You are always very welcome to file bug reports using Issues or opening PRs for enhancements.

License

USE Copyright (C) 2023 Ondrej Golasowski

This project is licensed under the GNU GPLv3. Full text of the license can be found in the COPYING file. This license applies to all the files in this repository except:

  • External projects downloaded during the CMake configuration step, these projects have their own license in their repository.
  • Manually included projects. These projects contain their license in the directory.

About

A platform for emulator development

License:GNU General Public License v3.0


Languages

Language:C++ 96.4%Language:CMake 3.6%