diff --git a/README.md b/README.md index 37371239..6ae675de 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,9 @@ the biggest multi-system chiptune tracker ever made! --- ## downloads -check out the [Releases](https://github.com/tildearrow/furnace/releases) page. available for Windows, macOS and Linux (AppImage). +check out the [Releases](https://github.com/tildearrow/furnace/releases) page. available for Windows, macOS and Linux. + +for other operating systems, you may [build the source](#developer-info). [see here](https://nightly.link/tildearrow/furnace/workflows/build/master) for the latest unstable build. @@ -79,6 +81,7 @@ check out the [Releases](https://github.com/tildearrow/furnace/releases) page. a - modern/fantasy: - Commander X16 VERA - tildearrow Sound Unit + - Generic PCM DAC - 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! @@ -90,6 +93,7 @@ check out the [Releases](https://github.com/tildearrow/furnace/releases) page. a - clean-room design (guesswork and ABX tests only, no decompilation involved) - some bug/quirk implementation for increased playback accuracy through compatibility flags - VGM export +- ZSM export for Commander X16 - modular layout that you may adapt to your needs - audio file export - entire song, per chip or per channel - quality emulation cores (Nuked, MAME, SameBoy, Mednafen PCE, NSFplay, puNES, reSID, Stella, SAASound, vgsound_emu and ymfm) @@ -120,11 +124,11 @@ check out the [Releases](https://github.com/tildearrow/furnace/releases) page. a # quick references - **discussion**: see the [Discussions](https://github.com/tildearrow/furnace/discussions) section, the [official Revolt](https://rvlt.gg/GRPS6tmc) or the [official Discord server](https://discord.gg/EfrwT2wq7z). -- **help**: check out the [documentation](doc/README.md). it's incomplete though. +- **help**: check out the [documentation](doc/README.md). it's about 80% complete. ## packages -[![Packaging status](https://repology.org/badge/tiny-repos/furnace.svg)](https://repology.org/project/furnace/versions) +[![Packaging status](https://repology.org/badge/vertical-allrepos/furnace.svg)](https://repology.org/project/furnace/versions) some people have provided packages for Unix/Unix-like distributions. here's a list. @@ -156,6 +160,7 @@ otherwise, you may also need the following: - libx11 - libasound - libGL +- any other libraries which may be used by SDL some Linux distributions (e.g. Ubuntu or openSUSE) will require you to install the `-dev` versions of these. @@ -255,6 +260,17 @@ Available options: | `WITH_INSTRUMENTS` | `ON` | Install demo instruments on `make install` | | `WITH_WAVETABLES` | `ON` | Install wavetables on `make install` | +## CMake Error + +if it says something about a missing subdirectory in `extern`, then either: + +1. you didn't set up submodules, or +2. you downloaded the source as a .zip or .tar.gz. don't do this. + +if 1, you may run `git submodule update --init --recursive`. this will initialize submodules. + +if 2, clone this repo. + ## console usage (note: if on Windows, type `furnace.exe` instead, or `Debug\furnace.exe` on MSVC) @@ -289,7 +305,7 @@ this is due to Apple's application signing policy. a workaround is to right clic > it says "Furnace" is damaged and can't be opened! **as of Monterey, this workaround no longer works (especially on ARM).** yeah, Apple has decided to be strict on the matter. -if you happen to be on that version, use this workaround instead (on a Terminal): +if you happen to be on that version (or later), use this workaround instead (on a Terminal): ``` xattr -d com.apple.quarantine /path/to/Furnace.app @@ -301,7 +317,7 @@ you may need to log out and/or reboot after doing this. > where's the manual? -see [doc/](doc/README.md). it's kind of incomplete though. +it is in [doc/](doc/README.md). > is there a tutorial? diff --git a/TODO.md b/TODO.md index 20c54eb9..c190afd1 100644 --- a/TODO.md +++ b/TODO.md @@ -1,4 +1,4 @@ -# to-do for 0.6pre6 +# to-do for 0.6pre7 - tutorial? - ease-of-use improvements... ideas: diff --git a/android/app/build.gradle b/android/app/build.gradle index 3f3fc8bd..41d07937 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -15,8 +15,8 @@ android { } minSdkVersion 21 targetSdkVersion 26 - versionCode 158 - versionName "0.6pre5" + versionCode 161 + versionName "0.6pre6" externalNativeBuild { cmake { arguments "-DANDROID_APP_PLATFORM=android-21", "-DANDROID_STL=c++_static", "-DWARNINGS_ARE_ERRORS=ON" diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 3deb416b..b8bde5ce 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ diff --git a/extern/igfd/dirent/dirent.h b/extern/igfd/dirent/dirent.h index 35d948a6..7d5c8abe 100644 --- a/extern/igfd/dirent/dirent.h +++ b/extern/igfd/dirent/dirent.h @@ -524,7 +524,15 @@ _wreaddir_r( entry->d_off = 0; entry->d_reclen = sizeof (struct _wdirent); +#ifdef _WIN64 entry->dwin_size = ((size_t)datap->nFileSizeHigh<<32) | datap->nFileSizeLow; +#else + if (datap->nFileSizeHigh) { + entry->dwin_size = 0xffffffff; + } else { + entry->dwin_size = datap->nFileSizeLow; + } +#endif entry->dwin_mtime = datap->ftLastWriteTime; /* Set result address */ @@ -817,7 +825,15 @@ readdir_r( entry->d_off = 0; entry->d_reclen = sizeof (struct dirent); +#ifdef _WIN64 entry->dwin_size = ((size_t)datap->nFileSizeHigh<<32) | datap->nFileSizeLow; +#else + if (datap->nFileSizeHigh) { + entry->dwin_size = 0xffffffff; + } else { + entry->dwin_size = datap->nFileSizeLow; + } +#endif entry->dwin_mtime = datap->ftLastWriteTime; } else { diff --git a/papers/format.md b/papers/format.md index bf0b929e..2df15fcf 100644 --- a/papers/format.md +++ b/papers/format.md @@ -32,6 +32,8 @@ these fields are 0 in format versions prior to 100 (0.6pre1). the format versions are: +- 161: Furnace 0.6pre6 +- 160: Furnace dev160 - 159: Furnace dev159 - 158: Furnace 0.6pre5 - 157: Furnace dev157 diff --git a/res/Info.plist b/res/Info.plist index 026051de..651e0837 100644 --- a/res/Info.plist +++ b/res/Info.plist @@ -15,17 +15,17 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 0.6pre5 + 0.6pre6 CFBundleName Furnace CFBundlePackageType APPL CFBundleShortVersionString - 0.6pre5 + 0.6pre6 CFBundleSignature ???? CFBundleVersion - 0.6pre5 + 0.6pre6 NSHumanReadableCopyright NSHighResolutionCapable diff --git a/scripts/release-win32.sh b/scripts/release-win32.sh index e0c0eec6..fdd0b4c6 100755 --- a/scripts/release-win32.sh +++ b/scripts/release-win32.sh @@ -15,7 +15,7 @@ fi cd win32build # TODO: potential Arch-ism? -i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON .. || exit 1 +i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -Werror" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=ON -DWITH_RENDER_DX11=OFF .. || exit 1 make -j8 || exit 1 cd .. diff --git a/src/engine/engine.h b/src/engine/engine.h index e4b3e56a..2f282157 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -54,8 +54,8 @@ #define EXTERN_BUSY_BEGIN_SOFT e->softLocked=true; e->isBusy.lock(); #define EXTERN_BUSY_END e->isBusy.unlock(); e->softLocked=false; -#define DIV_VERSION "dev160" -#define DIV_ENGINE_VERSION 160 +#define DIV_VERSION "0.6pre6" +#define DIV_ENGINE_VERSION 161 // for imports #define DIV_VERSION_MOD 0xff01 #define DIV_VERSION_FC 0xff02