jeffpar / pcjs.v1

PCjs Machines 1.0 (archived)
https://github.com/jeffpar/pcjs.org
GNU General Public License v3.0
475 stars 92 forks source link

Adjust green mono color value? #71

Closed geneb closed 5 years ago

geneb commented 5 years ago

Could you adjust the green color on the mono display to be closer to the color of the P39 phosphor tube that the 5151 display used? It's around 525nm and that works out to be (approximately) #33FF00 or 51,255,0. (if someone can point me to where the color is set, I'd be happy to change it myself)

Thanks!

g.

jeffpar commented 5 years ago

I tested Video.aMDAColors with #33FF00 -- this is what it looks like:

screen shot 2018-11-09 at 1 40 45 am

What do you recommend for bright monochrome characters though? There should be good contrast between normal and bright intensities. Thanks.

geneb commented 5 years ago

I did a bit more research and I think I've come up with some better values to use. Try #29CC00 for "normal" and then use #33FF00 for "high intensity" mode. If you want a larger difference, try #26BF00 for the "normal" mode. I got these values by converting #33FF00 to HSV. Both the Saturation and Value components are set to 100%, so I backed the Value down to 75 to get #26BF00 and I bumped it back up to 80 to get #29CC00. Here are links to the RGB to HSV and HSV converters that I used - you might want to play with the dimmer values to get something that you like better than my choices. https://www.rapidtables.com/convert/color/rgb-to-hsv.html and https://www.rapidtables.com/convert/color/hsv-to-rgb.html.

jeffpar commented 5 years ago

Thanks, I’ll give it a whirl. BTW, I just went down some rabbit holes (from new website to old website to an archived Air & Space article) to learn that you take simulation to a whole new level. Nice!

geneb commented 5 years ago

Hehe. Thanks. Here's a couple more rabbit holes for you: http://geneb.simpits.org and http://www.diy-cockpits.org/coll :)

BTW, thanks for the work you're doing on pcjs, it's really cool. :) Have you ever thought about connecting the serial port to a real one on the host (or maybe a virtual modem)?

jeffpar commented 5 years ago

It would be nice to have a host serial port connection option, but I think that would require running it off your own local server. The project already includes a Node-based web server, but more work would be required to interface that to a host serial port, and then providing a protocol between the server and the client for serial port communication. I have implemented serial port communication between multiple machines on the same page (eg, virtual PDP-11 connected to virtual VT100).

Anyway, regarding color, I haven't taken the plunge on a new color palette for monochrome monitors yet, but I did implement a parameter that allows you to customize the palette to your liking -- just add "?fontColor=rrggbb" to the URL. For example:

https://www.pcjs.org/?fontColor=26bf00

Whichever color component is largest (in the preceding example, bf) is increased to ff to create the intense color; if the largest component is already ff, then normal and intense will look the same.

Hope that helps. The reason I'm reluctant to change the hard-coded values, at least for now, is because they look better to me as-is. I'm not sure phosphor tells the whole story -- there's also the "glaze" they put on the glass to reduce glare, which I think softens the real-world color a bit. But, let me know what you think.

geneb commented 5 years ago

Maybe start with the P39 phosphor color and add an effect to the screen, similar to the effects done by Cathode on MacOS - http://www.secretgeometry.com/apps/cathode/ - without the silly curvature following of course. :)

If I get time this weekend, I'll hook up my 5151 and see how it compares.

Thanks for adding the configuration option!

geneb commented 5 years ago

I got my 5150 & 5151 hooked up and took some pics. Apologies for the potato quality photography. https://imgur.com/HE0GLux

The top image is pcjs and the bottom is from my 5151. The "No fixed disk present" is from fdisk and is just there to provide an intensity example. The camera really doesn't do well with the comparison and I wish I could provide you with a better example. :(

g.

jeffpar commented 5 years ago

I was able to fire up my 5151 as well: screen shot 2018-11-14 at 3 43 52 pm

So I inspected the green with a color picker and came up with #09CC50. Here's what that looks like:

screen shot 2018-11-14 at 5 06 19 pm

Of course, no photo will be perfect, due to the temperature of the ambient light. But does #09CC50 seem more faithful?

jeffpar commented 5 years ago

An interesting side-effect of delving back into MDA character rendering is that I found (and fixed) several problems, including:

geneb commented 5 years ago

That looks pretty good actually. The intensity color looks good too. Nice job! What color picker did you use?

jeffpar commented 5 years ago

Pixelmator:

screen shot 2018-11-15 at 2 10 40 pm
jeffpar commented 5 years ago

Fixed.

geneb commented 5 years ago

Thanks Jeff!