mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 22:48:55 +02:00
198 lines
5.8 KiB
Bash
198 lines
5.8 KiB
Bash
SUMMARY="A multi-system chiptune tracker compatible with DefleMask modules"
|
|
DESCRIPTION="Features
|
|
|
|
Over 50 sound chips - and counting:
|
|
Yamaha FM chips:
|
|
- YM2151 (OPM)
|
|
- YM2203 (OPN)
|
|
- YM2413 (OPLL)
|
|
- YM2414 (OPZ) used in Yamaha TX81Z
|
|
- YM2608 (OPNA) used in PC-98
|
|
- YM2610 (OPNB) used in Neo Geo
|
|
- YM2610B (OPNB2)
|
|
- YM2612 (OPN2) used in Sega Genesis and FM Towns
|
|
- YM3526 (OPL) used in C64 Sound Expander
|
|
- YM3812 (OPL2)
|
|
- YMF262 (OPL3) with full 4-op support!
|
|
- Y8950 (OPL with ADPCM)
|
|
square wave chips:
|
|
- AY-3-8910/YM2149(F) used in several computers and game consoles
|
|
- Commodore VIC used in the VIC-20
|
|
- Microchip AY8930
|
|
- TI SN76489 used in Sega Master System and BBC Micro
|
|
- PC Speaker
|
|
- Philips SAA1099 used in SAM Coupé
|
|
sample chips:
|
|
- Amiga
|
|
- SegaPCM - all 16 channels
|
|
- Capcom QSound
|
|
- Yamaha YMZ280B (PCMD8)
|
|
- Ricoh RF5C68 used in Sega CD and FM Towns
|
|
- OKI MSM6258 and MSM6295
|
|
wavetable chips:
|
|
- HuC6280 used in PC Engine
|
|
- Konami Bubble System WSG
|
|
- Konami SCC/SCC+
|
|
- Namco arcade chips (WSG/C15/C30)
|
|
- WonderSwan
|
|
- Seta/Allumer X1-010
|
|
NES (Ricoh 2A03/2A07), with additional expansion sound support:
|
|
- Konami VRC6
|
|
- Konami VRC7
|
|
- MMC5
|
|
- Famicom Disk System
|
|
- Sunsoft 5B
|
|
- Namco 163
|
|
- Family Noraebang (OPLL)
|
|
SID (6581/8580) used in Commodore 64
|
|
Mikey used in Atari Lynx
|
|
ZX Spectrum beeper (SFX-like engine)
|
|
TIA used in Atari 2600
|
|
Game Boy
|
|
modern/fantasy:
|
|
- Commander X16 VERA
|
|
- tildearrow Sound Unit
|
|
|
|
Mix and match sound chips!
|
|
- over 200 ready to use presets from computers, game consoles and arcade boards...
|
|
- ...or create your own - up to 32 of them or a total of 128 channels!
|
|
|
|
DefleMask compatibility
|
|
- loads .dmf modules from all versions (beta 1 to 1.1.3)
|
|
- saves .dmf modules - both modern and legacy
|
|
- Furnace doubles as a module downgrader
|
|
- loads .dmp instruments and .dmw wavetables as well
|
|
- clean-room design (guesswork and ABX tests only, no decompilation involved)
|
|
- bug/quirk implementation for increased playback accuracy through compatibility flags
|
|
|
|
VGM export
|
|
|
|
Modular layout that you may adapt to your needs
|
|
|
|
Audio file export - entire song, per system or per channel
|
|
|
|
Quality emulation cores (Nuked, MAME, SameBoy, Mednafen PCE, NSFplay, puNES, reSID, Stella, SAASound, vgsound_emu and ymfm)
|
|
|
|
Wavetable synthesizer
|
|
- available on wavetable chips
|
|
- create complex sounds with ease - provide up to two wavetables, select and effect and let go!
|
|
|
|
MIDI input support
|
|
|
|
Fractal Sound support!
|
|
- the game-ready Sega Genesis/Mega Drive sound driver!
|
|
- compose your songs in Furnace using the Fractal Sound presets and then use them in your games with Fractal!
|
|
|
|
Additional features:
|
|
- FM macros!
|
|
- negative octaves
|
|
- arbitrary pitch samples
|
|
- sample loop points
|
|
- SSG envelopes and ADPCM-B in Neo Geo
|
|
- full duty/cutoff range in C64
|
|
- ability to change tempo mid-song
|
|
- multiple sub-songs in a module
|
|
- per-channel oscilloscope with waveform centering
|
|
- built-in sample editor
|
|
- chip mixing settings
|
|
- built-in visualizer in pattern view
|
|
|
|
Open-source under GPLv2 or later."
|
|
HOMEPAGE="https://github.com/tildearrow/furnace"
|
|
COPYRIGHT="2021-2022 tildearrow and contributors"
|
|
LICENSE="GNU GPL v2"
|
|
REVISION="1"
|
|
srcGitRev="173e9b0df9590536e25b3126c17663cd1b08ffe7"
|
|
SOURCE_URI="$HOMEPAGE/archive/$srcGitRev.tar.gz"
|
|
CHECKSUM_SHA256="bcc10f4b4f4e111557bb444d8434be4dfeccb066f34e3ab1abe1d4a2d9394f76"
|
|
SOURCE_DIR="furnace-$srcGitRev"
|
|
srcGitRev2="ef7a217154badc3b99978ac481b268c8aab67bd8"
|
|
SOURCE_URI_2="https://github.com/superctr/adpcm/archive/$srcGitRev2.tar.gz"
|
|
CHECKSUM_SHA256_2="46da29342d2968ff222ba00e07c646e038b76af2e6c86de037c653059a056251"
|
|
srcGitRev3="64704a443f8f6c1906ba26297092ea70fa1d45d7"
|
|
SOURCE_URI_3="https://github.com/nukeykt/Nuked-OPN2/archive/$srcGitRev3.tar.gz"
|
|
CHECKSUM_SHA256_3="109d461d811cb223bfd55ab41068882573e3886f798eeb27d09f4d3ecefe94f5"
|
|
ADDITIONAL_FILES="furnace.rdef.in"
|
|
|
|
ARCHITECTURES="?all !x86_gcc2"
|
|
SECONDARY_ARCHITECTURES="?x86"
|
|
|
|
PROVIDES="
|
|
furnace$secondaryArchSuffix = $portVersion
|
|
app:Furnace = $portVersion
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libfftw3$secondaryArchSuffix
|
|
lib:libfmt$secondaryArchSuffix
|
|
lib:librtmidi$secondaryArchSuffix
|
|
lib:libSDL2_2.0$secondaryArchSuffix
|
|
lib:libsndfile$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libfftw3$secondaryArchSuffix
|
|
devel:libfmt$secondaryArchSuffix
|
|
devel:librtmidi$secondaryArchSuffix
|
|
devel:libSDL2_2.0$secondaryArchSuffix
|
|
devel:libsndfile$secondaryArchSuffix
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:cmake
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:pkg_config$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
cp -rf $sourceDir2/adpcm-$srcGitRev2/* $sourceDir/extern/adpcm/
|
|
cp -rf $sourceDir3/Nuked-OPN2-$srcGitRev3/* $sourceDir/extern/Nuked-OPN2/
|
|
|
|
cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release \
|
|
$cmakeDirArgs \
|
|
-DCMAKE_INSTALL_BINDIR=$appsDir \
|
|
-DSYSTEM_LIBSNDFILE=ON \
|
|
-DSYSTEM_FFTW=ON \
|
|
-DSYSTEM_FMT=ON \
|
|
-DSYSTEM_RTMIDI=ON \
|
|
-DSYSTEM_SDL2=ON \
|
|
-DSYSTEM_ZLIB=ON
|
|
|
|
make -C build $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
make -C build install
|
|
|
|
mv $appsDir/furnace $appsDir/Furnace
|
|
rm -rf $dataDir/{applications,icons,licenses,metainfo}
|
|
|
|
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
|
|
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
|
|
local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`"
|
|
local APP_NAME="Furnace"
|
|
local LONG_INFO="$SUMMARY"
|
|
local APP_SIGNATURE="application/x-vnd.furnace"
|
|
sed \
|
|
-e "s|@MAJOR@|$MAJOR|" \
|
|
-e "s|@MIDDLE@|$MIDDLE|" \
|
|
-e "s|@MINOR@|$MINOR|" \
|
|
-e "s|@LONG_INFO@|$LONG_INFO|" \
|
|
-e "s|@APP_NAME@|$APP_NAME|" \
|
|
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
|
|
$portDir/additional-files/furnace.rdef.in > furnace.rdef
|
|
addResourcesToBinaries furnace.rdef $appsDir/Furnace
|
|
|
|
addAppDeskbarSymlink $appsDir/Furnace
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
make -C build check
|
|
}
|