logs archiveBotHelp.net / Freenode / #3dsdev / 2015 / September / 5 / 4
yuriks
only the "DecrementFoo" variants do (which is needed to avoid some races)
endrift
so then how do I make it atomic?
yuriks
what are you doing, exactly?
like, what is the operation you're trying to do?
endrift
mutex
profi200
endrift: Also forgot to say that change i made removed the sound desync. It's just the stuttering left. But it even happens at fullsoeed :|
endrift
profi200: yes I thought I told you this already
unless you can buffer CSND samples, that's what's going to happen
since you are now playing sounds right after you need to start playing them, instead of shortly before
profi200
But repeating samples sounds sh*t too.
endrift
I made this version to get rid of the stuttering
it's sh*t either way!
one version is just slightly less sh*t
and that's the version where it doesn't stutter every single time it buffers
there's no way to solve this without a better audio API
I have no illusions of that
profi200
blargSnes just does.
endrift
blargSnes uses repeat
it just happens to be full speed
so it doesn't stutter or echo
it should not stutter or echo at full speed
only when it drops below full speed
profi200
It doesn't sound sh*t even if it slows down.
yuriks
endrift: you have to couple the address arbiter with regular atomics
endrift
oh
(Action) pulls out intrinsics
yuriks
like, implement your mutex as a spinlock
endrift
right
yuriks
but in the case where it's already taken, you wait on the arbiter
endrift
okay
yuriks
and the thread that held it, if it sees that someone was waiting on the mutex, signal the arbiter when it unlocks
endrift
profi200: it uses repeat. I have no idea how that's possible
profi200
blargSnes uses a ring buffer or something iirc and has frameskip.
endrift
mGBA also uses a ring buffer
it does not have frameskip
yet
profi200
blargSnes uses very accurate timing to reduce audio issues.
endrift
that's descriptive
profi200
I don't know the details but DiscostewSM spend a lot of time into getting proper audio. It's good except some of his changes introduced new sound issues.
yuriks
endrift: also check https://github.com/citra-emu/citra/blob/master/src/core/hle/kernel/address_arbiter.cpp for how Signal behaves
jr_
Black cocks, yeahhh
StapleButter
lol
yuriks
I wonder who that is
StapleButter
someone with IPv6
yuriks
would be really handy if AddressArbiter supported checks other than "less-than" :/
checking interleaving is fun and totally not tedious at all :P
interleavings*
ABigDeal
ctcp HylianSavior version
man, my irc is not good today
yuriks
haha
« prev 1 2 3 4 next »