rjanicek / vice.js Goto Github PK
View Code? Open in Web Editor NEWVersatile Commodore Emulator for JavaScript
Versatile Commodore Emulator for JavaScript
Hi :)
Nice work :
https://vice.janicek.co/c64/
Would it be possible to run prgs from URLs?
Then it would be even finer to generate 1 Linkf from that to send it
to friends :)
Wish you fun and succes.
thx
ps: Your E-Mail-Address is ooo (out of order), so i had to search you. ;)
Currently you can load in a disk image and during that session you can save files and load them, but from what I can tell you can not then export the changed image out as base64 or as a d64 file.
I would like to use the emulator as a teaching tool, allowing students to save their work.
Possible?
Does someone know, how to configure a joystick-keymapping for vice.js?
As far as what I have found, I can only trigger C64 key-codes, but not codes for the joystick programatically. (Like: function sendSpaceKeyPressedCode() { Module.ccall('keyboard_key_pressed', 'undefined', ['number'], [32]); } )
Can I do something similar with the joystick?
I found a thread from a user on a forum, that pretends to got the joystick working online (here the example). When I went to the code, I just found a command line option, and it seems, that the emulator uses the joystick default-config with the num-block, that seems not a good choice for making it compatible to the web.
Can the joystick-config somehow get configured?
Can anyone tell me what is wrong with the follwing function? It reads the rom and base64 encodes the file but for some reason it won't load. vice.js
The console log shows the following:
UTOSTART: Autodetecting image type of disk-image.d64'. Filesystem Image: Error - Cannot open file
disk-image.d64'.
Tape: Error - Cannot open file disk-image.d64' AUTOSTART: Error - Cannot open
disk-image.d64'.
AUTOSTART: Error - `disk-image.d64' is not a valid file.
// Convert file to base64 string
function loadFiles(){
var xhr = new XMLHttpRequest();
xhr.open("GET", 'roms/last_ninja_s1.g64', true);
xhr.responseType = "blob";
xhr.onload = function () {
var reader = new FileReader();
reader.onload = function(event) {
var base64encoded = event.target.result;
var base64array = base64encoded.split(',');
var base64EncodedFile = base64array[1];
console.log(base64EncodedFile);
FS.createDataFile('/', 'disk-image.d64', window.atob(base64EncodedFile), true, true);
}
var file = this.response;
reader.readAsDataURL(file);
};
xhr.send();
}
thanks.
What it says in the title. Issuing it just results in a frozen BASIC screen.
Hello.
I tried your online demo and it seems that this emulator does not work with Chrome at all.
I tried Prince Of Persia and Monster Busters.
I can see title logo in first game, and hear short intro sound in second game.
After this, emulator dont do anything and seems to be frozen.
Everything is working correctly on FireFox.
I am not sure what is going on, but I dont think you should blame Chrome.
I played more than 20 JavaScript emulators last week for different old computers and consoles, and none of them had problems to work under Chrome (in fact they worked faster than on FireFox).
Can you please add VIC-20 (xvic) too?
This does not allow print to function.
Hello,
I'm working in a small sprite editor (multi-sprite, multilayer) using js.It'd be great if i were able to embed the emulator in the web page, and display the sprite preview directly in the c64.
Maybe, it'd be possible to edit sprites, code, or even debug (given enough support) in the browser, targeting the running emulator!
By trial-and-error i was able the location of the screen memory in the HEAPU8 array (i dont know if the whole ram is mapped in that same chunk), but i was not able to find where the vicII registers are mapped.
Is all this even possible?
Hi,
I've tried to follow your instructions
But I've used version 1.14.1 tar.gz snapshots of emscripten, emscripten-fastcomp and emscripten-fastcomp-clang
It builds but I'm unable to make it run in the browser - uncaught exceptions keep coming - the latest one:
SDL_Delay called on the main thread! Potential infinite loop, quitting.
Looking at your webpage retroplay.co shows that it is possible to make vice work
Are all your tweaks published on github ?
Can you give me a hint on how to get further ?
Thanks in advance.
First of all: this is amazing stuff! It's quite awesome to see my ancient dabbles on the c64 in a browser!
I tried your demo that auto-runs a D64 disk image (http://rjanicek.github.io/vice.js/auto-run-a-D64-disk-image.html) and it loads fast: 2-3 seconds!
But when I try one of my old demo's the same way (http://webtweakers.com/dump/syndic.html) it loads slow: 30-40 seconds.
Why is this? I'm assuming it has to do with the disk-image, but am not sure.
Any idea about how to gain speed improvments with the use of wasm ?
Maybe just a recompile with a proper emcc option ?
Hello.
Default graphics are blurred by some kind of antialias filter when display is resized.
Is there any way to turn it off and keep display to look like real retro pixel?
Thanks.
Hello, first of all, let me congratulate you for vice.js, it's great. I was using vice.js in https://vice.janicek.co/c64/ and it works perfectly, but when I tried to use the configuration of https://github.com/rjanicek/vice.js, the sounds cracks a lot. Can you share with me the uncompressed code of the file https://vice.janicek.co/js/index.js that has the loader and configurator?
Best regards and waiting for your comments,
Leonardo
Long time no update...
please refresh to latest vice :D
Seems there are a lot of them missing. One in particular is -autostart-warp. So since that one is missing how do I get it to speed load from a d64 image?
Great work!
As far as I can tell, the emulator does not work with BASIC .prg programs. They are loaded, but crash soon. LIST shows a garbled program. The same program will work if packaged in a .d64 file.
I suspect this is because the end of the BASIC program (location 45/46) is not set proberly when loading .prg files.
Thank you
A Upgrade to 3.4 would be nice. On 3.4 it's possible to send the Joystick Keyset's with the arguments while load the files.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.