Firebird Changelog

What's new in Firebird 1.6

Mar 17, 2023
  • New features:
  • New dialog for creating Flash images, which is also available in the Mobile UI! (#262)
  • Running as 64bit application on Windows is supported now (#234)
  • Polish translation is available now (#207)
  • CX II (/-T/CAS) calculators can now be emulated (#165)! However, with the current dumping programs you will not get a complete bootrom and booting the OS will fail.
  • Improvements:
  • Multiple files can be sent in the Mobile UI and by dropping them into the main window on desktop (#279)
  • Reimplemented emulation speed control: Now it's more accurate, especially on Windows
  • GitHub actions now performs automated builds for Android (armeabi-v7a and arm64-v8a in one APK), macOS and Windows (32bit and 64bit) on releases and pull requests (#283, #284, #285)
  • The "installer" for OS 4.5.3.14 (and later?) works now. It requires fastboot RAM to persist state across reboots, which is now implemented.
  • More accurate emulation of the On button: It's now possible to enter Press-To-Test mode (#271)
  • Faster saving and loading of snapshots (#231)
  • More reliable USB file transfers
  • The debugger console now includes entered commands in the log
  • Support for PIE (position-independent executables) on x86_64. Previously, care needed to be taken that PIE was disabled, otherwise it would crash on start. (#211)
  • Building the JIT is disabled automatically if the platform does not support it (#197)
  • Firebird builds on FreeBSD now (#228, #248)
  • Bugfixes:
  • File access on Android got fixed (#202 and its various duplicates)
  • Fix placement of keypad buttons in the touchpad area (#41)
  • Various fixes for the Mobile UI layout (#201)
  • The kit configuration page in the Mobile UI no longer causes the keyboard to pop up by default (#257)
  • Connecting with GDB on windows works now (#259, #260)
  • Some shades of grey were not displayed properly when emulating pre-CX models (#270)
  • Fix crash on AArch64/arm64 when executing certain instructions
  • The keypad reacts to touch events in the desktop version as well now (#292, #293)
  • Some places were no longer translated correctly after the introduction of language switching in 1.5
  • Keys could get stuck on focus changes. Now they're all released when the keypad loses focus (#287)
  • The Ctrl key now changes color when pressed
  • Emulation speed no longer remains unlimited after a failed file transfer

New in Firebird 1.5 (Mar 30, 2020)

  • New features:
  • UI language can be switched
  • The debugger has a command history, press Up and Down arrow keys
  • On Android, the system file picker is used now, which fixes "Could not start the emulation" in many cases
  • The color scheme follows the system now
  • Improved performance of CX flash access by ignoring certain cache flush requests
  • Improvements:
  • LCD can be resized freely now
  • Performance improvements for the ARM and AArch64 JITs
  • Supports macOS 10.15 Catalina
  • The Android APK includes arm64-v8a now
  • The Windows ZIP includes software OpenGL now, so should work on more systems
  • Bugfixes:
  • Fix the external LCD sometimes being invisible
  • Allows building with recent versions of the Android NDK with clang
  • Does not crash on exit due to use of incompatible compile flags with GCC
  • Android devices with a lower w/h ratio are marked as supported now
  • firebird-send supports different implementations of netcat now
  • GDB and remote debugger work after emulation autostart as well
  • Moving the cursor over keypad buttons no longer clicks
  • On Windows, the filename for snapshots can now include non-ASCII characters
  • Fix crash on emulation start on certain x86-64 systems
  • Fix freeze on exit on JIT builds for the iOS version

New in Firebird 1.4 (Mar 30, 2020)

  • Features:
  • In the Desktop version, you can now seamlessly switch between the Mobile and Desktop UI
  • A new JIT backend emits AArch64 (aka arm64) code, used for instance on devices running iOS 10+
  • Option to hide dock titlebars, combined with other minor adjustments the UI is now more "streamlined"
  • Other improvements:
  • ARM JIT Performance improvements
  • Mobile UI supports suspend on close now (fully on desktop, on Android only with the back button)
  • Add option to disable printing of warnings (useful when booting linux or using ndless' lcd compat mode)
  • Rename "firebird" to "firebird-emu" in most places
  • Bugfixes:
  • Emulation of the Classic CAS OS handles input properly
  • Fix starting location of file select dialogs in the Kit configuration
  • Protect the input device state with a mutex (only the tip of the iceberg) to fix OS crashes on ARM
  • Replace some keypad labels with images to avoid missing symbols with certain fonts
  • Don't enter the debugger recursively if trying to read from unmapped memory using the debugger commands
  • Disable relocations in the .text section as Android 7.0+ complains about that (makes emulation a bit slower though)
  • Support GDB 8.0 for remote debugging

New in Firebird 1.3 (May 15, 2017)

  • Redesigned Mobile UI:
  • Configuration pane spans the whole screen
  • Actions easily reachable using a drawer
  • Shows the version number and about dialog
  • The On button starts/resumes the emulation
  • Multitouch now supported
  • Fix sizes (fonts, spacing, etc.)
  • Can toggle turbo mode now by clicking on the speed display
  • Improved ARM JIT:
  • Allocates registers now, huge speedup
  • Several optimizations and tunings
  • Non-existing files are now highlighted in the kit editor
  • Single file transfer has a progress bar now
  • Bug fixes:
  • GIF recording with greyscale calcs is now fixed
  • Use -no-pie if possible to fix the build on some platforms
  • Revert to old SIGNAL/SLOT syntax to fix some menu actions (got misoptimized with LTO)
  • Fix RGB555 LCD framebuffer (gpsp_nspire)

New in Firebird 1.2 (Dec 7, 2016)

  • Features:
  • The JIT (binary translation) now works on 64bit iOS and on non-jailbroken devices as well
  • The currently running kit is displayed in the title bar of the main window
  • Bug fixes:
  • The snapshot path of kits was completely ignored. It used the fallback global path for all kits instead. Sorry about that.
  • The LCD blurriness issue on iOS has been fixed

New in Firebird 1.1.1 (Nov 29, 2016)

  • Not only does "1.1.1" look much nicer than "1.1", it fixes an annoying bug with OS cursor movement.
  • Now the cursor does not jump around on repeated movements, which is especially noticeable when moving the graph view.

New in Firebird 1.1 (Nov 27, 2016)

  • New features:
  • Add new configuration dialog
  • Add easier way to manage multiple flash images with Kits
  • External LCD window, useful for presentations or saving screen space
  • Core improvements:
  • Emulation of different HW revisions (A, J and W) of CX
  • Support boot1 4.0 found in HW-W+ calcs
  • Support lcd_compat mode used by ndless
  • General speedups for x86_64 and ARM JITs
  • Supports CX installer images
  • Add headless and emscripten platforms (no binaries, not really that useful)
  • Emscripten demo on https://nspire-emus.github.io/firebird/firebird.html
  • Keypad improvements:
  • Add labels to the keypad
  • More intuitive keymap for mapping host keyboard to calc keypad
  • Touchpad can now be used to move the OS cursor
  • Make active area of buttons bigger to make typing with touchscreens easier
  • Avoid buttons appearing stuck after hovering with mouse
  • Misc. / other fixes:
  • The 32bit iOS binary detects JIT capability on runtime to avoid crashes
  • Some minor bugs fixed, like potential deadlocks in the debugger
  • Fix running functions from GDB
  • Improve HiDPI scaling
  • Mobile UI optimized for tablets in landscape orientation (right- and left-handed mode)
  • Add an update-checking feature to the about dialog

New in Firebird 0.30 (Mar 1, 2016)

  • New features:
  • Suspend and resume to/from snapshot files. Now you don't have to wait for the calc to boot, it's instantly available.
  • The USB file explorer now supports file dropping, renaming, downloading and creating folders (right-click)
  • Animated screen-capture (GIF recording)
  • Mobile UI:
  • Android: Properly implement being in background (paused)
  • More responsive: Fix sidebar buttons and add a toast-based message system
  • Fix layout of settings page with long filenames
  • Add labels to the sidebar buttons
  • iOS: Re-enable landscape mode
  • Auto-resume
  • Save button saves flash and takes a snapshot
  • Support keyboard input (desktop and HW keyboards (untested) only)
  • Improvements:
  • Refine UI: More icons, utilize status bar and wait cursor
  • More responsive UI: Can restart and resume instantly while in debugger
  • Slight performance improvements: Load flash with COW and speed up memory access in x86_64 JIT
  • Ask whether the created flash image should be used after creation
  • Add "Docks" submenu to show/hide docks
  • Disable JIT on non-jailbroken iOS devices: No longer two separate packages (edit: hotfixed Dec. 17)
  • Better/Updated translations
  • Support of UTF-8 file names/paths on Windows
  • Misc. code improvements, refactorings, etc.
  • Bugfixes:
  • Make usblink much more reliable
  • Fix dropping multiple files at once
  • Fix speed display: Using C++11 std::chrono instead of OS specific functions now
  • Fix gpsp_nspire: RGB555 not implemented and implement the CPU's behaviour if add changes the PC's lower bits
  • Fix polydumper: CP15 instruction was not implemented
  • Fix boot2 going into standby: bad_read_word
  • Fix some crashes on OS X (compiler bug recently fixed)
  • Set focus to the LCD on startup: Can type instantly now
  • Show "In debugger" overlay if GDB is connected
  • Cut long boot1 and flash filenames in the UI
  • Fix last keypad row on iOS: Added some padding on the bottom of the keypad to avoid triggering the control center
  • Not really an actual bugfix, but the license got changed to GPLv3.