floooh / chips-test Goto Github PK
View Code? Open in Web Editor NEWTests and sample code for https://github.com/floooh/chips
License: MIT License
Tests and sample code for https://github.com/floooh/chips
License: MIT License
The problem are shift-combinations like here:
chips-test/examples/sokol/kc85.c
Line 252 in f63750b
If the keydown happened with shift, and the keyup without shift (or vice versa), then the key will get stuck. Especially with the Spacebar this can happen accidentially when the next character requires the shift key.
It's cool to be able to drag and drop a .dsk
file onto the emulator. Would it be possible to add a download of the current disk image as well? With a JavaScript hook perhaps we could save the .dsk
into local storage or something like that? I'd like to embed this emulator into a learn-to-code page!
the image-rendering: pixelated
in emsc.html
makes it poor looking in all the main browsers I tried, would you consider dropping it in favor of the default rendering method ?
To mitigate the softness of the standard rendering, I suggest to double the pixels in the original canvas (both horizontally and vertically) and display the "doubled" version. The result will be very pleasant. I do this in my Laser 500 emulator, see how it looks here.
(P.S. I'm really amazed by this project, it's totally awesome. I will look into adding VTech Laser 500 and possibly Laser 310 (aka VZ300), but first I have to get acquainted to it and understand how to build properly. For now I keep studying the code, it's so beautifully written).
I tried SOUND 1,400,400,15
on the Amstrad CPC 646 emulator, I get a continuous tone but sometimes it's "clicky" -- it has some very noticeable glitch. It's not periodic, it happens randomly every two or two seconds.
My first thought was a browser buffer issue (AudioContext etc), but then I checked the sound on the VIC-20 emulatore and it's perfectly ok.
So I guess there's something wrong in the AY-3-8910 emulation? Can you reproduce this issue?
I'm trying to incorporate ay38910.h
in an emulator of my own but I'm having problems getting it to work properly, so I was just checking how it works in other emulators before anything else.
on the CPC, if you type SOUND 1,1,500,15
you hear an high pitched note but actually it should be inaudible (it's a 62 kHz tone). Same if tone is 1,2,3... (any low numbered value).
I think this is due to aliasing generating when downsampling from 62.5 kHz (chip frequency) to 44.1 kHz. The solution is apply a low pass filter to the 62.5 kHz signal before the decimation step.
Unfortunately I'm not good at filter at design, I guess a simple IIR filter should be ok, the only issue is that it has to be variable because you can vary both the chip and the final audio frequency.
Hi,
I'm BM, a very nice and polite guy.
Is there any way to save state from a browser and restore it later?
I would like to manipulate the states and then embed them so other people can watch a particular state and interact with it. Browser only, I don't want to install anything. Embeddable.
I've found a comment in the source code mentioning CRT effects so I would like to point you to this very cool shader effect... it has scanlines, rgbmask and pincushion:
https://www.shadertoy.com/view/XsjSzR
It doesn't need to be included in the C source code, it can be simply applied to the HTML canvas.
Add also archon because it seems to work: http://www.sta.to/64/archon0.prg
Question: how about joysticks?
I've acquired a fancy new laptop with a 144Hz display, and all the emulators run far too quickly.
A bit of a dive into the code shows that clock_frame_time
is hardcoded to return a 60Hz frame time (16ms) regardless of the (much lower) true value, causing the emulation to execute too many cycles.
Is there a JavaScript API that I can use to load a file when the user clicks a button? Or to type some text? I feel like there is or nearly is!
Hi!
I was trying to use the CPC emulator to bundle a web version of a game I made, but I've noticed that there is a problem with the input handling. Maybe you already know about this problem and that there is no clear solution .
In
chips-test/examples/sokol/cpc.c
Line 198 in b8a46cc
For our game, I've ignored the char events from A to Z and used the usual key down/up events to detect them, code here. But a more robust solution would be to just map the all key up/down events to the original keyboard's position. Although some keys won't match in some keyboards, it will be the "real position", in Retro Virtual Machine works that way.
We can also add a toggle to change the layout to "physically correct" or not.
Thanks for these emulators by the way!
Bla...
Hi,
Again, thanks for this great test suite.
I'm struggling to get my emulator to pass test 0x37 (SCF) though.
Would you be able to point me in the direction of the expected behaviour please?
Thanks,
Steve.
Like this: https://8bitworkshop.com/v3.6.0/?platform=c64&file=eliza.c
Should use kc85? Is write C no ASM knowledge.
Your could is emulator too? How create new ROM?
Thanks
Forgive my ignorance but, how can I host one of these myself?
Hello,
I tried building chips-test on Windows 11 but when I do fips build
I get "cannot open include file "stdalign.h"" on a few of the files.
Cheers
Sam
How does one setup the ports before running a particular test?
It seems there's not provision for port data in the input.
Thanks for the awesome test suite!
Steve.
I checked the Tiny Emulators web site and it seems that C64 and VIC20 now run much much slower than before!
I did the following simple test:
5 TI$="000000"
10 PRINT TI
20 GOTO 10
running in parallel on an instance of C64 "chips" and another of the "VICE" emulator (both PAL).
The VICE overtakes the "chips" even if it is started seconds after. Illustrated in the picture below:
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.