HP Forums

Full Version: Emu48 for intel Mac
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Does anyone know of a version of emu48 calculator emulator that runs on intel macs?

I tried the mac emu48 https://sourceforge.net/projects/emu48ma...48/1.25b4/ and it is powerpc only and thus not runnable anymore on modern macs or versions of MacOS after 2009. And the version on hpcalc.org https://www.hpcalc.org/details/5829 looks like exactly the same old powerpc version that I tried 1.25 Beta 4.
Source code is here, so maybe someone could try compiling it for Intel Macs?

https://www.hpcalc.org/details/5830
That source code appears to be incomplete. I downloaded it, opened the project in the latest Xcode, changed the Base SDK to something recent, and started a build. I got this error:

Code:
CpResource /Users/thomas/xcode/emu48mac-master/Calculators /Users/thomas/Library/Developer/Xcode/DerivedData/emu48-gwdoselwkphsztexpuqwcjbtorbf/Build/Products/Development/Emu48.app/Contents/Resources/Calculators (in target: Emu48)
    cd /Users/thomas/xcode/emu48mac-master
    builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks /Users/thomas/xcode/emu48mac-master/Calculators /Users/thomas/Library/Developer/Xcode/DerivedData/emu48-gwdoselwkphsztexpuqwcjbtorbf/Build/Products/Development/Emu48.app/Contents/Resources

error: /Users/thomas/xcode/emu48mac-master/Calculators: No such file or directory

As the error message says, there is no Calculators directory in the source code. This is not buildable in this state, and there's no documentation included that might help figure out what to do, either.
Calculators is an empty folder in SourceForge, so maybe make an empty folder with that name, and then see what errors you get next? I wonder if it's intended to contain something like ROM images or UI skins.
After creating an empty Calculators directory, the next error is about the call [LogController appendLog: szString]; in kmlparser.m, line 1137. It's not clear to me why the compiler complains about that line, since LogController does look like it should be defined, but anyway, I moved past it by commenting out that line and calling NSLog(@"%@", szString); instead. There were no further build errors.

Now when I run it, this appears on the console:

Code:
2018-11-14 17:09:03.310113-0500 Emu48[783:7571] [default] Unable to load Info.plist exceptions (eGPUOverrides)

...which I'm guessing is harmless. The app starts, but doesn't show a window. In the File menu, the top item is New Calculator, which has an arrow indicating a submenu, but the submenu is, unsurprisingly, empty.

Any suggestions what I should drop into that Calculators folder? I don't think I have any suitable ROM images.

UPDATE: The "About" box text contains this, among other things: "Note: some included files are not covered by the GPL; these include ROM image files (copyrighted by HP), KML files, and faceplate images." That sounds like the missing pieces. Presumably it needs the same kind of files as Emu48 on other platforms?
I downloaded and installed the "Emu48 20th Anniversary" package (in Windows), choosing the "Lite" install, and copied the BMP, KML, and ROM files from its installation directory into the Calculators directory in my Emu48 build area in MacOS. After rebuilding, now the New Calculator menu is no longer empty, but selecting any item causes this to get logged on the console:

Code:
2018-11-14 18:21:24.044672-0500 Emu48[2040:24339] [General] An uncaught exception was raised
2018-11-14 18:21:24.044709-0500 Emu48[2040:24339] [General] readFromData:ofType:error: is a subclass responsibility but has not been overridden.
2018-11-14 18:21:24.065730-0500 Emu48[2040:24339] [General] (
    0   CoreFoundation                      0x00007fff4132ae65 __exceptionPreprocess + 256
    1   libobjc.A.dylib                     0x00007fff6d386720 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff4132ac97 +[NSException raise:format:] + 201
    3   AppKit                              0x00007fff3ed8c535 -[NSDocument readFromData:ofType:error:] + 253
    4   AppKit                              0x00007fff3ed8c219 -[NSDocument readFromURL:ofType:error:] + 620
    5   Emu48                               0x00000001000397a0 -[CalcDocument readFromURL:ofType:error:] + 576
    6   AppKit                              0x00007fff3eb07907 -[NSDocument _initWithContentsOfURL:ofType:error:] + 172
    7   AppKit                              0x00007fff3eb077ec -[NSDocument initWithContentsOfURL:ofType:error:] + 231
    8   AppKit                              0x00007fff3eb93e7a -[NSDocumentController makeDocumentWithContentsOfURL:ofType:error:] + 628
    9   AppKit                              0x00007fff3edd0433 -[NSDocumentController(NSDeprecated) openDocumentWithContentsOfURL:display:error:] + 799
    10  Emu48                               0x000000010003a0c7 -[CalcDocumentController openDocumentWithContentsOfURL:display:error:] + 103
    11  Emu48                               0x0000000100039e4a -[CalcDocumentController newDocument:] + 170
    12  AppKit                              0x00007fff3eac12cf -[NSApplication(NSResponder) sendAction:to:from:] + 312
    13  AppKit                              0x00007fff3eb1e33f -[NSMenuItem _corePerformAction] + 323
    14  AppKit                              0x00007fff3eb1e0b2 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
    15  AppKit                              0x00007fff3eb8271e -[NSMenu performActionForItemAtIndex:] + 133
    16  AppKit                              0x00007fff3eb82689 -[NSMenu _internalPerformActionForItemAtIndex:] + 94
    17  AppKit                              0x00007fff3eb824b7 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 106
    18  AppKit                              0x00007fff3eaec70d NSSLMMenuEventHandler + 902
    19  HIToolbox                           0x00007fff40509b79 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCal​lRec + 1502
    20  HIToolbox                           0x00007fff40508eb6 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRef​P14HandlerCallRec + 371
    21  HIToolbox                           0x00007fff4052631d SendEventToEventTarget + 39
    22  HIToolbox                           0x00007fff405793ef _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14Opa​queEventRef + 380
    23  HIToolbox                           0x00007fff405a1b36 SendMenuCommandWithContextAndModifiers + 49
    24  HIToolbox                           0x00007fff405a1ae8 SendMenuItemSelectedEvent + 191
    25  HIToolbox                           0x00007fff405a19cd _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 96
    26  HIToolbox                           0x00007fff405a2389 _ZL14MenuSelectCoreP8MenuData5PointdjPP13OpaqueMenuRefPt + 603
    27  HIToolbox                           0x00007fff405a209e _HandleMenuSelection2 + 453
    28  AppKit                              0x00007fff3e7d30d9 _NSHandleCarbonMenuEvent + 223
    29  AppKit                              0x00007fff3e7d2f3e _DPSEventHandledByCarbon + 54
    30  AppKit                              0x00007fff3e7c6fb0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2220
    31  AppKit                              0x00007fff3e7c0cb9 -[NSApplication run] + 699
    32  AppKit                              0x00007fff3e7b03f7 NSApplicationMain + 780
    33  Emu48                               0x00000001000016e2 main + 34
    34  libdyld.dylib                       0x00007fff6e45508d start + 1
    35  ???                                 0x0000000000000003 0x0 + 3
)

I guess that answers the question "is this going to be a simple matter of recompiling," just not the way I would have liked...
What is it that Emu48 shall do for you? If you're just looking for a plain old HP48/49/50 emulator, there may be another one that just works.
- For the Saturn-based calculators (48S(X), 48G(X), 49G) I'd suggest x48 - I haven't actually tried it, but I can't think of a reason why it shouldn't work on OSX.
- For the ARM-based calculators (49G+, 50G) there's x49gp which I know has been used successfully on OSX. There are several contributors of that project floating around these forums (including myself), which means you would at least get decent support and quick fixes if it somehow doesn't work.
For more OSX-compatible emulators, check out this older thread. (The bits I wrote about x49gp have become a bit outdated though.)
I know that Emu48 has some features which these replacements don't have (e.g. interface reorganization via KML scripts, or a pretty good built-in RPL and Saturn ASM debugger; x49gp's only debugging facility is aimed at ARM code), but they can calculate, draw graphs, run RPL programs, and most of the other stuff you can do with a physical calculator.
I, for one, want to run various hp rom images e.g. hp10b, hp17b, hp20s, hp28c, hp32, hp42s etc. This is what emu48 does under windows. Would prefer not to have to boot a virtual machine running windows to do it.
Ah, bummer. Have you tried using the Windows version in Wine? It works for me on Linux, and as far as I know Wine is also available for x86-based Macs.
I just successfully run Emu48 for Win32 with 48G ROM on macOS 10.13.6 using CrossOver MAC 17.5.1 (a commercial version of Wine)
Hello!

(11-17-2018 02:15 PM)Sylvain Cote Wrote: [ -> ]I just successfully run Emu48 for Win32 with 48G ROM on macOS 10.13.6 using CrossOver MAC 17.5.1 (a commercial version of Wine)

I successfully tried the same using Virtual Box running Windows 8 on my MacBook Pro under Mac OS 10.11. I had no luck with the "normal" EMU48 because I couldn't get the ROM image installed (and was too lazy to read the full instructions). Instead I downloaded this easy installation "easy_emu48_gx_e.zip" form somewhere which already has the ROM image. It works fine. All of what I have used to do it is available for free apart from the computer itself.

However I had no luck compiling the original project on my Mac. Using the project file as it is I get a strange error message for which I could not find a solution. And starting a new project into which I copied the source files resulted in a flood of compiler errors. As I am no particular fan of the HP48 series (to put it mildly) I called it a day at this point.

Regards
Max
(11-17-2018 02:15 PM)Sylvain Cote Wrote: [ -> ]I just successfully run Emu48 for Win32 with 48G ROM on macOS 10.13.6 using CrossOver MAC 17.5.1 (a commercial version of Wine)

Seems to run ok using the free PlayOnMac too.

Crossover has the advantage of creating a nice desktop icon to launch it, whereas PlayOnMac's shortcut icons are not runnable for some reason - but you can double click within PlayOnMac and emu48 launches fine. On the other hand, launching via PlayOnMac gives a new instance each time, whereas Crossover just takes you to the same single instance each time (making it harder to run all the calcs and make pretty pictures for posting here...;-)
(11-18-2018 03:07 AM)tcab Wrote: [ -> ]Seems to run ok using the free PlayOnMac too.
I was not aware of this project, I will give it a run, thanks for the link.

(11-18-2018 03:07 AM)tcab Wrote: [ -> ]whereas Crossover just takes you to the same single instance each time
You are right, but if you duplicate the bottle you can then have multiple instances running the same app. Just tried it and it works. Be aware that you will have to deal with the issues of the app that it not multi-instance aware (log file, state file, etc).

Regards,

Sylvain
Hi

I know these posts are a few years old but been trying to run emu48 on PlayOnMac.

The binary installs correctly, I've placed binaries in the working directory, binary runs, KML script runs but nothing displays on the calculator screen and pressing any button does nothing. Pressing the on button does not turn on the calculator. Also when I run the debugger, nothing happens when keys are pressed.

Anyone have any idea what the problem may be?
Reference URL's