View Issue Details

IDProjectCategoryView StatusLast Update
0001291OpenMPTPlugins / VSTpublic2020-06-13 16:38
ReporterSaga Musix Assigned Tomanx  
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status feedbackResolutionopen 
Target VersionOpenMPT 1.30 / libopenmpt 0.6 (goals) 
Summary0001291: Separate plugin bridge versions for legacy / buggy plugins
Description

We have observed many plugins which do not (any longer) work in OpenMPT, also not if run in the plugin bridge. Sometimes this is the result of using safer defaults for linker flags, OS compatibility declarations etc.

For example:

  • Many old plugins don't like Data Execution Prevention (DEP) being turned on.
  • Synth1 x64 has problems with Windows 8+ High Entropy Heap. If this flag is disabled, heap allocated addresses are more likely to stay below the 32-bit border, preventing the crash from happening in most situations.
  • Free RS-MET plugin editors crash if OpenMPT declares to be compatible with Windows 10.
  • DPI-awareness of old plugins.

To keep these old plugins alive, we could provide a second "unsafe" set of plugin bridge executables which disables DEP, high entropy heap and does not declare any operating system compatibility. DPI-awareness doesn't need to be handled this way as it can be configured at runtime.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Relationships

related to 0001290 closed Crash files from when opening Channel Matrix 2x2 plugin window 
related to 0001012 closed VST SignalAnalyzer causes crash when opened 
related to 0001030 resolvedmanx VSTi Synth1 64bit crashes / not working 

Activities

manx

manx

2020-06-11 14:34

administrator   ~0004375

  • [New] PluginBridge: Split into Legacy and non-Legacy version. The legacy version disables data execution prevention (for a86 and amd64 (it is unsupported on arm)), high entropy ASLR (for 64bit architectures), and large address awareness (for 32bit architectures).
  • [Mod] PluginBridge: Enable all these fetures for the regular bridge.
  • [Reg] Also enable all these features for OpenMPT.exe itself. This will break broken plugins, which now need to be bridged.
  • [Mod] Store modern/legacy bridge flag in plugin cache. For already stored plugins, legacy is assumed in order to maximize compatibility. Newly created plugins default to modern.
  • [Imp] Plugin Dialog: Add checkbox for compatibility (legacy) bridge.
manx

manx

2020-06-11 17:20

administrator   ~0004379

manx

manx

2020-06-13 16:38

administrator   ~0004384

Issue History

Date Modified Username Field Change
2020-01-12 14:43 Saga Musix New Issue
2020-01-12 14:44 Saga Musix Relationship added related to 0001290
2020-01-12 14:44 Saga Musix Relationship added related to 0001012
2020-01-12 14:45 Saga Musix Relationship added related to 0001030
2020-06-11 12:37 manx Assigned To => manx
2020-06-11 12:37 manx Status new => acknowledged
2020-06-11 12:37 manx Target Version => OpenMPT 1.30 / libopenmpt 0.6 (goals)
2020-06-11 14:34 manx Note Added: 0004375
2020-06-11 14:34 manx File Added: pluginbridge-legacy-v1.patch.7z
2020-06-11 14:34 manx Status acknowledged => feedback
2020-06-11 17:20 manx Note Added: 0004379
2020-06-11 17:20 manx File Added: pluginbridge-legacy-v2.patch.7z
2020-06-13 16:38 manx Note Added: 0004384
2020-06-13 16:38 manx File Added: pluginbridge-legacy-v3.patch.7z