WEBVTT

00:00.000 --> 00:10.160
So we are starting now with a small panelist discussion, so as I mentioned at the beginning

00:10.160 --> 00:15.040
of the session, but not everyone was there, so we had normally a talk by Mark Mayer, but

00:15.040 --> 00:21.840
unfortunately he's sick, he could not join, so we just hope that he recovers very soon,

00:21.840 --> 00:26.000
and then we have a small discussion with some panelists, not all of them, it's impossible

00:26.000 --> 00:31.600
to invite 15 person, especially that we have only one microphone, I didn't know that also in advance.

00:32.640 --> 00:40.560
So I just introduced the topic, and then we can pass the mic and people can express, let's say,

00:41.600 --> 00:46.240
the opinion, so one of the first things that comes to my mind, and it's a bit follow up

00:46.240 --> 00:50.160
of what the metry has been presenting, so when I see what's being done today,

00:51.040 --> 00:57.920
in vitro computing, there's a hardware part, software part, I would suggest that we start with the hardware,

00:57.920 --> 01:05.040
so it's a little bit, what I see very much is that either there are new systems or new

01:05.040 --> 01:13.600
new boards being built to adapt existing like old miles or old joystick to make them work with

01:14.240 --> 01:20.720
modern computer, or we see the opposite as well, we see like adapters from USB to have the

01:20.720 --> 01:27.840
the PlayStation controller being able to work on a Commodore 64 or something else, Atari,

01:30.240 --> 01:37.840
these are the kind of things also adapters for the video display, for example, so we see

01:37.920 --> 01:48.400
new boards being created, sometimes it's this little, like ESP or whatever, or Raspberry PICO,

01:48.400 --> 01:56.720
PICO or something like that. Maybe one reflection is that something that you see as well,

01:56.720 --> 02:00.960
secondly, do you see something that that is missing so far that that could have been done,

02:00.960 --> 02:05.120
but that has not been done yet, and that would be like a nice challenge.

02:06.000 --> 02:11.280
So I suggest that I just pass to you and then we go to the full line.

02:13.040 --> 02:18.480
Yeah, I mean, I want to add to that that it's not only about the I only devices, but also about

02:18.480 --> 02:25.360
the computers, so building new extension hardware for old computers is also something that is

02:25.360 --> 02:34.240
very popular, I think, there is this preservation aspect of it, and some people like the

02:34.320 --> 02:41.040
preservation more than they like extending existing systems with modern stuff and think of that as

02:41.040 --> 02:47.200
being not true to the history of things and others do other stuff, so I like, I like these like

02:48.800 --> 02:56.800
cross, cross centuries systems, but others try to find all the original parts and all of that is good,

02:56.800 --> 03:00.960
I think, I mean, it's part of history preservation project if you are.

03:03.360 --> 03:08.160
Yeah, I will say, these two directions, two opposite directions you have mentioned,

03:08.720 --> 03:17.840
probably have, well, when you add a modern IO devices or something similar to an old computer,

03:17.840 --> 03:27.920
it's, you know, a way to get work with it with despite some apps and parts, so it's a sort

03:27.920 --> 03:35.840
of digital prosthetics, maybe. And it's definitely important and very practical task,

03:36.800 --> 03:42.320
because, well, sometimes some devices, I audio devices, were so indruble that

03:43.200 --> 03:52.080
impossible to find them, especially in an operational state. The opposite task is, yes, it's mostly

03:52.080 --> 03:59.920
a preserving of a digital heritage, and while you can run software like operating systems or similar

03:59.920 --> 04:07.120
stuff in emulators on modern computer, because you may have a problem to feed these IBM mainframe

04:07.120 --> 04:19.920
in your home, even if you find it, but the emulator can, but, you know, the user experience,

04:21.520 --> 04:29.280
sometimes demands, sometimes it's different when you use modern pointing device, well,

04:29.920 --> 04:37.040
I'm speaking about mice, as you may guess, so you can preserve running software, but the

04:37.040 --> 04:43.760
user experience will be a little bit different, because, well, you can simulate a display,

04:43.760 --> 04:52.000
but how to simulate input hardware, okay, it presses good keyboard on screen, it's definitely

04:52.000 --> 04:58.960
better than anything, but from the ergonomics point of view, it still leaves place for questions.

04:59.600 --> 05:07.040
So connecting all peripheral devices to modern computer and to simulators, I would say,

05:07.920 --> 05:11.440
play this important role of preserving the user experience.

05:14.480 --> 05:18.320
Yeah, you may not emulate us, I think that it's also a very important

05:18.320 --> 05:23.680
area of which we're computing, because there are many systems that are so rare nowadays,

05:23.680 --> 05:31.760
that you can't have one, so in order to experience the system emulation is your only way,

05:31.760 --> 05:36.880
and there are actually still a lot of systems that can be emulated today.

05:36.880 --> 05:42.080
I will be describing one of them today in my presentation, so I would say it's important,

05:42.960 --> 05:49.520
because otherwise, it's just not possible to use this machine at all and it gets to be forgotten.

05:53.920 --> 06:00.160
Yeah, we are basically dealing with a very old machine from the 60s, and it's a mine frame.

06:00.160 --> 06:08.560
Some components are literally unusable, because they're full of little mud,

06:09.440 --> 06:17.040
little mud, because they were stored for decades in the wrong place, so it's impossible to

06:17.040 --> 06:24.480
recover them. In some cases, we also had the problem that we can restore most of it, but the

06:24.480 --> 06:30.560
mechanical parts are so delicate that we don't want to use that, so we just replace that with a

06:30.560 --> 06:38.160
microcontroller that does the same thing, but we try to keep it as visually close as the original,

06:38.160 --> 06:45.440
and you'll see more about this in our talk, but sometimes it's also me and my old PSX controller,

06:45.520 --> 06:53.200
I love, and I have that for 20 years, and I just want to use it on my Xbox Cloud gaming machine,

06:53.200 --> 06:59.600
and I just made a converter to USB, that's this big, and I have open source, so it's maybe

07:00.000 --> 07:07.520
replaced the PSX one. It's actually very easy to make an embedded device that converts an old bus

07:07.520 --> 07:13.760
to a USB modern device, so you can even restore, I don't know, your old steering wheel,

07:13.840 --> 07:20.160
I added to reproduce the same experience you had as a teenager or something, and you want to add

07:20.160 --> 07:28.080
something. For me, it's extremely important, the discussions about emulators, because for me,

07:28.080 --> 07:33.440
emulators are not a way to reproduce the original experience of using certain machines,

07:34.240 --> 07:37.520
mostly because you don't want the original experience of running machines, you don't want

07:38.480 --> 07:43.600
two rooms full of iron, just to have half a mega of computing power. For me,

07:43.600 --> 07:48.240
what's most important is that emulators are running documentation, which means that you know

07:48.240 --> 07:51.680
that the documentation you have is correct, and you can probe it, you can compare it to the original

07:51.680 --> 07:58.240
hardware, if you're so lucky to have it, so yeah, it's a very important thing, so even for a

07:58.240 --> 08:02.960
younger people, like in the programming scene, that they are this kind of factions between,

08:02.960 --> 08:07.120
you know, or real emulator, or real if GA is, I should have used the main,

08:07.840 --> 08:11.760
doesn't matter, that's not the thing, the thing is that we have that, we have the machine description,

08:11.760 --> 08:17.520
we can recreate it, so we have the FPGA, we have the emulator, we can, and also something very

08:17.520 --> 08:23.840
important is like, don't be ashamed or don't be scared to mix and match the technologies,

08:23.840 --> 08:30.080
centuries, and whatever, my personal, let's say religion, fixed point is that your modifications

08:30.160 --> 08:35.280
should, in my opinion, should be irreversible, some people don't agree to that, but yeah,

08:35.280 --> 08:41.360
like interface, the old machines to the new one, the gods of your computing will not be against you

08:41.360 --> 08:45.680
for that, actually quite the opposite, you will breathe new life into new machines, and that's very

08:45.680 --> 08:51.280
important. Thank you. So the problem with being last is everything's been said, so

08:53.520 --> 08:58.560
so I'm going to have to rely on false personality and jokes, well that's certainly not going to work,

08:58.800 --> 09:06.480
so my thing with the IO thing is not limiting it to pieces of what I would call simple hardware,

09:06.480 --> 09:11.280
mice, I can power to be simple hardware, potentially omiters, yeah, I understand them,

09:11.280 --> 09:15.440
their specs are out there, but there's also IO that talks to things like processes,

09:16.320 --> 09:21.440
back in the good old days, when I was actually young, don't laugh at that one, I'll tell you

09:21.440 --> 09:28.000
when I'm doing the funnies, back when I was young, BBC Micro had a tube port that would allow you

09:28.000 --> 09:33.760
to put other processes to connect to your BBC. That's fine, you can emulate that stuff and that

09:33.760 --> 09:39.760
works, but then fast forward another 20 years, and you can't do it anymore, because you can't do it,

09:39.760 --> 09:44.240
any IO to the processor, because someone's put some gunk in there that says, oh, unless you're

09:44.240 --> 09:49.200
running on the hardware, you can't work out what's going on, Northbridge, Southbridge, Xbox,

09:49.200 --> 09:53.920
chips, they have special things in, we're not going to be able to ever emulate them until we

09:53.920 --> 10:01.520
crack what's going on under the hood. So the IO from the olden days, versus what we're going to have

10:01.520 --> 10:07.680
as a problem coming up in 20 years, are different problems, and it's solvable to say, yeah,

10:07.680 --> 10:13.120
I can see a transistor, I know how that works, but you get a chip from 20 years ago, you can't,

10:13.120 --> 10:18.560
most people can't just take the top off, scan the silicon inside and work out how to emulate that

10:18.640 --> 10:28.560
or provide any sort of modern version of it. Thank you. I don't know if you wanted to

10:28.560 --> 10:35.760
ask something. Okay, like Steve and I said, probably everything has been said already,

10:35.760 --> 10:40.080
being last so that's why I will switch to software, and I think Michal, you're the first

10:40.080 --> 10:45.680
emulated, actually, the, sorry, who mentioned the emulation, emulation part,

10:45.760 --> 10:50.240
think when we look about software, again, I also mentioned at the beginning of the session that

10:50.240 --> 10:56.880
there is mostly game, new games that are still being released, operating system, all these,

10:56.880 --> 11:01.440
most probably would not happen if we would not have, like, modern emulation today, because people

11:01.440 --> 11:06.400
are not working anymore or not that much, and I don't think that many people are still working,

11:06.400 --> 11:13.280
we don't the real old hardware, hardware, they're working on emulated, emulated systems.

11:14.240 --> 11:20.000
So there may be same kind of reflection, we can go quickly, we still have, like, seven minutes,

11:20.720 --> 11:29.200
around the room, you want to sound off? Ah, yes, okay, okay, yeah, just about emulation,

11:29.200 --> 11:34.640
our things, still missing, or yeah, a bit to your perception on this topic.

11:36.480 --> 11:38.160
So the point will be, be going first,

11:38.880 --> 11:44.480
if you're going to find something really quick to say, when everyone's looking at you,

11:45.200 --> 11:50.240
I've written a few emulators, and they're really quite good fun to do up to a point.

11:50.960 --> 11:54.880
The problem is after you get to the point where the first thing works, like, the basic pump

11:54.880 --> 12:02.640
comes up from the ROM, it's like, how do I prove it works? How do I know that this ROM is emulated

12:02.720 --> 12:08.320
correctly for everything that will ever run on it? And it's one of those problems of,

12:09.120 --> 12:14.880
it's very easy to get bored with it, it's very easy to get frustrated with it, and unless you're doing

12:14.880 --> 12:21.600
a full spoiler simulation rather than emulation of a platform with all the timing,

12:21.600 --> 12:26.080
idios and crassities that the original had that your software emulator might not have,

12:26.800 --> 12:31.360
how are we ever going to know that we have actually preserved the thing we were trying to preserve

12:32.080 --> 12:34.720
in our software emulator simulation?

12:36.880 --> 12:42.320
Yeah, like, I have as well only a small thing to add to this is that you can also not care, in the sense

12:42.320 --> 12:46.960
that adding an emulator, that only emulates five instructions out of 10, it's good than having

12:46.960 --> 12:53.040
no emulators, and adding an emulator that like, implement 35 instructions, but in three instructions,

12:53.040 --> 13:01.120
like the fifth cycle is slightly wrong, yeah, we can find it later, like as soon as we have

13:01.120 --> 13:09.680
something to start to can jump off of everything should be fine, and so it's a complicated task,

13:09.680 --> 13:15.920
it's a very involved task, it's very time consuming and a brain power consuming, but also

13:16.480 --> 13:21.280
nobody's forcing you to go to completion, this is a hobby for some foremost, at least for now,

13:21.280 --> 13:27.360
so enjoy it, because it's great to be part of history and to be in connection with this story,

13:27.360 --> 13:30.880
also because it can not have new a lot more of what's going on right now.

13:33.040 --> 13:38.000
So yeah, it's great that you're ready to question about the difference between simulators and emulators,

13:38.000 --> 13:43.200
it's also perfectly okay to read the simulator if your purpose is not using what the machine

13:43.200 --> 13:48.480
was doing, but for instance, verify that the software you've dumped from a very old media

13:48.560 --> 13:54.160
is doing what's supposed to do, so and you know, you can double check that, but of course an emulator

13:54.160 --> 13:59.360
gets closer to what the machine was doing and that's a right approach for instance to verify

13:59.360 --> 14:06.320
that the machine that you restoring is doing what it's doing, and the gap between there is documentation,

14:06.320 --> 14:11.040
how much the documentation you can find, we were so lucky to have a machine from the

14:11.040 --> 14:15.440
60s as you will see, but with a lot of documentation with it, so we could start attacking the

14:15.440 --> 14:20.000
problem from both sides, and one thing is restoring the hardware, as you said, the beginning,

14:20.000 --> 14:25.200
and the thing is restoring the software, and those things go in parallel, and of course the software

14:25.200 --> 14:30.640
until the machine is done is probably taking us a few years, so in the meanwhile, we want to be able

14:30.640 --> 14:35.120
to verify the software that we dumped, it's corresponding to what it was supposed to do.

14:37.520 --> 14:44.480
I think it's also worth mentioning hardware emulation, so today you have several FPGA platforms

14:44.560 --> 14:52.160
that can reprogram to recreate a machine very close to the original hardware, so this is maybe a

14:52.160 --> 14:58.000
closer to what you said, trying to get the original hardware XPS and not just a window in the computer,

14:58.000 --> 15:00.800
and I think that's also an interesting area here.

15:03.680 --> 15:13.680
Well, if speaking about emulators and simulators, I would mention that starting from some years,

15:14.320 --> 15:22.160
we have got official SDKs with emulator included for some old platform or something like this,

15:22.160 --> 15:30.240
and it's not obviously true for 60s, but somewhere in 80s, when these software development

15:30.240 --> 15:36.560
kit with emulators do appear, it became a little bit easier to preserve. You just use nested

15:36.640 --> 15:45.920
virtualization to run this simulator in some virtual machine, which itself may sit inside of

15:45.920 --> 15:55.040
some virtual machine. Unfortunately, the difference in all resources, computational resources

15:55.040 --> 16:06.240
helps to drive this without much pain. Obviously, that's not true for, well, prep 80s systems,

16:07.200 --> 16:14.000
maybe a present is for sure, so I would say that the biggest challenge here is

16:15.920 --> 16:26.880
yeah, to run something which was invented before virtualization exists in heads of some engineers,

16:28.400 --> 16:31.920
late days just in all, and it's a task sometimes.

16:32.000 --> 16:40.400
To me, it is quite fascinating that for a single person, it is now possible to

16:41.200 --> 16:46.960
with the modern tooling to recreate software simulators or emulators of systems that have been

16:46.960 --> 16:53.920
created by dozens or hundreds of engineers, and that really is also speaking to the progress that we've

16:53.920 --> 17:00.320
made, so of course, fundamentally there is not a big difference between these old systems

17:00.400 --> 17:05.040
and what we have today. There's quite some architectural similarities in how they work,

17:05.680 --> 17:12.480
but from the perspective of how much of that we can now move with the tooling that we have,

17:12.480 --> 17:17.760
that's really fascinating to me, so my recreation of a system that

17:17.760 --> 17:22.320
had dozens and hundreds of people working on that. I mean, it's not complete, but still,

17:22.320 --> 17:26.960
it's just the tools that made me do it, not something else.

17:27.840 --> 17:34.320
It thinks that would be the final words because we are done reaching the time, so many things

17:34.320 --> 17:42.000
I have Hans Dimitri, Michal, Daniele, Antonio, and Steven. Steven, you're staying?

17:45.040 --> 17:48.640
I mean, it feels what now, so many things again to all.

