Hi Rob,

See here
http://retrocmp.com/projects/blinkenbone/169-blinkenbone-architecture-overview
and adjactent pages.

I use photos of each button and each lamp, in every state.
So first operation is taking picture of a real panel.
Then I use Photoshop, to cut out all the lamps & switches into separate layers - a photoshop script scales them to different screen reloutions, and names the resulting images with <resolution>_<controlname>_<state> - Photoshop generates also a text file with coordinates of each control, so they can be painted at right position later.

I tried other approaches, but this has best quality. Even scaling the images at run time was not as perfect as scaling with Photoshop.

To get a clickable image of the panel I use a Java program.
It paints the current control states onto screen, and decodes mouse-click positions into activated switches.

I choose Java with the old AWT framework, because graphic is relatively easy there, and it is platform independent. The graphic should follow SimH onto as much different platforms as possible.

So I have a simulator written in C (SimH) and a Java display.

Both communicate over an network interface, written with RPC (https://de.wikipedia.org/wiki/Remote_Procedure_Call)
RPC is a 1990's technic, so very fast on today machines.

if you look at https://github.com/j-hoppe/BlinkenBone
you find the Java sources at
projects/09_javapanelsim,
and the image directories (example for the PDP-11/70) at
projects/09_javapanelsim/resources/blinkenbone/panelsim/panelsim1170/images

The extensions on SimH-side reside in
projects/02.3_simh/4.x+realcons/src/REALCONS/
and as small extensions in scp.c and the *_cpu.c sources of the simulated machines. Every change is marked with "#if USE_REALCONS",
so I know what to merge into new SimHs.

I do not use the "frontpanel" interface of SimH, as my project was ready before this was introduced.


I confess my approach is maximal over-engineered, but I want to be as good as possible, and I'm enhancing it since years.



best regards,
Joerg




Am 28.03.2018 um 14:19 schrieb Rob Jarratt:
Hello Joerg,

I am looking to do a graphical front panel simulation of a machine I am in the 
process of building an emulator for. I am not very good on the graphical side 
and would love to understand how this was done. Can you point me at the area of 
the code that does this simulation, and can you offer any tips? For instance do 
you use photos of each button/switch etc or do you draw them in code?

Thanks

Rob

-----Original Message-----
From: cctalk [mailto:cctalk-boun...@classiccmp.org] On Behalf Of Jörg Hoppe
via cctalk
Sent: 28 March 2018 12:06
To: General Discussion: On-Topic Posts <cct...@classiccmp.org>
Subject: Photorealistic frontpanels for DEC PDP simulations under SimH

Guys,

there are updates to the photorealistic PDP-8/10/11/15 panel simulations for
SimH, code name "BlinkenBone".

* Added bigger images for 3000 pixel width screens.

* made PDP-11/70 panel behaviour compatible with the real machine
    (after tests performed at the PDP-11/70 "Miss Piggy" at LCM in Seattle,
    thanks to Rich Alderson & Josh Dersch).
    Oscar Vermeulen's upcoming PiDP1170 replica will also benefit.

* Added Mike Hill's BLINKY animation as PDP-11/70 application.

* Optically enhanced the PDP-10KI10 panel:
    Added rack background of the real KI10 at LCM.

* Merged with SimH code base from march 2018

* Some people want to reanimate a physical panel with "BlinkenBone" too, or
did already.
http://retrocmp.com/projects/blinkenbone/setting-up-a-blinkenbone-project
    Finally I can supply the hardware, a tested set of BeagleBone Black,
BlinkenCape and BlinkenBoard.
    I can't get the price below 200€, there's this penalty for manual small 
batch
production (including some self-exploit).



Doc root page: http://www.retrocmp.com/projects/blinkenbone

Download: https://github.com/j-hoppe/BlinkenBone/releases
As usual, there are precompiled distributions for Win32, Ubuntu x86 & x64,
Raspberry Pi and Beaglebone.
Just unzip and start some of the shell scripts.




Enjoy,

Joerg





Reply via email to