Giter VIP home page Giter VIP logo

gmplayer's Introduction

GMPLAYER

gmplayer is a music player for retro game music. It's a minimal player
directed at a more casual audience, and offers the usual features such as
playlists, playback speed, fade, MPRIS support and more.

SUPPORTED FORMATS

The supported formats correspond to GME's supported formats. Here's a
comprehensive list:

    - SPC   (SPC700, Super Nintendo Entertainment System)
    - GYM   (Gensis YM2612, Sega Genesis)
    - NSF   (Nintendo Entertainment System)
    - NSFE  (Nintendo Entertainment System)
    - GBS   (Game Boy)
    - AY    (AY-3-8910 chip, used on Amstrad CPC, ZX Spectrum)
    - KSS   (Konami Sound System chip, used in MSX, Sega Master System and Game Gear)
    - HES   (NEC Home Entertainment System i.e. PC Engine/TurboGrafx)
    - VGM   (Video Game Music, generic)
    - SAP   (Slight Atari Player, used on Atari computers)

OTHER FEATURES

- Playlists, of course.
- An MPRIS interface.
- A small visualizer.
- GUI and console/terminal interfaces.
- Very, very small.

DEPENDECIES

The following libraries have been used for building this player and are required
when installing:

    - Game_Music_Emu (GME): https://bitbucket.org/mpyne/game-music-emu/wiki/Home
    - Qt5 (base, gui, widgets): https://www.qt.io/
    - SDL2: https://www.libsdl.org

Assuming you are in a debian-based distribution, Qt5 and SDL2 can be
installed with the following command:

    sudo apt install qtbase5-dev libsdl2-dev

For other distributions the specific names of the package may vary.

COMPILING AND INSTALLING

Once the dependencies above have been installed, the project can simply be
built using CMake:

    cmake . -B build -DCMAKE_BUILD_TYPE=Release
    make -C build
    make -C build install # currently may not work

The commands should be run under the project's root directory. For cmake:

    - -B specifies the directory to put the build files
    - -DCMAKE_BUILD_TYPE=Release specifies to build in release mode
    - -DCMAKE_CXX_FLAGS="-mwindows" should be added in case you are doing a
      windows build: it will cause not to spanw a useless cmd window when
      running the program

When running CMake, you can also choose what interface to compile using
-DGMP_INTERFACE=[interfacename]. [interfacename] can be:

    - qt: the default interface. The program will use a full GUI interface that
      should be fully cross-platform.
    - console: a more minimal interface, intended for console/terminal/headless
      interfaces. It probably won't work on non-linux OSes.

You can also choose to build with or without MPRIS support by passing
-DBUILD_MPRIS=ON or OFF.

For make, -C specifies the directory where to find the Makefile.
When compilation is completed, the executable should be found inside build/.

WINDOWS

On Windows, you must install both conan and Qt already. You should install Qt
through the online installer.
When everything is installed, issue the following commands on the project root:

    set QT_DIR=/path/to/qt
    conan install . --output-folder=build --build=missing
    cd build
    cmake .. -DGMP_INTERFACE=qt -DBUILD_MPRIS=OFF -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_PREFIX_PATH=%QT_DIR%
    cmake --build . --config Release
    cmake --install .

Where:

    - /path/to/qt is where your Qt installation is located. Note that it's not
      enough to specify C:\Qt here; for example, if you've got an installation
      with Qt 6.6.1 and MSVC 2019, you should specify C:\Qt\6.6.1\msvc2019_64
    - conan will install the needed libraries (zlib, sdl, fmt) inside the build/
      directory
    - The CMake command specifies the Qt interface and turns off MPRIS support
    - The second CMake command specifies to build in Release mode
    - In the third CMake command you may specify a directory to install to by
      using --prefix <dir>

gmplayer's People

Contributors

chrg127 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gmplayer's Issues

[Enhancement] Headless Mode

Hello, any plans for a headless mode? I have a small project where i play a lot of these formats from a floppy disk on a headless pi, but only a few programs support playing these formats and even less have headless functionality.

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.