Releases: freezy/dmd-extensions
v2.3.0
v2.2.2
v2.2.1
New
- Be more liberal with colorization file names: File name doesn't matter, just pick the most recent one.
- Dump files can now be played (and colored) with the
--file
command indmdext.exe
Fixed
- RGB24 support for browser stream (thanks @Westworld)
- Don't even try to initialize plugin if no path is set
- Colorization bug due to missing padding
- Colorization bug due to race conditions
- Rendering bug in ZeDMD
- Upscaled frames through browser stream.
- Crash when getting weird bit planes
- Crash when
altcolor
folder doesn't exist. - Crash on duplicated hashes in palette (fixes #400)
- Crash with some colorization (fixes #405)
- Crash when rendering bitmaps
v2.2.0
For full changelog, see BETA1 and BETA2, which are included in this release.
Below is only what has changed since BETA2.
Added
- Internal PAC support
Fixed
- Crash when colorizing without VNI
- Crash with PinDMD3
- The
--quit
parameter is now working properly (#383) - Make binary smaller by only including platform-specific dependencies
- Various bugs when de-duping frames
- Pass-through in plugin
- Frame format and frequency for Pinup Output
- Bug that would stop sending frames for single destinations
v2.2.0-BETA2
The second beta of 2.2.0 is considered feature-complete. Remaining changes will be focused on bug fixing.
New
- Added Serum's color rotation support to all RGB devices.
- Added a new destination that allows dumping frames to disk to be loaded into the colorization editors
- About page, when you right-click on the virtual DMD.
Fixes
- Crash when PinUP was active
- Crash for some Pinball FX LCD games
- Height of DMD style settings dialog is now dynamic and shouldn't be cut off anymore.
- Colorization plugin now gets frames at 60Hz again
- Native VNI colorizer properly supports HD frames
- Properly pass events to PinUP
Updates
- Update Serum to latest version
Refactoring
- Merge VNI colorizer classes and make it support both input formats
- Remove unused palette index
- Send colorization events through a generic interface
v2.2.0-BETA1
This is the first beta of v2.2.0. Internally, this is a major code update with over 10k lines of code changes, so I'd prefer to test this thoroughly before making it final.
The main feature of v2.2.0 is a plugin system that will allow third-party libraries to do frame colorizations. It's based on #347, but heavily refactored. Note that there is no plugin publicly available yet, so this beta should be focused on regression testing. Many thanks already to those who participate and report bugs!
The changes below are quite technical and describe how certain aspects of dmdext have changed.
New
- Support for a plugin system for colorizations
- When using
--use-ini
indmdext.exe
, it looks atDMDDEVICE_CONFIG
is no value is provided. - Add warning to custom dialog when tint is modified in a colored game where it cannot be applied.
Changes
- The way frames are passed through the render graph has changed. There is a more detailed description in #239, but the gist of it is that we now always pass frame objects instead of incoherent data objects. The frame objects contain their own business logic.
- Up-scaling is done uniformly done through the render graph. Frame dimensions and frame data always match, and it's up to the render graph to up-scale if the setting is enabled and the destinations support it.
- Frames are de-duped, meaning only frames that differ from the previous frame are processed. This leads to a massive improvement of garbage collection and thus, less micro stutter.
- Converters can now be re-used, meaning we don't need to create separate converters for separate input frame formats anymore.
- The render graph is now unit tested! This means we can more easily reproduce bugs, test assumptions, see code coverage, and generally debug much quicker.
ColoredFrame
now extendsDmdFrame
and uses the same data structure.- Removed
scaletohd
in favor ofscalermode
. If you keepscaletohd
in your configuration, it will work as before.
Bugfixes
- Frankenstein now works properly in TPA (thanks @lucky01)
- Bug when rendering Pinball FX's high-res DMDs through RGB24.
- Fix Police Force and Riverboat Gambler.
Todo before final release
- Add configurable ticker for converters
- Test (and probably fix) Pinup
v2.1.2
v2.1.1
v2.1
v2.0
There are two major additions, which made me bump the version to 2.0. As always, it can be downloaded here.
ZeDMD Support
First announced in December last year, ZeDMD is a new type of DMD based on the ESP32, and it's very low-cost to produce (around $70 in total).
It's got all the features you'd expect, like RGB support, and the device code is open source. You can't buy it anywhere yet, because it's a DIY project, but I'm sure there will be sellers soon.
Serum Support
Serum is a new file format created by @zedrummer, who also created ZeDMD. Check it out here.
It works quite differently than PIN2DMD colorizations, and it comes with a new editor. It has innovative features like animated color rotations, which give a surprisingly nice effect when used discreetly.
Serum has been developed in collaboration with several coloring authors, so while it's still young, it's a proven system. There is a full tutorial how to use it here.
Personally, I am really happy about Serum, because it's fully open source, allowing others to contribute, and doesn't come with licensing issues like PAC does.
There is already one fully finished colorization (Scared Stiff by @dtatane), with a few more on the way. If you're an author interested in this new tech and you'd like to convert your existing PIN2DMD colorization to Serum, convince @zedrummer that you're actually the author, and you'll get help converting your project (it's semi-automated).
There are also people actively working on getting Serum to run on real pins, so stay tuned about that.
Finally, if you're interested, jump on their Discord server here.
64-bit Compatibility
@vbousquet added a fix that makes dmdext play nicely with the other 64-bit version of the ecosystem. As far as I know, this was the last piece needed for people who are running the entire vpin stack on 64 bit.