dmd-extensions

A toolbox for virtual pinball dot matrix displays.

GPL-2.0 License

Stars
127
Committers
24

Bot releases are visible (Hide)

dmd-extensions - v2.2.2 Latest Release

Published by freezy 6 months ago

We've moved from somewhat native Serum to libserum. That's the main change, plus some driver updates:

  • Updated libserum to v1.6.2
  • Updated ZeDMD driver to v0.7.2.
  • Fixed a bug in how to render alpha-numeric numbers on DMDs (thanks @toxieainc)
dmd-extensions - v2.2.1

Published by freezy about 1 year ago

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 in dmdext.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
dmd-extensions - v2.2.0

Published by freezy about 1 year ago

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
dmd-extensions - v2.2.0-BETA2

Published by freezy over 1 year ago

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
dmd-extensions - v2.2.0-BETA1

Published by freezy over 1 year ago

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 in dmdext.exe, it looks at DMDDEVICE_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 extends DmdFrame and uses the same data structure.

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
dmd-extensions - v2.1.2

Published by freezy over 1 year ago

Hotfix release of v2.1.1 that doesn't crash after segment display games. Sorry folks!

dmd-extensions - v2.1.1

Published by freezy over 1 year ago

Changed

  • BREAKING [ZeDMD] in DmdDevice.ini is now called [zedmd].
  • ZeDMD driver is now compatible with latest firmware, which added frame compression for smoother playback.

Added

  • Basic analytics. Opt-out with skipanalytics = true.
dmd-extensions - v2.1

Published by freezy over 1 year ago

Features

  • Added frame-by-frame colorization support to Pinball Arcade and Pinball FX3 (thanks @GyroJoe)

Fixes

  • Fixed color tint in Pinball FX3 (thanks @GyroJoe)
  • Updated Serum to latest (thanks @zesinger)
  • Bug when Serum and Pup were active at the same time

Other Changes

  • Refreshed the project's README
dmd-extensions - v2.0

Published by freezy over 1 year ago

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.

dmd-extensions - v1.10.2

Published by freezy over 2 years ago

We're approaching something stable here.. ;)

Changes

  • Fix bug in coloring animation code.
  • The --position falls back to default behavior instead of crashing, should you use negative values.
  • Fixed scaling 128x16 games that have 128x32 color content.
  • Fix artifacts when outputting scaled to video.
  • Don't crash when getting weird segment data from PinMAME.
  • Elimination of a few false positive error reports.

Impacted Games

Iron Man, TMNT.

dmd-extensions - v1.10.1

Published by freezy over 2 years ago

This is a bugfix release. Thanks to @lucky01 and @mista-funky as well to all testers.

dmd-extensions - v1.10.0

Published by freezy over 2 years ago

Upgrade Instructions

  • If in the past you've used the installer, uninstall old version, and install new version.
  • If in the past you've used the zip file, overwrite the old files (DmdDevice.dll and dmdext.exe) with the new ones
  • If you're not sure, use the installer.
  • Open DmdDevice.ini and add the two new settings, both under [global]:
    • scalermode = scale2x
    • scaletohd = false

Changes

  • Finally, we got 64 color support, thanks to @mista-funky and @lucky01.
  • They also added proper upscaling support.
  • There were about a dozen bug fixes, mostly crashes.
  • Bug in --virtual-position where it wouldn't set the outer borders instead of width and height.
dmd-extensions - v1.9.0

Published by freezy about 3 years ago

New

  • Awesomely enhanced virtual DMD renderer (thanks @vbousquet)
  • Support for Future Pinball (#281, thanks @MrMoose74)
  • Support for multiple output (#272, thanks @vbousquet)
dmd-extensions - v1.8.2

Published by freezy over 3 years ago

We've skipped v1.8.1, mainly because it was already being distributed with a different branch.

Fixes

  • Firmware check for PinDMD3 devices
  • Fixed a crash in alphanumeric renderer
  • Websockets are now re-tried (#243, thanks @markadr)
dmd-extensions - v1.8.0

Published by freezy over 4 years ago

New

  • High resolution rendering for alpha-numeric displays (#152)
  • Remodel configuration. .ini files can now be used for console config, allowing to keep one central configuration.
  • The project is now automatically built on each commit. You can get the latest builds here.
  • We now have an installer which is somewhat intelligent and finds all the right install locations (we will still provide a ZIP file for more advanced users)
  • Browser stream enhancements (thanks @vbousquet!)
  • Use default position for unknown game names (thanks @djrobx!)
  • Virtual DMD can now save position to .ini by right-clicking on it.
  • New hardware: Added support for Pixelcade displays.
  • Experimental support for client/server network streaming (details).
  • Updated coloring support for LCM, RSM and RMM (thanks @djrobx!)
  • PinDMD3: Add support for colored 4-bit frames (needs firmware upgrade)

Changes

  • Grip on virtual DMD is now always hidden and only shows when hovering over the display.
  • Hardware displays are now disabled per default.

Fixes

  • Fixed Pinball Arcade grabber
  • Fixed grabber for Pinball FX3's Williams games (thanks NoEx!)
  • Fixed color parsing for TPA's Stern games
  • Fixed issue with .vni files (#143)
  • Fixed issue with sound (#124)
  • Fixed issued with alphanumeric ROMs (#149)
  • Fixed 2-bit rendering for PinDMD2 (#148)
  • Fixed USB problem (#169, thanks @mjrgh!)
  • Tweaks for Pinball FX grabber (thanks @Jseph!)
  • Make .ini values culture-independent
  • Many stability fixes
dmd-extensions - v1.7.2

Published by freezy about 6 years ago

Features

  • PIN2DMD users should now get faster load times for colored games with many palettes (#132)
  • Memory grabbers now don't need to be run in admin mode anymore (thanks @mjrgh)

Fixes

  • Update Pinball FX3 memory grabber to work with latest release (thanks NoEx)
  • Refactor memory grabbers to use a common base (thanks @mjrgh)
  • Fix crash when colorization is on but no game is set (#125)
  • Some crash fixes when using with PinballY (thanks @mjrgh)

Developers, please update Visual Studio 2017 since there were a few compiler issues fixed that break older versions.

dmd-extensions - v1.7.1

Published by freezy over 6 years ago

Features

  • New Pinball FX3 grabber - reads DMD from memory, much faster and more stable (thanks NoEx!)
  • Timing improvements when reading colored animations (thanks @djrobx)
  • Properly upscale 128x16 games when using VNI (thanks @djrobx)
  • Location of dmddevice.ini can now be set via environment variable
  • Print warning when dmddevice.ini not found

Fixes

  • Don't crash when PinUP enabled but no DLL found
  • Don't crash when outputting to video file with weird resolution
  • Don't crash when serial port disconnects

Breaking Changes

  • Must execute dmdext as Administrator for Pinball FX3 in order to gain access to FX3's memory. You can fall back to the previous grabber by using the --fx3-legacy flag.
dmd-extensions - v1.7.0

Published by freezy over 6 years ago

Features

  • Added VNI coloring support with help from @luck01 and @djrobx (#102)
  • Added coloring support for other resolutions (192x64)
  • Added support for XDMD and thus UltraDMD
  • Added support for TPA's cabinet build
  • PinUP support is now built-in. However note that you'll still need dmddevicePUP.dll installed. Also, the syntax changed, instead of -o PINUP, use the new --pinup option (#104).

Fixes

  • Be sure to display the DMD on top of DirectB2S (#72)
  • Don't mistakenly use PinDMD2 when there isn't on.
  • Fixed some bugs in the PIN2DMD driver (thanks @lucky01)

Breaking Changes

  • Due to the new animations, we log (a lot) more, which impacts performance. In order to keep dmdext smooth, change the log level to Info. If you haven't touched your log config before, just copy the new DmdDevice.log.config over the old one. Otherwise, change
     <logger name="*" minlevel="Trace" writeTo="file" />
    
    to
     <logger name="*" minlevel="Info" writeTo="file" />
    
  • If you were previously using PinUP, settings have changed. It doesn't use the file output parameter anymore, but has its own setting.
    • If you're using PinUP in VPM with dmddevice.dll, change:
      [video]
      ; if enabled, writes frames to an .avi file
      enabled = true
      ; path to folder or .avi file. if folder, gamename.avi is used.
      path = PINUP
      
      to:
      [video]
      ; if enabled, writes frames to an .avi file
      enabled = false
      ; path to folder or .avi file. if folder, gamename.avi is used.
      path =
      
      [pinup]
      enabled = true
      
    • For other games like Pinball FX3, change the command line parameter from:
      -o PINUP\<gamename>
      
      to
      --pinup PINUP\<gamename>
      
    • If you have LibDmd.dll in your VPM path, remove it.
dmd-extensions - v1.6.0

Published by freezy about 7 years ago

Breaking Changes

  • Use VPM positioning settings per default when available (#38)
  • Dot size of virtual DMD is now larger per default (#59)

Features

  • Added --quit-after option (#34)
  • The play command now supports animated GIFs
  • Added --idle-after and --idle-play, useful for TPA (#36)
  • Added support for Pinball FX3 (#69)

Fixes

  • Fixed crash in Pinball FX2 grabber
  • Fixed PinDMD2 for Pinball FX2 and probably others (#47)
  • When stayontop is enabled, explicitly check for B2S and put it on top of it (#40)
  • Various crashes
dmd-extensions - v1.5.2

Published by freezy over 7 years ago

Bugfix release. Cleaned up crash log, there are no more known crashes.