|Private comments of making emulators|
Message #20 Posted by Christoph Giesselink on 14 Dec 2003, 10:15 a.m.,
in response to message #4 by Vincent Weber
Here are some comments to this article especially to two points.
First of all, I think realistic appearance isn't such a main topic. I prefer realistic emulation much more than a real look. I use a very old and simple skin for Emu48, small window in general with large keys. It's much more work to make a complete new skin from scratch than to modify a photography.
But now to the emulation I know. You are absolutely right with Emu48CE. It's really a cruel piece of software. I bought my first PDA, a used Jornada 565 (StrongArm 206Mhz) in fall this year and I was very disappointed with the HP48 emulation. This bad behavior, very very slow, no correct restart, other things I don't know, IMHO it's quite unusable on my machine, reflects also the programming inside. Because as maintainer of the Win32 version of Emu48 I follow the project CE now over years. It still base on the first CE porting of Emu48 v1.0 upgraded in steps of v1.10, v1.14 and v1.23 to the current version, always with the old stuff behind with the try to integrate all the bug fixes of the Win32 to the CE version. But I must confess supporting so much different devices (CE2.x, CE3.0, PocketPC 2000, PocketPC 2002, PocketPC 2003) with different CPU's don't make things much easier. Therefore special assembler code makes no sense here.
One word to speed, Power48 is much faster because some parts are written in assembler. This was never a topic for Emu48 Win32. The PC's today are getting faster and faster and my problem was getting emulation slow in some cases. Also emulation speed was getting slower and slower the more accurate the emulation was getting. Emu48 v1.0 is about twice as fast on the same machine than the Emu48 v1.2x or later versions. But I agree, the CPU core emulation on Emu48 based software could be optimized for faster emulation.
Now to the emulation of the Pioneer series. There are two possibilities. You are making a commercial product or you're making it in your free time. I belong to the second group. But there is also a financial aspect. I spend much time into these project and I got not much back. Buying the real calculators to a have a base for emulation (also necessary to get the ROM images) are quite expensive (getting a HP42S below US$ 100 without luck is almost impossible now). Also the development platforms and the target machines must be payed.
I also thought like Robert Hildinger, the author of Power48, to ask for donations to finance this. On the first look PayPal seem to be a good way, so I had a look which dealer in Europe accepts PayPal, sorry I found none. So always order in the US, without native language handbooks?
There are (!) fully working emulator versions (Emu42) for the HP42S running on Win32 and PocketPC 2002 with better emulation quality and additional features over the public beta. But here I must criticize the GPL. Emu42 share about 25% of unmodified code with the original Emu48 v1.0 version written by Sebastien Carlier. I have no chance to publish Emu42 and also protect my investments without complete rewriting the sources. I'm not talking about profit here, I'm talking about the costs I had to do this work.
I spend about 40 hours to implement the "Load/Save Object..." feature for HP42S FOCAL programs inside Emu42, and maybe you also will get onto the point like me, that you want to have something more than a worm thank you.
Extraction of product benchmark:
Emu42 benchmark results using Erik Ehrling's
"Miller-Rabin Primality Test for the HP-42S"
ROM REV A: Std clock 1MHz 5m 48s
P4/2.4Ghz/533Mhz / 256MB / Windows 2000 SP4 / Emu42 v0.98-5
ROM REV C: 3s
P(MMX)/200Mhz/66Mhz / 96MB / Windows 98SE / Emu42 v0.98-4
ROM REV A: 43s
ARM SA1110/206Mhz / PocketPC 2002 / Emu42CE v0.11
ROM REV C: 1m 06s
I tried the sell my development time on the Emu42 Win32 sources to HP in spring 2002 (they were interested into a HP17BII emulator at this time) but after all they weren't interested.
After this experience and the experience other people have about honoring there work, I decided to go the only way the GPL allows me. I use the right to use and modify the GPL sources, but don't publish them, so I don't have to publish the modified sources also!
There are many people out there crying for software, but when we are on the point, they have to pay a little fee for it, we never hear from them again. So what will happen when I publish the sources and binaries of Emu42 on my page and ask for a donation? I don't think that I collect US$ 100, but I know from my experiences with Emu48 that I get many many support request by Email having problems to get the ROM image and so on...
About what prices we are talking about? In spring last year I asked for a complete new high range PocketPC PDA with some extras (to start writing emulators for the PDA) which had a value at this time of about 700 EUR (~ US$ 850 now). That's still the price for publishing my sources (and binaries) of the full versions of Emu42.
Some final words to emulation of the low and medium range Pioneer calculators (HP20S, HP32SII). Emulators for Win32 also exist, but they are emulators and ROM images aren't available or can't extracted form an original calculator. To avoid requests for the ROM images they aren't published.