Giter Site home page Giter Site logo

webmsx's Issues

LZH decompression of disk images?

some archives have files available as LZH compressed disk images, e.g beamride.lzh. on-demand decompression of these disc images would make use of these files a lot more user friendly.

would it be feasible to try to uncompress given LZH image and proceed similar to what is done with ZIP disk images?
I have not tested compatibility with MSX files, but at least npm has lzh package available. I have used lhasa to decompress the files and then load the directory as disk to run that kind of images, which is doable, but cumbersome.

Please declare a license for the codebase

Several files mention this in the header:
// Copyright 2015 by Paulo Augusto Peccin. See license.txt distributed with this file.

But I could not find a license.txt file anywhere.

Can we load a disk and start some program (not autoexec)

We are building a site with a database of all listings published in MSX Compute Magazine (late 80's). You have been in touch with Hayo before I think.

For most programs it works fine, we create a URL like:

http://webmsx.org/?MACHINE=MSX2E&DISKA_FILES_URL=http://www.msxcomputermagazine.nl/archief/listings/mcmd56.di1/sneeuw&BASIC_RUN=sneeuw

And the emulator starts and runs the file. Nice.

But, some software needs more files, or loads pictures for instance. So we would like to load multiple files and/or the full disk image, and then start the specific program. I've tried:

http://webmsx.org/?DISKA_URL=http://www.msxcomputermagazine.nl/archief/disks/mcmd15.di1&BASIC_RUN=sneeuw

but that starts autoexec, not 'sneeuw'.

Is there any way to do this currently?

Feature request: Video & Audio recording

It would be nice to be able to make a recording (audio & video) of the emulation. Preferably with the posibility to switch the OSD (Hz change, etc..) on/off :)

Pointer lock to gamewindow

On a multimonitor setup when playing a mouse game like breaker if I move the mouse too far to the right or left, the position get's weird, is it possible to lock the mouse to the game window or only send mouse data when the mouse pointer is actually within the webmsx rectangle?

Issues using bluetooth keyboard (iOS)

When trying to use a Bluetooth keyboard under iOS, input will often get stuck repeating the last few characters. Turning off the Bluetooth keyboard does not stop the repeats.

URL special characters in DISKA_FILES_URL

I'm trying to load

http://webmsx.org/?MACHINE=MSX1E&DISKA_FILES_URL=http://www.msxcomputermagazine.nl/archief/listings/mcmd01.di1/blue%26pin&BASIC_RUN=blue%26pin

Note the url escaped & in the filename 'blue&pin'.

the basic_run works, but the file doesn't. The request the emulator makes to my server is:

54.147.43.152 - - [01/Feb/2017:10:27:25 +0100] "GET /listings/mcmd01.di1/blue HTTP/1.1" 404 508 "-" "-"

note filename is missing '&pin'. And the resulting 404 error.

looks like the emulator doesn't escape the filename. I think it should, although i could probably make it work by escaping twice ;-)

I would prefer not to change the weird (but historically correct) filenames of course.

Loading a state resets the sprites mode

WebMSX: 5.0.4
Browser: Firefox 54.0
OS: Fedora 24

Steps to reproduce: Load this state file. Set sprites mode to "both". Save the state either as a file or internally. Load the newly saved state. Sprites mode is set to "normal" again.

No sound iOS

Hi

I have been using webmsx for a few days on my iPad. I noticed today that sound stopped working. Is this a known issue?

The game Dires runs with corrupted graphics

The presentation runs fine, but when the game starts, the graphics are corrupted and the colors are incorrect.

The ROM type seems to be correctly detected as ASCII8SRAM2.

Impact of browser security/privacy measures & configuration on performance

This first occured to me when running Nyrikki's Fin Lander (a 10-line BASIC program) in Firefox Quantum (59 beta) (as opposed to 52 ESR) - the game seemed to run slower (confirmed for sure by the slow rate at which the end of stage tune played). I noticed wmsx Error: Could not detect video native frequency. V-Synch DISABLED! in the console.

Seemed to be the privacy.resistFingerprinting setting at play here (when set to true).
And I think in the future privacy.reduceTimerPrecision will be an issue as well.

The latter I believe will be by enabled by default in FF59, with a precision of 20us (which is already in effect since FF 57.0.4, but will however be raised to 2ms in FF60). privacy.resistFingerprinting is false by default.

Workaround (for now) is making sure privacy.resistFingerprinting is set to false.
Setting privacy.resistFingerprinting.reduceTimerPrecision.microseconds to 0 wasn't enough so it seems.

I didn't look into Chrome.

Resources:

https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/

Is there an API?

Is there a way to (for example) load a new ROM image into a cartridge slot through Javascript?
Use case: an online emulator where visitors can select a ROM from a list of games.
Instead of reloading the entire emulator, I'd like to load a ROM image as if it was loaded via the "Load ROM image" option in the "Cartridge 1" menu you can use from the toolbar of the emulator.
Something like this:

WMSX.loadCartridge(1, 'games/game.zip'); // 1 = cartridge 1

Is there (or will there be) anything like this available? Thanks for considering!

Subslotting Slot 0

I defined a new machine (MSX2 Middle East PAL) using the following configuration:

_MSX2M: { _INCLUDE: "_MSX2BASE", BIOS_URL: "@ax370bios.rom", BIOSEXT_URL: "@ax370ext.rom | @ax370arab.rom", BOOT_DURATION_AUTO: 400 },

The machine works well, except when loading an Arabic rom in one of the external cartridges! In this case, the emulator does not load the Arabic font (ax370arab.rom) and hence the Arabic rom does not work.

I want to put ax370arab.rom in slot 0 along with the ax370bios.rom, so the Arabic font is always loaded. Any idea how I can do this?

Thank you.

Debugging

Thanks for the great work!

Is there an API for debugging? I see commented code for breakpoints in Z80.js and I tried rummaging through the WMSX.room.machine.* space; I can dump the regs;

WMSX.room.machine.cpu.toString()

but I haven't figured out how to dump memory or put a breakpoint and step etc. Is that in yet or that's just on the roadmap?

Wrong RAM allocation for Yamaha MSX2 machines with external BIOS

The RAM is allocated in subslot 3.0 instead of 3.2 for the Yamaha MSX2 machines. There should be a way to specify the RAM location in the settings because a lot of software assumes that RAM is in 3.2 and won't work if RAM is in a different subslot. Example URL showing the wrong RAM subslot allocation:

https://webmsx.org/?BIOS_URL=http://www.podrezov.com/webmsx/yis805.rom&BIOSEXT_URL=http://www.podrezov.com/webmsx/yis805sub.rom&P=RAM128,NOMSXMUSIC&CARTRIDGE1_URL=http://www.podrezov.com/webmsx/TESTRAM.ROM

Default Yamaha YIS805 machine slot configuration:
https://www.msx.org/wiki/Yamaha_YIS-805

Overscan renders lines between the height toggle incorrectly

In the attached ROM file I have a screensplit which switches from 212 to 192 lines on line 210. After line 212 I switch back to 212 lines. This does enable overscan in WebMSX, however on lines 210 and 211 it does not show the correct image, rather, it shows the content of (I’m guessing) 20 lines above.

Switching line count of the V9958 never updates the current line counter, rather as I understand it it just changes the last display line, as well as the initial (negative) value of the line counter after the vertical sync/erase (+ display frequency offset + vertical offset + vertical adjust).

Test ROM: tiletile.rom.zip (KonamiSCC mapper)

Verified on openMSX and my turboR.

p.s. The window also doesn’t show 6 lines of overscan on both the top and the bottom. That’s fine, it’s overscan after all, but I still thought I should mention it.

Cannot load userPreferences

Downloaded master branch from git today and generated a release version using Grunt.
When using this version, it says that wmsx.userPreferences.load() does not exist.

Gamepad on iPad up and down swapped

Hi, the Steelseries Nimbus is viewed by WebMSX and works! The biggest issue is that the up and down direction are inverted. Only left analog stick is working. No way to riconfigure it (over mouse). Buttons are ok!
Thanks for this great project!

P.s. in order to enable it just open the ”steelseries nimbus” app and leave it open

Performance and webassembly

I just tested it on the browser of a Tesla Model S:

https://youtu.be/D4XYz8YLdlQ

It is pretty cool that it actually works but the experience isn't amazing as the emulator is running slow.

I was wondering how the core performance is. I read articles mentioning webassembly and just wondered if the emulator is making use of it.

MSX-Audio (Y8950) support

Has been reported/requested before, just making an issue for this.

Quite a popular sound expansion (in the form of the Philips NMS-1205 Music-Module) in the Dutch indie/demo/tracker scene.
The 1205's on-board ADPCM 32 KB sample RAM can/could be expanded to 256 KB, which is used by some software (including the Unknown Reality demo).

The sound chip is also supported by some titles from Compile.

➡️ Support according Generation MSX.

Hydlide 2 Patched doesn't work correctly

When issuing the English Translation patch to the Hydlide ROM it doesn't work anymore on WebMSX.
IPS Patch: http://ips.tni.nl/rom/translations/
Patched file: http://www.file-hunter.com/MSX/Hydlide2.zip
This version works, but you can't save the player you have created (see this issue: http://www.romhacking.net/forum/index.php?topic=14328.0
After manually selecting the ASCI16SRAM2 mapper, the game crashes:
Patched file with correct rom-type: http://www.file-hunter.com/MSX/Hydlide2-2.zip
It seems that RuMSX even made a special ROM type for Hydlide II: http://www.emucr.com/2017/06/rumsx-v082.html

PSG emulation sometimes off

I've noticed that the PSG emulation is sometimes off or incorrect. Two games that show this very well:

http://www.file-hunter.com/MSX/index.php?id=alibaba
Here the music is just off. The original game seems to play with the pitch of the notes a bit, generation a more eastern note-set.

http://www.file-hunter.com/MSX/index.php?id=chuckieegg
In this game, after the welcome noise, the PSG just goes crazy. I've tested about 10 versions in WebMSX and they all have the same problem, while functioning OK in multiple OpenMSX configurations.

Both games do display a warning in OpenMSX that they show behaviour which could damage the PSG in old systems. Maybe the PSG emulated in WebMSX is of that "older" type?

Cannot load files with spaces on their names

I've tried to load some files using JavaScript and I have noticed that the emulator fails to load them. I get a 404 not found error:

Could not load file(s):

No valid ROM, Cassette or Disk found.

Here's an example of one of my files: Andorogynus (Telenet Japan, 1987).zip

Japanese keyboard _ ろ key operation is not suitable (\ key)

Japanese MSX users confirmed that they can not enter the _ ろ key (\ key), and I reported it.

Japanese MSX can not input "\". (The corresponding code is assigned "¥")
Therefore, if we enter the relevant key, no input is entered and the Shift key is entered "_".

1462575717

Setting up a Custom MSX machine

Webmsx has the possibility to run ROMs and DSK from Internet. Please add a feature to use specific MSX machine's ROMs that could be loaded from Internet as well. For example in the "Select Machine" add a dialog called "Custom MSX". From this dialog a user should be able to select the machine type (MSX1/2/2+), color system (PAL/NTSC), region (USA/EU/JAPAN) and the machine's BIOS file(s). Thanks.

Example: I would like to run the specific MSX2 machine - the Yamaha MSX2 YIS503IIIR to be able to see the Russian letters in the software that I use. There's no such possibility at the moment. But replacing the BIOS ROM and SUBROM that you use in a similar MSX2 configuration with the specific Russian-localized machine's BIOS and SUBROM files would solve the problem.

Loading tape from local filesystem

Hi, i'm trying to launch WebMsx like a regular "offline emulator", by running chrome from the command like, calling the "embedded" release and passing it a tape and other configurations.

The launcher i came up with is the following:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files --start-fullscreen "file:///C:/Users/xxx/dev/WebMSX/release/stable/5.4/embedded/index.html?SCREEN_FULLSCREEN_MODE=1&TAPE=file%3A%2F%2F%2FC%3A%2FUsers%2Fxxx%2Fdev%2FWebMSX%2Frelease%2Fstable%2F5.4%2Fembedded%2Fcaduta_massi.cas"

It all works except i cannot load the tape from the config option. First error i get is obviously "blocked by CORS policy", but the --allow-file-access-from-files parameter should bypass that. And indeed i don't get the CORS error anymore on the console, but i still have WebMSX giving error:

wmsx: Reading file from: file:///C:/Users/xxx/dev/WebMSX/release/stable/5.4/embedded/caduta_massi.cas
wmsx.js:352 Could not load file: file:///C:/Users/xxx/dev/WebMSX/release/stable/5.4/embedded/caduta_massi.cas
Error: 0

Any idea on how to bypass that ?

Media is not mounted correctly when external BIOS and SubROM are used

Media is not mounted correctly when external BIOS and SubROM are used. When the media is mounted, the new drive is not created and all available drives in a system always return "Disk offline" error.

Example of mounted media not working with external BIOS and SubROM:
https://webmsx.org/?BIOS_URL=http://www.podrezov.com/webmsx/yis805.rom&BIOSEXT_URL=http://www.podrezov.com/webmsx/yis805sub.rom&P=RAM128,NOMSXMUSIC?DISK_FILES=https://wiki.yola.ru/_media/msx2scrn.bas&BASIC_RUN=msx2scrn.bas

Without the external BIOS and SubROM this works:
http://webmsx.org/?DISK_FILES=https://wiki.yola.ru/_media/msx2scrn.bas&BASIC_RUN=msx2scrn.bas

Please fix, thanks.

REQ: Key Press during boot-up

Would it be possible to add the possibility to virtually push a certain key during boot, specifically the CTRL so you can boot with 1 drive, clearing up some extra memory.

cant type quotes

i cant type (double) quotes in de emulator, using my US keyboard. Using F2 (cload") and backspace is a workaround, but not a good one ;-)

changing keyboard type (alt-l) doesn't help.

same issue with ` ~ ^ ' " .... i think its related to the fact my ubuntu OS uses them as dead keys to allow combining them with letters like ö, so to get the quote i type quote / space: ".

can others type qoutes? is this issue known? If not i'll have a look in the code, see if i can find the cause and maybe fix it.

Hunchback crashes

I've been trying to get Hunchback working on WebMSX, but no matter what version (CAS, DSK or ROM) the game will not even show it's title screen.

Ingame music issues

In game music sounds awful; I guess that is my setup; Ubuntu linux with Chrome. But any idea why it happens as video sound + browser game sound for non webmsx stuff sounds great. When I am running something like Metal Gear 1, Chrome pulls a consistent 50% CPU in top; not more not less.

CPU Turbo modes don't function

I have added Illusion City to my site, but it keeps nagging me about the fact that that machine I have set is not running in Turbo mode. When I set the CPU to 4x speed through the Quick Options menu the CPU 4x appears and all works fine. But no matter which option I use:

'CPU_SOFT_TURBO_MULTI' => 4,
'CPU_TURBO_MODE' => 4,
'Z80_SOFT_TURBO_MULTI' => 4,
'Z80_CLOCK_MODE' => 4

The CPU x4 doesn't appear and the software seems to keep running on 3,57Mhz.
In the past the 'CPU_TURBO_MODE' => 4, seemed to work fine. I have added the files and the webpage is: https://www.file-hunter.com/MSX/index.php?id=illusioncity
I hope you can find out what I am doing wrong here.

BASIC_ENTER doesn't seem to work?

I try

http://webmsx.org/?BASIC_ENTER=print%20%22hoi%22

expecting to have the print statement executed, but it I end up in an emulator just showing OK promt... Am i missing something?

change machine to gradiente 1.1

is there any option to change the machine to use Gradiente 1.1 rom for example? Did not find anything in the documentation about it.

Wrong drive allocation when connecting a DSK image to a machine with internal disk ROM

I observed the wrong drive allocation when connecting a DSK image to a machine with internal disk ROM in the SubROM. The connected disk image becomes C: instead of A:

Example URL where my DSK image becomes C: drive after booting, disks A: and B: are offline:
https://webmsx.org/?BIOS_URL=http://www.podrezov.com/webmsx/yis805.rom&BIOSEXT_URL=http://www.podrezov.com/webmsx/yis805sub.rom&P=RAM128,NOMSXMUSIC&DISKA_URL=http://www.podrezov.com/webmsx/prog1.dsk

Machine configuration:
https://www.msx.org/wiki/Yamaha_YIS-805

Can BASIC_BLOAD and BASIC_BRUN be added?

we have some binary files on the disks that should be bloaded and run. Most importantly MemMan (but that would like MSXDOS as well, a different issue ;-) )

BASIC_BLOAD could do BLOAD "" (not needed now, but makes things consistent i think)
BASIC_BRUN could do BLOAD "",r (that is needed)

We could use BASIC_ENTER of course, but the above would be more clean I think...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.