Views: 1,611,792 | Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search | 12-04-24 08:03 AM |
Guest: |
Main - Posts by StapleButter |
StapleButter |
| ||
Member blarg Level: 30 Posts: 81/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Dunno what's pulled there, but maybe the issue is onProgress() taking too much time? Dunno.
It's really weird, though. blargSNES can load ROM files that are 512KB and more, and it's mostly instant. I fail to see why your code would be slow, unless there's some terrible overhead to using fread/fwrite, but I don't think there is. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 82/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
note to self: there's something wrong with the threaded DSP system
it buffers writes to replay them later, but... what about reads? ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 83/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
The main issue is that unlike writes, reads can't be 'applied later' as it needs the return value immediately. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 84/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Not sure it'd break games to the point of not booting at all, but I'm pretty sure it's causing issues to some games. I know that Super Bomberman 2 completely stops playing sound after a while (although I suspect that's a cause of the SPC sync issue, not DSP stuff).
Thing is, emulating this correctly while retaining the advantage of threaded DSP is tricky. Maybe it could be done this way: * if a read happens, tell the DSP to run until this point (using SPC_ElapsedCycles and saving the 'date' of the last run to determine how long it should run for) * then wait till it's done and read the value * the rest of the time, run the DSP like we're doing currently (accounting for runs caused by reads) * I don't know what the performance implications of this are, especially with things like waiting for the syscore thread-- syscore is busy running the rest of the system too. Should be okay, though. * mixer needs to be able to mix arbitrary amounts of samples (right now it needs a multiple of 16, seems it would hang otherwise) * mixer needs to raise a signal when it's done mixing ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 85/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Oh then, of course, if you use C++ shiz... just be sure to avoid things that can only be resolved at runtime. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 86/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
As yuriks said, you can't access everything. You can't just use FS_OpenArchive with the NAND archive IDs. Regular apps don't have access to that.
You would need to build a .cia (or .3ds) with a proper .rsf specifying NAND access. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 87/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Posted by d0k3 Yeah, although you'll need to patch the FS module to remove access restrictions. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 88/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
I don't see how it'd slow things down, smaller files would just fit entirely in the buffer and that's all. In those cases (file smaller than buffer), just make sure your code uses the size of the file rather than the size of the buffer. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 89/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Interesting. Staplehax's libkhax is modified in how it gains SVC access, and I wanted to test it against other firmware versions... gotta debug it.
Would you be available for testing debug builds sometime? ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 90/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Could be that. Could as well be bad timing.
The whole thing wouldn't work on newer firmwares anyway. I haven't adapted srv:pm registration yet, and FS patching uses hardcoded offsets. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 91/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
The libkhax we're using in Staplehax is modified, too. With the original method, I kept running into icache issues. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 92/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
I know zero about that shit. I haven't bothered to deal with it. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 93/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
The feature was added in a board revision more recent than this one. I should be able to backport it, though. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 94/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Things are more less on halt for now. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 95/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
I always wanted to eventually implement expansion chips, so... we'll see. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 96/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Either better dynarecing abilities, or threading working better because the N3DS has more cores. blargSNES doesn't really use either.
Dunno about hacks, but if they're meant to run on ZSNES, they're probably too broken for blargSNES. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 97/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Yes.
However, keep in mind that on the 2DS, the screens are physically one single screen and thus have a shared backlight, so turning one screen's backlight off would also turn the other one off. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 98/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
I'm not positive wifi would work that well. It would need pretty tight timings to work well, and dunno how much you can get with all the service crap.
It would also need a good design. There are multiple potential methods: 1) run all emulation on one console ('server'), others ('clients') basically being dumb terminals receiving audio/video and sending input data. There is the issue that this could take a lot of bandwidth, and also add load to the 'server', slowing down emulation. 2) distribute processing more. Server runs most of the emulation, and things like PPU/DSP writes are sent to the clients, and everyone handles PPU/DSP emulation. This would mean less data to transmit and thus less overhead, but also requires something to keep everyone in sync (for things like software vs hardware PPU, faster New3DS, etc...). While PPU emulation could be separated reasonably well (most of its interaction with the system can be separated from the rendering process), DSP has the issue that the game can choose to read back from it-- in this case, you end up with multiple instances of the DSP which might have produced different results. 3) send ROM over, have each console emulate it, sync input and framerate and that's all. Probably the easiest but also the most error-prone (again, the different instances of the emulator could produce different results, and this wouldn't be detectable trivially). Probably too much effort to be worth it in the long run. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 99/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Ninjhax 2.0 makes this redundant, and even works on firmware versions Staplehax wouldn't have supported. The tiny range of potential cases supported by Staplehax made it ephemeral, basically "not worth the effort".
tl;dr Staplehax is dead. The code might be useful for some fancy shit though. ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
StapleButter |
| ||
Member blarg Level: 30 Posts: 100/184 EXP: 151622 Next: 14247 Since: 10-27-14 From: France Last post: 2661 days ago Last view: 2571 days ago |
Local multiplayer is pretty much the only thing you could do on a SNES anyway, without getting into those weird things that transmitted data over satellites.
(for future reference: Terminwhatever was banned because he's a known moron who just never changes or learns. He also has a fetish for throwing himself under a bus or something) ____________________ blargSNES -- SNES emu for 3DS More cool stuff |
Main - Posts by StapleButter |
Page rendered in 0.038 seconds. (2048KB of memory used) MySQL - queries: 22, rows: 99/99, time: 0.009 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |