GithubHelp home page GithubHelp logo

fivefishstudios / ym2151_vgm_stm32 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aidanhockey5/ym2151_vgm_stm32

0.0 1.0 0.0 12.84 MB

A hardware arcade video game music player based on the STM32 platform driving a YM2151

License: GNU Affero General Public License v3.0

C++ 89.93% C 10.07%

ym2151_vgm_stm32's Introduction

YM2151 Arcade Classic

http://www.aidanlawrence.com/ym2151-arcade-classic-adlib-mini/

See this project in action here: https://youtu.be/VlT8aX9DRZw

This project is a hardware Video Game Music (VGM) player that uses a genuine YM2151 FM synthesizer chip. This project is driven by an STM32 "Blue Pill" board, chosen for it's ample speed, I/O, and best of all, price!

Included in this repository is the source code for the project, all of the schematic files, a Bill of Materials, and a completed Ki-CAD printed circuitboard /w Gerber files. Feel free to produce your own board!

PCB

Information about the main sound chips and VGM

The YM2151 was a popular sound synthesizer for classic arcade systems as well as a few higher-end home computers in the late 80's and early 90's. This project synthesizes music from .VGM files in real time on genuine hardware. There is no emulation here.

VGM stands for Video Game Music, and it is a 44.1KHz logging format that stores real soundchip register information. My player will parse these files and send the data to the appropriate chips. You can learn more about the VGM file format here: http://www.smspower.org/Music/VGMFileFormat

http://www.smspower.org/uploads/Music/vgmspec170.txt?sid=58da937e68300c059412b536d4db2ca0

SD Card Information

This project is built for full-sized SD cards, but you may use adapters to fit your desired card. You must format your SD card to Fat32 in order for this device to work correctly. Your SD card must only contain uncompressed .vgm files. VGZ FILES WILL NOT WORK! You may download .vgz files and use 7zip to extract the uncompressed file out of them. Vgm files on the SD card do not need to have the .vgm extension. As long as they contain valid, uncompressed vgm data, they will be read by the program regardless of their name. You can find VGM files by Googling "myGameName VGM," or by checking out sites like http://vgmrips.net/packs/

Control Over Serial

You can use a serial connection to control playback features. The commands are as follows:

Command Result
+ Next Track
- Previous Track
* Random Track
/ Toggle Shuffle Mode
. Toggle Song Looping
r: Request song

A song request is formatted as follows: r:mySongFile.vgm Once a song request is sent through the serial console, an attempt will be made to open that song file. The file must exist on the SD card, and spelling/capitalization must be correct. Need an easy-to-use serial console? I've made one here.

Schematic

Schematic

PDF

Bill Of Materials (BOM)

KiCad

The schematic and PCB of this project was made in KiCad Version 4.0.7

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.