
The Emularity - Mithrandir
http://ascii.textfiles.com/archives/4546
======
chrisduesing
"This means that somewhere, this instance needs to be connected to a proxy
server, which assigns a 10.x.x.x address to the “Windows” machine, and then
forwards the connections through. Basically, world’s weirdest, most hipster
ISP on the face of the earth."

I wonder if there will ever be a business case for things like this. I sit
across the hall from a startup that sells mp3 gramaphones, etsy is a huge
success, there are strange Kickstarter projects every day. Is nostalgia a
permanent long tail phenomenon, or a fad from which people will move on?

~~~
stinkytaco
There's no doubt in my mind that nostalgia is a permanent phenomenon. Spencer
wrote _The Faerie Queene_ in deliberately antique english to appeal to
people's nostalgia. And that was more that 400 years ago. There's been a
market for classic cars almost as long as there's been cars.

How many businesses will carve out a niche in long tail tech is harder to
tell. I expect it will be like many things, many enter, few leave.

~~~
slg
Nostalgia might be a consistent phenomenon, but surely what we are nostalgia
about changes. A 20 year old likely never experienced Windows 3.11 in the
first place. That would likely make them view emulating it more of a novelty
exercise than a nostalgic one, which anecdotally is a weaker and shorter lived
motivator.

~~~
RyanMcGreal
On the other hand, a 20-year-old probably didn't grow up with a record player
but suddenly vinyl is in a huge renaissance.

~~~
lione
On the other other hand, Vinyl at least has some upsides. Listening to a Vinyl
is an experience, plus it's lossless, and physically owning a record is
cool/makes good art/conversation pieces. Windows3.11 would be interesting to
check out, but it'd be more like something you'd check out for 20 minutes to
see how it used to be done, then you'd go back to your modern OS. Vinyl is an
experience, most older software is a novelty.

~~~
tedks
On the other other hand, Windows 3.1 has some upsides. Running Windows 3.1 is
an experience, plus it's on DOS, and having a Windows 3.1 install on your
laptop is cool/makes good art/conversations pieces. Vinyl would be interesting
to listen to once or twice to show off to your friends, but it'd be more like
something you'd set up once to see how it used to be done, then you'd go back
to an iPod. Windows 3.1 is an experience, vinyl is a novelty.

~~~
jerf
I think the closest equivalent to the claim that vinyl is lossless would be
that Windows 3.1 is efficient. Well... sure... if you squint hard enough and
tune the definition of lossless/efficient properly, sure... but not in an
actually _relevant_ manner.

~~~
tedks
Windows 3.1 is on DOS, so it is lossless. There's no intermediary between any
program and any other program. Everything runs in pure, unadulterated Ring 0,
raw, unprocessed 16 bits.

------
fpgaminer
Jason Scott is such a weird and wonderful person. I highly recommend watching
BBS: The Documentary. Episode 8 was especially interesting and moving in a way
I didn't expect. I would say, in brutal honesty, the production values are
(unfortunately) low, but the content is pure gold, and well makes up for it.

So my thanks go out to Jason Scott and the small crowd of computing historians
he unofficially represents. As a modern software and hardware engineer, it is
both a joy to watch the old, and a comfort to know our work of today has a
chance of being preserved in the years to come.

~~~
textfiles
Nope, I'm going to do it, I'm going to focus right on one sentence and ignore
all the compliments.

The BBS documentary was shot across 4 years on my own dime (no crowdfunding,
my family helped pay for the camera) and traveling to 20 states, from
2001-2004, and then released in 2005. (10 years ago). This means some footage
was shot as long as 14 years ago.

"Production Value" is a very specific term - it is almost always used to
indicate skill or attention to the final product. All along the way for the
BBS Documentary, I had to make choices. Remember, the Canon XL1 I shot with
cost me $4000 in 2000, when it was bought. And instead of going with a handful
of people, say, under 15, to tell the whole story, I chose instead to
interview 201 people. This meant that sometimes in a single day I'd drive to
up to 4 different homes, with miles between them, set up all the equipment
myself, conduct the pre-interview and interview, and then move on to the next
location. In one case I drove 500 miles to grab an hour interview with a
figure who had popped up, and then drove back.

This was before DSLR became prominent, before HD was the norm. I could have
gotten a full crew, but everything else would have suffered: the breadth of
subjects, the locations, the variant voices. It's a choice I'm fine with.

I recognized, after BBS Documentary was done, that I'd want to move to HD, but
in 2006, when I started filming GET LAMP, that cost me $10,000. I paid larger
numbers for the new movies - $20,000 for the DSLR equipment. (Both GET LAMP
and the new films are crowdsourced, based on the reputation of BBS
Documentary.)

Choose your words carefully, please. I'll take "Dated", I'll take "SD", I'll
take "Videotaped", but please don't imply I didn't sweat bullets over every
aspect of the production, and that everything in there wasn't a best-of-all-
circumstances choice made with the intent of finishing a project that many (at
the time) thought was impossible.

~~~
rwallace
As someone who liked your documentaries, I think you're misinterpreting the
previous poster. 'Production values' doesn't refer to skill or attention -
those qualities are clearly present in your work. It just refers to those
aspects of a work which are simple functions of money spent. To say your work
has low production values, then, just means you clearly didn't have a large
budget, which is true but nothing to feel bad about - you did a great job with
the resources you had.

~~~
textfiles
I'm hoping that's the case, and I'm sure I'm oversensitive on this topic. It's
just that subject was particularly important to me, and any impression that I
didn't care so much about capturing that story before the chance to get the
story was over just makes me over react.

------
csl
If anyone is interested, I just wrote a simple guide on how to get your own
DOS programs up and running with em-dosbox: [https://csl.name/post/em-
dosbox/](https://csl.name/post/em-dosbox/)

Em-dosbox and emscripten are really amazing projects. An emulator is cross-
compiled to JavaScript, which is then JITed in your browser's js VM. It's not
only amazing that it works, but also that it runs pretty well (compared to
native dosbox, it's only a little bit slower on some programs).

~~~
iso8859-1
how do you think em-dosbox compares to jsdosbox?

~~~
julianj
I like that it we can use either zip archives or img files with jsdosbox-- and
that the setup is pretty straightforward.

Here's a guide I hacked together a couple of months ago for comparison:
[http://atechdad.com/how-to-jsdosbox/](http://atechdad.com/how-to-jsdosbox/)

~~~
vitovito
em-dosbox uses emscripten's packager by default, but it doesn't have to.
Anything that can dump files into an emscripten virtual filesystem will work.
The Internet Archive's loader uses .zip file bundles via BrowserFS:
[https://github.com/jvilk/BrowserFS](https://github.com/jvilk/BrowserFS)

------
narag
_it’s running inside the EM-DOSBOX system, since Windows 3.x was essentially a
very complicated program running inside DOS. (When Windows 95 came out, a big
deal was made by Gates and Co. that it was the “end” of the DOS prompt,
although they were seriously off by a number of years.)_

Nitpicking just a little bit: Windows 3 didn't run _inside_ DOS. Maybe "on top
of it" if you want to put it that way, but not "inside".

It changed the processor and graphic modes and when shut down it reverted to
the prompt. But by no means was it "just a big DOS program".

Guess what: Windows 95 _also_ was a program running "on top" of DOS. That was
somewhat hidden, but I remember clearly that I booted to DOS and then executed
either Windows 3 or Windows 95 (I was programming a compatible 16/32 bits
application). There was some tweaking needed but it worked nicely.

~~~
db48x
It gets a bit metaphysical at some point, but 'on top of' or 'after' probably
are better prepositions to use when describing the relationship between DOS
and Windows.

'Instead of' would also work, in the case of Windows 95, as it would be fair
to say that simply exiting Windows involves resetting everything back to the
way DOS had it, then rerunning DOS.

And when you ran DOS inside a window in Windows 95, then that was DOS running
inside of a VM.

~~~
narag
I'm not sure but it seems my point has been lost in the way.

DOS is a real mode OS. Windows 95 is a protected mode. Windows 3 was some kind
of dumbed-down protected mode that 286 had. Actually I believe it could work
in different modes.

The distinction is pretty important. Windows 95, that needed a 386 minimum,
was a true protected mode system, with virtual memory and pre-emptive
multitasking. It would be absurd to call it "a DOS program" just because you
could launch it from the DOS prompt.

So the same can be said of Windows 3. It changed processor mode, not so
radically as 95, but enough to exit real mode... calling it "just a DOS
program" is simply wrong.

------
swalsh
I'm waiting for the day that the wikipedia entry on windows 95 let's you load
up windows 95.

~~~
cbd1984
> I'm waiting for the day that the wikipedia entry on windows 95 let's you
> load up windows 95.

We'll have the technical side of this solved before the legal side is.

~~~
db48x
The legal problem is already solved, in a narrow sense, for programs which are
otherwise impossible to install in the usual manner:
[http://archive.org/about/dmca.php](http://archive.org/about/dmca.php)

Does Windows 95 qualify? Probably not quite yet, but if UEFI ever wins to the
point where motherboards with the traditional BIOS become unavailable and then
the available UEFI motherboards stop including a BIOS-compatibility mode, then
it probably will.

That said, there's no reason why Wikipedia editors can't embed the player that
Archive.org uses for console/arcade/dos games into their respective Wikipedia
pages. It wouldn't be quite as easy as embedding a Youtube video (where every
video gives you a snippet of HTML to paste into your page), but the emulator
is just a js file, and the game is just a couple of small image files which
you load and stick into the emulator's in-memory filesystem.

See [https://github.com/db48x/emdosbox-
loader](https://github.com/db48x/emdosbox-loader) if you want to see how
Archive.org is currently loading those. It's not quite ready to just be
plugged in everywhere, but I'm working towards that possibility.

------
platz
> It turns out a number of fundamental aspects of The Web have changed since
> this time.

I wish they went into more detail what exactly changed and why these browsers
no longer work, unless it was the PPP protocol they mentioned that is causing
the issue.

~~~
bai0
Original author of the hack here. Several changes:

1) HTTP 1.0 vs 1.1 and lack of the Host: header, as you've all deduced

2) Additional encoding info tacked on after the Content-type causes parsing
issues

3) Many sites now redirect to HTTPS by default. While Netscape 1.0 and Mosaic
1.0 both support HTTPS, it used SSLv1, and well, remember POODLE? :P

Newer versions of these browsers tend to work in native DOSBOX but present
problems when running on the web. We're working on it.

Biggest problem right now is that the virtualized dial-up ISP is a bit flaky.
For some reason PPP over TCP over Websockets via Trumpet Winsock isn't as rock
solid as it should be :P

~~~
csixty4
And once you get past all that, the JavaScript that's so pervasive these days
wont run in those ancient browser. My Mac Centris 610 has problems with all
those tracking scripts everywhere.

------
BenoitEssiambre
Imagine if they get to windows XP and ie8. We will never get rid of them!

~~~
TeMPOraL
Maybe all the emulators will have blocks in place, denying you ability to run
WinXP and IE6 for Planetary Security reasons?

------
js2
I recall running Windows 3.11 on a Mac using the earliest versions of
Connectix Virtual PC in the late 90s. It was so slow as to be unusable. And
today we can run Windows 3.11 in a browser. Mind-boggling.

~~~
acomjean
I do too and it was almost useable...

Although Connectix also sold a playstation (original) emulator for mac that
worked pretty well. Connectix was embroiled in a lawsuit with Sony, till Sony
ended up buying it.

[http://en.wikipedia.org/wiki/Connectix_Virtual_Game_Station](http://en.wikipedia.org/wiki/Connectix_Virtual_Game_Station)

Part of the problem I think with some emulation speed has to do with bit order
of the original hardware (or endian order) which makes emulators do a lot of
memory moves.. We ran into this a little when looking into migrating software
from PA-RISC to X86..

------
alexvoda
This prediction is becoming true day by day:

[https://www.destroyallsoftware.com/talks/the-birth-and-
death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of-
javascript)

------
300bps
My first thought on reading this is that we can't be that far off from running
MAME and every classic arcade game in a browser. Googled it and sure enough -
it's already here courtesy of the Internet Archive:

[https://archive.org/details/internetarcade](https://archive.org/details/internetarcade)

~~~
busterarm
The vast majority of the games will not run at a playable speed. Heck, a
fairly large percentage don't even with the MAME software itself on 4Ghz+
CPUs.

MAME's commitment to accurate emulation is amazing.

~~~
bluedino
He said classic arcade games, which we'll put at the early 80's. Those have
been working in in MAME since the Pentium II days.

~~~
busterarm
That's actually not entirely true. There are some classic games that still
have run super slow until recently.

Pac Man/Ms. Pac Man comes to mind. Donkey Kong too.

Emulating analog audio circuits accurately requires higher math functions
executed millions of times per second. Some of the oldest classics run super
slow on sub-3Ghz CPUs.

------
ianopolous
There's another JS port of dosbox (via Java and GWT) - jsdosbox here:
[http://sourceforge.net/projects/jsdosbox/](http://sourceforge.net/projects/jsdosbox/)

with a playable demo of doom here:
[https://jsdosbox.appspot.com/](https://jsdosbox.appspot.com/)

------
marcosdumay
Who creates an emilator for Windows 3.11 and doesn't install the ski game?

~~~
ColinDabritz
'the ski game' is likely Ski Free. Delightfully, the author has created a 32
bit version of the game, if you want to run it on your modern desktop. You can
also download the 16 bit original version.

Considering the simplicity of his page, and the browser now running in the
emulator, it should be possible to download and run the 16 bit version from
his website:

[http://ski.ihoc.net/#download](http://ski.ihoc.net/#download)

~~~
marcosdumay
That's just great! Thank you.

------
kalleboo
Now I'm imagining pointing this thing not at a proxy that accesses the live
web but one which picks a date in the wayback machine and relays the state of
the web at the time the browser came out...

------
code_duck
I went through the period of nostalgia and fascination the author exhibits
years ago with Amiga, c64 and dos emulation and virtual machines.

It's impressive and convenient that this runs in a browser, but does itreally
change anything about emulation? We've had this capability for windows, mac
and Linux for years which covers about every platform with a browser. I
suppose it's convenient if you wanted to emulate windows 3.1 on your iOS
device.

~~~
smacktoward
_> We've had this capability for windows, mac and Linux for years which covers
about every platform with a browser_

Yes, but that always required installing emulation software, tracking down the
necessary ROMs/disk images, etc. If it's running in the browser, the site
admin can do all that once for everybody rather than every user having to do
it for him/herself. All the user has to do is open a URL.

~~~
zokier
> All the user has to do is open a URL.

I think it is a shame that Java Web Start style tech never got anywhere. It
pretty much delivered such experience (click url and app launches) without
actually binding the application to the browser.

------
orbitur
They should try getting a more modern browser on there. If I remember
correctly, while running my hand-me-down Gateway 2000 with Windows 3.11 in
1998, I managed to get Internet Explorer 3 or 4 installed after I downloaded
it at a friend's house.

~~~
textfiles
The goal is to add more browsers when this finally goes on the Internet
Archive, yes.

------
arohner
Ok, I understand how you'd run a CPU emulator written in JS, in a browser, but
how do these things get raw socket access?

If you're running in a browser, all the network access you get is HTTP AJAX,
right?

~~~
petercooper
No, there are various other mechanisms now, perhaps the most useful and
widespread for this situation being WebSocket. It's not without limitations
though:
[http://en.wikipedia.org/wiki/WebSocket](http://en.wikipedia.org/wiki/WebSocket)

And it's not quite "the browser" in the usual sense, but Chrome Apps (and, I
believe, extensions?) get access to TCP and UDP APIs:
[https://developer.chrome.com/apps/app_network](https://developer.chrome.com/apps/app_network)

~~~
arohner
But websockets doesn't give you raw tcp, right? Do they have a proxy
somewhere?

~~~
bai0
Not really a proxy - it's pppd in Linux with a vty redirected to a socket.
More like a cloud-based dialup ISP that tunnels over existing connections than
a proxy.

------
inglor
This looks like a weaker version of [http://copy.sh/v24](http://copy.sh/v24)
with emscripten. Still a very interesting development though

------
nsxwolf
Is there a link to a live demo?

~~~
cleverjake
[https://twitter.com/textfiles/status/558625345029820416](https://twitter.com/textfiles/status/558625345029820416)

> Before I get 1,000 "GIMME DER SAUCE AND WHERE DO I KLIK" \- the DOS
> situation showed me we need something to be really tested to go big.

------
transfire
Windows 3.1 was the pinnacle of Windows -- seriously I think they went in the
wrong direction with 95 and we may never recover.

------
vegabook
K so JS is the new de-facto interpreted machine-Latin. The lingua franca.

Is there something else I'm missing here? We've known that there is a decent
mapping from X86 assembly to a subset of javascript for a number of years now.
You can even run the entire OCaml stack in the browser, or Doom, or Quake...
etc. What's next? Wordperfect in the browser? Visicalc? This is clever and
kudos to the guys, but how is this advancing what we already know?

Javascript is fast and flexible. The browser is a credible platform
technologically. We can treat it like a VM. Yep...Got it. More than three
years ago.
[https://github.com/kripken/emscripten/graphs/contributors](https://github.com/kripken/emscripten/graphs/contributors)

~~~
bai0
WordPerfect in the browser? Please, that was so two weeks ago:
[https://archive.org/details/msdos_wordperfect6](https://archive.org/details/msdos_wordperfect6)

Might need to print this and tape it to your keyboard though
[http://bit.ly/1zDZrjk](http://bit.ly/1zDZrjk)

~~~
vegabook
I'm waiting for vim in the browser... oh wait...

[http://dailyjs.com/2013/12/13/vimjs/](http://dailyjs.com/2013/12/13/vimjs/)

Still - I'll take it all back when someone shows me Wordstar.js. Who needs
Indesign??

