AemulusModManager icon indicating copy to clipboard operation
AemulusModManager copied to clipboard

Better support for Linux/Wine

Open TheGag96 opened this issue 3 years ago • 10 comments

I know this is probably very difficult to deal with, but it would really great if the mod manager worked better when running under Wine. After doing a bit of setup to get WPF programs running at all, Aemulus (5.2.0) actually does launch. Various popups come up navigating the interface, mentioning array index out of bounds errors, but the program doesn't crash. Things seem promising, but often time, crucial functionality doesn't seem to work:

  • Trying to build a series of downloaded P3FES mods crashes the program.
  • Trying to download and install a P4G mod from GameBanana crashes with the log below (but still appears to have worked okay once relaunched?)
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at AemulusModManager.Utilities.PackageUpdating.StringConverters.FormatSize(Int64 bytes)
   at AemulusModManager.MainWindow.<Refresh>b__60_7()
   at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore()
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback)
   at AemulusModManager.MainWindow.<Refresh>b__60_0()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at AemulusModManager.MainWindow.<Refresh>d__60.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
02ec:fixme:dbghelp:elf_search_auxv can't find symbol in module

Of course, no such crashes happen on Windows. I don't know whether any of it is actually fixable on your end or not lol. Though, without some kind of workaround, there's almost no way to install mods for Persona games for the fools like me running Linux (or macOS, for that matter).

Is there anything that can be done? Thank you!

TheGag96 avatar Jul 04 '21 07:07 TheGag96

There's a lot of refactoring that needs to be done in the code that I haven't gotten to yet. One thing I did was use \ as a directory separator which I know is valid for a folder name in linux so that will probably lead to some issues. Not sure about other errors as I don't currently use Linux on my machine.

TekkaGB avatar Jul 05 '21 17:07 TekkaGB

You'd think Wine would take care of that kind of thing - that could be relevant but I have my doubts. I'm not super sure what specific things trip Wine up.

If you would like me to test things out in the future, give me a ring!

TheGag96 avatar Jul 05 '21 19:07 TheGag96

On linux, Aemulus appears to crash while building, it does so after it finishes compiling it's first flowscript log.txt

monyarm avatar Oct 19 '21 13:10 monyarm

Have you found a way to make it work? I've got it crashing due to fontawesome5.imageawesome.icon so it doesn't even go past this error

nithou avatar Apr 25 '22 14:04 nithou

I would love to see Wine support

Evilhotdog avatar Apr 29 '22 17:04 Evilhotdog

would love to see mac support for this mod manager but it seems like thats never gonna happen at this point..

altk64 avatar May 15 '22 23:05 altk64

With the Steam Deck being out, I think this might be a little more important now.

coatlessali avatar Jun 13 '22 01:06 coatlessali

There's a lot of refactoring that needs to be done in the code that I haven't gotten to yet. One thing I did was use \ as a directory separator which I know is valid for a folder name in linux so that will probably lead to some issues. Not sure about other errors as I don't currently use Linux on my machine.

I took a look at the code base and I think I can help out with the refactoring. One thing I wasn't sure about is in the FeedGenerator file where to find the documentation for the GameBanana API.

cescoto avatar Jan 30 '23 07:01 cescoto

Any updates on this? I don't have any way to run this on Windows and as a result I just can't use mods period

ItsRogueRen avatar Mar 21 '23 17:03 ItsRogueRen

https://github.com/TekkaGB/AemulusModManager/issues/97

Just thought I should link the issue here and the project it's linked with. It's possible to more easily load Aemulus through wine now with this script made by Alexankitty

https://github.com/alexankitty/aemulus-installer-linux/tree/main

RecentRunner avatar Feb 19 '24 17:02 RecentRunner