furnace, new recipe (#7069)

This commit is contained in:
Schrijvers Luc
2022-07-28 11:40:55 +02:00
committed by GitHub
parent f75dd168db
commit cbe7808c56
2 changed files with 212 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_BETA,
internal = 0,
short_info = "@APP_NAME@",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";

View File

@@ -0,0 +1,197 @@
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
}