furnace/extern/vgsound_emu-modified
2023-02-04 17:22:16 -05:00
..
vgsound_emu/src BubSys: optimize 2023-02-04 17:22:16 -05:00
.clang-format Take 2 2022-09-17 00:16:20 +09:00
.gitignore Take 2 2022-09-17 00:16:20 +09:00
CHANGELOG.md Sync vgsound_emu with master 2022-10-22 16:28:37 +09:00
CMakeLists.txt Revert "Temporarily revert "Sync vgsound_emu with master"" 2022-10-22 10:10:02 +09:00
LICENSE Take 2 2022-09-17 00:16:20 +09:00
MODIFIED.md Modifier disclaimer 2022-09-17 12:36:36 +09:00
README.md Sync this 2022-10-20 11:46:04 +09:00

vgsound_emu V2 (modified)

This is a C++ library of video game sound chip emulation cores. useful for emulators, chiptune trackers, or players.

This is a modified version of vgsound_emu, tailored for Furnace.

Important

License is now changed to zlib license in vgsound_emu V2, now you must notify your all modifications.

but vgsound_emu V1 (pre-V2) is still exists, and it's still distributed under BSD-3-Clause license.(details)

V2 revision changes

formatting codes with clang-format, Encapsulation for Maintenance, Fix GCC 12, Change license to zlib license for notify modifications in derived works from this cores.

Changelog

See here.

License

This software is distributed under zlib License, unlike vgsound_emu V1(standard BSD-3-Clause license(details)). You must notify your modifications at all files you have modified!

See here for details.

Folders

  • vgsound_emu: base folder
    • src: source codes for emulation cores
      • core: core files used in most of emulation cores
        • vox: Dialogic ADPCM core
      • es550x: Ensoniq ES5504, ES5505, ES5506 PCM sound chip families, 25/32 voices with 16/4 stereo/6 stereo output channels
      • k005289: Konami K005289, 2 timers
      • k007232: Konami K007232, 2 PCM channels
      • k053260: Konami K053260, 4 PCM or ADPCM channels with CPU to CPU communication feature
      • msm6295: OKI MSM6295, 4 ADPCM channels
      • n163: Namco 163, NES Mapper with up to 8 Wavetable channels
      • scc: Konami SCC, MSX Mappers with 5 Wavetable channels
      • vrcvi: Konami VRC VI, NES Mapper with 2 Pulse channels and 1 Sawtooth channel
      • x1_010: Seta/Allumer X1-010, 16 Wavetable/PCM channels
      • template: Template for sound emulation core

Build instruction

dependencies

  • C++11 (or later)
  • CMake (3.1 or later is recommended)
  • git (for source repository management)
  • MSVC or GCC or Clang (for compile)

Clone repository

type the following on a terminal/console/shell/whatever:

git clone https://gitlab.com/cam900/vgsound_emu.git
cd vgsound_emu

Compile with CMake

MSVC

type the following on a developer tools command prompt:

mkdir build
cd build
cmake ..
msbuild ALL_BUILD.vcxproj

MinGW, GCC, Clang with MakeFile

type the following on a terminal/console/shell/whatever:

mkdir build
cd build
cmake ..
make

CMake options

To add an CMake option from the command line: cmake -D<Insert option name here>=<Value> .. You can add multiple option with CMake.

Available options

Options Available Value Default Descriptions
VGSOUND_EMU_ES5504 ON/OFF ON Use ES5504 core
VGSOUND_EMU_ES5505 ON/OFF ON Use ES5505 core
VGSOUND_EMU_ES5506 ON/OFF ON Use ES5506 core
VGSOUND_EMU_K005289 ON/OFF ON Use K005289 core
VGSOUND_EMU_K007232 ON/OFF ON Use K007232 core
VGSOUND_EMU_K053260 ON/OFF ON Use K053260 core
VGSOUND_EMU_MSM6295 ON/OFF ON Use MSM6295 core
VGSOUND_EMU_NAMCO_163 ON/OFF ON Use Namco 163 core
VGSOUND_EMU_SCC ON/OFF ON Use SCC core
VGSOUND_EMU_VRCVI ON/OFF ON Use VRC VI core
VGSOUND_EMU_X1_010 ON/OFF ON Use X1-010 core

Copy this repository as submodule first, type the following on a terminal/console/shell/whatever:

git submodule add https://gitlab.com/cam900/vgsound_emu.git <Insert submodule path here>

Then, Add following options at your CMakeLists.txt file.

example:

add_subdirectory(<Insert submodule path here> [EXCLUDE_FROM_ALL])
...
target_include_directories(<Insert your project name here> SYSTEM PRIVATE <Insert submodule path here>)
target_link_libraries(<Insert your project name here> PRIVATE vgsound_emu)

Contributors