Welcome, Guest. Please login or register.
Amiga Kit Amiga Store Iridium Banner AMIStore App Store A1200/A600 4xIDE Interface

AuthorTopic: Reasons why I don't like emulators - or why xx-UAE is really unusable  (Read 475 times)

0 Members and 1 Guest are viewing this topic.

guest11527

  • Guest
Recently, I hear often voices "why don't you try XXX on an emulator if you don't have access to your hardware". Here I'm trying to give an answer, and I'm also trying to give hints how to make "emulation right" because I believe that there's currently a lot wrong with all the emulators I've seen (e-uae,uae,fs-uae). Having written emulators (though for other systems) as well, I'm hopefully able to provide some positive critique.

1) The keyboard. Not everybody is using a US keyboard, and even with local keyboards permitted, users are free to redefine keys. The Amiga keyboard has an extra key, the backslash/vertical bar key on the top right that is not present on standard layouts, but this key is still essential for programming. Write a C program without the backslash is challenging. I usually have caps lock and control interchanged, but the emulator does not get track of that. Instead, it maps caps lock where it believes it should be, but where it isn't. Result is a non-functioning keyboard.

Solutions: Yes, this is hard. Two keyboard layouts are involved. The PC keyboard, and the Amiga keyboard. The solution I have found in "atari++" is: If the key maps to a regular printable character, perform the mapping by position. If the user presses the "Z" key, emulate the key that is at the same position as on the Amiga keyboard. This way, local keymaps work. If the key is a function key, i.e. "shift" or "caps lock", perform the mapping by function, not by position. Caps and Control are always the same position on a PC keyboard, no matter which national layout is used, so allow the user to change the position of these keys. Kes that are not on the PC keyboard should be emulated in an obvious matter. Backslash: AltGr+? for a German keyboard, hence "map by function". Simply *not* mapping this key is not helping.

2) Mouse grab. This is really anoying. In the window, you have either two mouse pointers, or you have one mouse pointer and do not know how to leave the window. Even if you enter the configuration menu of FS-UAE, you do not have your mouse. What do you do to regain control? I didn't know the magic word (F12+g) so I killed the emulator from a console. Yuck!

Solution: a) If the user clicks into the window, make the "native" mouse pointer non-intrusive. A single point is good enough. If some configuration menu is shown that requires user interaction, un-grab the mouse to allow configuration. And finally, use a well-accepted key-combination for ungrabbing. VMWare has set the standards (Ctrl+Alt), so why the heck not simply use that. Or, at least, show the mapping how to ungrab as soon as the mouse is grabbed. This should be the minimum standard.

3) Configuration: With uae, I have a magic text file. Bad, but doable. FS-UAE adds a graphical menu which allows to configure some, but not not all properties, and a graphical launcher that allows again to configure some other, but not all properties. Worse, if you check the internet for what the options are, you find some incomplete documentation. If you check where you have to *put* the configuration file, you get inconsistent results, and the right place (the current directory) is not even mentioned.

Solution: If you make the emulator configurable, expose *all* configuration items to the user by its interface. They need not be reachable by a single click, but there should be some GUI *within the emulator* to modify them. Text files are fine, but please put them in one consistent place that is acceptable by the system standards. On linux, this is: a dot-file in your home directory, and a default file in /etc/. Do*not* use other directories ($HOME/.config or $HOME/Desktop are bad places, unless you're part of a GUI framework that uses the same convention). Avoid "starters" or separate "configuration programs". Make command line options consistent with the GUI elements, and finally: Provide proper documentation with all options explained, and documentation that is up to date. A man page is fine. A web page is fine. But please, provide it.

4) Make it working. Or at least, mark options that are not working as "experimental". FS-UAE has an option to emulate a 68040 MMU. Nice. Try to use it with the mmu.library and see it hang. Not nice. Wouldn't that be the obvious test case for an MMU emulation? Apparently, not. Ok, if that's not what it is good for, what else? Maybe the code isn't quite debugged or complete yet. That's fine. But then, please mark it as such so that the average user can avoid it.

Resolution: Mark experimental configuration options as experimental. To make something stable, make at least the obvious tests.

5) Bad performance. Yes, there's probably little you can do about it. This is here a (old, but not so old) 2.6Ghz Athlon. Yet, emulation speed is probably something in the ball-park of a 68030@25Mhz. Slow, and even worse, inconsistent. Audio hick-ups, so audio is not exactly usable. Booting up the machine, and the emulation crawls. It gets better after a minute, I don't know why. It's probably good enough to play a game for an unexpanded 68K, but it's not good enough for power users - if there are any left. Apparently, emulator writers see the Amiga as a "games machine". Probably that's what it was, or how CBM sold it, and that's why it died. Amiga was actually a tad more than that, and emulation should try to catch up with some of these uses.

Resultion: Yes, that's hard, I understand, and there's little that can be done. My solution is not to go for software emulation in first place. Use an FPGA, you get guaranteed performance.

In the end, every time I tried emulation, I felt disappointed. It was simply not usable for me. The keyboard issue is the worst. I can't work without a working keyboard. In the end, I still power up the real hardware if I have access to it, and if I need to do some Amiga work.
 

Offline OlafS3

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #1 on: October 29, 2014, 10:08:07 AM »
Quote from: Thomas Richter;776065
Recently, I hear often voices "why don't you try XXX on an emulator if you don't have access to your hardware". Here I'm trying to give an answer, and I'm also trying to give hints how to make "emulation right" because I believe that there's currently a lot wrong with all the emulators I've seen (e-uae,uae,fs-uae). Having written emulators (though for other systems) as well, I'm hopefully able to provide some positive critique.

1) The keyboard. Not everybody is using a US keyboard, and even with local keyboards permitted, users are free to redefine keys. The Amiga keyboard has an extra key, the backslash/vertical bar key on the top right that is not present on standard layouts, but this key is still essential for programming. Write a C program without the backslash is challenging. I usually have caps lock and control interchanged, but the emulator does not get track of that. Instead, it maps caps lock where it believes it should be, but where it isn't. Result is a non-functioning keyboard.

Solutions: Yes, this is hard. Two keyboard layouts are involved. The PC keyboard, and the Amiga keyboard. The solution I have found in "atari++" is: If the key maps to a regular printable character, perform the mapping by position. If the user presses the "Z" key, emulate the key that is at the same position as on the Amiga keyboard. This way, local keymaps work. If the key is a function key, i.e. "shift" or "caps lock", perform the mapping by function, not by position. Caps and Control are always the same position on a PC keyboard, no matter which national layout is used, so allow the user to change the position of these keys. Kes that are not on the PC keyboard should be emulated in an obvious matter. Backslash: AltGr+? for a German keyboard, hence "map by function". Simply *not* mapping this key is not helping.

2) Mouse grab. This is really anoying. In the window, you have either two mouse pointers, or you have one mouse pointer and do not know how to leave the window. Even if you enter the configuration menu of FS-UAE, you do not have your mouse. What do you do to regain control? I didn't know the magic word (F12+g) so I killed the emulator from a console. Yuck!

Solution: a) If the user clicks into the window, make the "native" mouse pointer non-intrusive. A single point is good enough. If some configuration menu is shown that requires user interaction, un-grab the mouse to allow configuration. And finally, use a well-accepted key-combination for ungrabbing. VMWare has set the standards (Ctrl+Alt), so why the heck not simply use that. Or, at least, show the mapping how to ungrab as soon as the mouse is grabbed. This should be the minimum standard.

3) Configuration: With uae, I have a magic text file. Bad, but doable. FS-UAE adds a graphical menu which allows to configure some, but not not all properties, and a graphical launcher that allows again to configure some other, but not all properties. Worse, if you check the internet for what the options are, you find some incomplete documentation. If you check where you have to *put* the configuration file, you get inconsistent results, and the right place (the current directory) is not even mentioned.

Solution: If you make the emulator configurable, expose *all* configuration items to the user by its interface. They need not be reachable by a single click, but there should be some GUI *within the emulator* to modify them. Text files are fine, but please put them in one consistent place that is acceptable by the system standards. On linux, this is: a dot-file in your home directory, and a default file in /etc/. Do*not* use other directories ($HOME/.config or $HOME/Desktop are bad places, unless you're part of a GUI framework that uses the same convention). Avoid "starters" or separate "configuration programs". Make command line options consistent with the GUI elements, and finally: Provide proper documentation with all options explained, and documentation that is up to date. A man page is fine. A web page is fine. But please, provide it.

4) Make it working. Or at least, mark options that are not working as "experimental". FS-UAE has an option to emulate a 68040 MMU. Nice. Try to use it with the mmu.library and see it hang. Not nice. Wouldn't that be the obvious test case for an MMU emulation? Apparently, not. Ok, if that's not what it is good for, what else? Maybe the code isn't quite debugged or complete yet. That's fine. But then, please mark it as such so that the average user can avoid it.

Resolution: Mark experimental configuration options as experimental. To make something stable, make at least the obvious tests.

5) Bad performance. Yes, there's probably little you can do about it. This is here a (old, but not so old) 2.6Ghz Athlon. Yet, emulation speed is probably something in the ball-park of a 68030@25Mhz. Slow, and even worse, inconsistent. Audio hick-ups, so audio is not exactly usable. Booting up the machine, and the emulation crawls. It gets better after a minute, I don't know why. It's probably good enough to play a game for an unexpanded 68K, but it's not good enough for power users - if there are any left. Apparently, emulator writers see the Amiga as a "games machine". Probably that's what it was, or how CBM sold it, and that's why it died. Amiga was actually a tad more than that, and emulation should try to catch up with some of these uses.

Resultion: Yes, that's hard, I understand, and there's little that can be done. My solution is not to go for software emulation in first place. Use an FPGA, you get guaranteed performance.

In the end, every time I tried emulation, I felt disappointed. It was simply not usable for me. The keyboard issue is the worst. I can't work without a working keyboard. In the end, I still power up the real hardware if I have access to it, and if I need to do some Amiga work.

Just a question... you are mostly talking about FS-UAE I believe? Have you activated JIT? I test Aros Vision with FS-UAE on Windows and it is fast (WinUAE feels a little faster still). "Slow" sounds a little strange to me.

WinUAE supports almost everything by GUI so what you write is only valid for FS-UAE (GUI is limited there). But you can add options in the GUI (needing to know them of course)

I had setup short tutorials for both WinUAE and FS-UAE:

http://www.aros-platform.de/html/users.html

they are not up-to-date but at least a good start
« Last Edit: October 29, 2014, 10:18:04 AM by OlafS3 »
 

Offline danwood

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #2 on: October 29, 2014, 11:15:50 AM »
Try WinUAE, it really is streets ahead of E and FS-UAE.
 

Offline kolla

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #3 on: October 29, 2014, 11:30:33 AM »
The keyboard issue is the same for NG systems too. My solition for many years was to use a real amiga keyboard on Linux, using catweasel card. It would be nice with new real amiga USB keyboards.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM460 and Mac minis with MorphOS
 

Offline OlafS3

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #4 on: October 29, 2014, 11:38:38 AM »
Quote from: kolla;776070
The keyboard issue is the same for NG systems too. My solition for many years was to use a real amiga keyboard on Linux, using catweasel card. It would be nice with new real amiga USB keyboards.

I will myself test it

On Magellan (if used as desktop) you can configure every key and key combination
 

Offline fishy_fiz

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #5 on: October 29, 2014, 11:56:04 AM »
You can also redefine keyboard layout through the emulator config, so it really not a problem given that a pc keyboard has a few extra keys.

Pretty much none of your points ring true for me, but to each their own.
Near as I can tell this is where I write something under the guise of being innocuous, but really its a pot shot at another persons/peoples choice of Amiga based systems. Unfortunately only I cant see how transparent and petty it makes me look.
 

Offline wawrzon

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #6 on: October 29, 2014, 11:59:07 AM »
@thor

i agree about keyboard issues. nothing beats a real amiga keyboard for real amiga use, except when the keys get stuck due to age ;)

but speedwise uae with jit or even without is pretty snappy executing 68k code on a regular pc these days. i am using it on setups down to p4 mobile on ocassions, and it is satisfactory in my book. of course its just an intermediate tool in my eyes, but winuae is a good one, and fs-uae is probably likewise. so i dont feel like avoiding it to get something done for amiga, like test something there before i take it over to real hardware on a cf card.
 

Offline wawrzon

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #7 on: October 29, 2014, 12:05:17 PM »
@thor

by the way the autor of fs-uae is a member on eab, but not here i guess. if you like to deliver some feedback to him as how to make his emulator better, it would be a sensible choice to register there and talk to him directly. also toni is a member on eab. most technical amiga discussions, whatever subject, are carried out over there. and pretty much every member here with some knowledge and intetntions is a member there, while the opposite seems not to apply.
 

Offline ElPolloDiabl

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #8 on: October 29, 2014, 02:15:55 PM »
FS UAE is resource hungry. It is designed for multiplayer online.

Are you using an Athlon II ? I'm pretty sure my Athlon I didn't handle UAE that well.
Go Go Gadget Signature!
 

guest11527

  • Guest
Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #9 on: October 29, 2014, 02:30:10 PM »
Quote from: OlafS3;776066
Just a question... you are mostly talking about FS-UAE I believe? Have you activated JIT? I test Aros Vision with FS-UAE on Windows and it is fast (WinUAE feels a little faster still). "Slow" sounds a little strange to me.
I'm talking about any variant of UAE I could get hands on (uae,e-uae,fs-uae), all the same problems. No, there is no windows here, and no, I don't see why I should finance Microsoft for Amiga-usage. I don't see options for JIT here.
A tutorial is a nice thing to have, but a program that requires a tutorial to be usable is not.
 

Offline kjmann

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #10 on: October 29, 2014, 03:01:51 PM »
I would have to agree with you thomas. I also don't much care for Emulators and have never found one that really gives the same vibe as the real thing. I notice a difference when it comes to game control and keyboard response time. even after all these years of UAE and Fellow before that, There is still a slight feeling of delay in response time compared to the real thing.
Systems:
A500 (Originally purchased new 1989) - 3.1 ROM, 2meg Chip, 68k cpu
A500+ 3.1 ROM, 2meg Chip, 8meg Fast, 68EC020 @ 28mhz, CF Slot, SD Slot. (Classic 520 accelerator board)
 

Offline OlafS3

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #11 on: October 29, 2014, 03:03:20 PM »
Quote from: Thomas Richter;776086
I'm talking about any variant of UAE I could get hands on (uae,e-uae,fs-uae), all the same problems. No, there is no windows here, and no, I don't see why I should finance Microsoft for Amiga-usage. I don't see options for JIT here.
A tutorial is a nice thing to have, but a program that requires a tutorial to be usable is not.

On FS-UAE GUI there is something like specific options (main menu). There you can manual put in custom parameters.

when you put in "uae_cachesize = 8192" the JIT is activated and it is much faster. Whyever it is not activated by default. On WinUAE you can do the same in GUI.
 

Offline wawrzon

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #12 on: October 29, 2014, 03:05:46 PM »
seriously, thomas, none is trying to sell you on windows. as i said, many will agree with you that sitting in front of actual amiga is something else than sitting in front of a pc running an emu of whatever kind. i among others. but i dont get it how ranting about it here is going to achieve anything. except it is an introduction to some fresh news about gunnars fpga core.

one way or the other the best way to solve your problems, receive assistance and supply feedback is via eab, as i mentioned before.
 

Offline buzz

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #13 on: October 29, 2014, 03:25:34 PM »
Yeh - would do better to report things to the authors. If they don't know about it they can't change stuff. Almost as bad as cosmos! ;-)

also seems to be a bit of PEBCAK :)

as a linux user, I have found fs-uae to be excellent - and definitely the best uae we have ever had available, and it works very well on my system for development (Although I still prefer cross compiling some stuff). JIT works too (install x86 version if on 64bit)
« Last Edit: October 29, 2014, 03:28:41 PM by buzz »
 

Offline cgutjahr

Re: Reasons why I don't like emulators - or why xx-UAE is really unusable
« Reply #14 on: October 29, 2014, 04:54:42 PM »
Quote from: Thomas Richter;776086
I'm talking about any variant of UAE I could get hands on (uae,e-uae,fs-uae), all the same problems.

Everything but FS-UAE is not worth your time if you want to do more than boot a Lemmings disk image.

FS-UAE used to have a known problem with CPU emulation, they were discussing it over at EAB. Some 68k software Author even came up with Benchmarks to narrow down the problem.

Maybe you could help narrowing it down further.

Quote

No, there is no windows here, and no, I don't see why I should finance Microsoft for Amiga-usage.

You can run WinUAE under WINE. I'm not a big fan of WINE, but I had to access a HDF image with a nonstandard geometry, and only WinUAE supports that. Works perfectly fine, and WinUAE is noticably faster than FS-UAE, due to the bug mentioned above.

Quote

 I don't see options for JIT here. A tutorial is a nice thing to have, but a program that requires a tutorial to be usable is not.

You haven't used mmu.library in a while, I take it ;)