VOGONS


JavaScript port of Dosbox

Topic actions

Reply 20 of 24, by kevodwyer

User metadata
Rank Newbie
Rank
Newbie

Introduced some html5 buzzword compliance. In a nice piece of irony, adding supposedly experimental html5 tech actually improved browser compatibility. I don't have any benchmark figures, but the changes have had a slight performance improvement. Memory usage has dropped considerably. Chrome still recommended (it now runs in firefox - but only just).
Added:
- the option to offload scaling to a CSS transform (although it does give everything a slightly 'glazed' look).
- the option of WebGL rendering. Have never programmed GL stuff before, so i'm reasonably surprised it worked at all.
- now using TypedArrays for memory, disk, screen & sound buffers. A nice feature is the ability to map multiple different arrays on top of the same source array. This made it possible to streamline emulated memory access.

As it turns out there was a better way for handling audio output. Now using the WebAudio API. Also added Adlib and GameBlaster cards - almost completely untested however.

Reply 22 of 24, by kevodwyer

User metadata
Rank Newbie
Rank
Newbie

Updated test site jsdosbox.appspot.com

Over the last couple of months I have added file upload and tried to increase performance. Press the config icon and select a file to upload into the emulator. Works with small disk images (imgmount) or a regular zip file (mount). Can also upload a standalone DOS .exe or .com. Now that it is easier to play with, it has become apparent that I have let some regressions slip through. Remember browser refresh == reboot!

I have also added GUS support and couldn't resist trying some demos. Most are like watching a slideshow.
4k - Heaven by NoooN
http://www.scene.org/file.php?file=%2Fdemos%2 … he.zip&fileinfo

64k - Paper
http://www.scene.org/file.php?file=%2Fdemos%2 … er.zip&fileinfo

Tinkering on the configuration dialog can help. WebGL is worthwhile if available. The single threaded nature of JS causes havoc with the cycle timing code (dropdown in advanced). Not sure what I can do there.

Reply 23 of 24, by kevodwyer

User metadata
Rank Newbie
Rank
Newbie

New release. The 'I don't have a job' release :)

Re-baselined from a more recent jdosbox codebase (although not all the goodies are included/enabled).

other bits and pieces:
- Better zip file support
- New js compiling core (3rd attempt, still a work in progress)
- Removed a number of my failed experiments
- Keyboard event handling much better now
- It should now be much easier to use if you want to host it yourself.

see jsdosbox.sourceforge.net

Reply 24 of 24, by danoon

User metadata
Rank Member
Rank
Member

After you get a faster core one of the things you will run into is performance for RAM and Video RAM. Java can't take a byte array and directly read an int. You will see in the Memory.java host_readb, host_readw and host_readd functions that quite a bit byte manipulation happens. Have you heard of asm.js? It allows making a byte array heap and reading out ints with less overhead than they way I did it in Java. It sounds promising.

http://www.boxedwine.org/