Archive.org is continuing its mission to make a whole bunch of older software available online, in your browser, through emulation, with a whole slew of Amiga software – games, mostly, but also some general software, as well as, of course, a whole bunch of demos.
The emulator in question is the Scripted Amiga Emulator, an emulator written in HTML5 and JavaScript. It’s based on WinUAE and makes use of AROS‘ Kickstart replacement.
For me there is no sound in Firefox, too slow emulation speed in Chrome and input is not working in either (undefined is not a function errors on each keypress). Well, I’ll look again in a month or so.
Doesn’t look like they tested it in firefox because I just got javascript errors. Worked in chrome though. I think it’s neat to have an amiga emulator. On the one hand, I would criticize it for struggling to run 1990s era software. On the other hand, it’s running in the browser so I guess we should give it some slack.
Incidentally, the bar for performance is set much lower with JS than with native code. People are still impressed by the novelty: “…but it works in a browser!”. Makes me wonder if this novelty will ever wear off? We’re all so spoiled with this amazing hardware, which has gotten magnitudes better. Yet there’s little incentive for modern companies to pay for optimized code. I can’t help but feel a bit disappointed: Today’s budget computer can run multi gigahertz chips and gigabytes of ram running at ten gigabyte/s speeds, gigabit networks, SSDs, etc, yet software still feels sluggish. There’s very little that we should have to wait for given the technological advancement. Software isn’t blessed by the same zen of optimization that we had in the past.
Edited 2016-08-09 03:02 UTC
Works fine here in Firefox on Debian…
The reason they are porting it to a browser is because everyone has one or more browsers. So it’s easily accessible to anyone. And there are standards. So if we keep doing things right, we can still use this in 30 years, maybe a 100 years. Who knows. archive.org tries to preserve stuff. They have the original files you can download and people can run them in desktop emulators as well. Maybe the desktop/whatever we use now might not be around anymore in that many years. But maybe the browser still is. You already have it on your phone. So having it available on both/multiple platforms is a good thing.
asm.js as it was called is getting faster:
https://en.wikipedia.org/wiki/Asm.js#Performance
The problem is doesn’t have all the optimisations yet that you’d want. WebGL helps a lot here especially for games. But WebGL doesn’t work on every browser/hardware/operating system combination yet. asm.js is being standardised as WebAssembly. Also SIMD is being standardised. Faster threading is being worked on as a standard. That wasn’t true a couple of years ago. Those are the kinds of optimisations you’ve have with native code, it takes time to build those for JS as well. Especially if you want something standardised and compliant so it works the same in all browsers.
Also: it’s an emulator, it will never be exactly the same as the original.
Anyway, I agree. Hardware is fast, software is slow.
The problem is simple: time.
The larger the program, the more time it takes to optimise something. A small loss also happens because of compatibility. Software used to be build for the hardware. This isn’t true anymore. The other problem is: abstraction.
Abstraction is meant to make it easier to move to an other platform. Or to safe time because you don’t have to implement something yourself. Or make it easier for less knowledgeable developers to still build things.
Pretty much every developer does it. And pretty much everyone ends up using code from someone else which sort of does what you need. It does a whole lot of other stuff you don’t need. But let’s ignore that part. So this adds to the bloat. And bloated programs don’t stay as a whole in the CPU-cache. If your program is fully loaded in the CPU-cache then you get the real native speed. Everything else is going to be slower.
Abstraction is the antithesis of optimisation. The reason is abstraction make you use something without knowing what it is doing (yes, this only applies if you are using someone else’s code, but that is what is going on most of the time) and because you don’t know what it is doing you are going to use it wrong. Abstraction also only gives you some predefined ‘seemed useful for some use cases’ layer (API) you can talk to. It will never give you exactly what you need for your use case.
If the layer you are talking to doesn’t even give you what you need for your use case. Then you are already 2 steps away from optimal performance. Instead of 1 step away from optimal performance if you created that code yourself.
(sorry, it got long, I repeat myself a lot, I don’t have time to do edit it into something smaller right now)
“The nice thing about standards is that you have so many to choose from.” — Andy Tanenbaum
(obligatory link): https://xkcd.com/927/
Sorry, while (in theory) I like the idea of standards (and test suites), in reality it rarely succeeds.
Rugxulo,
I’m curious, is there a particular reason that I should be? I rarely use DOS myself anymore, but it’s interesting that I still support a client running DOS software from time to time.
Well, if you have to ask, then the answer is no.
Edited 2016-08-10 02:17 UTC
Hate to break it to you, but the “standards” browsers use change over time, in breaking ways too. Half the CSS 3 specs out there aren’t even finalized yet and still change as we go. For example, for flex box, the allowed keywords for the ‘flex’ property has changed 3 times even in its final stages. They also couldn’t even stick to whether it should be called ‘display: flex’ or ‘display: flexbox’.
I can pretty much guarantee that any website built even in 2016 will need some form of emulator in 50 years time. I don’t think this part will ever change for any tech. Software tend to accidentally (sometimes intentionally) depend on bugs in implementations.
Not sure if you noticed but in this cat it’s a big blog of Javascript code generated by a compiler from an existing C(++) code base (like DOSBox). There is no CSS involved.
In this case Javascript is just an other compiler target.
You’re completely ignoring the fact that your original statement was that it running in the browser should give it a 50-100 year life span.
Saying it uses Javascript changes little of that as it still interacts with the HTML/CSS parts of the browser. You are also making the assumption they will never make breaking changes to Javascript over the course of the next 100 years.
Edit: the list of things they already broke: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Depre…
Edited 2016-08-09 17:45 UTC
dpJudas,
Lennie,
HTML/JS is just another platform, there’s nothing technically special about it and it’s also inferior in many ways. Haha, you and I have had this discussion before. I honestly think that relying on HTML as it stands today becoming permanently supported in the future is too optimistic. So far HTML’s ubiquity has not translated into stability. Maybe we can assume things will be different going forwards, but every new generation it’s the same story: our way is the latest and greatest, you shouldn’t be doing it the old way any more.
Thinking off the cuff here, another possibility is to emulate the emulator
Theoretically that might be a viable option for the long term. As long as future machines are able to emulate the architectures immediately preceding them, then it might be a way to establish a permanent chain going back to the very beginning even thousands of years from now. We just need a solid framework for controlling the chain of emulators in a way that’s natural and transparent to the user without them having to care about the details of how to invoke each one individually.
It’s so crazy that it might be a good idea
Edited 2016-08-09 16:32 UTC
I’m certain eventually it will come to that yes.
Sorry, for rehashing the old topic. 🙂
So much software lost. Amigans have so much old software at their disposal. They’re so organized.
I’d love to get my hands MS PDS 7. Heck I wish we could buy old software online àla Steam.
Everything was so expensive when I was young.
ronaldst,
There’s a ton out there for the IBM PC, retro-gaming is a big thing. I would highly recommend something like dosbox or dosemu running natively. It’s the only way I can run some of my older work.
http://www.dosgames.com/g_side.php
If you really want to use a browser, you can do that too, but the performance is generally sluggish unless you’ve got a very fast processor. There are so many different emulators that I can’t really keep track of them. On the plus side, they’re usually pretty easy to try out without a big commitment
This site has javascript versions of windows linux freedos openbsd solaris:
http://copy.sh/v86/
This has wolfenstein civilazation monkey island.
https://jamesfriend.com.au/pce-js/ibmpc-games/
Downloadable dos games:
http://www.dosgames.com/gameindex.php
MacOS System 7:
https://jamesfriend.com.au/pce-js/
…The list keeps going on and on.
http://www.cambus.net/emulators-written-in-javascript/
http://archive.vg/blog/a-big-list-of-browser-based-emulators-and-po…
http://jsdosbox.sourceforge.net/
Yea, that’s definitely changed. Modern software especially on mobile is extremely cheap.
Another thing that’s changed is that lots of software being sold today will no longer work in the future because it will not be possible to activate it when the servers are gone. That’s already starting to happen.
Edited 2016-08-09 04:32 UTC
Thank you for the URLs.
Here’s another one: http://vetusware.com/
How are you still not on the freedos-* mailing lists? (I’m guessing lack of time or other priorities. No worries.)
(I’m out of the loop, but ….)
MSDN Subscriber Downloads has “QuickBasic 4.5 (English)” (plus MS-DOS 6.0 and 6.22).
Not sure why PDS isn’t there. Did you explicitly want OS/2 support??
Anyways, there’s always FreeBASIC (although that doesn’t support OS/2, but Free Pascal does).
Works well in Safari. I remember the days when the first fake Amiga emulator came out for dos. The very idea of emulating an advanced machine like the Amiga on a DOS PC seemed absolutely ridiculous. And now we are running it in a browser. I hate you Commodore, how could you have messed up so badly
LOL that was ages ago.