Looks pretty good! Check out some demos of Dvik&Joyrex (e.g. Waves, MSX Unleashed and Utopia) and you'll see that most stuff is working, but there are some glitches. E.g. it doesn't seem to be that the background color is line-accurate.
See http://www.dvik-joyrex.com/ for the downloads.
Love this initiative. Following the developments with high interest. *bookmarks
Looks pretty good! Check out some demos of Dvik&Joyrex (e.g. Waves, MSX Unleashed and Utopia) and you'll see that most stuff is working, but there are some glitches. E.g. it doesn't seem to be that the background color is line-accurate.
See http://www.dvik-joyrex.com/ for the downloads.
Yes Manuel! Backdrop color is still frame-accurate.
It will be a little tricky to implement since I use a special method to render the borders of the screen to gain a little in performance, then the entire border has to be on solid color for now...
I will first support the line-accurate backdrop inside the visible area of the screen, and leave the backdrop borders for later. That will be today's fun!
Peccin
@ppeccin Nice work. I was hoping someone would be able to create a browser based MSX emulator. :-)
Release 0.93 online! Please go to http://webmsx.org
New in Release 0.93
- Line accuracy for backdrop color and blank screen
- Better invalid sprite handling
- Collisions for transparent sprites are now detected
- Rendering performance tuning
Regards,
Peccin
Guys, just a bit of documentation on which parameters you can pass to the emulator via URL query parameters or script tags.
If you open the wmsx.js file, you will see in the top of the file a bunch of parameters. You can change any of those via URL parameters, but be careful.
Ex: webmsx.org?SCREEN_COLOR_MODE=3 (this will emulate a B/W TV)
Remember you can pass several parameters at once, just use the char "&" as a separator.
In addition to those, we have some useful shortcuts and machine preset configurations. Here are they:
preset=ntsc (this is the default)
preset=pal
preset=nodisk
preset=palnodisk
preset=expert (for Brazilians :-)
preset=expertnodisk
preset=empty (completely bare machine, even without BIOS)
rom, cart, cart1, cart2 (all these parameters are used to load files)
disk, diska, diskb
tape
state
exp, exp0, exp1, exp2
bios
Ex: webmsx.org?preset=expert&rom=file.bin (this will launch the Expert machine with the ROM "file.bin". But remember the ROM URLs need to be hosted on the same domain)
You can also drag and drop ANY file on the emulator, even BIOS ROM files! It will auto-detect the type of the file and load it in the appropriate slot/port, if supported.
If you are hosting the emulator on your own website, you may set any of those parameters directly in a script tag on your page. You do not need to user URL parameters. URL parameters are used to change and try things dynamically, for testing and experimentation, and are not intended for end users.
For any questions, please PM me or ask in the forums!
Regards,
Peccin
The drag and drop of ROM files is so amazing, especially with BIOS roms. It works very good, for example with Korean MSX bios and hangul roms. The first one is detected as BIOS, the second one is automatically inserted in slot 1 and the final result is a complete Korean MSX online ! And slot 2 is still free for playing ROM games !
I have 2 questions :
- on which keys do you have mapped the GRAPH and CODE/KANA/HANGUL keys ?
- could you add an option to respect the keyboard layout of the emulated MSX instead of the keyboard layout of the PC host ?
The last one is for example using French MSX bios (AZERTY keyboard). With your default option, Q and A are found at their place on the PC keyboard (I have a Belgian AZERTY keyboard) when using a QWERTY MSX bios, but if I use the French MSX bios, I get A when pressing Q and Q when pressing A, although the French MSX keyboard is very close to the Belgian AZERTY PC keyboard.
@m2y: graph: page up, code: page down
https://github.com/ppeccin/WebMSX/blob/d7645243acec4cd1c1bcb...
@ren: Thanks !
I have 2 questions :
- on which keys do you have mapped the GRAPH and CODE/KANA/HANGUL keys ?
- could you add an option to respect the keyboard layout of the emulated MSX instead of the keyboard layout of the PC host ?
The last one is for example using French MSX bios (AZERTY keyboard). With your default option, Q and A are found at their place on the PC keyboard (I have a Belgian AZERTY keyboard) when using a QWERTY MSX bios, but if I use the French MSX bios, I get A when pressing Q and Q when pressing A, although the French MSX keyboard is very close to the Belgian AZERTY PC keyboard.
Yes, here are the mappings:
GRAPH: PgUp,
CODE: PgDown,
DEAD: End,
STOP: Pause/Break,
SELECT: Scroll Lock
STOP and SELECT are also alternatively mapped to "[" and "]" if you hold ALT pressed.
Those will be configurable in future releases.
Regarding the keyboard layouts, this is a VERY difficult matter, specially for Web applications. You know, there is an enormous number of combinations of PC Keyboard, OS, Keyboard Config on the OS, Browser and MSX keyboards for all languages (as seen by the BIOS). Its almost impossible to solve completely, since browsers report different key codes depending on the Keyboard config on your OS, and the browser itself. So when I get an "A" press reported by the browser, it was already automatically translated by the OS/Browser, and I cannot tell where it really is located on the physical keyboard. I just have chosen for now to support first US and BR keyboards, and add more later.
So, in your case, I think the only solution for now is to set your keyboard configuration as US in your OS, so the emulator will end up mapping your "A" key to the original US "Q" location, which will give you an "A" in the French BIOS.
One solution would be to "know" all the possible MSX keyboard layouts for all languages/models, which would require an extensive database of information... Add to that the mappings to the correct Host computer layouts, OS, browser, etc, and it will rapidly get pretty horrendous! I do not plan to try that.
The complete solution I plan is to make the keyboard layout completely configurable in the emulator. I don't know how the more mature emulators solve this issue.
Peccin