Git Product home page Git Product logo

gbt-player's Introduction

GBT Player

Music player library and converter kit for the Game Boy family of consoles. It's available for the Game Boy Advance as a C library. It's also avaliable for Game Boy and Game Boy Color as a RGBDS library. There is also a legacy version that uses GBDK. If you're interested in the changes introduced with each version, check the changelog.

On GBA it is possible to use GBT Player at the same time as other players like Maxmod, check this example.

Introduction

GBT Player is a music creation environment for GB, GBC and GBA. It is formed by:

  • GBT Player: Library to play GBT format on GB, GBC or GBA.
  • s3m2gbt: Converts S3M files into GBT (GameBoy Tracker) format.
  • mod2gbt: Converts legacy MOD files into GBT (GameBoy Tracker) format.

It's the same idea as the old Lemon player for Game Boy, but greatly improved: You take a MOD file that you can edit in any tracker, convert it with a special converter to something that the Game Boy can understand, and play it there.

Because of this workflow, there are some limitations that are needed so that the MOD/S3M file and the result on the GB/GBA are similar.

As of version 4.0.0 there is a big split between the GB/GBC version and the GBA version. The GB version is stuck in version 3.X, and all the new changes are added to the GBA because it's easier to prototype new features there.

  • For GBA, the code is just in C, and it doesn't depend on any library apart from a few standard library headers.
  • For GB/GBC, there is source code for RGBDS, the main option for Game Boy development (in my opinion). There is also legacy code for an old version that also supported GBDK, but it's mostly unmaintained. Note that there is no S3M support for GB/GBC, only for GBA.

GBT Player is open source, and it is licensed under the MIT license. That means that you can use and modify it but you have to give credit for the original work. It would be nice to you tell me if you use it, anyway. :)

About

Licensed under the MIT license.

Copyright (C) 2009-2022 Antonio Niño Díaz

All rights reserved.

Email: antonio [underscore] nd [at] outlook [dot] com

Web: www.skylyrac.net

Latest version: https://github.com/AntonioND/gbt-player

gbt-player's People

Contributors

antoniond avatar bbbbbr avatar q-bert-reynolds avatar richardulz avatar zal0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gbt-player's Issues

Linux version of mod2gbt

Is it possible that you can include an executable version of mod2gbt for linux/unix/osx? It would make compiling much easier.

Love the work you've done on GBT player.

gbt_pause does not completely pause the track

Hello, i'm having some issues when my track has continuous notes. When gbt_pause is called it pauses the song but keep continuous notes going in a lesser volume. I'm using RGBDS.

Am i missing something?

Thanks!

Desync issue when combined with Maxmod

I tried combined_maxmod example for my song, but there's a slight desync (slight off?) with it.

Here's the unsplit s3m file if you want to check it out.
https://cdn.discordapp.com/attachments/831589248239009832/1076882958721490954/unsplit_creepy_castle_back_door.s3m
(It's discord attachment link because github doesn't support s3m format)

For example, the lead melody (channel 6)
is slightly late for the 0:31 ~ 0:32 on the gba playback video,
but it matches 0:09 ~ 0:10 on the openmpt playback video.

GBA playback

combined_maxmod.mp4

OpenMPT playback (trimmed for the noticeable part, matches from 0:22 on the video above)

openmpt_playback.mp4

Ch3 vibrato sounds OK in mGBA, but it's broken on hardware

Issue

Ch3 vibrato sounds OK in mGBA, but it's broken on hardware.
The waveform is a simple Triangle, which looks like this:
image

Source files

basic - ch3 vibrato.s3m
basic - ch3 vibrato.gba

Playback

mGBA Playback (OK)

mGBA_playback.mp4

Hardware Playback (Broken)

WARNING!! HEAVILY BROKEN NOISE SOUND!!
https://github.com/AntonioND/gbt-player/assets/34793045/daed84fd-3deb-4ee5-a8ee-72b64f185cbe

I tried this on 3 different GBAs, but they all have this broken noises.

Request: play sound effect example

It would be nice to have a proper example of playing sound effects with gbt-player.

From gbadev Discord server:

you can do something like

    disable channel 4 from the player
    play sound effect
    wait until it's done
    enable channel 4

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.