release v0.6.3

This commit is contained in:
tildearrow 2024-05-01 15:16:55 -05:00
parent 0f0cccc2b6
commit f28dcec683
20 changed files with 76 additions and 51 deletions

View file

@ -16,7 +16,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_PROJECT_VERSION_MAJOR 0)
set(CMAKE_PROJECT_VERSION_MINOR 6)
set(CMAKE_PROJECT_VERSION_PATCH 2)
set(CMAKE_PROJECT_VERSION_PATCH 3)
set(BUILD_GUI_DEFAULT ON)
set(USE_SDL2_DEFAULT ON)
@ -166,6 +166,7 @@ if (WIN32)
# support Windows XP
if (SUPPORT_XP)
list(APPEND DEPENDENCIES_DEFINES "_WIN32_WINNT=0x0501")
list(APPEND DEPENDENCIES_DEFINES "SUPPORT_XP")
endif()
endif()

View file

@ -15,8 +15,8 @@ android {
}
minSdkVersion 21
targetSdkVersion 26
versionCode 197
versionName "0.6.2"
versionCode 201
versionName "0.6.3"
externalNativeBuild {
cmake {
arguments "-DANDROID_APP_PLATFORM=android-21", "-DANDROID_STL=c++_static", "-DWARNINGS_ARE_ERRORS=ON"

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.tildearrow.furnace"
android:versionCode="192"
android:versionName="0.6.2"
android:versionCode="201"
android:versionName="0.6.3"
android:installLocation="auto">
<!-- OpenGL ES 2.0 -->

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -6,7 +6,7 @@ when copying pattern data from Furnace, it's stored in the clipboard as plain te
org.tildearrow.furnace - Pattern Data (144)
```
this top line of text is always the same except for the number in parentheses, which is the internal build number. for example, 0.6.2 is `197`.
this top line of text is always the same except for the number in parentheses, which is the internal build number. for example, 0.6.3 is `201`.
the second line is a number between 0 and 18 (decimal) which indicates which column the clip starts from.
- `0`: note.

View file

@ -32,6 +32,7 @@ these fields are 0 in format versions prior to 100 (0.6pre1).
the format versions are:
- 201: Furnace 0.6.3
- 197: Furnace 0.6.2
- 192: Furnace 0.6.1
- 181: Furnace 0.6

View file

@ -15,17 +15,17 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>0.6.2</string>
<string>0.6.3</string>
<key>CFBundleName</key>
<string>Furnace</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.6.2</string>
<string>0.6.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.6.2</string>
<string>0.6.3</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>

View file

@ -325,7 +325,7 @@ if __name__ == "__main__":
<h1>Furnace<br/>User Manual</h1>
</div>
<div>
<i>for version 0.6.2</i>
<i>for version 0.6.3</i>
</div>
</section>
<section id="authors">
@ -348,7 +348,7 @@ if __name__ == "__main__":
<p>this documentation is under the <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 Unported</a> license.</p>
<p>you may reproduce, modify and/or distribute this documentation provided this copyright notice (including license and attribution) is present and any necessary disclaimers whether modifications have been made.</p>
<p>this documentation is provided as-is and without warranty of any kind.</p>
<p>this manual is written for version 0.6.2 of Furnace.<br/>it may not necessarily apply to previous or future versions.</p>
<p>this manual is written for version 0.6.3 of Furnace.<br/>it may not necessarily apply to previous or future versions.</p>
</section>
<section id="index">
%s

View file

@ -18,7 +18,7 @@ if you find issues (e.g. bugs or annoyances), report them. links below.
- discussion: https://github.com/tildearrow/furnace/discussions
- Furnace on Discord: https://discord.gg/EfrwT2wq7z
- Furnace on Revolt: https://rvlt.gg/GRPS6tmc
- online manual: https://tildearrow.org/furnace/doc/v0.6.2/
- online manual: https://tildearrow.org/furnace/doc/v0.6.3/
# notes

View file

@ -28,7 +28,7 @@ if you find issues (e.g. bugs or annoyances), report them. links below.
- discussion: https://github.com/tildearrow/furnace/discussions
- Furnace on Discord: https://discord.gg/EfrwT2wq7z
- Furnace on Revolt: https://rvlt.gg/GRPS6tmc
- online manual: https://tildearrow.org/furnace/doc/v0.6.2/
- online manual: https://tildearrow.org/furnace/doc/v0.6.3/
# notes

View file

@ -18,7 +18,7 @@ if you find issues (e.g. bugs or annoyances), report them. links below.
- discussion: https://github.com/tildearrow/furnace/discussions
- Furnace on Discord: https://discord.gg/EfrwT2wq7z
- Furnace on Revolt: https://rvlt.gg/GRPS6tmc
- online manual: https://tildearrow.org/furnace/doc/v0.6.2/
- online manual: https://tildearrow.org/furnace/doc/v0.6.3/
# notes

View file

@ -52,10 +52,10 @@ class DivWorkPool;
#define EXTERN_BUSY_BEGIN_SOFT e->softLocked=true; e->isBusy.lock();
#define EXTERN_BUSY_END e->isBusy.unlock(); e->softLocked=false;
#define DIV_UNSTABLE
//#define DIV_UNSTABLE
#define DIV_VERSION "dev200"
#define DIV_ENGINE_VERSION 200
#define DIV_VERSION "0.6.3"
#define DIV_ENGINE_VERSION 201
// for imports
#define DIV_VERSION_MOD 0xff01
#define DIV_VERSION_FC 0xff02

View file

@ -157,6 +157,7 @@ const char* aboutLine[]={
"scooblee",
"sheffield^2",
"sillygoose",
"Slightly Large NC",
"smaybius",
"SnugglyBun",
"Spinning Square Waves",

View file

@ -6966,19 +6966,18 @@ bool FurnaceGUI::init() {
logV("window size: %dx%d",scrW,scrH);
if (!initRender()) {
if (settings.renderBackend!="SDL") {
settings.renderBackend="SDL";
e->setConf("renderBackend","SDL");
if (settings.renderBackend!="Software") {
settings.renderBackend="Software";
e->setConf("renderBackend","Software");
e->saveConf();
lastError=fmt::sprintf("could not init renderer!\r\nfalling back to software renderer. please restart Furnace.");
} else if (settings.renderBackend=="SDL") {
lastError=fmt::sprintf("could not init renderer! %s\r\nfalling back to software renderer. please restart Furnace.",SDL_GetError());
settings.renderBackend="Software";
e->setConf("renderBackend","Software");
e->saveConf();
lastError=fmt::sprintf("could not init renderer!\r\nthe render backend has been set to a safe value. please restart Furnace.");
} else {
lastError=fmt::sprintf("could not init renderer! %s",SDL_GetError());
if (!settings.renderDriver.empty()) {
settings.renderDriver="";
e->setConf("renderDriver","");
e->saveConf();
lastError+=fmt::sprintf("\r\nthe render driver has been set to a safe value. please restart Furnace.");
}
lastError=fmt::sprintf("could not init renderer!");
}
return false;
}
@ -7068,19 +7067,18 @@ bool FurnaceGUI::init() {
logD("starting render backend...");
if (!rend->init(sdlWin,settings.vsync)) {
logE("it failed...");
if (settings.renderBackend!="SDL") {
settings.renderBackend="SDL";
e->setConf("renderBackend","SDL");
if (settings.renderBackend!="Software") {
settings.renderBackend="Software";
e->setConf("renderBackend","Software");
e->saveConf();
lastError=fmt::sprintf("could not init renderer!\r\nfalling back to software renderer. please restart Furnace.");
} else if (settings.renderBackend=="SDL") {
lastError=fmt::sprintf("could not init renderer! %s\r\nfalling back to software renderer. please restart Furnace.",SDL_GetError());
settings.renderBackend="Software";
e->setConf("renderBackend","Software");
e->saveConf();
lastError=fmt::sprintf("could not init renderer!\r\nthe render backend has been set to a safe value. please restart Furnace.");
} else {
lastError=fmt::sprintf("could not init renderer! %s",SDL_GetError());
if (!settings.renderDriver.empty()) {
settings.renderDriver="";
e->setConf("renderDriver","");
e->saveConf();
lastError+=fmt::sprintf("\r\nthe render driver has been set to a safe value. please restart Furnace.");
}
lastError=fmt::sprintf("could not init renderer!");
}
return false;
}

View file

@ -117,12 +117,22 @@ enum FurnaceGUIRenderBackend {
#define GUI_HEIGHT_DEFAULT 600
#define GUI_MAIN_FONT_DEFAULT 3
#define GUI_PAT_FONT_DEFAULT 3
#define GUI_FONT_SIZE_DEFAULT 13
#define GUI_ICON_SIZE_DEFAULT 12
#define GUI_OVERSAMPLE_DEFAULT 1
#define GUI_FONT_ANTIALIAS_DEFAULT 0
#define GUI_FONT_HINTING_DEFAULT 1
#define GUI_DECORATIONS_DEFAULT 0
#else
#define GUI_WIDTH_DEFAULT 1280
#define GUI_HEIGHT_DEFAULT 800
#define GUI_MAIN_FONT_DEFAULT 0
#define GUI_PAT_FONT_DEFAULT 0
#define GUI_FONT_SIZE_DEFAULT 18
#define GUI_ICON_SIZE_DEFAULT 16
#define GUI_OVERSAMPLE_DEFAULT 2
#define GUI_FONT_ANTIALIAS_DEFAULT 1
#define GUI_FONT_HINTING_DEFAULT 0
#define GUI_DECORATIONS_DEFAULT 1
#endif
@ -1905,10 +1915,10 @@ class FurnaceGUI {
Settings():
settingsChanged(false),
mainFontSize(18),
patFontSize(18),
mainFontSize(GUI_FONT_SIZE_DEFAULT),
patFontSize(GUI_FONT_SIZE_DEFAULT),
headFontSize(27),
iconSize(16),
iconSize(GUI_ICON_SIZE_DEFAULT),
audioEngine(DIV_AUDIO_SDL),
audioQuality(0),
audioHiPass(1),
@ -2115,7 +2125,7 @@ class FurnaceGUI {
fontBitmap(0),
fontAutoHint(1),
fontAntiAlias(1),
fontOversample(2),
fontOversample(GUI_OVERSAMPLE_DEFAULT),
selectAssetOnLoad(1),
basicColors(1),
playbackTime(1),
@ -2150,7 +2160,11 @@ class FurnaceGUI {
bool introPlayed;
bool protoWelcome;
Tutorial():
#ifdef SUPPORT_XP
introPlayed(true),
#else
introPlayed(false),
#endif
protoWelcome(false) {
}
} tutorial;

View file

@ -44,7 +44,7 @@
#endif
#ifdef HAVE_FREETYPE
#define FONT_BACKEND_DEFAULT 0
#define FONT_BACKEND_DEFAULT 1
#else
#define FONT_BACKEND_DEFAULT 0
#endif
@ -4256,10 +4256,10 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
}
if (groups&GUI_SETTINGS_FONT) {
settings.mainFontSize=conf.getInt("mainFontSize",18);
settings.mainFontSize=conf.getInt("mainFontSize",GUI_FONT_SIZE_DEFAULT);
settings.headFontSize=conf.getInt("headFontSize",27);
settings.patFontSize=conf.getInt("patFontSize",18);
settings.iconSize=conf.getInt("iconSize",16);
settings.patFontSize=conf.getInt("patFontSize",GUI_FONT_SIZE_DEFAULT);
settings.iconSize=conf.getInt("iconSize",GUI_ICON_SIZE_DEFAULT);
settings.mainFont=conf.getInt("mainFont",GUI_MAIN_FONT_DEFAULT);
settings.headFont=conf.getInt("headFont",0);
@ -4275,11 +4275,11 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.loadFallback=conf.getInt("loadFallback",1);
settings.fontBackend=conf.getInt("fontBackend",FONT_BACKEND_DEFAULT);
settings.fontHinting=conf.getInt("fontHinting",0);
settings.fontHinting=conf.getInt("fontHinting",GUI_FONT_HINTING_DEFAULT);
settings.fontBitmap=conf.getInt("fontBitmap",0);
settings.fontAutoHint=conf.getInt("fontAutoHint",1);
settings.fontAntiAlias=conf.getInt("fontAntiAlias",1);
settings.fontOversample=conf.getInt("fontOversample",2);
settings.fontAntiAlias=conf.getInt("fontAntiAlias",GUI_FONT_ANTIALIAS_DEFAULT);
settings.fontOversample=conf.getInt("fontOversample",GUI_OVERSAMPLE_DEFAULT);
}
if (groups&GUI_SETTINGS_APPEARANCE) {

View file

@ -497,7 +497,11 @@ static const char* cvText[]={
};
void FurnaceGUI::syncTutorial() {
#ifdef SUPPORT_XP
tutorial.introPlayed=e->getConfBool("tutIntroPlayed",true);
#else
tutorial.introPlayed=e->getConfBool("tutIntroPlayed",false);
#endif
tutorial.protoWelcome=e->getConfBool("tutProtoWelcome2",false);
}

View file

@ -42,6 +42,12 @@ typedef HRESULT (WINAPI *SPDA)(PROCESS_DPI_AWARENESS);
struct sigaction termsa;
#endif
#ifdef SUPPORT_XP
#define TUT_INTRO_PLAYED true
#else
#define TUT_INTRO_PLAYED false
#endif
#include "cli/cli.h"
#ifdef HAVE_GUI
@ -582,7 +588,7 @@ int main(int argc, char** argv) {
e.setAudio(DIV_AUDIO_DUMMY);
}
if (!fileName.empty() && ((!e.getConfBool("tutIntroPlayed",false)) || e.getConfInt("alwaysPlayIntro",0)!=3 || consoleMode || benchMode || infoMode || outName!="" || vgmOutName!="" || cmdOutName!="")) {
if (!fileName.empty() && ((!e.getConfBool("tutIntroPlayed",TUT_INTRO_PLAYED)) || e.getConfInt("alwaysPlayIntro",0)!=3 || consoleMode || benchMode || infoMode || outName!="" || vgmOutName!="" || cmdOutName!="")) {
logI("loading module...");
FILE* f=ps_fopen(fileName.c_str(),"rb");
if (f==NULL) {