From 44676a6810f1626876f814dd4f190d613523f1b8 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Fri, 22 Nov 2019 18:30:57 +1000 Subject: [PATCH] Update README.md --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ad31e3e40..0d81978f3 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,62 @@ ![Main Window Screenshot](https://raw.githubusercontent.com/stenzek/duckstation/md-images/main.png) ## Features - - System Simulation - - Debugging Windows - - Resolution Upscaling + - CPU Recompiler/JIT (x86_64 work-in-progress, AArch64 planned) + - Hardware (D3D11 and OpenGL) and software rendering + - Upscaling and true colour (24-bit) in hardware renderers + - "Fast boot" for skipping BIOS splash/intro + - Save state support + - Windows and Linux support - macOS may work, but not supported by author + +## Building +Clone the respository with submodules (`git clone --recursive` or `git clone` and `git submodule update --init`). + +### Windows +Requirements: + - Visual Studio 2019 + +1. Open the Visual Studio solution `duckstation.sln` in the root, or "Open Folder" for cmake build. +2. Build, binaries are located in `bin/x64`. +3. Copy the DLL files from `dep/msvc/bin64` to the binary directory. +4. Run `duckstation-x64-Release.exe` or whichever config you used. + +### Linux +Requirements: + - CMake + - SDL2 + +1. Create a build directory, either in-tree or elsewhere. +2. Run cmake to configure the build system. Assuming a build subdirectory of `build-release`, `cd build-release && cmake -DCMAKE_BUILD_TYPE=Release -GNinja ..`. +3. Compile the source code. For the example above, run `ninja`. +4. Run the binary, located in the build directory under `src/duckstation/duckstation`. + +## Running +1. Configure the BIOS path in the settings. +2. Open a disc image file, enjoy. + +## Default keyboard bindings +Keyboard bindings are currently not customizable. For reference: + - **D-Pad:** W/A/S/D or Up/Left/Down/Right + - **Triangle/Square/Circle/Cross:** I/J/L/K or Numpad8/Numpad4/Numpad6/Numpad2 + - **L1/R1:** Q/E + - **L2/L2:** 1/3 + - **Start:** Enter + - **Select:** Backspace + +Gamepads are automatically detected and supported. Tested with an Xbox One controller. +To access the menus with the controller, press the right stick down and use the D-Pad to navigate, A to select. + +## Useful hotkeys + - **F1-F8:** Quick load/save (hold shift to save) + - **F11:** Toggle fullscreen + - **Tab:** Temporarily disable speed limiter + - **Pause/Break:** Pause/resume emulation + - **Space:** Frame step + - **End:** Toggle software renderering + - **Page Up/Down:** Increase/decrease resolution scale in hardware renderers ## Tests -TODO: Fill in tests list - CPU/GTE/GPU + - Passes amidog's CPU and GTE tests, partial passing of CPX tests ## Screenshots ![Spyro 2](https://raw.githubusercontent.com/stenzek/duckstation/md-images/spyro.jpg)