I finally got Aurora working on native Mono using Jovis' updated instructions. cpw's patch made the difference.
Mono JIT compiler version 6.8.0.123 (tarball Tue May 12 15:15:28 UTC 2020)
AuroraLinuxLibs.zip
Trunk version of libgdiplus.so.0 built from source.
Up sides:
Aurora starts in a quarter of the time.
Tactical map redraw/zoom/scroll are all near-instant, even in Sol with all asteroids visible.
Aurora doesn't hang on exit.
Down sides:
Switching tabs in any window has obnoxious flicker, filling with light grey before anything is drawn.
The mouse wheel scrolls whatever control has keyboard focus rather than the control the mouse is over.
Can't set waypoints. Once the process is started, the mouse pointer gets stuck as a '+' and the operation can't be cancelled.
Layout errors resulting in missing controls.
Changing images still doesn't work. The change image dialog returns a bogus path unless you manually select the directory. (/path/to/aurora/Races/Races/Races123.bmp) Even if you do, Aurora still chokes on *nix paths trying to split off the file name.
Create New Race window:
The mouse cursor gets stuck showing a busy indicator.
Deleting the stock game after creating a new campaign gives:
1.11.0 Function #1699: list position
Trying to select an existing game in the drop-down then asks if the player wants to quit.
Selecting 'Play Game' gives:
1.11.0 Function #1690: Year, Month, and Day parameters describe an un-representable DateTime.
1.11.0 Function #1355; An item with the same key has already been added. Key: 3
1.11.0 Function #1690: Year, Month, and Day parameters describe an un-representable DateTime.
1.11.0 Function #1355; An item with the same key has already been added. Key: 3
1.11.0 Function #1690: Year, Month, and Day parameters describe an un-representable DateTime.
And then #1690 forever. Aurora must be killed and restarted.
This logged to console twice:
System.IndexOutOfRangeException: list position
at System.Windows.Forms.CurrencyManager.get_Current () [0x00022] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.CurrencyManager.EndCurrentEdit () [0x0000d] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.CurrencyManager.set_Position (System.Int32 value) [0x00043] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.ListControl.OnSelectedIndexChanged (System.EventArgs e) [0x0002f] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged (System.EventArgs e) [0x00000] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.ComboBox+ComboListBox.OnMouseUp (System.Windows.Forms.MouseEventArgs e) [0x00093] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x0007e] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x0016f] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.ComboBox+ComboListBox.WndProc (System.Windows.Forms.Message& m) [0x00019] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <c03d10ee440e4eee8278e61d3b7f025c>:0
at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x0008e] in <c03d10ee440e4eee8278e61d3b7f025c>:0
All-in-all a much better impression than the last time I tried it.
@Jovus would it be possible to get access to the source code for your 'horrible kludges', or at least a hint as to what you did? Using FONT_NAME="Liberation Sans" without the FONT_SIZE or SCALEHACK* parameters almost nails it and I'd like to try my hand against the remaining ~3 pixel error in text positioning that is still causing grief.