nspire-emus / firebird Goto Github PK
View Code? Open in Web Editor NEWMulti-platform emulator of TI Nspire calculators
License: GNU General Public License v3.0
Multi-platform emulator of TI Nspire calculators
License: GNU General Public License v3.0
I closed 1 window, and discovered that I could right-click to retrieve. Being the curious person I am, I closed the rest. Now I can't get them back! Even the prefs I discovered had no effect. How do I get some of these windows back?
See title.
How do I get it to detect my usb, most options are greyed out, is there some sort of driver or something?
When the latest commit is compiled and the mobile UI is disabled, the keypad does not work on iPhone or iPad.
As soon as I do a couple of things with the calculator on windows 7 (and I think also on Windows 10), I get a "Low Memory" error message.
For example, I can systematically reproduce the problem just by following this simple workflow:
I am having the same problem with both firebird and kArmTI, on and therefore I think it is a problem with the engine or with my configuration/images.
But it seems I do not have this problem on Android using the same images.
Any idea/suggestion?
Thanks for the help!
BTW: the application is great. Would just be very useful to have a complete keyboard representation, with all labels. What about a bitmap?
Title. Crash when starting emulation. On opening the app, I get "could not resume emulation" and when pressing Start I get a hard crash back to SpringBoard.
The NAND for the calculator seems to only be loaded in RAM, and the actual data never gets written unless you explicitly save the file. Perhaps in the settings there should be a option for saving the NAND the moment it is modified, for example when saving a document.
I'm using Arch x86_64
firebird 0.30
Nspire OS version 3.6.0.550
Used latest polydumper to grab boot1, boot2, menuf, and diags images
Combined them with firebird in the Flash > Create flash menu
Booting just errors out here.
Boot Loader Stage 1 (1.1.8916)
Build: 2007/4/23, 23:37:16
Copyright (c) 2006, 2007 Texas Instruments Incorporated
Using production keys
Last boot progress: 0
Clocks: CPU = 90MHz AHB = 45MHz APB = 22MHz
Available system memory: 37292
Checking for NAND: NAND Flash ID: ST Micro NAND256R3A
PM is turning the device OFF
PM has turned the device ON
SDRAM memory test: Pass
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Clearing SDRAM...Done.
Boot option: Normal
Loading BOOT2 software...
Error reading/validating BOOT2 image
Error loading BOOT2, looking for pre-installed images.
Checking for DIAGS image in pre-install area.
No DIAGS image found.
Checking for BOOT2 image in pre-install area.
No BOOT2 image found.
Error loading BOOT2, install new version.
Checking battery level.
Battery level is OK.
Ready to download BOOT2 software...
Begin XMODEM file transfer.
�������Download error: 255BOOT1 Error:
Halting boot due to download error.
Currently it seems that using Shift
to generate symbols doesn't work properly. Some examples are Shift
+9
=(
and Shift
+.
=>
. Generating capital letters and the like is ok. I assume this is because the TI doesn't map symbols for Shift
.
While 62f942a fixes Firebird on Arch, it breaks Firebird on Debian.
Is there any possible way to add support for the latest 4.3 OS?
When I first attempted to transfer files, they would be sent however I never saw the notifications. I looked in the serial monitor tab, where it reveals that it couldn't move a file from /tmp/ to /documents/ndless/
Creating the folder ndless solved that issue, and files appeared on my calculator. However, it appears whenever you drag files into the File Transfer tab, they all go into the ndless folder, no matter what folder is selected in the tab.
I want to make an Archlinux package of the emulator. I think it would be convenient to start tagging the code with the versions on the release in order to make packaging easier.
What do you think?
This is amazing. Props to everyone who put work into this. Fantastic.
One thing that would be neat if it's easy to do - on iPad (and android tablets, or even PCs/Macs), it would be nice to be able to see the entire keypad at once, with the screen off to the side when in landscape mode. Sort of how TI does their SmartView: https://i.ytimg.com/vi/todG3tFDpHY/maxresdefault.jpg
Also, and I have no idea how this would be done on your end, but Maintenance mode would be nice to have.
USB link also does not seem to be working on OSX - the emulated calculator is not available in the TI link software, and does not show up in the System Report.
I'd be happy to donate if you have a PayPal address :)
I was using this the other day, and noticed that if I wanted to do some calculations, the divide (slash /) key and multiply (star *) key of a full size keyboard's numeric pad don't create a divide or multiply within the emulator. When the shift key is pressed to try and insert a multiply or divide using the 8 key, the actual emulator shift is pressed (which is correct), but at that point the regular multiply (star) is not active, and again the multiply is not inserted. Also, I don't think that the parentheses or equal button of the numeric pad work either. This might be a fairly simple fix for users if there was a key mapping capability instead of a static mapping (which is actually undocumented).
nspire_emu is already taken and nspire_emu-qt is not only boring and uninspired, it's even inconsistent in itself ('_' vs '-').
And ideas for a new name?
The least bad of mine was "Nexus", but that's already taken by google.
Its a good idea to introduce a zoom feature to increase the display visualization even with pixelization i think its handy have 2x and 4x zoom on the display.
This is amazing. Props to everyone who put work into this. Fantastic.
One thing that would be neat if it's easy to do - on iPad (and android tablets, or even PCs/Macs), it would be nice to be able to see the entire keypad at once, with the screen off to the side when in landscape mode. Sort of how TI does their SmartView: https://i.ytimg.com/vi/todG3tFDpHY/maxresdefault.jpg
I'd be happy to donate if you have a PayPal address :)
There is no option to load the boot1.img and boot2.img files into the emulator in the newest versions of the iOS versions. Please fix this
Compiled from master, 9f37869 under OS X 10.10.
Files dumped from TI nSpire CAS (Clickpad), running OS 3.6.0.550 and ndless 3.6.
SHASUMS:
baf177c4844f89a53e1bc299d1b84219bb386f24 boot1.img.tns
20e96ab3cf2910f6b966debffb0d9fc70119355c boot2.img.tns
5fd7dc24de23bd12de0fd2e778caf7b89e0c6acf diags.img.tns
a6bcc5fe1e34781d3c319f220ab58a9d63ee002c manuf.img.tns
Application crashes with backtrace:
Exception Type: EXC_ARITHMETIC (SIGFPE)
Exception Codes: EXC_I386_DIV (divide by zero)
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.github.adammw.firebird 0x0000000100041680 load_file(unsigned char*, nand_metrics, Partition, char const*, unsigned long) + 160
1 com.github.adammw.firebird 0x0000000100041237 flash_create_new + 199
2 com.github.adammw.firebird 0x0000000100020985 FlashDialog::saveAs() + 1045
3 org.qt-project.QtCore 0x0000000101940b7c QMetaObject::activate(QObject*, int, int, void**) + 2988
4 org.qt-project.QtWidgets 0x00000001026f06e0 QAbstractButton::clicked(bool) + 64
5 org.qt-project.QtWidgets 0x000000010244506a QAbstractButtonPrivate::emitClicked() + 58
6 org.qt-project.QtWidgets 0x0000000102444ec8 QAbstractButtonPrivate::click() + 264
7 org.qt-project.QtWidgets 0x0000000102445efe QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 270
8 org.qt-project.QtWidgets 0x000000010239db2f QWidget::event(QEvent*) + 1631
9 org.qt-project.QtWidgets 0x0000000102445c4f QAbstractButton::event(QEvent*) + 175
10 org.qt-project.QtWidgets 0x000000010235fb3b QApplicationPrivate::notify_helper(QObject*, QEvent*) + 251
So I've got the desktop version running great. Emulating an nSpire CX, with CAS v3.1 installed.
My boot1 is named "boot1.img", and my flash is named "flash.img". When I transfer these files to my phone (or my iPad), I'm met with an ambiguous "couldn't start emulation" or "could not resume," depending on which I try to do.
Files are in the correct Documents folder, transferred with SSH. Installed the .ipa with the latest version of AppCake. Both devices are jailbroken. Phone is running 9.0.2, and iPad running 7.1.2.
Anything I can try?
You should make it so when a build completes in travis, then the artifact will be uploaded to Github.
I received some comments about the license, but such a switch would need acknowledgement from all contributors... Any suggestion for a new license?
I know this is an absolutely stupid request, but still. I was going to use it for the wiki.
ANYWAYS
When I execute ndless_installer.tns (OS 3.6 CX), the program crashes. I'd assume this is because ndless uses some sort of stack overflow in order to execute the hack, but the emulator probably doesn't take kindly to this.
Process: firebird [1199]
Path: /Applications/firebird.app/Contents/MacOS/firebird
Identifier: com.yourcompany.firebird
Version: ???
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: firebird [1199]
User ID: 501
Date/Time: 2015-09-20 17:35:17.528 -0600
OS Version: Mac OS X 10.10.5 (14F27)
Report Version: 11
Anonymous UUID: A0D40770-A6D3-E04A-BA5B-919F79F4085F
Sleep/Wake UUID: D8C055FF-E0E7-44E4-BF07-91ACA364BCFA
Time Awake Since Boot: 11000 seconds
Time Since Wake: 6200 seconds
Crashed Thread: 4 EmuThread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Regions Near 0:
-->
__TEXT 0000000100000000-00000001000a6000 [ 664K] r-x/rwx SM=COW /Applications/firebird.app/Contents/MacOS/firebird
The error message says something to the effect that "The program can't start because msvcr120.dll is missing from my computer. This is a C/C++ redistributable. Where can I get this file? Doesn't look like I can download it myself from M$ unless I buy myself Visual Studio.:-( Their docs suggest that the file is one that is freely distributable, so shouldn't you provide it with your distribution?
Hello,
I'm trying to compile under ubuntu16.10. I get some warnings and at least an error of the linker.
I have appended the messages, I searched a little but I don't found a solution.
Thanks
Karsten
warnings, latest is:
../core/mem.c:425:6: note: ‘memory_suspend’ was previously declared here
bool memory_suspend(emu_snapshot *snapshot)
^
../core/mem.c:425:6: note: code may be misoptimized unless -fno-strict-aliasing is used
and the errors:
/usr/bin/ld: /tmp/ccSqysCM.ltrans0.ltrans.o: relocation R_X86_64_32S against symbol _ZN10QArrayData11shared_nullE@@Qt_5' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans2.ltrans.o: relocation R_X86_64_32 against symbol
arm' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans3.ltrans.o: relocation R_X86_64_32 against .rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans4.ltrans.o: relocation R_X86_64_32S against
.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans5.ltrans.o: relocation R_X86_64_32S against hidden symbol _ZTV22QQuickWidgetLessBroken' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans6.ltrans.o: relocation R_X86_64_32S against symbol
_ZN9QListData11shared_nullE@@Qt_5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans7.ltrans.o: relocation R_X86_64_32S against .rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans8.ltrans.o: relocation R_X86_64_32S against
.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans9.ltrans.o: relocation R_X86_64_32S against hidden symbol timer.lto_priv.233' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans10.ltrans.o: relocation R_X86_64_32 against hidden symbol
_ZN9EmuThread16staticMetaObjectE' can not be used when making a shared object
/usr/bin/ld: /tmp/ccSqysCM.ltrans11.ltrans.o: relocation R_X86_64_32 against hidden symbol _ZN10MainWindow16staticMetaObjectE' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans12.ltrans.o: relocation R_X86_64_32 against hidden symbol
_ZN11FlashDialog16staticMetaObjectE' can not be used when making a shared object
/usr/bin/ld: /tmp/ccSqysCM.ltrans13.ltrans.o: relocation R_X86_64_32 against hidden symbol reg_name' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans14.ltrans.o: relocation R_X86_64_32 against
.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans15.ltrans.o: relocation R_X86_64_32S against .rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans16.ltrans.o: relocation R_X86_64_32S against
.bss' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans17.ltrans.o: relocation R_X86_64_32 against hidden symbol _ZN10MainWindow16staticMetaObjectE' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans18.ltrans.o: relocation R_X86_64_32S against hidden symbol
_ZTV11FlashDialog' can not be used when making a shared object
/usr/bin/ld: /tmp/ccSqysCM.ltrans19.ltrans.o: relocation R_X86_64_32 against hidden symbol _ZN17USBLinkTreeWidget16staticMetaObjectE' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans20.ltrans.o: relocation R_X86_64_32S against
.text' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans21.ltrans.o: relocation R_X86_64_32S against symbol _ZN9QListData11shared_nullE@@Qt_5' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans22.ltrans.o: relocation R_X86_64_32 against hidden symbol
_ZN10MainWindow16staticMetaObjectE' can not be used when making a shared object
/usr/bin/ld: /tmp/ccSqysCM.ltrans23.ltrans.o: relocation R_X86_64_32S against symbol _ZN10QArrayData11shared_nullE@@Qt_5' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans24.ltrans.o: relocation R_X86_64_32 against
.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /tmp/ccSqysCM.ltrans25.ltrans.o: relocation R_X86_64_32S against hidden symbol _ZL17progress_callbackiPv.lto_priv.178' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans26.ltrans.o: relocation R_X86_64_32 against hidden symbol
_ZL6os_ext.lto_priv.265' can not be used when making a shared object
/usr/bin/ld: /tmp/ccSqysCM.ltrans27.ltrans.o: relocation R_X86_64_32 against .rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /tmp/ccSqysCM.ltrans28.ltrans.o: relocation R_X86_64_32 against hidden symbol
_ZN13FBAboutDialog16staticMetaObjectE' can not be used when making a shared object
/usr/bin/ld: /tmp/ccSqysCM.ltrans29.ltrans.o: relocation R_X86_64_32S against hidden symbol _ZN10MainWindow25usblink_progress_callbackEiPv' can not be used when making a shared object /usr/bin/ld: /tmp/ccSqysCM.ltrans30.ltrans.o: relocation R_X86_64_32 against hidden symbol
_ZN17USBLinkTreeWidget16staticMetaObjectE' can not be used when making a shared object
/usr/bin/ld: final link failed: Nicht darstellbarer Abschnitt bei Ausgabe
collect2: error: ld returned 1 exit status
Makefile:316: die Regel für Ziel „firebird“ scheiterte
make: *** [firebird] Fehler 1
I'm a little lost on what code to crab and throw in Xcode. Do you already have an Xcode project somewhere on here or do I need to create my own. If so, then do I just use the master source code for the iOS app?
Backtrace:
0 qt_qimageScaleAARGBA_up_xy(QImageScale::QImageScaleInfo *, unsigned int *, int, int, int, int, int, int, int, int) qimagescale.cpp 316 0x827f06
1 qt_qimageScaleAARGB(QImageScale::QImageScaleInfo *, unsigned int *, int, int, int, int, int, int, int, int) qimagescale.cpp 536 0x827c66
2 qSmoothScaleImage(QImage const&, int, int) qimagescale.cpp 738 0x827aba
3 QImage::smoothScaled(int, int) const qimage.cpp 4275 0x6dfe22
4 QImage::transformed(QTransform const&, Qt::TransformationMode) const qimage.cpp 4486 0x6dd54c
5 QImage::scaled(QSize const&, Qt::AspectRatioMode, Qt::TransformationMode) const qimage.cpp 2518 0x6dd09e
6 paintFramebuffer(QPainter *) qtframebuffer.cpp 50 0x46000
7 QMLFramebuffer::paint(QPainter *) qtframebuffer.cpp 65 0x462d8
8 QSGDefaultPainterNode::paint() qsgdefaultpainternode.cpp 153 0x4d9064
9 QSGDefaultPainterNode::update() qsgdefaultpainternode.cpp 181 0x4d91ae
10 QQuickPaintedItem::updatePaintNode(QSGNode *, QQuickItem::UpdatePaintNodeData *) qquickpainteditem.cpp 540 0x57463e
11 QQuickWindowPrivate::updateDirtyNode(QQuickItem *) qquickwindow.cpp 2985 0x533570
12 QQuickWindowPrivate::updateDirtyNodes() qquickwindow.cpp 2723 0x52ab2c
13 QQuickWindowPrivate::syncSceneGraph() qquickwindow.cpp 341 0x52a7b8
14 QSGRenderThread::sync(bool) qsgthreadedrenderloop.cpp 512 0x500f3a
15 QSGRenderThread::syncAndRender() qsgthreadedrenderloop.cpp 558 0x501402
16 QSGRenderThread::run() qsgthreadedrenderloop.cpp 674 0x501f62
17 QThreadPrivate::start(void *) qthread_unix.cpp 331 0xc74a2e
18 _pthread_body _pthread_body 0x3085de22
19 _pthread_start _pthread_start 0x3085dd96
... <More>
I took Boot1.img and Flash.img files that work well on my Mac and transferred them to my phone running Android Marshmallow and can't get the emulator to start.
I attempted to get a saved state to work, and that fails the same way.
Any ideas?
Hi, I just downloaded the firebird.ipa to use on my iPhone. I transferred the the boot1 and flash I use for firebird on my Mac (they work) through iTunes. I selected the the two files in the mobile app and when I press "start," I get "You need to select a proper boot1 and flash image before. Swipe the keyboard to the left to show the settings menu." I did select the proper files. I cannot get the simulator to work on my phone?
Cheers
I wanted to install endless on the android emulator version and I'm sorry but I've tried connecting the Android device to windows 7 using the TI nspire computer link software but it wont detect my device. I'm using os v 3.9.1.
Just curious about if there are any plans currently to publish another pre-built release of firebird.
Can you sendme the qt5 link app pls
Would it be possible to move the save, pause, reset and restart buttons to the settings area to allow the screen to be bigger?
Also an option for a qwerty keymap would be awesome.
The AUR package has an error. It tries to use /src/firebird-nspire, instead of /src/firebird-0.11. I edited mine, and it installed. However, trying to run nspire_emu gave the following error:
qrc:/qml/qml/Keypad.qml:2:1: module "QtQuick.Layouts" is not installed
[1] 19390 segmentation fault (core dumped) nspire_emu
Can I fix it or is it a problem with the package itself?
I've used Create flash
3 times now, but it doesn't seem to do anything. I can't see a Load flash
option, and all Create flash
has done is make files. Is there something I'm missing?
I try to compile nspire_emu using the instructions in README.md but it stops at following:
gcc -c -O3 -std=gnu11 -Wall -Wextra -flto -O3 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I../../nspire_emu-qt -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -I. -I. -o emu.o ../emu.c
../emu.c: In function ‘emulate’:
../emu.c:208:14: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(rom, 1, 0x80000, f);
^
../emu.c:265:14: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(boot2_ptr, 1, boot2_size, boot2_file);
^
../emu.c:197:11: internal compiler error: in update_ssa_across_abnormal_edges, at tree-inline.c:1853
memset(rom, -1, 0x80000);
^
When launched with terminal, further inspection reveals the error: "Segmentation fault: 11".
This seems to happen even when I don't add diags.img to the flash file. Instead, the diags image is loaded instead of booting to the os.
There is another software project called Firebird
https://en.wikipedia.org/wiki/Firebird_(database_server)#Mozilla_Firefox_name_conflict
The UIFileSharingEnabled value in the latest build's info.plist for iOS is missing, as well as the CFBundleExecutable is pointing to "firebird-master" instead of firebird. This is easily fixed by changing these values.
I cannot compile the iOS version using QT or Terminal on Yosemite. Can you please provide a precompiled iOS binary (I can sign it) in the releases, or here? Thanks!
I am a fan of all the tabs that are provided, as they are pretty useful. However, would it be possible to make an interface similar to the "Wabbitemu" emulator for the TI-84? I'm asking simply as it would be a better interface for making tutorial videos, or for example, teaching in a classroom with the calculator projected onto a touchscreen.
For example, this is what Wabbitemu's window can look like:
I've noticed that when I install Ndless and then load the emulator with new flash images, the Ndless Logs still persist which leads me to believe that loading a new flash image is not really a "hard reset". I tried deleting the whole firebird folder, but that still didn't work. Is there a way to do a true hard reset with this emulator?
I just try to start the emulation on android N but first the app says that "Detected problms with app native libraries.
libfirebird.so: text relocations"
Using my own boot1 and boot2 I could use in previous versions of firebird, I tried updating this tool up to HEAD (94a9baa), and the programs now crashes when starting the emulation with this error
firebird: ../core/translate_x86_64.c:53: emit_call_nosave: Assertion `false' failed.
fish: “./firebird” terminated by signal SIGABRT (Abort)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.