#celeste linux on nintendo switch thread

1 messages · Page 4 of 1

copper bane
#

ummmmmmmmmmmm

upper hound
#

hm

copper bane
upper hound
#

weird because just running dotnet MiniInstaller.dll works for me

copper bane
#

i checked mini installer dll

#

its not there???

#

i might be blind

upper hound
#

...im stupid

manic tinsel
#

I'm pretty sure it emits a binary no

upper hound
#

does ls publish say anything

copper bane
#

oh no its not there

upper hound
copper bane
# upper hound does `ls publish` say anything

Celeste-icon.png MonoMod.Backports.dll Celeste.Mod.mm.deps.json MonoMod.Core.dll Celeste.Mod.mm.dll MonoMod.Iced.dll Celeste.Mod.mm.pdb MonoMod.ILHelpers.dll Celeste.Mod.mm.xml MonoMod.Patcher Celeste.xml MonoMod.Patcher.dll DiscordGameSDK.dll MonoMod.Patcher.pdb DiscordGameSDK.pdb MonoMod.Patcher.runtimeconfig.json DotNetZip.dll MonoMod.Patcher.xml everest-lib MonoMod.RuntimeDetour.dll EverestSplash MonoMod.RuntimeDetour.HookGen FNA.xml MonoMod.RuntimeDetour.HookGen.dll Jdenticon.dll MonoMod.RuntimeDetour.HookGen.pdb KeraLua.dll MonoMod.RuntimeDetour.HookGen.runtimeconfig.json MAB.DotIgnore.dll MonoMod.RuntimeDetour.HookGen.xml Microsoft.NET.HostModel.dll MonoMod.Utils.dll Microsoft.Win32.SystemEvents.dll NETCoreifier.dll MiniInstaller.deps.json NETCoreifier.pdb MiniInstaller.dll Newtonsoft.Json.dll MiniInstaller-linux NLua.dll MiniInstaller-osx NLua.pdb MiniInstaller.pdb piton-apphosts MiniInstaller.runtimeconfig.json piton-runtime.yaml MiniInstaller-win64.exe runtimes MiniInstaller-win.exe System.Drawing.Common.dll Mono.Cecil.dll System.Security.Permissions.dll Mono.Cecil.Mdb.dll System.Windows.Extensions.dll Mono.Cecil.Pdb.dll YamlDotNet.dll Mono.Cecil.Rocks.dll

upper hound
#

yeah i fucked up the cp command

#
cp -r ../Everest/MiniInstaller/bin/Release/net8.0/publish/* ~/Documents/celeste
cp -r ../Everest/Celeste.Mod.mm/bin/Release/net8.0/publish/* ~/Documents/celeste
#

but

#

actually one sec

#

there

#

also you can safely rm -r publish

copper bane
#

okay what do i run now

upper hound
#

did those work

copper bane
copper bane
upper hound
#

okay good

#

check if ls ~/Documents/celeste/MiniInstaller.dll exists

copper bane
#

it does

manic tinsel
#

lets go

#

dotnet MiniInstaller.dll

copper bane
#

its doing magic

upper hound
#

did it finish doing magic

copper bane
#

not yet

upper hound
#

okay

copper bane
#

it has finished

upper hound
#

okay what about dotnet Celeste.dll

manic tinsel
copper bane
manic tinsel
#

oh

upper hound
#

lmao whys it trying to relaunch the apphost

mystic umbra
#

oh the ld_library_path

upper hound
#

yeah i was about to suggest

manic tinsel
#

LD_LIBRARY_PATH=/home/napkin/Documents/celeste/lib-arm64 dotnet Celeste.dll

#

imo?

mystic umbra
#

aa im snail

#

but yeah

manic tinsel
copper bane
#

uuhh the napkin@napkin-piracy:------------ isnt there yet ?????

upper hound
#

press enter

copper bane
#

oh

mystic umbra
#

oh wait it needs to be named like that lmao

#

nuke whatever you have in lib64-linux, and copy lib-arm64 to a new folder named lib64-linux

copper bane
#

OH THATS WHY WE okay

upper hound
#

imo ln -s it

copper bane
#

?

upper hound
#

after deleting it, ln -s lib-arm64 lib64-linux

#

this will create a symbolic link

In computing, a symbolic link (a.k.a. symlink or soft link) is a special computer file that refers to another file or directory by storing a path to it, thus providing an alternative access path without duplicating the target's content. Apps that use operating system services may treat a symbolic link like other files or directories, and would n...

#

tl;dr this will make a pseudo-folder that actually redirects to the lib-arm64 folder

copper bane
#

done

#

do i run the thing again

upper hound
#

if you ls -l lib64-linux, does the line start with l

#

so like lrwxrwxrwx

copper bane
#

yes

upper hound
#

ok good

#

now dotnet Celeste.dll
i think that'll work

copper bane
upper hound
#

oh okay you do need the ld_library_path

#

so yeah LD_LIBRARY_PATH=/home/napkin/Documents/celeste/lib-arm64 dotnet Celeste.dll

copper bane
#

same thing bleuhgh

upper hound
#

huh

copper bane
upper hound
#

oh it needs to be an envvar

manic tinsel
upper hound
#

because

#

i have the everest repository open

#

ok what does env | grep LD_LIBRARY_PATH show

copper bane
#

no output

upper hound
#

ok good

#
export LD_LIBRARY_PATH=$(realpath lib64-linux)
dotnet Celeste.dll
manic tinsel
#

jank

upper hound
#

huh

copper bane
mystic umbra
#

--disable-splash foxsnug

#

(add that at the end of the command)

upper hound
#

no thats not the error

#

it can't find fna3d

manic tinsel
#

jank 3dgrineline

#

FNA is in lib-arm64

mystic umbra
#

oh right, i should have opened the file first

#

lmao

manic tinsel
#

not in the .dotnet directory

upper hound
#

do we have an arm fma4d

#

ignore the typo

manic tinsel
#

4D Celeste youknowicattodoittoem

#

but either way we should

upper hound
#

does ls lib64-linux/FNA3D* show anything

mystic umbra
#

its libFNA3D.so

manic tinsel
#

-# ✅

upper hound
#

ah

#

its looking for fna3d in the app directory

manic tinsel
#

-# ✅

#

but why

muted egret
#

because pinvoke doesn't search ld_library_path

mystic umbra
#

hm?

#

everest has always done this

muted egret
#

i believe you need to tell dotnet about the extra search path yourself

#

i don't think it respects ld_library_path

manic tinsel
#

what!!

mystic umbra
#

but like we have been restarting with that env var on linux since forever

#

and it has been working

#

we do not specify lib64-linux anywhere else

#

(not even rpath or runpath)

upper hound
mystic umbra
#

maybe calling it via dotnet is messing it up

manic tinsel
#

I'm assuming so yeah

#

or through envvar jank

muted egret
#

hmm

#

actually i think it just does dlopen

#

does dlopen respect ld_library_path?

manic tinsel
#

I'm pretty sure Mihate Hiura but Real simply copied the libs into lib64-linux, no symlinks

#

and it just. Worked?

mystic umbra
upper hound
#

seems promising

mystic umbra
muted egret
#

would probably be worth trying to copy instead of symlinking

upper hound
#

doesn't hurt

#
rm lib64-linux
cp -r lib-arm64 lib64-linux
#

and run celeste again

manic tinsel
copper bane
#

BALKSAGEUASRAB

#

yesyes

manic tinsel
#

thus the noises

#

don't worry about it

upper hound
#

huh

#

is it unlink

manic tinsel
#

no?

upper hound
#

no wont that delete the files inside

manic tinsel
#

hm.

#

idk I just open dolphin and delete it 😭

copper bane
#

what do i delet

#

WHAT DO I DELET

manic tinsel
#

stack overflow says rm

#

I mean unlink works too I guess

#

unlink lib64-linux

copper bane
upper hound
#

or ok what does ls lib64-linux show

copper bane
upper hound
#

okay

#

i messed up ln

#

so rm -r lib64-linux

manic tinsel
#

LMAO

#

rip

upper hound
#

then ln -s lib-arm64 lib64-linux

#

turns out i didnt mess ln

#

it for some reason didnt like the lib64-linux folder existing

copper bane
#

done thumbup

manic tinsel
#

and then I think dotnet Celeste.dll should just work now

#

right?

#

it is pointing to the default path

upper hound
#

what do you see when you ls -l ~/Documents/celeste/lib64-linux

copper bane
upper hound
#

huh

manic tinsel
#

gang perhaps it is about time we open Dolphin 😭

upper hound
#

what if you do ls -l lib*

copper bane
manic tinsel
# copper bane

I think you forgot to type the command Snip sent before

upper hound
#

wholestare

#

also do rm lib-arm64/lib-arm64

manic tinsel
#

ln stands for link: it creates links, or shortcuts, between different files and folders
ls stands for list: it lists the things in a directory

#

and sl stands for steam locomotive

upper hound
#

nice reference

copper bane
delicate plaza
#

and nl is the netherlands

copper bane
#

so smeepy

manic tinsel
#

yippee

#

okay

upper hound
#

yeah okay so the link worked

manic tinsel
#

dotnet Celeste.dll

copper bane
#

red

manic tinsel
#

GAAHHHH

#

but perhaps we should stop for the day, seeing as you're tired and also have school tomorrow

copper bane
#

it's 9pm hunterwail

upper hound
#

i think we can replace Celeste with

#!/bin/bash
dotnet Celeste.dll
manic tinsel
#

elaborate on this

copper bane
upper hound
#

uh i didnt mean to run these

copper bane
#

oh

upper hound
#

i meant to say you can replace the file named Celeste with those contents

copper bane
#

sorry rivsob

copper bane
#

so i do that?

manic tinsel
#

not yet imo

copper bane
#

gotcha

#

we're so close yet so far

#

i think
idk

manic tinsel
#

hm

#

doesn't say restarting celeste with LD_LIBRARY_PATH in the log this time

#

so

upper hound
#

because the envvar is still there

manic tinsel
#

i see,,

#

any ideas on how to get ts looking in the right directory then?

upper hound
#

lets

rm Celeste
echo -e "#!/bin/bash\ndotnet Celeste.dll" > Celeste
chmod u+x Celeste

first

copper bane
#

stretching helps a LOT with tiredness

#

i am renewed

upper hound
#

after you do this, can you cat Celeste to see what it has

copper bane
upper hound
#

wholestare ?

#

does it think the # is a comment

copper bane
#

whar

upper hound
#

oh ok just replace the quotes

#
echo -e '#!/bin/bash\ndotnet Celeste.dll' > Celeste
#

and the chmod

copper bane
#

done

#

no output tbw

#

btw

upper hound
#

thats fine

#

now lets see what happens when you ./Celeste

#

does it run at all

copper bane
#

permission denied???????

upper hound
#

did you run the chmod

copper bane
#

uh

#

whar

#

OH

upper hound
#

chmod u+x Celeste

#

like i said above

copper bane
#

no sorry

#

i'll do it now

#

a lot of red now (afet ./Celeste)

upper hound
#

ok but it runs

manic tinsel
#

..right?

upper hound
#

also okay real quick, can you nano ~/.bashrc and scroll to the bottom

#

i'll make dotnet available every time you run bash

#

or tbh just echo >> will work

manic tinsel
#

you could also kwrite ~/.bashrc to have a gui

upper hound
#

probably better idea

copper bane
upper hound
#

ehhh since you have it open already its fine

#

add this to the bottom

export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
#

then ctrl+x and save

manic tinsel
#

I think it's ctrl+s then ctrl+x

upper hound
#

ctrl+x asks you to save

manic tinsel
#

oh.

copper bane
#

i pressed ctrl x then y, do i enter?

upper hound
#

does it show the file path

copper bane
#

File Name to Write: /home/napkin/.bashrc

upper hound
#

yeah enter

copper bane
#

done

upper hound
#

now i think close the terminal and reopen it, then cd Documents/celeste and ./Celeste

copper bane
#

MORE RED AUHGRGHRH

upper hound
#

its fine, i just wanted to make sure celeste runs

#

send the error info though

copper bane
#

wall incoming (im not making another txt file)

#

`--------------------------------
Detailed exception log:

System.ComponentModel.Win32Exception: An error occurred trying to start process '/home/napkin/Documents/celeste/./EverestSplash/EverestSplash-linux' with working directory '/home/napkin/Documents/celeste'. Exec format error
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at Celeste.Mod.EverestSplashHandler.RunSplash(String targetRenderer) in Celeste.Mod.mm/Mod/Everest/EverestSplashHandler.cs:line 83
Controller 0: Nintendo Switch Combined Joy-Cons, GUID: 7e050820, Mapping: 06004cfc7e0500000820000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,

Detailed exception log:

System.DllNotFoundException: Unable to load shared library 'FNA3D' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
/home/napkin/.dotnet/shared/Microsoft.NETCore.App/8.0.21/FNA3D.so: cannot open shared object file: No such file or directory
/home/napkin/Documents/celeste/FNA3D.so: cannot open shared object file: No such file or directory
/home/napkin/.dotnet/shared/Microsoft.NETCore.App/8.0.21/libFNA3D.so: cannot open shared object file: No such file or directory
/home/napkin/Documents/celeste/libFNA3D.so: cannot open shared object file: No such file or directory
/home/napkin/.dotnet/shared/Microsoft.NETCore.App/8.0.21/FNA3D: cannot open shared object file: No such file or directory
/home/napkin/Documents/celeste/FNA3D: cannot open shared object file: No such file or directory
/home/napkin/.dotnet/shared/Microsoft.NETCore.App/8.0.21/libFNA3D: cannot open shared object file: No such file or directory
/home/napkin/Documents/celeste/libFNA3D: cannot open shared object file: No such file or directory

at Microsoft.Xna.Framework.Graphics.FNA3D.FNA3D_PrepareWindowAttributes()
at Microsoft.Xna.Framework.SDL2_FNAPlatform.CreateWindow() in /__w/Everest-libs/Everest-libs/source/FNA/src/FNAPlatform/SDL2_FNAPlatform.cs:line 409
at Microsoft.Xna.Framework.Game..ctor() in /__w/Everest-libs/Everest-libs/source/FNA/src/Game.cs:line 272
at Monocle.Engine..ctor(Int32 width, Int32 height, Int32 windowWidth, Int32 windowHeight, String windowTitle, Boolean fullscreen, Boolean vsync)
at Celeste.Celeste.orig_ctor_Celeste()
at Celeste.Celeste..ctor() in Celeste.Mod.mm/Patches/Celeste.cs:line 307
at Celeste.Celeste.orig_Main(String[] args)
TypeLoadException.TypeName:
(11/02/2025 21:52:17) [Everest] [Info] [legacy-monomod] Uninitialized legacy MonoMod compatibility layer
Exiting Celeste process`

upper hound
#

did it show "Restarting with LD_LIBRARY_PATH=..."?

copper bane
#

yes

upper hound
#

so i guess the ld_library_path is not being respected

#

or it doesn't like symlinks

mystic umbra
#

also run that again with LD_DEBUG=libs at the very start

upper hound
#

lets try copying this time but for real

#

actually yeah do that

#

doesnt it need to be an envvar tho

mystic umbra
#

LD_DEBUG=libs ./Celeste

upper hound
#

ah

copper bane
#

i uhhh uuuuuuuhhhh

mystic umbra
#

also you can do this

copper bane
#

way too much text

mystic umbra
#

to not wall

copper bane
#

and a little bit of red

mystic umbra
#

send it all

copper bane
#

i can't

#

it cuts off

#

it's that long

mystic umbra
#

make a file then foxsnug

upper hound
#

wait log.txt?

manic tinsel
#

if you send a message that's too long, discord should upload it as a file

upper hound
#

does ls log.txt show anything

mystic umbra
#

or like LD_DEBUG=libs ./Celeste &> awesome_log and send the file called awesome_log here

upper hound
#

or no wait other stuff wont be shown nvm

copper bane
mystic umbra
#

nice

copper bane
#

i put save output as file

manic tinsel
#

log levels!

mystic umbra
#

are you sure this is the right thing

upper hound
#

i think its getting cut off

upper hound
#

LD_DEBUG=libs ./Celeste &> awesome_log

copper bane
#

there it is

#

with the command

mystic umbra
#

can you ls lib64-linux

upper hound
#

theres a libFNA3D.so.0

manic tinsel
#

the goose chase:

copper bane
manic tinsel
#

yeah.

mystic umbra
#

despair

upper hound
#

can you ln -s lib-arm64/libFNA3D.so.0 lib-arm64/libFNA3D.so

manic tinsel
#
cd lib-arm64
ln -s libFNA3D.so.0 libFNA3D.so
#

im 🐌

upper hound
#

no need to leave the celeste dir

manic tinsel
mystic umbra
#

you will also need to simlink libSDL2-2.0.so.0 to libSDL2.so at some point

mystic umbra
#

okay pray

mystic umbra
#

and run the thing

#

i didnt say you didnt have to do it now

manic tinsel
#

ln -s lib-arm64/libSDL2-2.0.so.0 lib-arm64/libSDL2.so

upper hound
#

yeah but why not now

copper bane
#

uuuuuuuuhhhhhhhhhhhhhhhh

mystic umbra
#

because uhh idk

#

do it now then

copper bane
#

what do i run

#

i confuse

copper bane
#

done

manic tinsel
#

./Celeste again

copper bane
#

red

upper hound
#

LD_DEBUG=libs ./Celeste &> awesome_log ig

copper bane
#

¿?

upper hound
#

run that

copper bane
#

i already did that

manic tinsel
#

do it again this time

#

we changed some things

copper bane
#

i ran ./Celeste and the- okay

manic tinsel
#

so it should show something different

upper hound
#

though

#

first run ls -l lib-arm64

copper bane
#

gotcha

upper hound
#

oh.

#

awesome

#
rm lib-arm64/libFNA3D.so
ln -s libFNA3D.so.0 lib-arm64/libFNA3D.so
rm lib-arm64/libSDL2.so
ln -s libSDL2-2.0.so.0 lib-arm64/libSDL2.so
#

then ls -l lib-arm64 again

copper bane
upper hound
#

ok good

#

now the libs should be good

#

run celeste again

copper bane
#

still red

#

do i need to run the other ./Celeste command

#

the ld debugs or smth

upper hound
#

sure

#

and send the log

copper bane
upper hound
#

can you put .txt extensions after the file names so that we don't have to download the file

copper bane
upper hound
#

ok this is progress

#

so discord won't work

copper bane
upper hound
#

yea its fine now

#

i mean in the future

copper bane
#

oh

#

no thats the ld debugs /celeste log

upper hound
#

do we have an arm lua dll @mystic umbra

#

i see an android-arm64 dll

#

luajit is 5.1 right

manic tinsel
#

Not sure if this is what you’re looking for

upper hound
#

yeah luajit is 5.1

copper bane
#

okay i might

#

need to

#

go to sleep

#

my head really wants to slam on the desk

manic tinsel
#

yeah! I also have homework to finish

#

we can stop for today

copper bane
#

blahsuegsahgeghhgr

upper hound
#

one question rq

#

one sec

#

and try again

copper bane
#

try what again

upper hound
#

the ld_debug= ...

#

hoping it'll work but i doubt it

copper bane
upper hound
#

can i get the other file

#

the one you put after &> ...

copper bane
#

uuuhhhh whar

upper hound
#

you ran the ld_debug=... ./celeste &> awesome_log command, right

copper bane
#

yes

upper hound
#

i need awesome_log

copper bane
#

well, not with awesome_log name

upper hound
#

still, i need the file

copper bane
#

how did you
find that
again

upper hound
#

what

#

it's in the same folder as celeste

manic tinsel
#

like the log you get from doing LD_DEBUG=libs ./Celeste &> awesome_log.txt

copper bane
#

idk how to change it to txt

#

renaming doesnt let me do it
checking properties also doesnt

upper hound
copper bane
#

unless its terminal stuff

#

oh

#

noted

#

does that wo- yes it does yaaaayyyyyy

upper hound
#

ok and ls lib-arm64/liblua54.so exists right

#

thats the last thing i want you to check rn

manic tinsel
#

then you can be allowed to sleep

#

lmao

copper bane
#

how do i check tha

upper hound
#

just run the ls

copper bane
#

oh its a command

#

sorry

upper hound
#

ok it doesn't like the architecture

copper bane
upper hound
#

yeah go to sleep now

copper bane
#

eventually

upper hound
copper bane
#

oh fuck

upper hound
#

i dont need the errorlog

copper bane
#

noted

upper hound
#

ok so it found it

#

but

#

but it complains with /lib/aarch64-linux-gnu/libc.so: invalid ELF header

manic tinsel
#

@silver merlin hello

did you need liblua? how did you lib the lua?

silver merlin
#

from system installation of lua

#

i just symlinked

manic tinsel
upper hound
#

can we get the .so

manic tinsel
#

simply clone your asahi install and send it here imo

silver merlin
#

wait a sec has to go downstairs

manic tinsel
#

-# 👍

#

no rush

silver merlin
upper hound
#

hopefully this'll work

#

anyways lets see tomorrow

manic tinsel
#

oh also

#

I'll write a summary of everything we had to do once this is over

copper bane
#

so other people can do it?

upper hound
#

live feed

manic tinsel
manic tinsel
copper bane
#

it's better if a human does it imo..... that way we make sure there aren't any mistakes

upper hound
#

yeah obviously

#

i was kidding

copper bane
#

oh

manic tinsel
#

I volunteer as tribute :3

muted egret
#

honestly it'd probably do a pretty good job

upper hound
#

and i dont think many people are in favor of making changes like that

manic tinsel
#

final standings

#
angel:         1300
napkin:        1093
snip:          492
wartori:       207
danike:        125
rain:          100
mihate real:   88
david:         29
maddie:        16
adamd:         9
r58:           1
#

message count

#

dear lords I'm the Yapper

copper bane
#

im the image sender

manic tinsel
#

real!

manic tinsel
copper bane
#

those 100gb from google plus aint looking so good with how many images of magic runes i have

upper hound
upper hound
#

theres people already rolling back to just post-core everest to play mods

copper bane
#

damn

manic tinsel
# upper hound

we could always set up something in the wiki thread that says "hey if ur on arm and fmod is crashing you should tell us what mods are enabled and what maps you're playing"

upper hound
#

i mean the user complaints

manic tinsel
#

not everything has to be implemented at once imo

manic tinsel
copper bane
#

💔

upper hound
#

sure, if you do that

manic tinsel
#

kidding, of course. but I think people can understand that programming takes time, and ARM64 isn't an officially supported platform by EXOK

upper hound
#

having to change to fmod2 means having to change to fmod2 everywhere

#

not just arm64

manic tinsel
#

really??

delicate plaza
#

how much of a problem would that be?

upper hound
#

ask wartori because im not the library expert

#

im not a librarian

manic tinsel
#

wait I don't quite understand. can't Celeste use FMOD2 under the hood for just ARM64?

copper bane
#

what about adding support to fmod2?
-# reminder i don't have any coding experience

delicate plaza
#

i was under the impression that fmod2 was something we'd get to eventually and it was just a matter of it being difficult

sick plover
#

relink to fmod 2 only on arm64 would be fine no

upper hound
#

what about api differences

manic tinsel
copper bane
sick plover
#

as celeste-wasm does it

manic tinsel
#

the celeste wasm shiller:

delicate plaza
sick plover
#

i mean there's no other public celeste port with fmod 2

manic tinsel
#

but this kind of depends on whether we can all agree on an end goal

#

if everyone must migrate to FMOD2 eventually and we leave legacy bindings that's one situation

#

if we patch it in for ARM64 support only that's another situation

#

I'm not the C programmer so I can't really provide an opinion on how far this would go

delicate plaza
#

yea, i don't remember why exactly though
i still think it's feasible

upper hound
#

we just need a shim right

manic tinsel
#

and then it died

#

I guess?

#

and @static river was thinking about continuing that work

sick plover
# upper hound we just need a shim right

looked through changelog again,
FMOD_Studio_System_SetListenerAttributes, FMOD_Studio_EventInstance_SetParameterValue, and FMOD_System_getVersion changed their function signatures, all the other functions are just renames that monomod can do aot

manic tinsel
#

vine boom

upper hound
#

huh

#

lets hope they do the same things

manic tinsel
sick plover
#

they do the same things; its just small things like getVersion returning build number, setlistenerattributes asking for an optional attenuation position, and setparametervalue asking for an ignore seek speed flag

manic tinsel
#

it's doable??

copper bane
#

everest sound real?

sick plover
#

well yeah i would think if celeste wasm can use fmod 2 then it can happen natively too

#

here the shim would have to be injected into the library instead of just putting it in a random object file though (wasm doesn't care about library name)

#

monomod can handle the pinvoke renames

manic tinsel
#

would you be willing to help with such an endeavour, then? I'm genuinely useless when it comes to low level programming so I'm afraid I'd either have to get with them tutorials or gtfo

upper hound
sick plover
#

go through each method in the assembly and check if the pinvoke module name starts with fmod, then change the entrypoint string

manic tinsel
#

are we fr making sdl2-compat for fmod

#

less so, because we have monomod

#

but whateline

upper hound
#

everest*

#

not celeste

sick plover
#

that redirects the whole library which would work too i guess

upper hound
#

yeah

sick plover
#

yeah maybe just add more symbols to the fmod library instead of modifying celeste

upper hound
#

how pain is that

#

i want to learn more low level stuff but i can't find many decent resources

manic tinsel
#

+1 to this

#

though I know even less than you do

sick plover
#

it looks like that is Quite Hard and requires rebuilding the whole shared library

#

not sure if fmod provides static libraries instead of shared libraries for non-wasm platforms

#

it does not

sick plover
#

celeste-arm64 uses dllmap to do it so that's another approach?

static river
#

(im still very inexsperenced with porting stuff so take this with a grean of salt) if fmod and fmod 2's main apis are simaler enough (to the point that it looks basicly the same from the outside eg same funcson signichers and funcsonality) aside from a few funcsons or objects a translatson layer would probs be best. if its a huge change then assuming you are fine with breaking mod compatability the best thing would be to rewrite celeste to use fmod 2 natively. if you arent ok with breaking mod compatability then welp ig time to recreate all the fmod funcsonality with fmod2

mystic umbra
silver merlin
#

then this seems like a good time to commit to porting to fmod 2

copper bane
copper bane
#

i kinda wanna know though, what exactly are we trying to do here?

#

because i don't understand lmfao

silver merlin
#

make sound work

#

which will be a quite bit of work

copper bane
#

oh

manic tinsel
#

here’s my slightly more detailed explanation:

#

FMOD is a way for you to implement detailed sound in your game without doing it yourself

#

Things like rhythm, fades, loops, and layers in Celeste aren’t done by Celeste itself

#

Celeste relies on FMOD to do all this:
“hey fmod can you turn on the next layer”
“yea sure”

#

Between FMOD 1 and 2, things have changed a little

#

many things have been renamed, and some features have changed the way they should be used

#

like r58 said: when you ask FMOD 2 “hey what’s the current version of FMOD”
FMOD 2 responds differently than FMOD 1 would

#

to maintain compatibility with mods built with FMOD 1, we need to build a translation layer between the two

#

and again, we can only use FMOD 2 on ARM64 because there does not exist a FMOD 1 for ARM64

#

by the way napkin I’m four hours behind you now. It’s still 8 AM for me

#

I get off earliest at 4, so your 8 PM

#

:(

copper bane
copper bane
#

@manic tinsel art thou free

manic tinsel
#

I am going to take a shower

copper bane
manic tinsel
copper bane
#

back

copper bane
#

help

#

oh

#

found it

#

lib-arm64?

#

please tell me i was right

manic tinsel
#

#

and then you can LD_DEBUG=libs ./Celeste &> awesome_log.txt

#

@silver merlin can we get a nice list of all of the libs you have symlinked/copied into Everest

silver merlin
#

not rn, gotta go to uni

#

will be a few hours until i can use my macbook

manic tinsel
#

gl uni

silver merlin
#

~2hr one way via public transit

manic tinsel
#

gl uni 🫡

copper bane
manic tinsel
#

is my search broken or has lua simply disappeared from the logs

copper bane
#

are we cooked

manic tinsel
#

idk!

#

it has simply vanished

#

well

#

we’ll ignore it for now cluelesseline

#

It still can’t run the splash though

copper bane
#

whats the splash

manic tinsel
#

like the purple window with the gear icon where it says Loading 54 mods…

copper bane
#

OH

#

how to run the splash then ?

manic tinsel
#

I.. don’t know :3

copper bane
#

we're so cooked

manic tinsel
#

open up your File Named Celeste again

#

should say like dotnet run Celeste.dll

#

you can try adding --disable-splash after Celeste.dll???

copper bane
#

in the same line?

manic tinsel
#

yea

#

in the meantime

#

@mystic umbra splash how

copper bane
#

we're missing the discord sdk or something

#

also

#

celeste icon pops up on taskbar\

#

game runs for split second
and then crashes

manic tinsel
#

I’m pausing???

#

wait ✋ peaceline 🤚

mystic umbra
#

or you mean something else

#

in which case, what are you asking lmao

manic tinsel
#

we can disable the splash

#

but how would we make a compatible splash

manic tinsel
copper bane
#

oh

manic tinsel
#

are you ready?

#
System.Exception: FMOD Failed: ERR_HEADER_MISMATCH (There is a version mismatch between the FMOD header and either the FMOD Studio library or the FMOD Low Level library.)
#

prepare the clown music

copper bane
manic tinsel
#

It’s time to Fucky the Wucky

copper bane
#

also question

#

can nvidia shadowplay be isntalled into this thing

manic tinsel
#

what the balls is nvidia shadowplay

copper bane
#

if not
what other game clip services could i install into this thing\

manic tinsel
#

oh

#

clipping?

manic tinsel
#

you can technically run OBS to constantly record the last 30 seconds

mystic umbra
#

it only needs a working sdl2 and fna3d

manic tinsel
mystic umbra
#

oh it uses piton too

manic tinsel
mystic umbra
#

yeah if you fix piton it should work

manic tinsel
#

alr!

mystic umbra
#

you can test it with the good old dotnet EverestSplash.dll --testmode

manic tinsel
#

👍

manic tinsel
# copper bane

but the most common answer to “does proprietary software run on Linux” is “no”

copper bane
#

oh

#

i love linux !!!!

manic tinsel
#

I’m sure good people have made clipping utilities though

#

we can figure that out after

#

anyways who up f-ing they mod

#

This is kind of where my Helpful Tutorial kind of falls apart

#

I’m not familiar with all this

copper bane
#

this tourist guide sucks at their job bro

#

cant even explain whats going on

manic tinsel
#

:real:

#

I found thing

#

should work

#

you still got your Celeste-ARM64 folder?

copper bane
#

yes

#

i havent deleted anything at all

manic tinsel
#

should be a folder called fmod in it

#

can you cd to that?

copper bane
#

done

manic tinsel
#

make nosound

copper bane
#

it has finished the maigc

manic tinsel
#

are there two .so files there now

civic gull
manic tinsel
#

FLATPAK

#

AAAAAHHHHHH

copper bane
#

SCARY FLATPAK

civic gull
#

bwaaa

copper bane
#

@manic tinsel

#

reply died

manic tinsel
copper bane
#

yes

#

threres 2 .so

#

fils

manic tinsel
#

copy those and paste them inside lib ARM64

copper bane
#

i copy pasted them

#

ran ./Celeste

#

did not work

#

they end in .10, do i change that?

manic tinsel
#

do the whole debug libs awesome log thing again?

#

wait.

#

I understand

copper bane
copper bane
manic tinsel
#

can I get another cheeky ls -l lib-arm64

copper bane
#

total 14312 -rwxrwxr-x 1 napkin napkin 69440 Nov 2 13:07 fmod_fix.so -rwxrwxr-x 1 napkin napkin 71088 Nov 2 13:07 libfmod_SDL.so lrwxrwxrwx 1 napkin napkin 13 Nov 2 13:07 libfmod.so -> libfmod.so.13 -rwxrwxr-x 1 napkin napkin 196512 Nov 3 21:54 libfmod.so.10 -rwxr-xr-x 1 napkin napkin 1254672 Nov 2 13:07 libfmod.so.13 lrwxrwxrwx 1 napkin napkin 19 Nov 2 13:07 libfmodstudio.so -> libfmodstudio.so.13 -rwxrwxr-x 1 napkin napkin 104992 Nov 3 21:54 libfmodstudio.so.10 -rwxr-xr-x 1 napkin napkin 1239128 Nov 2 13:07 libfmodstudio.so.13 lrwxrwxrwx 1 napkin napkin 13 Nov 2 22:19 libFNA3D.so -> libFNA3D.so.0 -rwxrwxr-x 1 napkin napkin 717992 Nov 2 13:07 libFNA3D.so.0 -rw-rw-r-- 1 napkin napkin 329616 Nov 3 20:44 liblua54.so -rwxrwxr-x 1 napkin napkin 10822264 Nov 2 13:07 libSDL2-2.0.so.0 lrwxrwxrwx 1 napkin napkin 16 Nov 2 22:20 libSDL2.so -> libSDL2-2.0.so.0

manic tinsel
#

okay

#

in dolphin

#

nuke libfmod.so.13 and studio 13

copper bane
#

where is studio 13

manic tinsel
#

ie

#

libfmodstudio.so.13

#

and then right click on the one that says exactly libfmod.so
click properties (at the very bottom)
in points to, change the 13 to 10

#

do the same for libfmodstudio.so

#

wow I sure hope I won't screw anything up with this

#

oh well, nuking with Dolphin at least means it goes to a trash bin and isn't gone forever

copper bane
#

game runs

#

no sound

#

but

#

game runs

manic tinsel
#

RAAAAAAHHHHHHHHHH

copper bane
#

if sound could work that would be really cool tho...............................

manic tinsel
#

@upper hound @delicate plaza @mystic umbra WE COOKED

manic tinsel
copper bane
#

wdym a whole Thing

manic tinsel
#

like a project that would be as big as/even bigger than Everest

#

okay maybe not bigger

copper bane
#

AAAAAAUUUUUUUUUUGGGGGGGHHHHHHHH

manic tinsel
#

probably not bigger

civic gull
copper bane
#

yeah

#

sadly

civic gull
#

do you know the reason for it?

copper bane
#

no

#

lmfao

#

im just following instructions this whole thing is everyone elses work

#

i dont know shit

#

something something fmod something

civic gull
#

ah

copper bane
#

well i hope people try to get sound working

#

that'd be cool

#

so like
is this it

#

lmfao

manic tinsel
#

one more thing

#

open your file manager

#

and go to /home/napkin/.local/share/applications

copper bane
#

done

#

whar do i do

manic tinsel
#

right click, new text file

#

and call it Celeste.desktop

copper bane
#

theres already one

#

oh also olympus is whining

manic tinsel
manic tinsel
copper bane
manic tinsel
#

okay

#

change the exec line to

#

Exec=/home/napkin/Documents/celeste/Celeste

#

and icon to

#

Icon=/home/napkin/Documents/celeste/Celeste.png

copper bane
#

done

manic tinsel
#

save it, and you now should be able to launch Everest from your menu taskbar thing

copper bane
#

lets see.......................

#

uuuuuuuuuuuuuuuuuhhhhhhhhhhh idk if i opened 3 times and my switch will explode with 3 celeste instances or it just doesnt work

manic tinsel
#

remember how we disabled the Loading 51 mods.. screen

#

perhaps it is Loading

copper bane
#

oh

manic tinsel
#

at any rate, Celeste will exit if it detects more than one of itself

copper bane
#

oh im so cooked i clicked it 4 times

manic tinsel
#

so you're probably fine in that regard

copper bane
#

nvm then

#

its still "loading" tho

#

i have no mods enabled

#

help

manic tinsel
#

if nothing happens in a while perhaps check like

#

uhh

#

try top / htop or something like that

#

in your terminal

#

pressing up and down will scroll

copper bane
#

taskbar crashed

copper bane
manic tinsel
#

try typing top or htop in your terminal

#

not sure which one you have

copper bane
manic tinsel
#

well

#

I don't see any Celeste

#

can you execute .desktop files from the terminal, I wonder

#

one sec

#

uhhh

#

maybe send me the Celeste.desktop

#

or like paste it in

copper bane
#

in the celeste arm 64 there is a fmod_fix.so file

#

would that do anything

#

should we try it

#

or

manic tinsel
#

I'd have to look at what it does

#

it may or may not apply

#

but we can perhaps replicate vanilla audio well enough

copper bane
manic tinsel
#

oh no not like that

copper bane
#

oh

manic tinsel
#

an .so file is a binary meaning it's been tranlsated to machine code

#

we cannot read ts

copper bane
#

oh lmao sorry

#

learn binary smh

manic tinsel
#

the Celeste-ARM64 repository probably contains the actual readable code there somewhere

#

we'll find it in a bit

copper bane
#

as long as i can get madeline sounds thats cool

#

like
dashing and interacteables (kevins, conveyors, dream blocks)

manic tinsel
#

perhaps

If gtk3 is installed, run gtk-launch application.desktop.

#

so gtk-launch /home/napkin/.local/share/applications/Celeste.desktop

copper bane
manic tinsel
#

erm

#

maybe cd local share applications

#

and then try gtk-launch Celeste.desktop

silver merlin
copper bane
#

🐌

#

it doesnt exist apparently

#

./Celeste is a mirage

manic tinsel
#

guh?

#

wait go back to documents/celeste

#

and show me the Celeste file

#

I think ts might be running relatively

copper bane
#

we're in the endgame gng we cannot be stuck trying to make a shortcut 💔

manic tinsel
#

yeah I think it's because ts is relative

#

I am not the bash scripter

#

omg what is it

#

is it like pwd??

copper bane
manic tinsel
#

maybe we just do it directly

#

like fuck it

#

put dotnet /home/napkin/Documents/celeste/Celeste.dll --disable-splash in the Celeste.desktop

copper bane
#

what line tho

manic tinsel
#

exec

copper bane
#

could not find the program "dotnet", it says

manic tinsel
#

gng are we fr

#

okay maybe

#

maybe we delete the Celeste.desktop for now

#

because this is technically still a workaround and we're supposed to get Piton

copper bane
#

we need to wake the gng up bro

manic tinsel
#

nah

#

I think we just leave it like this for now

#

My guess is that the .desktop file doesn't read your .bashrc

#

the .bashrc is where Snip told your switch where dotnet lies

#

anyways—put your StrawberryJam2021.zip into Documents/celeste/Mods, and we are done all legally required steps

copper bane
#

i'll have to manually download every single mod i have

#

yeah im not doing that shit im transferring it over from my pc
will that work

silver merlin
#

I think it should

manic tinsel
#

I mean

#

you can download Strawberry Jam

#

and it will download your dependencies

copper bane
#

yeah but the other ones

manic tinsel
#

but you can transfer your mods yes

#

as well as your save files

#

those go in /home/napkin/.local/share/Celeste/Saves

copper bane
copper bane
#

its taking so much ram

#

help

#

it CLOSED because it took that much memory

manic tinsel
#

oh no.

#

did it crash with outofmemoryexception

#

sigh

#

this is where olympus would've helped/

#

I suppose you can enable the mods you need on your computer, then transfer the blacklist.txt to your switch

copper bane
#

IT LOADED nvm then

#

it loaded

#

with a whoooolllleee lotta warnings

#

BUT IT LOADED

#

IT WORKS

#

and it doesnt run like absolute shit

manic tinsel
#

celebratory photo?

copper bane
#

hold on

#

please don't crash please don't crash please don't crash

#

advanced lobby runs like shit

#

help

manic tinsel
#

I'm supposed to be doing homework right now but would you like to hop on cnet a while

copper bane
manic tinsel
#

YEAAHH

manic tinsel
#

celestenet

#

multiplayer but not really

copper bane
#

whats tha OH

#

ive never tried it before

#

its depressing not having any sound but WHATEVER IT WORKS ill listen to music in the bg or something until someone figures sound

#

respawning is pain

#

takes like 3 secs to load

#

💔

manic tinsel
#

that's odd

#

wait

#

I actually remember having that problem on KDE as well

copper bane
manic tinsel
#

are you on wayland or x11

#

do a cheeky inxi -G

copper bane
#

whar

manic tinsel
#

in your terminal

copper bane
#

oh shit i cant ctrl c or else game crashes okay

manic tinsel
#

yeah thats x11

#

I have to go away for the day 💔

#

but I will be back tomorow to answer any questions

#

see u!

copper bane
#

NOOOOOOOOOOOOO

#

goobye rivsob

silver merlin
#

well switch is quite underpowered

copper bane
silver merlin
#

mods would need extra power for extra stuffs

copper bane
#

oh

#

any ways to make game run better?

#

@silver merlin ¿?

silver merlin
#

overclock

copper bane
#

how do that

copper bane
#

is this truly it gng.....?

#

does the journey end here......???

wind galleon
#

Need 4k messages first

copper bane
#

how can i overclock my system then

#

because game runs like shit
at most it gets like 45 fps

#

it's pretty stable but even vanilla levels don't run really well

#

there's this page but i don't understand it

copper bane
#

alright i learned how to overclock my cpu and my gpu but i don't know how to overclock my ram

#

which i desperately need

copper bane
manic tinsel
#

ever wonder how you’re able to “hibernate” your computer and start it up again with all of your work intact?

#

this probably only applies for laptops but

#

swap space is where your ram goes when you hibernate it

#

it basically savestates your computer to a nice little file on your disk

#

then when you power it back on it loads the file back into your ram

#

in michelsoft binbows, this is called a pagefile

#

linux calls it a swap space

#

swap can also be used for “virtual” ram, by using parts of your disk space as ram

#

but it’s much too early in the morning for me to be figuring all this out

#

oh but also

#

your disk is much slower than your ram

#

I also don’t know how it decides what to load into swap and what to keep in ram

#

at this point we can also work on things like Piton and Olympus and other optional features

copper bane
#

but im in school

copper bane
#

heck, shutting it off does that too

copper bane
copper bane
#

im still curious as to if fmod_fix.so in the celeste arm 64 will work

manic tinsel
#

Like

#

I don’t get it really

#

it updates the method signature that r58 mentions

#

which is good

#

but aren’t there also renames??

#

where do they go catplush

#

wait.

#

I understand it now

#

the renamed methods aren’t used in vanilla so they can just fuck off

#

@upper hound looking at Luna’s fork now, it’s been doing the translation layer in C#. wouldn’t it be infinitely easier to just straight up do it in C? or is that bad practice for Everest/MonoMod in general

upper hound
#

how would it be easier

#

the c# part of fmod is itself a translation layer

manic tinsel
#

there’s a c# part???

upper hound
#

yes

#

what do you think the FMOD namespace is for

manic tinsel
upper hound
#

im asking how do you think making a c wrapper would be easier

#

we already have a c# wrapper

#

vanilla celeste does

manic tinsel
upper hound
#

in fact the wrapper is publicly available

manic tinsel
#

I don’t know why my brain didn’t go there

upper hound
manic tinsel
upper hound
#

this is the fmod 1 c# bindings

manic tinsel
#

we just have to change what it points to no?

upper hound
#

pretty much

#

assuming all signatures and struct layouts are the same

manic tinsel
#

oh. That sounds significantly easier

manic tinsel
#

I can get cracking on this

#

@sick plover can you link the changelog you mentioned?

upper hound
#

i mean spoofing the version is simple enough

#

also there's 2 more .cs source files

manic tinsel
#

Snip while you’re here

#

what are their functions?

upper hound
copper bane
#

nice