Régis Cosnier's pages

Emu48 for Android
Fork me on GitHub

This project ports the Windows application Emu48 written in C to Android.
It uses the Android NDK. The former Emu48 source code (written by Sébastien Carlier and Christoph Giesselink) remains untouched because of a thin win32 emulation layer above Linux/NDK!
This win32 layer will allow to easily update from the original Emu48 source code.
It can open or save the exact same state files (state.e48/e49) than the original Windows application!

Some KML files with theirs faceplates are embedded in the application but it is still possible to open a KML file and its dependencies by selecting a folder.

The application does not request any permission (because it opens the files or the KML folders using the content:// scheme).

The application is distributed with the same license under GPL and you can find the source code here:


1. From the left side, slide your finger to open the menu.
2. Touch the "New..." menu item.
3. Select a predefined faceplate (or select a custom KML script folder).
4. And the calculator should now be opened.


Android version 4.4 or later.


The latest source code is available at github.com/dgis/emu48android



- Disassembler
- Debugger
- Serial Ports (Wire or Ir)


Android version by Régis COSNIER.
This program is based on Emu48 for Windows version, copyrighted by Christoph Gießelink & Sébastien Carlier, with the addition of a win32 layer to run on Android.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Note: some included files are not covered by the GPL; these include ROM image files (copyrighted by HP), KML files and faceplate images (copyrighted by their authors).
The Eric's Real scripts ("real*.kml" and "real*.bmp") are embedded in this application with the kind permission of Eric Rechlin.


2019/04/10 17:31:09 gastopaul
It would be nice if there was the "Hide the status bar" option on settings to increase the calculator. Many thanks for this free app.

2019/04/14 00:29:19 Wesley
Great application!!! It's better than Droid48 and we can simulate other models. I'm missing "Hide the status bar" too. But...it's perfect, like PC.

2019/04/24 16:53:38 Alejandro
Great!, thank you for the app. Can you tell me how to load objects (i.e. programs downloaded from hpcalc.org) once I have choose a Kml. Many thanks.

2019/04/29 15:15:13 Nick
I really like it! I use it daily. Many thanks. Can I make a small request? When starting it shows the KML compilation result. I have to click on ok (and click on new). Is it possible to start a default one calculator without clicking on the ok button?

2019/05/15 14:19:08 Johan
Really great. The only thing that would make it even better is a true full screen mode which hides both the status bar and soft keys.

2019/05/27 03:03:47 SurveyChad
Excellent, Really happy with this! I can key in a program and it takes it. I just need to figure out how to transfer my programs to my other Android device and my chromebook and of course to Windows. I will probably have to get a Windows tablet now as well. Thanks Regis!

2019/07/20 05:50:55 HP48guy
Thank you so much. I have used an HP48gx for many years to do so many things. To have a true emulation on android is a dream I have had for a while. I use my 48 as the control panel for my homebreq CNC machine using the RS232 interface. Is there any chance of making the I/O work! (Still dreamibg)

2019/08/29 04:55:10 HP48guy
I am using a KML file from my PC version of Emu48 and i found the keys were not responding to me (I had to touch a little high to make it work) By adding 10 to each y value in the offset for eacH key in the KML file it now works great for me. I used the following one liner in bash (Termux) to fix it. gawk \'/Annunciator/{go=1}go==0{print;next}/Offset/{printf(\"%8s%s %d %d\\n\",\" \",$1,$2,$3+10);next}{print}\' matt.kml | tee matt1.kml Thanks again for a great program, Matt

2019/09/11 15:09:02 Regis
@Nick There is an option to hide the KML compilation at the start in the settings. @gastopaul and @Johan It is now possible to hide the status and/or navigation bar. @HP48guy By default, in Android, there is no serial port, so, it sound difficult. For the KML bad offset, I did not have any issue with existing KML. You can email me your KML script and image.

2019/09/14 12:24:35 jp
Merci pour ce portage. On avait déjà le très bon droid48, mais qui se limitait à la hp48S/SX/G/GX. Mais là c\'est cool de pouvoir profite de la HP50G. Le rendu du KML 50G calypso 2K rend super bien. Personnellement, j\'aimerais bien que la touche \"retour\" d\'android puisse être mappée sur la touche \"on\" de la hp. (comme sur droid48).

2019/10/23 15:37:09 JeJaTy
J'ai la même question que Alejandro: comment transférer des objets entre Smartphone et PC et les éditer sur ce dernier?

2019/10/23 18:01:00 Regis
JeJaTy Je ne pense pas qu'on puisse éditer un objet de la pile hp48 sur pc. Il faudrait convertir le programme en string d'abord. Puis, dans le menu d'Emu48 faire "Copy Stack". Et faire, paste dans ce que vous voulez. Email... Éditer l'email sur pc. Renvoyer l'email, sur smartphone, Copy la string, puis dans Emu48 faire "Paste Stack". Convertir en objet si c'est un programme. Et voilà. Ça peut ou pas marcher... Sinon, pour copier des programmes, il vaut mieux utiliser "Load Object..." ou "Save Object..." qui utilisent le format binaire et natif.

2019/10/30 15:35:47 JeJaTy
Dommage, à l'époque de la calculette HP48 il existait divers Programmes de transfer entre celle-ci et le PC (p. ex. Transfile ou Kermit). Je pensais qu'il y en aurait un pour Android. Merci tout de même.

2019/10/30 17:16:27 Earl Z
New to smartphones but not the physical HP48S and HP48GX. Thank you.

2019/11/25 11:55:43 Bolivia
La mejor Aplicación qué encontré!!!!! Una Ayuda ¿como puedo Instalar Programas?

2019/11/29 23:02:45 Fran
I can't use kml from here : https://www.hpcalc.org/details/7327 Any suggestion?

2020/01/13 20:57:20 Franklyn (Franklyn2206@yahoo.de)
Hello, At first, thank you very much for EMU48 for Android. It's a wonderfull program and i like it very well. :-) But I have a problem: I created a Ram-Card of 4mb, but cannot use it in my HP50g. In settings i pointed to the "Shared-4mb.bin" and set the nodches "port 2 is pluged" and "port 2 is writeable" to "ON". But my Calc don't have it. :-( Why ?? What can i do to use my 4mb Ram-card ?? Thank you for any idea. Best greetings from Cologne / Germany x

2020/01/16 09:31:20 Regis
Hi Franklyn, The RAM card is only for the HP48. The flash of the HP49/50 is not well supported and you will have to follow the directions in the menu "About Emu48..." to use it. It is not perfect yet! I hope that it could be improve one day. Cheers, Regis

2020/03/01 15:58:19 Gérard robert
Merci pour le portage sur Android de ce calculateur mythique comme toutes les autres modèles eg HP28S. Je possède une HP48GX et une HP28S Cordialement. Robert

2020/04/18 04:38:44 Jerry Ch
Excellent program!! Thanks for the Android version, I have used it since Pocket PC versions and it's really great. Just one issue, when you install a library and switch on again, calculator executes a hard reset and delete all your memory and programs! Please your support to correct this issue. Thanks and best regards Jerry Ch

2020/08/09 19:30:26 Anuar
Are you planning to make the serial port work? I'm using a USB to rs232 adapter in android with no problem, it would be awesome to use it from the emu! Thanks


Human factor: please enter "MOB" in this field

Page size about 28174 octets. Server generation in 0.034 seconds. Client load in seconds.