Closed HomeStarRunnerTron closed 1 year ago
Hi! I'm not that familiar with macOS, could you show me which icon you mean exactly? I think you should be able to change launcher icons without problems, but the tray icon is indeed built into the program, as on all platforms. Not sure if it's possible modifying that externally (what is "normal way"?), but you can always build Pegasus from source, with the custom image of your choice.
For most native Mac applications, when you modify a tray icon, that icon will stay the same once launched. But this is how Pegasus (and quite a few other cross-platform projects on GitHub) opens up. But yeah-- apps like Final Cut Pro, Logic Pro, Photoshop, etc.-- I can change the icon, and it'll stay the icon when opened up. I guess that means they don't have the icon built into the Unix executable or something? I'll give it a shot and try to build it from source! ^_^ All the best. Oh-- and maybe this has lost all specialness after making this yourself, but here's how my Pegasus collection is coming along thus far! I'm trying out every possible game format that I can think of, to put it through its paces-- I've had to code some little AppleScript applets & Terminal .commands to run code & games that Pegasus doesn't want to run-- been SUPER-fun.
Looks gorgeous! Happy to hear it fits your use case.
On many *nix platforms if you don't have the icon built into the executable, the system might just show some generic icon, even if you set an icon for the launcher itself. It may not be necessary on Mac, but I guess most cross-platform frameworks do it, just in case. I think you need to remove this line if you'd like to compile it from source.
Okay, with a lot of trial-and-error, I was able to (I thought-- there's a problem I will talk about soon) successfully build it without the code. And removing that line (THANK YOU for the help in locating that) TOTALLY worked. And then any custom icon would stay instead of disappearing. In-fact, with this knowledge, I was able to fix this exact problem in melonDS, as well!
The only issue is... ... the Unix executable that gets built is too tiny. It's about 4MB, and if I delete all the gigantic QT Framework and QT Creator stuff, the program no longer works-- I assume this is because the build I'm creating is dependent on something in there. What do I need to do to build it properly? ^_^
In-case it's helpful, here's the crash message when I try to open my build, after deleting QT Framework...
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: pegasus-fe [11746]
Path: /Applications/* JAMES/*/Pegasus.app/Contents/MacOS/pegasus-fe
Identifier: org.pegasus-frontend.macos
Version: ???
Code Type: X86-64 (Translated)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2022-12-13 10:26:12.2625 -1000
OS Version: macOS 12.5 (21G72)
Report Version: 12
Anonymous UUID: 2DF28B3E-42E5-A9B7-D605-F5327DCE5E6C
Time Awake Since Boot: 620 seconds
System Integrity Protection: disabled
Crashed Thread: 0
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace DYLD, Code 1 Library missing
Library not loaded: '@rpath/QtQuick.framework/Versions/5/QtQuick'
Referenced from: '/Applications/* JAMES/*/Pegasus.app/Contents/MacOS/pegasus-fe'
Reason: tried: '' (no such file), '' (no such file), '' (no such file), '' (no such file), '' (no such file), '' (no such file)
(terminated at launch; ignore backtrace)
Kernel Triage:
VM - pmap_enter failed with resource shortage
Thread 0 Crashed:
0 Rosetta Runtime Routines 0x10123a940 ???
1 <translation info unavailable> 0x101281b24 ???
2 dyld 0x201207a72 abort_with_payload_wrapper_internal + 80
3 dyld 0x201207aa4 abort_with_payload + 9
4 dyld 0x2011b5699 dyld4::halt(char const*) + 615
5 dyld 0x2011b15b5 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 3995
6 dyld 0x2011b04e4 start + 388
Thread 1:: com.apple.rosetta.exceptionserver
0 runtime 0x7ff7ffda3944 0x7ff7ffd9f000 + 18756
1 runtime 0x7ff7ffdb13e0 0x7ff7ffd9f000 + 74720
2 runtime 0x7ff7ffdb2e58 0x7ff7ffd9f000 + 81496
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000006 x1: 0x0000000000000001 x2: 0x0000000306024aa0 x3: 0x0000000000000085
x4: 0x00000003060246a0 x5: 0x0000000000000000 x6: 0x52800661d503201f x7: 0x000000209400df0f
x8: 0x00000003060246a0 x9: 0x0000000000000000 x10: 0x0000000000000085 x11: 0x0000000306024ae0
x12: 0x0000000000000085 x13: 0x0000000306024aa0 x14: 0x0000000000000001 x15: 0x0000000000000006
x16: 0x0000000000000209 x17: 0x0000000000000000 x18: 0x80000001092a3b70 x19: 0x0000000101230000
x20: 0x00000000000007ff x21: 0x00000001092a8fa0 x22: 0xffffffffffffffff x23: 0x000000010123a914
x24: 0x0000000201207a72 x25: 0x000000010123a1f4 x26: 0x00000001012810c8 x27: 0x0000000000000000
x28: 0x00000002011f198e fp: 0x000000002c000000 lr: 0x0000000101281b24
sp: 0x00000001092a3b70 pc: 0x000000010123a940 cpsr: 0x80001000
far: 0x0000000101281000 esr: 0x56000080 Address size fault
Binary Images:
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
0x2011ab000 - 0x201216fff dyld (*) <f71fb3ca-5fcc-3577-9457-b047888a46d1> /usr/lib/dyld
0x7ff7ffd9f000 - 0x7ff7ffdcefff runtime (*) <ef33add1-6b70-3cc9-8bbc-c8544b609d2b> /usr/libexec/rosetta/runtime
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=4468K resident=0K(0%) swapped_out_or_unallocated=4468K(100%)
Writable regions: Total=155.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=155.2M(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Rosetta Arena 4096K 2
Rosetta Generic 768K 189
Rosetta IndirectBranch 32K 1
Rosetta JIT 128.0M 1
Rosetta Return Stack 20K 2
Rosetta Thread Context 20K 2
Stack 8176K 1
Stack Guard 56.0M 1
VM_ALLOCATE 13.3M 6
VM_ALLOCATE (reserved) 20K 1 reserved VM address space (unallocated)
__DATA 224K 6
__DATA_CONST 80K 1
__LINKEDIT 500K 7
__TEXT 4000K 4
dyld private memory 1024K 1
mapped file 6.1G 36
=========== ======= =======
TOTAL 6.3G 261
TOTAL, minus reserved VM space 6.3G 261
-----------
Full Report
-----------
{"app_name":"pegasus-fe","timestamp":"2022-12-13 10:26:12.00 -1000","app_version":"","slice_uuid":"adf855d5-4b27-3f20-ac2a-af8060ff09d7","build_version":"","platform":1,"bundleID":"org.pegasus-frontend.macos","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.5 (21G72)","incident_id":"C83074BC-E4B2-42F9-B9AD-620D3089E27D","name":"pegasus-fe"}
{
"uptime" : 620,
"procLaunch" : "2022-12-13 10:26:12.2104 -1000",
"procRole" : "Default",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "MacBookPro18,3",
"procStartAbsTime" : 15086185396,
"coalitionID" : 1166,
"osVersion" : {
"train" : "macOS 12.5",
"build" : "21G72",
"releaseType" : "User"
},
"captureTime" : "2022-12-13 10:26:12.2625 -1000",
"incident" : "C83074BC-E4B2-42F9-B9AD-620D3089E27D",
"bug_type" : "309",
"pid" : 11746,
"procExitAbsTime" : 15087421911,
"translated" : true,
"cpuType" : "X86-64",
"procName" : "pegasus-fe",
"procPath" : "\/Applications\/* JAMES\/*\/Pegasus.app\/Contents\/MacOS\/pegasus-fe",
"bundleInfo" : {"CFBundleIdentifier":"org.pegasus-frontend.macos"},
"storeInfo" : {"deviceIdentifierForVendor":"9645B062-A13F-50A8-8A6B-6FC27C0B03E8","thirdParty":true},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "org.pegasus-frontend.macos",
"crashReporterKey" : "2DF28B3E-42E5-A9B7-D605-F5327DCE5E6C",
"sip" : "disabled",
"isCorpse" : 1,
"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
"termination" : {"code":1,"flags":518,"namespace":"DYLD","indicator":"Library missing","details":["(terminated at launch; ignore backtrace)"],"reasons":["Library not loaded: '@rpath\/QtQuick.framework\/Versions\/5\/QtQuick'","Referenced from: '\/Applications\/* JAMES\/*\/Pegasus.app\/Contents\/MacOS\/pegasus-fe'","Reason: tried: '' (no such file), '' (no such file), '' (no such file), '' (no such file), '' (no such file), '' (no such file)"]},
"ktriageinfo" : "VM - pmap_enter failed with resource shortage\n",
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":36096,"threadState":{"x":[{"value":6},{"value":1},{"value":12985715360},{"value":133},{"value":12985714336},{"value":0},{"value":5944758525384400927},{"value":139922038543},{"value":12985714336},{"value":0},{"value":133},{"value":12985715424},{"value":133},{"value":12985715360},{"value":1},{"value":6},{"value":521},{"value":0},{"value":9223372041303505776},{"value":4314038272},{"value":2047},{"value":4448751520},{"value":18446744073709551615},{"value":4314081556},{"value":8608840306,"symbolLocation":80,"symbol":"abort_with_payload_wrapper_internal"},{"value":4314079732},{"value":4314370248},{"value":0},{"value":8608749966,"symbolLocation":10,"symbol":"__abort_with_payload"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4314372900},"cpsr":{"value":2147487744},"fp":{"value":738197504},"sp":{"value":4448729968},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":4314081600,"matchesCrashFrame":1},"far":{"value":4314370048}},"frames":[{"imageOffset":4314081600,"region":"Rosetta Runtime Routines","symbolLocation":10560,"imageIndex":0},{"imageOffset":4314372900,"region":"<translation info unavailable>","imageIndex":0},{"imageOffset":379506,"symbol":"abort_with_payload_wrapper_internal","symbolLocation":80,"imageIndex":1},{"imageOffset":379556,"symbol":"abort_with_payload","symbolLocation":9,"imageIndex":1},{"imageOffset":42649,"symbol":"dyld4::halt(char const*)","symbolLocation":615,"imageIndex":1},{"imageOffset":26037,"symbol":"dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*)","symbolLocation":3995,"imageIndex":1},{"imageOffset":21732,"symbol":"start","symbolLocation":388,"imageIndex":1}]},{"id":36104,"name":"com.apple.rosetta.exceptionserver","frames":[{"imageOffset":18756,"imageIndex":2},{"imageOffset":74720,"imageIndex":2},{"imageOffset":81496,"imageIndex":2}]}],
"usedImages" : [
{
"size" : 0,
"source" : "A",
"base" : 0,
"uuid" : "00000000-0000-0000-0000-000000000000"
},
{
"source" : "P",
"arch" : "x86_64",
"base" : 8608460800,
"size" : 442368,
"uuid" : "f71fb3ca-5fcc-3577-9457-b047888a46d1",
"path" : "\/usr\/lib\/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "arm64",
"base" : 140703126122496,
"size" : 196608,
"uuid" : "ef33add1-6b70-3cc9-8bbc-c8544b609d2b",
"path" : "\/usr\/libexec\/rosetta\/runtime",
"name" : "runtime"
}
],
"sharedCache" : {
"base" : 140703265374208,
"size" : 19331678208,
"uuid" : "df0706d4-ffba-39da-b512-d71c0baa3300"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=4468K resident=0K(0%) swapped_out_or_unallocated=4468K(100%)\nWritable regions: Total=155.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=155.2M(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nRosetta Arena 4096K 2 \nRosetta Generic 768K 189 \nRosetta IndirectBranch 32K 1 \nRosetta JIT 128.0M 1 \nRosetta Return Stack 20K 2 \nRosetta Thread Context 20K 2 \nStack 8176K 1 \nStack Guard 56.0M 1 \nVM_ALLOCATE 13.3M 6 \nVM_ALLOCATE (reserved) 20K 1 reserved VM address space (unallocated)\n__DATA 224K 6 \n__DATA_CONST 80K 1 \n__LINKEDIT 500K 7 \n__TEXT 4000K 4 \ndyld private memory 1024K 1 \nmapped file 6.1G 36 \n=========== ======= ======= \nTOTAL 6.3G 261 \nTOTAL, minus reserved VM space 6.3G 261 \n",
"legacyInfo" : {
"threadTriggered" : {
}
},
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "60da5e84ab0ca017dace9abf",
"factorPackIds" : {
},
"deploymentId" : 240000008
},
{
"rolloutId" : "61301e3a61217b3110231469",
"factorPackIds" : {
"SIRI_FIND_MY_CONFIGURATION_FILES" : "6348493aa52bb16adc4e4d06"
},
"deploymentId" : 240000023
}
],
"experiments" : [
]
}
}
Model: MacBookPro18,3, BootROM 7459.141.1, proc 8:6:2 processors, 16 GB, SMC
Graphics: Apple M1 Pro, Apple M1 Pro, Built-In
Display: Color LCD, 3024 x 1964 Retina, Main, MirrorOff, Online
Memory Module: LPDDR5
AirPort: Wi-Fi, wl0: Apr 6 2022 05:55:54 version 20.90.45.0.8.7.118 FWID 01-e7138ff2
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
USB Device: USB31Bus
USB Device: USB31Bus
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.
I used the open-source QT license, installed QT 5.15.2 (QT 6 didn't work at all for building it), then built it in the Terminal with qmake. I went...
/path/to/qmake path/to/pegasus
make
sudo make install
Is there some extra prompt I have to do? Now it's especially important to me that I build this myself, since I just made a custom boot-screen & icon, as well, to make it extra worth my while, hahaha. (The dragon is an inside-joke in my fAmily.)
Sorry for the late reply! Yes, at the moment Pegasus uses the Qt 5.x series. By default, Qt builds as a dynamic library: the programs that use it are small, but require Qt to be on the system to run. The official Pegasus releases use a static build: the binary is larger, but doesn't depend on the system's libraries. Both are fine. You probably built a dynamic Qt, in this case you do need to keep Qt around. You can build a static Qt if you configure Qt with the -static
flag – note that the Qt build will be significantly larger in this case.
I appear to have no clue where to add said -static
flag, hahaha, I've tried adding "CONFIG += static", "QMAKE_CXXFLAGS += -static" or "QMAKE_LFLAGS += -static" to the .pro file, I'm not getting anything. Unsure of how to proceed!
Yikes, I appear to have fallen into a rabbit hole trying to make a static Qt-- I, uh, think THIS is what I'm supposed to do, wow. Definitely could use some help, hahaha.
Oh sorry, I thought you built both Qt and Pegasus from source. -static
is a flag for Qt, and yes, the linked wiki page shows the steps for building it. But if you already have a Qt available, you can keep using it – just don't delete it after building Pegasus.
Haha, yeah, I'd really like to have a static build, I don't like having 26 gigabytes of Qt hanging around on my computer... I'll try giving building static Qt another shot. Here's hoping I'll be able to figure it out, but if I can't, you might see me around again, hahaha. Thank you so much for your patience and kindness!
Shoot, I've been trying -- seems to be that I can't build my own static build of Qt on current M1 Macs: https://pullanswer.com/questions/qt-5-15-5-build-install-failing-on-monterey-and-clang-v13-1-6 This dude also seems to be having similar problems to me: https://developernote.com/2021/12/building-qt-6-2-2-for-macos-part-2/ Is there any place where one might be able to download a statically built Qt? Thank you so much, again, hope the New Year's treating you welle!
Hm well I'm not sure if it works on M1, but you can try this one. It should be extracted to /usr/local/
.
OHBOYOHBOY, this is my New Year's miracle, thank you SO much for really going above and beyond for my ridiculous minute issue. Your static build worked perfectly on my M1 Mac-- and yes, it was installed into /usr/local/
-- completely precompiled. All the very, very best-- I'mma holding onto that tar on my computer forever. If anyone else desires this, here's a copy of the program with just the ability to permanently change icons, or one with my added custom boot graphics. Happiest New Years to you, thank you for making my setup Practically Perfect in Every Way™.
AUG 30 2023 EDIT: Updated both builds to the latest, as of today. Now allows for good scrolling on macOS trackpads, as well as video playback.
This is kind of a silly thing, but I enjoy adding custom icons to all my favourite applications-- and after this first day working with Pegasus, it's quickly becoming a favourite application. I added a custom icon (both just by changing the icon in the normal way, as well as replace the icns I could find inside the Package Contents), but once the application is opened, it reverts back to the normal application icon, which I can only assume is somehow packaged INTO the Unix executable itself, since I don't know where else it'd be sourcing the icon from at this point. Is there anything that I can do to keep the icon the way I'd like it? All the very best, thank you for making Plex for games!