Skip to content

Furnace v0.6pre7 (beta) - emergency render fix

Compare
Choose a tag to compare
@tildearrow tildearrow released this 09 Jul 08:59
· 3595 commits to master since this release

I can't believe it. I make another release and then suddenly critical issues that warrant a new release.

here's Furnace 0.6pre7, which fixes some severe issues:

  • if DirectX 11 or OpenGL failed to init, it wouldn't fall back to the good old SDL_Renderer. now it does.
  • setting the font size too big and/or running out of video memory would make Furnace unusable when using DirectX 11 or OpenGL. now it's fixed.

and some minor issues too:

  • manual updates
  • a ZSM export bug

following this is a copy of the pre6 release announcement.

old announcement

this release fixes a serious problem in the new config system that would render it useless and still allow for config reset to happen.

it shouldn't reset anymore.

there are a couple more improvements and many fixes as well. see below.

changelog

  • fix a major oversight in the new config system
    • there still was a chance that a corrupted config file would be loaded...
  • fix a major performance regression in audio playback
  • massive documentation updates - thanks to Electric Keet!
    • documentation is now in doc rather than papers/doc. this should make it easier to find.
  • ZSM export improvements
    • MooingLemur has implemented an unofficial but updated and backwards-compatible extension to this format, allowing VERA PCM!
    • additionally, EExx (external command) is now written during export, allowing you to use it for things like synchronizing with graphics.
  • new OpenGL and DirectX 11 render backends
    • prior to this change, Furnace used SDL Renderer for the UI
    • now Furnace will use DirectX 11 by default on Windows and OpenGL on Linux
    • you may see performance and reliability improvements
    • if it fails (e.g. because your card isn't compatible), it will fall back to the SDL Renderer backend
  • per-channel osc improvements:
    • fix for YM2612 variants
    • fix YM2612 DualPCM chan osc
    • fix YM2612 DAC chan osc
    • don't hide title bar
    • add ability to change amplitude
    • add customizable labels
    • fix osc not being clipped to boundaries
    • lots of volume balancing
  • built-in file picker improvements:
    • finally fix sorting
      • sometimes it would change sort orientation randomly
      • sometimes it would not sort at all
      • sort by name didn't work when set to descending
    • replace the "reset path" button with a "home" button
    • search bar has more room to breathe
    • fix files with non-ASCII characters being displayed as "unknown type" and not having size/date information
    • now you can press Escape to cancel and quit the file picker
  • add a "push entire channel when inserting/backspac'ing" settings
    • on by default
  • VGM export fixes:
    • fix loop trail still being added when loop option is off
    • fix NES DPCM not working
    • cap streams to 44100Hz since VGMPlay doesn't like higher frequencies
  • Wayland fixes:
    • fix scaling factor detection when full-screen is on
    • fix mouse input being totally wrong at times
  • POKEY changes:
    • fix E5xx effect when using non-linear pitch
    • add a new effect for enabling two-tone mode
  • sample editor improvements
    • buttons now re-arrange when there isn't enough space
    • warnings that will let you know when a sample is outside of a chip's specs
    • use rate instead of compat rate when saving sample as .wav
    • "Apply filter" now displays cutoff parameters as input boxes instead of sliders
  • add option to select a different SDL audio driver
    • use it if you experience problems when using the default (in the case of Windows, it is WASAPI).
  • C64 changes
    • the default core is now reSID again. sorry.
      • reSIDfp's CPU usage is too high to be the default, despite its unmatched accuracy
    • add a "key priority" system which prioritizes the last used channel's global parameters (filter and volume)
    • fix reSIDfp envelope reset being inconsistent
    • new dSID core featuring low CPU usage
    • improve start-up time when not using reSIDfp
  • tiny playback optimization when a chip is silent
  • colorize destructive operations
  • fix .dmf not saving if it was made with 1.1.8
  • fix force mono audio only playing the right channel
  • fix QuadTone being missing from the new song presets
  • fix wave synth ignoring wave macro on note retrigger when the macro had a single (or repeated) value
  • add option to prevent piano input
  • add option to allow saving patterns in old format
  • add option to disable preset selector on new song
  • add option to display memory usage (Statistics) in bytes rather than KB
  • add ability to duplicate sub-songs
  • fix possible division by zero in the UI
  • don't crash when SDL_Init fails (e.g. because you've built it incorrectly)
  • fix pattern editor focus when selecting instrument
  • improve start-up performance
  • add 8-bit dither option
  • fix one digit effect setting making effect 10xx glitch the pattern view
  • fix tremolo breaking when turned off
  • update Dear ImGui to 1.89 and SDL to 2.28
  • add option for late render clear
    • may improve latency in some setups
  • VERA: fix PCM volume macro
  • VERA: fix custom clock
  • WonderSwan: fix custom clock
  • Game Boy: fix custom clock
  • Game Boy: finally fix wave corruption
  • Game Boy: fix software envelopes not working under some circumstances
  • PC speaker: fix volume macro not taking effect on first tick
  • OPLL: fix volume macro when used on drums
  • YM2612: add forceIns heuristics
    • fixes annoyances when playing from another order with carrying channels
  • SegaPCM: the real memory limit is 2MB
  • SegaPCM: fix volume not being reset on instrument change without volume macro
  • fix asset names carrying over another asset when the current asset name was being edited and another was selected in the list
  • you can no longer game-end-glitch TAS this tracker
    • if the FPS is too low and the intro is enabled, there is a minimal possibility you could load the intro song by exiting as soon as the intro started
  • fix atari breakbeat demo song
  • MIDI output: don't spam logs on error
  • move delete sample button to the right in sample list to prevent accidental clicks
  • add patch number to OPLL patch list
  • fix visualizer breaking when scrolling horizontally and/or having hidden channels
  • new demo songs from Clingojam, SuperJet Spade, Hortus, niffuM, freq-mod, Yuzu4K, Xan, Waverider, TheDuccinator and Bernie

we've been in pre-release for one year

yeah, it's silly I know. even more so after considering the fact we've added lots of features during pre-release phase (something that shouldn't happen).

don't worry though. we eventually will make it to a full 0.6 release.
hopefully this year.

so why don't you tick that "Set as pre-release" option?

because it won't appear on top, and 0.5.x is obsolete.

that's ironic. aren't pre-releases supposed to be "non-production ready"?

you have a point there, but these pre-releases feel like full yet incomplete releases to the point I may declare them mostly stable and production ready.

yeah, we'll get out of "pre-release" soon.

note for Windows users

  • I have been getting reports that the 32-bit version doesn't work on Windows XP due to a missing GetTickCount64() function. if you happen to use XP, please tell me whether it works now.
  • otherwise, download the 64-bit version. you most likely don't need the 32-bit one.

note for macOS users

finally, macOS version! sorry for not including one in the pre5 release.

which one should I download?

  • Intel if you have an Intel-based Mac.
  • arm64 if you have an Apple M1/M2-based Mac.

Furnace is damaged

don't move it to the Trash.
open Terminal, and type this:

xattr -d com.apple.quarantine /path/to/Furnace.app

(replace /path/to/ with the path where Furnace.app is located)

you may need to reboot after doing this before launching Furnace.

note for Linux users

this is the second release not to be provided as an AppImage.
as I mentioned in the previous release, the format is redundant since Furnace already comes with every dependency (bar JACK which is optional) statically linked.
no more making it executable, or having to install FUSE. just extract and have fun.

thanks

  • the ones who contributed demo songs... for the demo songs
  • every bug reporter for reporting bugs
  • Electric Keet for a huge amount of documentation work
  • MooingLemur for ZSM improvements
  • Lunathir for finding the new config system bug
  • nicco1690, Lunathir and Electric Keet for DirectX 11 testing
  • BlastlessAnthony, YohananDiamond and Music Boi JBoy for spotting performance regression
  • you with a Mac for waiting

thanks II

  • Lunathir
  • Yuzu
  • freq-mod
  • NyaongI

for reporting these critical issues