dynamic loading of assets (full-offline support) (WIP)#61
dynamic loading of assets (full-offline support) (WIP)#61foxsouns wants to merge 38 commits intoBinBashBanana:masterfrom
Conversation
this might work.
step one of fixing stuff
step two of fixing offline
trying out something
|
@BinBashBanana need some help on this: could you explain, to the best of your knowledge, how the cores are loaded in this? i need to know where it is hitching on to get past where i am at. |
|
just realized that, by default, index.html doesnt even work locally (with internet), meanwhile i have a menu working (without internet). so, at least i have progress towards something functioning. |
let's try this
|
I'm already working on this for the next release (v6.6), see #52. Since cores are 2-6 MB (per core), I don't want to bundle them all in one file, but instead download them once and use the Cache web API for offline use. I will bundle the essential assets (javascript, css, etc) into the offline html file. To answer your question, each core has 2 parts; the .js file and the .wasm file. The .js file is loaded from |
|
@BinBashBanana still going to work on this to a functional state on my own: i need something to spend my free time on anyways. i will adapt my end goal to that though: ends up with less work on your end for |
i am silly
|
Ok! |
..it never even loads the core |
|
This happens when you load the core from a |
Which is, indeed, what my purpose here is: any idea on why they do not function? Thinking about potential workarounds: I guess I could try to implement indexdb loading to get around it, but that seems like a handful that I don't exactly want to attack until necessary. |
|
Most browsers disable XHR/fetch to
|
|
(Doing this may increase load times, because modern WASM streaming won't work) |
|
Ah, I see. Everything works from Github Pages: now I guess I have to figure out how to actually use indexeddb, now. And.. also do that with the BIOS files, too. ...Or just embed the BIOS files in the repo.. but that's a bit storage-wasteful. probably just do the above, as much as that may suck to program. |
|
This is why I want to use a service worker cache, it will make it much easier for the asset bundle, cores, and BIOSes.
Originally posted by @BinBashBanana in #52 (comment) |
|
Although, now that I think about it, service workers may not work on |
|
Just a heads up, this is not dynamic linking. Dynamic linking is something else I have planned for the future, see here. |
sorry: must have mixed up "linking" with "loading" somewhere, haha. to clarify: i always meant "loading". oops. |
|
@BinBashBanana: thinking of different ways this could be implimented: i have a few i could work on, and wanted your opinion on it. possible approaches
|
|
I think automatically downloading everything would be a bad idea, so I want to have a manager (one of the modal windows) for it. Unobtrusive would probably be best (?) |
|
@BinBashBanana this is roughly what i had in mind (ignore the quick paint art) |
|
Something like that yeah. There are no per-core assets, besides the BIOS files. So it could look like:
|
|
right, that makes sense |
|
i havent forgotten about this: life has only taken priority for a bit. it will probably stay like that for a bit more.. taking a couple of days to myself, to recover and focus on myself, and also thanksgiving stuff.
|
|
sorry about going kind of stale on this. life has been rough, and i haven't been feeling very motivated. this is still something i am willing to work on, it's just going to take a bit. |
|
It's all good. I frequently feel demotivated as well. |



todo here now.
this is the pull request for dynamic loading of assets in webretro. for discussion, and a general "problem tracker". goals and stuff are above.