Giter Site home page Giter Site logo

floooh / chips-test Goto Github PK

View Code? Open in Web Editor NEW
371.0 371.0 44.0 27.43 MB

Tests and sample code for https://github.com/floooh/chips

License: MIT License

CMake 0.02% Python 0.39% Batchfile 0.01% C 68.07% Assembly 31.17% HTML 0.06% CSS 0.02% Makefile 0.23% BASIC 0.05%

chips-test's People

Contributors

floooh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chips-test's Issues

Sorry, one more question. Regardingtest 0x37.

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.

ay-3-8910 clicky sound?

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.

ay-3-8910 aliasing issue

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.

cannot open include file stdalign.h

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

webpage fixes reminder

  • start command for IK+ is broken
  • reduce CPC text input speed a bit, sometimes shift isn't recognized

Keyboard input problem for games

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 .

The problem

In

case SAPP_EVENTTYPE_CHAR:
you check most keys in the keyboard from char events, as they don't specify key down/up, the key up and down event are sent in the same frame. This seems mostly fine on the default CPC's firmware but some games may need to hold the key for more than 1 frame, for example our game's jump height varies based on how long you have been pressing the key. Our game
I suppose that you did it that way in order to map any keyboard layout to the original, for example on the CPC's case the symbol " is on the Key 2 but on today's keyboards it may vary.

Solutions?

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!

Is there any way to save state from a browser and restore it later?

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.

Speed control failing on high-refresh-rate displays

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.

implement CRT shader effects

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.

emulators running slow after last update

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:

Immagine

Download `.dsk` file from CPC emulator

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!

Question Regarding Ports

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.

remove 'image-rendering: pixelated'

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).

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.