Linked by Thom Holwerda on Mon 8th Aug 2016 23:50 UTC
Amiga & AROS

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.

Order by: Score:
Bugs
by panzi on Tue 9th Aug 2016 02:08 UTC
panzi
Member since:
2006-01-22

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.

Reply Score: 2

Demos
by Alfman on Tue 9th Aug 2016 02:59 UTC
Alfman
Member since:
2011-01-28

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

Reply Score: 3

RE: Demos
by cobbaut on Tue 9th Aug 2016 08:55 UTC in reply to "Demos"
cobbaut Member since:
2005-10-23

Works fine here in Firefox on Debian...

Reply Score: 2

RE: Demos
by Lennie on Tue 9th Aug 2016 09:11 UTC in reply to "Demos"
Lennie Member since:
2007-09-22

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)

Reply Score: 3

RE[2]: Demos
by Rugxulo on Tue 9th Aug 2016 14:01 UTC in reply to "RE: Demos"
Rugxulo Member since:
2007-10-09

The reason they are porting it to a browser is because everyone has one or more browsers. So it's easily accessible to anyone.


These browsers are more complex than their host OSes!
Is it still "easily accessible" if it's incredibly heavyweight and hard to port to new machines? Browsers are behemoths, and I don't envy their maintainers.

Sure, a subset is easy, but that's part of the problem, too many things to support.

And there are standards. So if we keep doing things right, we can still use this in 30 years, maybe a 100 years.


"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.

Reply Score: 1

RE[3]: Demos
by Alfman on Tue 9th Aug 2016 17:02 UTC in reply to "RE[2]: Demos"
Alfman Member since:
2011-01-28

Rugxulo,

These browsers are more complex than their host OSes!
Is it still "easily accessible" if it's incredibly heavyweight and hard to port to new machines? Browsers are behemoths, and I don't envy their maintainers.


I agree, browsers are very complicated and fragile pieces of software. Sometimes targeting browsers is like fitting a square peg into a round hole.

How are you still not on the freedos-* mailing lists? (I'm guessing lack of time or other priorities. No worries.)


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.

Reply Score: 2

RE[4]: Demos
by Rugxulo on Wed 10th Aug 2016 02:16 UTC in reply to "RE[3]: Demos"
Rugxulo Member since:
2007-10-09

How are you still not on the freedos-* mailing lists? (I'm guessing lack of time or other priorities. No worries.)


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

Reply Score: 1

RE[2]: Demos
by dpJudas on Tue 9th Aug 2016 15:04 UTC in reply to "RE: Demos"
dpJudas Member since:
2009-12-10

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.

Reply Score: 3

RE[3]: Demos
by Lennie on Tue 9th Aug 2016 16:10 UTC in reply to "RE[2]: Demos"
Lennie Member since:
2007-09-22

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.

Reply Score: 2

RE[4]: Demos
by dpJudas on Tue 9th Aug 2016 17:31 UTC in reply to "RE[3]: Demos"
dpJudas Member since:
2009-12-10

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

Reply Score: 2

RE[5]: Demos
by Alfman on Tue 9th Aug 2016 19:04 UTC in reply to "RE[4]: Demos"
Alfman Member since:
2011-01-28

dpJudas,

Edit: the list of things they already broke: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Depre.....


I just learned that "for each (variable in object)" is depreciated. I had no idea it was in the process of being removed in favor of a new construct called "for (variable of iterable)".

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/St...
https://bugzilla.mozilla.org/show_bug.cgi?id=791343

I'm surprised they depreciated something so common, but at least they decided to keep the old syntax in addition to the new. It is a good example of how evolutionary baggage accumulates over time.

Yusuke, thanks for taking the time to look into this.

I don't think we will ever be able to remove 'for each'. I think it's a bad language feature, but removing it would break too many add-ons.

Users are right to be irritated when we break code they've been using successfully for years. Removing features from Firefox is therefore something we do as a last resort, only when there is a clear overriding benefit. We're removing the rest of E4X because the maintenance burden is out of all proportion to the few uses of E4X in tests and add-ons. The maintenance burden of 'for each' is not as bad, and a lot more code uses it.

Closing this bug.

Reply Score: 2

RE[2]: Demos
by Alfman on Tue 9th Aug 2016 16:19 UTC in reply to "RE: Demos"
Alfman Member since:
2011-01-28

Lennie,

The reason they are porting it to a browser is because everyone has one or more browsers. So it's easily accessible to anyone.

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.


Sure but I really wish it worked better _today_. I don't know why it didn't work for me in windows/FF. I just tried it in android/FF, hey it worked! However the performance is only 50% what it needs to be to run those demos. I don't know, maybe a 4GHz phone would do the trick.

It just makes me grimace that modern software has so much trouble with this when amigas could already be emulated in real time on a mere pentium pro 200MHz.

https://www.amigaforever.com/emulator/
Other parts of the emulation, such as the file system, can easily be faster than an original Amiga when an Amiga partition on the emulation environment is mapped directly to the host file system. On such a 133 MHz Pentium system, the 68000 CPU is already emulated at more than twice the speed of an Amiga 500. The custom chips add to the overhead, resulting in an overall poorer performance if they are used intensively, as they are in some games. A Pentium Pro or Pentium II running at 200 MHz feels like an Amiga 3000/030, again with a very responsive file system, and even a faster windowing action when used with RTG drivers. To make an example of a CPU-intensive task, compiling Personal Paint with SAS/C in UAE emulation on a Pentium Pro/200 MHz system takes about twice as long as on an Amiga 4000/040. Intel systems running at 300 MHz have been tested running some of the most demanding games in real time, without missing a single frame, and with perfect audio. Very few games and demos require more powerful systems.


To me that's far more impressive than archive's javascript emulator, even with the novelty of running in a browser.

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.


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

Reply Score: 2

RE[3]: Demos
by Lennie on Wed 10th Aug 2016 09:37 UTC in reply to "RE[2]: Demos"
Lennie Member since:
2007-09-22

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 ;)


I'm certain eventually it will come to that yes.

Sorry, for rehashing the old topic. :-)

Reply Score: 2

I wish the PC world would act like this
by ronaldst on Tue 9th Aug 2016 03:16 UTC
ronaldst
Member since:
2005-06-29

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.

Reply Score: 2

Alfman Member since:
2011-01-28

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/



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.


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

Reply Score: 3

ronaldst Member since:
2005-06-29

Thank you for the URLs.

Here's another one: http://vetusware.com/

Reply Score: 2

Rugxulo Member since:
2007-10-09

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.


How are you still not on the freedos-* mailing lists? (I'm guessing lack of time or other priorities. No worries.)

Reply Score: 1

Rugxulo Member since:
2007-10-09

I'd love to get my hands MS PDS 7. Heck I wish we could buy old software online à la Steam.


(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).

Reply Score: 1

Comment by SaschaW
by SaschaW on Tue 9th Aug 2016 14:13 UTC
SaschaW
Member since:
2007-07-19

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 ;)

Reply Score: 3

RE: Comment by SaschaW
by viton on Wed 10th Aug 2016 21:05 UTC in reply to "Comment by SaschaW"
viton Member since:
2005-08-09

LOL that was ages ago.

Reply Score: 2