LGB and the emulators

From Enterprise Wiki
Revision as of 22:22, 11 December 2016 by Szipucsu (talk | contribs) (Me, the Enterprise and my adventures with writing emulators)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Me, the Enterprise and my adventures with writing emulators

Original Hungarian text: [1]

Preface: This article was written long ago so some updates can be read in the last part. My first intention was to rewrite the whole article (which failed as I had not enough time). This may not be a problem as the events can be followed in progress.

Googling around the net in”retro computing topic” I happened to bump into the Enterprise in about 2000. As I never heard about this machine before (however later it came to my mind that one of my primary school class mates had had one and I had seen it for a minute) I started to read about it. Its smart hardware and software solutions seemed amazing at once, at least compared to most of the other 8-bit computers. Of course I wanted to try it too using my usual method, so searching for an emulator, as there was no real machine here. I had to detect that there were some problems here however I found the emulator called “Enter” and perhaps EP32 as well (I don’t remember any more), neither of them worked with my preferred operating system Linux. I never had Windows, the Wine (a Windows emulator-like thing) did not really run either of them. For some days I had been working with their source code but I realised that a better solution would be if I tried to write an emulator myself (learning more at the same time). I took a liking for writing an emulator soon however I wasn’t able to achieve a usable one (after the Enterprise logo had turned up it always freezed). But everything was my own work in this, including the (half ready made) Z80 emulation – I began to deal with Z80 at this time, I only had some thought about it before. The whole thing ran only in Linux and I never published it. By the way, its name would have been Xepem “X EnterPrise EMulator”. As from the above mentioned it can be seen, I hang out a little bit from the Enterprise community as I didn’t have an Enterprise (only a C64) long time ago, unlike most of the others who are interested in this topic.

A lot of things happened then, I found the Hungarian Enterprise community, the forum, I got a real Enterprise computer. (I am ashamed of myself because I haven’t really used it except for some short attempts – I am going to use it more soon!) But the most important thing in our story is that the EP128Emu was also born (it is also possible that it’s me who found it a bit late) which ran natively with Linux too. I would like to make clear: in my opinion the EP128Emu is the best and most useful Enterprise emulator. I would prefer to write a sensational review about my “attempts” here, I wouldn’t affirm that my works are as serious and usable (far not!) as the EP128Emu. As an emulator for general purposes I recommend the EP128Emu to everyone. My “first” unpublished emulator (Xepem) was not needed any more as the EP128Emu appeared. This also worked which was not a bit of advantage. 

In 2013 it happened that I was browsing the Enterprise forum and bumped into the “Web emu” topic. Here is the idea of an emulator running in a web browser however the original question referred to a plug-in or an extension. I thought I should see about the JavaScript possibilities as this technology was getting more and more popular and it’s at that time that I found the JavaScript based ZX Spectrum emulator called JSspeccy too. This thing interested me too because I wanted to know about JavaScript more than it can be known from the some-line-long “web page decorating” solutions. I looked at the source code of the JSspeccy and realised that I may not be able to write something like this by myself for the first time (since then I would be able to do). Thus I decided to try to convert it step by step with the purpose that only the Z80 emulation should remain at the end, the rest would be my work in its whole and, of course, it would emulate an Enterprise instead of a Spectrum. The first, somewhat usable solution was created surprisingly fast though the cursor was even green here, so there was some lack of Nick emulation and further faults, “small” problems.  The emulator got the name JSep – hey, at last something whose name I don’t put an X in.

Thus JSep was also a learning process for me. Unfortunately this can be seen: with my present knowledge of JavaScript I begin to cry when I see the methods I used there. In fact this is the main obstacle for further development: simply I don’t feel like dealing again with this primitive code. So, a whole rewriting would be needed – I could do this, however, it would not have much sense, see the last part of the article. Currently the emulator does not know a lot of things which would be nice, I mention only some of them: there is no sound, Z80/Nick/VRAM synchronization is inexact, you cannot save with the emulator, Nick/video emulation is inexact (interlace and so on), the emulator cannot be used on an own page or embedded. But there are at least two things that the JSep can and the EP128Emu can’t: it emulates the Boxsoft mouse interface (EnterMice is also planned) and Am9511 APU (today it would be called FPU – however APU emulation has never been seriously tested as there is no suitable software. Certain limitations come from the web technology: lots of people have asked for “setting menus” and “attaching floppy disk images”. The problem is that they forget it’s a web emulator, its purpose is the integration into web environment, and nothing can be attached from a local computer. (follow-up completion: Now it would be possible though it is not comfortable and not practical from some points of view) Everything has to be forwarded to the emulator through the web with URL (for downloading) or URL parameter (config settings and so on) format. The JSep can be useful perhaps to quickly show a program, mostly for those who do not necessarily want to install an emulator to their computer. In this case a weblink is acceptable. Briefly: the aim of a web emulator is to run in a web environment which is not too surprising.  This creates in most cases somehow different solutions that we are addicted to, with the native applications (e.g. EP128Emu). For example, I could imagine an Enterprise software collection on a webpage where the chosen program could be tried in the web with a click at once before downloading.

A surprising revolution is however that the JSep solution can be useful in other cases too.