Closed pixeltris closed 3 years ago
Hi, thanks for the interest!
I was actually thinking about setting up a small website using GitHub Pages with a few demos like OS/2 and Windows NT, but I don't want to risk getting a copyright strike on my account.
Unfortunately, I don't have a web server of my own, so if you know of any free web hosting solutions, I'd love to hear about them. One issue might be bandwidth -- OS/2 downloads around 10 MB per boot, Windows XP downloads 70 MB.
I only use savestates for debugging long boot processes (Windows XP and beyond), although they would definitely speed up the boot process and allow for less bandwidth. There are some issues with large disks and async XHRs, but they can be worked around.
Yea, hosting images on GitHub could potentially cause issues. I'm not much help in regard to potential hosting platforms unfortunately! If it were me I'd probably just create a throwaway GitHub account and just use that for the hosting side of things.
The reason I mention save states is because sometimes I like going to v86, setting something up and the returning to it some time later (though I guess some sort of file mounting might be a good alternative to that).
I tried implementing in-browser savestates a while ago, so some code is already there. The only problem is that the savestate uses multiple files, which probably have to be exported as a ZIP file or something. I'll probably have to use a library like JSZip or tar-js.
I'll have to look into free file hosting that preserves the names of the files -- the block driver depends on disk image chunks following a specific pattern (i.e. blk0000005a.bin
). It would also need to support CORS.
I could also probably set up a demo like v86 where you could upload your disk image and have it read using the FileReader
API. That wouldn't be hard to implement since the block driver for the Emscripten version is written in JavaScript.
Savestate loading seems to work now. I created a savestate in the native version and loaded it up in the browser, and it seemed to work. I created a new tool, tools/savestate_format.js
, that compresses savestates and makes them usable in the browser.
I'm using JSZip to export savestates at the moment, but it's too slow -- it takes around five to ten seconds to compress ~40 MB (RAM, VRAM, device state, and disk image chunks). Maybe zip.js has better performance.
Awesome! I guess there's always the option of passing it over to some C code if js just isn't suitable for that kind of thing performance wise.
Sorry, have been a bit distracted with other things.
The configuration system as it is right now is a bit broken -- in particular, runtime.js
is a bit of a kludge. I'll probably have to refactor the Emscripten support code into a different file and rewrite the other support code. Right now, the only way for me to select a disk image is through a query parameter, and I'd like to change that because the FileReader
and File
APIs seem like neat ways to read a local file into memory. A configuration UI of some sort would be nice too.
I'll try doing this over the next few days.
I created a nicer UI with Bootstrap. It supports the loading of disk images through a file upload now.
There are still some rough edges here and there and I just started learning Bootstrap today.
You could do ReactOS in a demo site. It is GPL as well. I would just ask for permission just to be safe, but if you are worried about copyright strikes, ReactOS should be fine.
Forum Chat Website Mailing lists ReactOS IRC - #reactos on freenode
That's a good idea, and I'll look into setting up a demo in a separate repository, along with Linux and "abandonware" like OS/2.
On 9/25/20, Wyatt Jackson notifications@github.com wrote:
You could do ReactOS in a demo site. It is GPL as well. I would just ask for permission just to be safe, but if you are worried about copyright strikes, ReactOS should be fine. ReactOS contact info
-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/nepx/halfix/issues/3#issuecomment-698999789
I set up a tiny website using GitHub Pages: nepx.github.io/halfix-demo. It has NT 4.0, OS/2 Warp 4.5, and a random Linux distribution.
Great job on this project, it's nice to see another x86 emulator which can target the web. It's written very nicely too, so props to you!
I think it would be great to see a dedicated website for this so that people can easily try it out. I guess some more work might need to be done on save states?