Giter Club home page Giter Club logo

superdux's Introduction

SuperDUX

NOTE: Development on this project has been suspended until further notice. Sorry!

duck with onion

SuperDUX is a Qt-based interface of SameBoy, a free and accurate Game Boy and Game Boy Color emulator.

Features

  • Supports many of SameBoy's core features
    • Highly accurate Game Boy and Game Boy Color emulation
      • High-level Super Game Boy emulation for games that support it
    • Save states, including BESS save states which can be used interchangeably with other emulators such as BGB
    • High pass audio filters
    • Color correction
    • SRAM support
    • RTC support
    • Rumble support
    • Rewind support
    • Game Boy Printer support
      • Can save printer feeds as a PNG image or copy to clipboard
    • Built-in boot ROMs, supporting palette switching for both DMG and CGB
  • Controller support
    • Per-controller configuration (based on name)
    • Multiple buttons/axes per control
    • Analog turbo and slowdown
  • Debugging features
    • Debugger
      • Disassembles into RGBDS-compatible assembly
      • Display and manipulate CPU registers
      • Supports creating breakpoints
      • Supports tracing breakpoints and recording traces into a CSV file
      • Backtrace
    • VRAM (video RAM) viewer
      • Tileset preview (using automatic palettes or specific palettes)
        • Displays metadata such as memory address, bank, usage, etc.
      • Tilemap preview (background, window, as well as specific tilemaps)
      • Sprite preview (also shows coordinates, flipping, and tileset info)
      • Palette preview (shows all background palettes and OAM/sprite palettes)

Note that this interface is a work-in-progress. More features are (hopefully) to come.

Building

Build requirements:

  • CMake
  • Python
  • C11 and C++20 compiler
  • Qt6
    • You may build for Qt5 with -DBUILD_QT5_VERSION, but this is unsupported
  • SDL version 2.0.16 or later
  • SameBoy*
    • RGBDS (for building SameBoy's boot ROMs)

* You need a copy of SameBoy's source code. One is tracked via git submodule, but you may also choose to use a different version of SameBoy by setting the SAMEBOY_SOURCE_DIR setting in the CMake cache like this:

$ cmake <arguments> -DSAMEBOY_SOURCE_DIR=/path/to/sameboy/source

To clone SuperDUX with the SameBoy repo, run this command:

$ git clone https://github.com/SnowyMouse/superdux.git --recursive

You can update the existing submodule manually with this:

$ git submodule update --remote

superdux's People

Contributors

snowymouse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

superdux's Issues

Cannot compile for Qt6 when Qt5 development files are present

Since both
find_package(Qt5 COMPONENTS Widgets)
and
find_package(Qt6 COMPONENTS Widgets) are executed they end up defining the same set of targets which ends up causing trouble down the line

CMake Error at /usr/lib64/cmake/Qt6Core/Qt6CoreVersionlessTargets.cmake:37 (message):
  Some (but not all) targets in this export set were already defined.

  Targets Defined: Qt::Core

  Targets not yet defined: Qt::CorePrivate

Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreConfig.cmake:63 (include)
  /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /usr/lib64/cmake/Qt6/QtPublicDependencyHelpers.cmake:14 (find_dependency)
  /usr/lib64/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:91 (_qt_internal_find_dependencies)
  /usr/lib64/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:50 (include)
  /usr/lib64/cmake/Qt6/Qt6Config.cmake:187 (find_package)
  CMakeLists.txt:34 (find_package)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.