logs archiveBotHelp.net / Freenode / #3dsdev / 2015 / September / 3 / 5
yuriks
profi200: not that I know of
endrift
I might have to screw with the threading abstraction some to do this
yuriks
ideally this should be implemented in ctrulib or something
profi200: looking at the citra implementation of address arbiter might give some clues
profi200: works well enough for games, but I don't know how correct it is
endrift
what are address and value arguments?
yuriks
address of the variable your arbitrating, and value is the new value you're setting(?)
endrift
I'm so confused
I don't understand this abstraction
yuriks
you're* (my spelling is so sh*t today <_<)
they're essentially this: https://en.wikipedia.org/wiki/Futex
endrift
but where's the wake call?
yuriks
WaitSynch, let me actually check this cause I'm not sure which of the calls sleep the thread
ah, it's svcArbitrateAddress for both
one of the arbitration types is Signal
endrift
uhhh???
oh
gross
I still need semaphores though
yuriks
you implement the with that too
endrift
ok
oh..wow, apparently I have an untested 3DS threading implementation
where did that come from?
yuriks
( a° \– a°)
endrift
it doesn't use arbitration though
but I can change that
yuriks
http://owenshepherd.net/2010/the-magical-futex what a convenient tutorial
endrift
thanks
heh, it didn't even start the game
I can't tell if it's crashing or not
it might just be freezing
yuriks
with what?
endrift
my threading abstraction
yuriks
ah
endrift
oh I think I figured it out
profi200
To use the second core do this and then create a thread with processor ID 1:
aptOpenSession();
APT_SetAppCpuTimeLimit(NULL, 30);
aptCloseSession();
endrift
I was already doing that
except 80 instead of 30
profi200
80 is the same as 30 on old 3DS.
endrift
that's fine
I'm on a new 3DS at the moment
profi200
Also set it back to 0 at exit. 3dscraft doesn't do this which causes the system to slow down.
endrift
ooh
profi200
hb menu does it to be safe now but the hbs should do it not hb menu.
endrift
I think my threading abstraction is broken is all
buhh
it's not at master
*on
maybe because it's completely untested
I might have to create a stripped down program to test this
yuriks
profi200: there's also a ShutdownSystemDaemons or whatever call commercial games do on startup
any idea what that one's for?
profi200
No idea but sounds interesting.
yuriks
[ 4.550541] Service <Error> core\hle\service\service.cpp:Service::Interface::SyncRequest:68: unknown / unimplemented function 'OverrideDefaultDaemons': port=ndm:u, cmd_buff[1]=0xF
[ 4.551482] Service <Error> core\hle\service\service.cpp:Service::Interface::SyncRequest:68: unknown / unimplemented function 'SuspendDaemons': port=ndm:u, cmd_buff[1]=0x6
oh, that's networking related
I thought I remembered it being an APT call
ABigDeal
ndm nintendo daemon manager
profi200
Also it's annoying that networking is still unrealiable but ctrulib already exactly mimics official apps here.
yuriks
ABigDeal: huh
endrift
can anyone test a binary for me and tell me if it's crashing or hard-locking? I can't do that with Ironhax, since it hard-locks on crashes
I'm not sure how to debug it since this works on the PS Vita and on OS X
(it's really slow on the Vita though
)
ABigDeal
s/nintendo/network
endrift
I can't push source at the moment
profi200
Need to setup the debug stuff first.
endrift
then I'd need to figure out if it's crashing in the threaded renderer, or the threading abstraction :(
I need to replace the kernel calls with futexes since this code is kinda old I guess??
I have no idea where this implementation came from
it's not even in git
it's just...on my hard drive
profi200
magic
endrift
I must have written it months ago and not committed it because it was untested
profi200
3dsx file?
endrift
lemme upload it
profi200: https://endrift.com/files/mGBA-test.3dsx
er, please redownload
profi200
Now i already made an exception dump for the first version: https://gist.github.com/profi200/bf4a5268c6e1f634820a
endrift
sorry, I don't have the elf anymore :(
profi200
You seem to have fu*ked up some svc call. That's kernel code.
endrift
so it's probably the threading interface
please let me know if the new binary has a similar dump
also wait I got it to crash in the kernel during a load?
that's...interesting
oh wait it's a null pointer deref
nevermind
profi200
https://gist.github.com/profi200/600328049cb4ef2b2156
endrift
same crash, ok
profi200
NULL ptr write.
endrift
yep
I wonder where
you said this is in the kernel?
profi200
You must have given an svc call a bad pointer.
endrift
I think I'm setting up the stack wrong
profi200
I dunno which svc this is.
endrift
there aren't very many places I pass pointers to the kernel in this
« prev 1 2 3 4 5 6 next »