InoriRus / Kyty

PS4 & PS5 emulator
MIT License
2.49k stars 146 forks source link

Linux (Flatpak) support #18

Open iMonZ opened 2 years ago

iMonZ commented 2 years ago

Hey is anything here that isn’t working on Linux? Would be great if you could compile an Flatpak for Linux.

InoriRus commented 2 years ago

Linux is not supported yet. But I have plan to add Linux support.

dnet890 commented 2 years ago

I hope it can be packaged in Flatpak/.deb/Appimage/Snap.

TacoCake commented 2 years ago

I second this, if you do add linux support, I think the best way to do it would be to target Flatpak. It would basically be available on all Distributions, including Valve's Steamdeck.

iMonZ commented 2 years ago

I second this, if you do add linux support, I think the best way to do it would be to target Flatpak. It would basically be available on all Distributions, including Valve's Steamdeck.

Flatpak should be enough. Shouldn’t make it too complicated. Flatpak is supported on all Systems and it works the best!

ultimaweapon commented 2 years ago

I'm interested to work on this issue. I have no experience in writing console emulator but AFAIK what I need to do is just fixing Windows-specific API that used by Kyty. Actually I already started on this task with the first step is to enabled CI build on Linux with #29. Here is my plan:

  1. Add GitHub Actions to build for Windows only.
  2. Add GitHub Actions to build for Linux. This build will not going to work yet but it is required for fixing code to run on Linux.
  3. I will slowly fixing each error from Linux build.

With this plan @InoriRus can focus on the emulator part without worrying on the Linux-specific part.

ultimaweapon commented 2 years ago

Some progress today with my spare time:

[~/Workspace/personal/kyty/build:0]$ make
[  0%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/BuildTools.cpp.o
[  0%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/Scripts.cpp.o
[  0%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/ScriptsFileLib.cpp.o
[  0%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/ScriptsLoader.cpp.o
[  0%] Built target scripts_obj
[  1%] Building C object 3rdparty/sdl2/CMakeFiles/sdl2_obj.dir/src/SDL.c.o
In file included from /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sdl2/include/SDL_log.h:40,
                 from /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sdl2/src/./SDL_internal.h:125,
                 from /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sdl2/src/SDL.c:21:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sdl2/include/SDL_stdinc.h:533:49: error: unknown type name ‘wchar_t’
  533 | extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
      |                                                 ^~~~~~~

Already did some fixes to the build configurations but it look like there are a lot of work just for the build configurations.

ultimaweapon commented 2 years ago

The progress for today is looking good:

[~/Workspace/personal/kyty:0]$ cmake --build build
[  0%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/BuildTools.cpp.o
[  1%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/Scripts.cpp.o
[  1%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/ScriptsFileLib.cpp.o
[  1%] Building CXX object lib/Scripts/CMakeFiles/scripts_obj.dir/src/ScriptsLoader.cpp.o
[  1%] Built target scripts_obj
[  1%] Building C object 3rdparty/rijndael/CMakeFiles/rijndael_obj.dir/source/rijndael-alg-fst.c.o
[  1%] Built target rijndael_obj
[  2%] Linking C static library librijndael.a
[  2%] Built target rijndael
[  2%] Building C object 3rdparty/lzma/CMakeFiles/lzma_obj.dir/C/LzFind.c.o
[  3%] Building C object 3rdparty/lzma/CMakeFiles/lzma_obj.dir/C/LzmaDec.c.o
[  3%] Building C object 3rdparty/lzma/CMakeFiles/lzma_obj.dir/C/LzmaEnc.c.o
[  3%] Built target lzma_obj
[  3%] Linking C static library liblzma.a
[  3%] Built target lzma
[  3%] Building C object 3rdparty/sqlite/CMakeFiles/sqlite_obj.dir/src/altered_sqlite3secure.c.o
In file included from /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/altered_sqlite3secure.c:63:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sqlite3.c: In function ‘sqlite3SelectNew’:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sqlite3.c:125321:10: warning: function may return address of local variable [-Wreturn-local-addr]
125321 |   return pNew;
       |          ^~~~
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sqlite3.c:125281:10: note: declared here
125281 |   Select standin;
       |          ^~~~~~~
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sqlite3.c:125281:10: note: declared here
In file included from /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/altered_sqlite3secure.c:69:
In function ‘sha1_update’,
    inlined from ‘sha1_final’ at /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:272:3:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:244:7: warning: ‘sha1_transform’ reading 64 bytes from a region of size 1 [-Wstringop-overread]
  244 |       sha1_transform(context, data + i);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:244:7: note: referencing argument 2 of type ‘const uint8_t[64]’ {aka ‘const unsigned char[64]’}
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c: In function ‘sha1_final’:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:144:6: note: in a call to function ‘sha1_transform’
  144 | void sha1_transform(sha1_ctx *context, const uint8_t buffer[64])
      |      ^~~~~~~~~~~~~~
In function ‘sha1_update’,
    inlined from ‘sha1_final’ at /home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:275:5:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:244:7: warning: ‘sha1_transform’ reading 64 bytes from a region of size 1 [-Wstringop-overread]
  244 |       sha1_transform(context, data + i);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:244:7: note: referencing argument 2 of type ‘const uint8_t[64]’ {aka ‘const unsigned char[64]’}
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c: In function ‘sha1_final’:
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/sqlite/src/sha1.c:144:6: note: in a call to function ‘sha1_transform’
  144 | void sha1_transform(sha1_ctx *context, const uint8_t buffer[64])
      |      ^~~~~~~~~~~~~~
[  3%] Built target sqlite_obj
[  3%] Linking C static library libsqlite.a
[  3%] Built target sqlite
[  3%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/debug.c.o
[  3%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/entropy_common.c.o
[  4%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/error_private.c.o
[  4%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/fse_decompress.c.o
[  4%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/pool.c.o
[  4%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/threading.c.o
[  5%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/xxhash.c.o
[  5%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/common/zstd_common.c.o
[  5%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/fse_compress.c.o
[  5%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/hist.c.o
[  6%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/huf_compress.c.o
[  6%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_compress.c.o
[  6%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_compress_literals.c.o
[  6%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_compress_sequences.c.o
[  7%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_double_fast.c.o
[  7%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_fast.c.o
[  7%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_lazy.c.o
[  7%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_ldm.c.o
[  8%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstd_opt.c.o
[  8%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/compress/zstdmt_compress.c.o
[  8%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/decompress/huf_decompress.c.o
[  8%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/decompress/zstd_ddict.c.o
[  9%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/decompress/zstd_decompress.c.o
[  9%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/decompress/zstd_decompress_block.c.o
[  9%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/deprecated/zbuff_common.c.o
[  9%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/deprecated/zbuff_compress.c.o
[ 10%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/deprecated/zbuff_decompress.c.o
[ 10%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/dictBuilder/cover.c.o
[ 10%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/dictBuilder/divsufsort.c.o
[ 10%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/dictBuilder/fastcover.c.o
[ 11%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/dictBuilder/zdict.c.o
[ 11%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v01.c.o
[ 11%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v02.c.o
[ 11%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v03.c.o
[ 12%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v04.c.o
[ 12%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v05.c.o
[ 12%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v06.c.o
[ 13%] Building C object 3rdparty/zstd/CMakeFiles/zstd_obj.dir/lib/legacy/zstd_v07.c.o
[ 13%] Built target zstd_obj
[ 13%] Linking C static library libzstd.a
[ 13%] Built target zstd
[ 14%] Building CXX object lib/Sys/CMakeFiles/sys_obj.dir/src/SysLinuxDbg.cpp.o
[ 14%] Building CXX object lib/Sys/CMakeFiles/sys_obj.dir/src/SysLinuxFileIO.cpp.o
[ 14%] Building CXX object lib/Sys/CMakeFiles/sys_obj.dir/src/SysWindowsDbg.cpp.o
[ 14%] Building CXX object lib/Sys/CMakeFiles/sys_obj.dir/src/SysWindowsFileIO.cpp.o
[ 14%] Built target sys_obj
[ 14%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/CharUcd.cpp.o
[ 15%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Compression.cpp.o
[ 15%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Core.cpp.o
[ 15%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Database.cpp.o
[ 15%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/DateTime.cpp.o
[ 16%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/DbgAssert.cpp.o
[ 16%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Debug.cpp.o
[ 16%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/File.cpp.o
[ 16%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Hashmap.cpp.o
[ 17%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/JsonReader.cpp.o
[ 17%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Language.cpp.o
[ 17%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/MSpace.cpp.o
[ 17%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/MemoryAlloc.cpp.o
[ 18%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/SDLSubsystem.cpp.o
[ 18%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/String.cpp.o
[ 18%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Subsystems.cpp.o
[ 18%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Threads.cpp.o
[ 19%] Building CXX object lib/Core/CMakeFiles/core_obj.dir/src/Timer.cpp.o
[ 19%] Built target core_obj
[ 19%] Building CXX object lib/Math/CMakeFiles/math_obj.dir/src/CryptoAES.cpp.o
[ 20%] Building CXX object lib/Math/CMakeFiles/math_obj.dir/src/CryptoHash.cpp.o
[ 20%] Building CXX object lib/Math/CMakeFiles/math_obj.dir/src/Math.cpp.o
[ 20%] Building CXX object lib/Math/CMakeFiles/math_obj.dir/src/Rand.cpp.o
[ 20%] Building CXX object lib/Math/CMakeFiles/math_obj.dir/src/VectorAndMatrix.cpp.o
[ 20%] Built target math_obj
[ 20%] Linking CXX static library libsys.a
[ 20%] Built target sys
[ 20%] Linking CXX static library libmath.a
[ 20%] Built target math
[ 20%] Linking CXX static library libcore.a
[ 20%] Built target core
[ 20%] Linking CXX static library libscripts.a
[ 20%] Built target scripts
[ 20%] Generate KytyGitVersion.h
[ 20%] Built target KytyGitVersion
[ 20%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/deps/clog/src/clog.c.o
[ 20%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/api.c.o
[ 21%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/cache.c.o
[ 21%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/init.c.o
[ 21%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/cache/descriptor.c.o
[ 21%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/cache/deterministic.c.o
[ 22%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/cache/init.c.o
[ 22%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/info.c.o
[ 22%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/init.c.o
[ 22%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/isa.c.o
[ 23%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/name.c.o
[ 23%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/topology.c.o
[ 23%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/uarch.c.o
[ 23%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/vendor.c.o
[ 24%] Building C object 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/windows/init.c.o
/home/ultimaweapon/Workspace/personal/kyty/source/3rdparty/cpuinfo/src/x86/windows/init.c:11:10: fatal error: windows.h: No such file or directory
   11 | #include <windows.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/build.make:272: 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/src/x86/windows/init.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:479: 3rdparty/cpuinfo/CMakeFiles/cpuinfo_obj.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
[~/Workspace/personal/kyty:2]$ 

Just using SDL2 from vcpkg by integrated vcpkg as a Git submodule to solve yesterday error. Not sure if @InoriRus okay with this.

ultimaweapon commented 2 years ago

Just got a hit from Vulkan SDK problem. VCPKG did not included the source for this and it is required to do a manual install.

ohxxm commented 2 years ago

Better to make an appimage instead of flatpak.

ohxxm commented 2 years ago

Also i will try compiling on linux

DotChris commented 2 years ago

Got it to compile on Ubuntu using #38

image But I had to comment out basically all of fc script in https://github.com/InoriRus/Kyty/blob/1fdaa18f390398fa347d8f57984111332cc25036/source/CMakeLists.txt#L157 else I'd get stuck here

Scanning dependencies of target fc_script
[ 97%] Building CXX object CMakeFiles/fc_script.dir/3rdparty/gtest/src/gtest-all.cc.o
[ 97%] Building CXX object CMakeFiles/fc_script.dir/KytyScripts.cpp.o
make[2]: *** No rule to make target 'vulkan-1-NOTFOUND', needed by 'fc_script'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:471: CMakeFiles/fc_script.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Couldn't figure it out.

ultimaweapon commented 2 years ago

fc_script is a main emulator binary.

RSDNTWK commented 2 years ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

ohxxm commented 2 years ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

Due to the power of the Steam Deck, its highly unlikely to run this on it.

Fullbrik commented 1 year ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

Appimages work fine on the steam deck, but I think both would be preferable

ohxxm commented 1 year ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

Appimages work fine on the steam deck, but I think both would be preferable

Actually, no, AppImages do not work fine on the Steam Deck due to its restrictions, so flatpaks would be preferable.

Fullbrik commented 1 year ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

Appimages work fine on the steam deck, but I think both would be preferable

Actually, no, AppImages do not work fine on the Steam Deck due to its restrictions, so flatpaks would be preferable.

Actually, yes, I have ran appimages on my steamdeck many times. You just set the executable bit and run it in dolphin, or add it as a non steam game and run it from gaming mode.

ohxxm commented 1 year ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

Appimages work fine on the steam deck, but I think both would be preferable

Actually, no, AppImages do not work fine on the Steam Deck due to its restrictions, so flatpaks would be preferable.

Actually, yes, I have ran appimages on my steamdeck many times. You just set the executable bit and run it in dolphin, or add it as a non steam game and run it from gaming mode.

Again, there are AppImage restrictions on Steam Deck, yes you may be able to start the AppImage but there are compatibility issues (restrictions), this is exactly why flatpaks are preferable.

Fullbrik commented 1 year ago

Better to make an appimage instead of flatpak.

We get why you would prefer an appimage however flatpaks are the only option on certain devices like the Valve Steam Deck since they don't allow appimages due to distro restrictions. So it's better to have both cause no doubt people would want to try and run it on them.

Appimages work fine on the steam deck, but I think both would be preferable

Actually, no, AppImages do not work fine on the Steam Deck due to its restrictions, so flatpaks would be preferable.

Actually, yes, I have ran appimages on my steamdeck many times. You just set the executable bit and run it in dolphin, or add it as a non steam game and run it from gaming mode.

Again, there are AppImage restrictions on Steam Deck, yes you may be able to start the AppImage but there are compatibility issues (restrictions), this is exactly why flatpaks are preferable.

What restrictions are there that would affect an emulator?

RSDNTWK commented 1 year ago

What restrictions are there that would affect an emulator?

External dependencies can't be installed due to the os file system being read only if they are missing and some need super user privileges to run. Those are the issues we've ran into so far.

Fullbrik commented 1 year ago

What restrictions are there that would affect an emulator?

External dependencies can't be installed due to the os file system being read only if they are missing and some need super user privileges to run. Those are the issues we've ran into so far.

Why not just include the dependencies in the appimage?

iMonZ commented 1 year ago

What restrictions are there that would affect an emulator?

External dependencies can't be installed due to the os file system being read only if they are missing and some need super user privileges to run. Those are the issues we've ran into so far.

Why not just include the dependencies in the appimage?

The steam deck has 64, 256, or 512 GB of space. Please let’s be generous in space-consuming whether you have a steam deck or not. Unnecessary space consumption is not the ideal solution to go!

iMonZ commented 1 year ago

Got it to compile on Ubuntu using #38

image But I had to comment out basically all of fc script in

https://github.com/InoriRus/Kyty/blob/1fdaa18f390398fa347d8f57984111332cc25036/source/CMakeLists.txt#L157

else I'd get stuck here

Scanning dependencies of target fc_script
[ 97%] Building CXX object CMakeFiles/fc_script.dir/3rdparty/gtest/src/gtest-all.cc.o
[ 97%] Building CXX object CMakeFiles/fc_script.dir/KytyScripts.cpp.o
make[2]: *** No rule to make target 'vulkan-1-NOTFOUND', needed by 'fc_script'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:471: CMakeFiles/fc_script.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Couldn't figure it out.

~~Please be aware that XDG is marked as a Legacy in the current Ubuntu version and will soon be deprecated. It would be in all interest to ditch the XDG support completely~~

Sorry, my fault I mistook it with XCB! Please stop using XCB

ohxxm commented 1 year ago

What restrictions are there that would affect an emulator?

External dependencies can't be installed due to the os file system being read only if they are missing and some need super user privileges to run. Those are the issues we've ran into so far.

Why not just include the dependencies in the appimage?

Wouldn't be a good idea due to Steam Deck's storage size, also when the dependencies have updates, you would have to rebuild the AppImage with those updates which would be unnecessary.