/pmdmini

Professional Music Driver (PMD) format player using Simple DirectMedia Layer (SDL) version 2.0.x

Primary LanguageC++GNU General Public License v2.0GPL-2.0

pmdmini

Professional Music Driver (PMD) format player using Simple DirectMedia Layer (SDL) version 2.x .

This is actually a BouKiCHi project (https://github.com/BouKiCHi), but since I cannot find his repository anymore, I would like to share here. It'd begun as pmdxmms - PMD input plugin for XMMS - by AGAWA Koji, leveraging PMD for Windows by C60, M88 and FM sound engine by cisc, PPZ8 PCM driver by Ukky.

In C60 home site, a new PMDWin Ver.0.52, updated 2023/03/04, was released, here's a direct link named DownLoad(VS2019) : PMDWinS052_VS2019.zip, this version uses Aaron Giles's ymfm sound engine, I synchronized/accepted C60 code changes in this repository and refreshed source code. An important parameter when using Giles's ymfm is re-sampling points number, that is #define NUMOFINTERPOLATION in opnaw.h include file.

Professional Music Driver (PMD) is a music driver developed by M.Kajihara which utilizes MML (Music Macro Language) to create music files for most japanese computers of the 80's and early 90's. PMD can be used to make music for the PC-98, PC-88, X68000, and FM Towns computers. Thoughts of PMD by Kajihara

How to use pmdplay player

Call pmdplay with no arguments for a quick list of examples about how play a .M, .M2, .MZ module.

In folder ${HOME}/.pmdplay/ on Linux o.s. or %USERPROFILE%\.pmdplay\ on Windows o.s. You shall expand OPNA Rhythm Sound Source archive or even better NEC PC-8801[BIOS] YM2608 (OPNA) rhythm samples (Yamaha)[BIOS] YM2608 (OPNA) rhythm samples [ROM] [Set 2].7z archive and plus put ym2608_adpcm_rom.bin taken, for example, here .

How to build pmdplay player

The following steps build pmdplay on Ubuntu/Debian/GNU/LINUX o.s. box with SDL2 and cmake.

$ git clone https://github.com/gzaffin/pmdmini.git
$ cd pmdmini
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=Release ..
$ make pmdplay

The following steps build pmdplay.exe on a Windows o.s. box with MSVC, vcpkg, SDL2 installed with vcpkg. Both MSVC and vcpkg have git, let's suppose git is in path environment for Windows command prompt console or Windows PowerShell console. Choosing Windows command prompt console.

C:\>git clone https://github.com/gzaffin/pmdmini.git
C:\>cd pmdmini
C:\pmdmini>mkdir build
C:\pmdmini>cd build
C:\pmdmini\build>cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 -D CMAKE_TOOLCHAIN_FILE=C:/Users/gzaff/Devs/vcpkg/scripts/buildsystems/vcpkg.cmake ..
C:\pmdmini\build>cmake --build . --config Release --target pmdplay

For the case that Visual Studio can be used

C:\>git clone https://github.com/gzaffin/pmdmini.git
C:\>cd pmdmini
C:\pmdmini>mkdir build
C:\pmdmini>cd build
C:\pmdmini\build>cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 -D CMAKE_TOOLCHAIN_FILE=C:/Users/gzaff/Devs/vcpkg/scripts/buildsystems/vcpkg.cmake ..

Now Microsoft Visual Studio can be started and pmdmini solution can be built and debugged.

Recap of required vcpkg variable definitions:

CMAKE_TOOLCHAIN_FILE: full PATH of vcpkg.cmake e.g. C:/Users/gzaff/Devs/vcpkg/scripts/buildsystems/vcpkg.cmake

Links

Reference information pages about how to install and how to use Vcpkg

GitHub Microsoft vcpkg

vcpkg: A C++ package manager for Windows, Linux and MacOS

Eric Mittelette's blog

License

This code is available open source under the terms of the GNU General Public License version 2.