-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C64Studio 7 on Linux using mono #56
Comments
Did you install the dotnet35 package? AFAIK this one was required when I tested it via PlayOnLinux in Ubuntu. Edit: Just retested to be sure, 7.0 runs fine in Ubuntu for me. |
I'm trying to get it to run on Linux itself, not through wine (which works). The problem seems to be that Xamarin/Mono have dropped support for older versions of .net on Linux, and the standard install is only for .net 4 and later. I found some instruction on how to install older versions but they are out of date and don't work any more. I don't know enough to fix this with a reasonable amount of effort. |
Ah, good catch. Some people are still using XP, and that's why I postponed updating the used .NET framework (still 3.5) |
That sounds like a good idea. I'll try again when it happens. |
Does the same solution apply with macOS? |
I have absolutely no idea, but I guess that Mono works the same on different platforms. |
Yeah, I did some ugly PInvoke stuff with FastImage. Back when I introduced it I had performance issues and huge delays with System.Drawing. I'll see if I can fix it up now, should be doable. |
I believe in Mono, the most popular IMEs do "just work" with the basic Mono WinForms controls, so yeah conditionally skipping the Imm32.dll calls on non-windows platforms would work |
Also, if you replace the property group at the end of C64Studio.csproj with
ittl fix the builds on linux |
-> deactivate PInvoking imm32.dll for Mono builds -> modify post build event to work for Unix'
Nice! It'll take a while to replace FastImage. |
The position seems wrong, but other then that, it seems to work (albeit it blinks very slowly), i wonder if the position is wrong due to the font? EDIT: Its actually decently usable, the caret position is just slightly too far right, but aside from that it seems to follow text properly |
One problem which is a little more important: the keys always activate the top bar's shortcuts , so letters like |
The shortcut issue is weird. I wonder if a SetFocus call got missing? |
Its possible i had accidentally stripped it out when mass deleting code that references FastImage |
Please keep hacking on this as I really want to use it on Linux with the least bit of fuss :-D |
I've tried to get C64Studio running on Ubuntu 20.04. There are some copy problems in C64Studio.csproj, but they are easily fixed ny adding$(TargetDir)C64Studio.exe $ (SolutionDir)C64StudioRelease/$(TargetFileName)$(ProjectDir)BASIC?Dialects/* $ (SolutionDir)C64StudioRelease/BASIC?Dialects
cp
cp $(TargetDir).dll $(SolutionDir)C64StudioRelease
rm -f "$(SolutionDir)C64StudioRelease/BASIC Dialects/"
cp
I can then build the program. However, when I run it I get
System.TypeInitializationException: The type initializer for 'GR.Image.DPIHandler' threw an exception. ---> System.EntryPointNotFoundException: GetDeviceCaps assembly: type: member:(null)
at (wrapper managed-to-native) GR.Image.DPIHandler.GetDeviceCaps(intptr,int)
at GR.Image.DPIHandler..cctor () [0x00029] in /home/johan/commodore/C64Studio/Common/Common/DPIHandler.cs:29
--- End of inner exception stack trace ---
at C64Studio.OutputDisplay..ctor () [0x0000d] in /home/johan/commodore/C64Studio/C64Studio/Documents/OutputDisplay.cs:13
at (wrapper remoting-invoke-with-check) C64Studio.OutputDisplay..ctor()
at C64Studio.MainForm..ctor (System.String[] args) [0x00000] in /home/johan/commodore/C64Studio/C64Studio/MainForm.cs:27
at (wrapper remoting-invoke-with-check) C64Studio.MainForm..ctor(string[])
at C64Studio.Program.Main (System.String[] args) [0x00023] in /home/johan/commodore/C64Studio/C64Studio/Program.cs:28
It seems to be some problem when calling gdi32.dll, which is mapped to libgdiplus.so.0 (see /etc/mono/config), and this library is installed. I don't know much about mono and can't get further, but it would be nice if it could be patched to work on Linux.
The text was updated successfully, but these errors were encountered: