We are excited to announce that v3.6, the latest and greatest version of Ndless is finally here, for the latest TI-NspireOS v3.6!
As you may know major updates of Ndless aren’t easy at all, and the hard work has taken us a few more months than we initially expected.
This versions opens the way for native programs to the latest generation of TI-Nspire hardware sold with the locked OS v3.2, from which many of you couldn’t downgrade. We now encourage all of you to update to the latest OS v3.6 and to keep it as we still don’t know what to expect from TI for next OS updates.
This Ndless v3.6 version was born thanks to great collaboration and determination of several community members, among which bsl, critor, Excale, Jim Bauwens, Levak, Lionel Debroux, lkj, tangrs, Vogtinator and myself (ExtendeD). If their names don’t already mean something to us, don’t forget to browse compu’s 100+ programs directory to try out this new Ndless version, as they also wrote a good part of it.
A few notes:
- Most 3.1 programs will work as-is on this new 3.6, except some (Polydumper, mViewer, nClock, …) which need an update: you can already get them on tiplanet.org
- The installation is non-persistent (i.e. non reboot-proof) for this OS version. This mean an (easy) reinstallation is needed after any crash.
Ndless is now distributed from its dedicated site, ndless.me. The guys at TI-Planet wrote a nice tutorial to guide you through the installation process.
Tell us about your Ndless experience!
Many of you have got a brand new TI-Nspire CX with the latest OS 3.2.4 for this back to school, and are coming here to get Ndless for a richer experience with the TI-Nspire. As you may have noticed Ndless is at the moment not compatible with OS 3.2.4, and this OS includes the usual anti-downgrade protection that prevent any Ndless 3.1 installation.
This post should give a bit of context and answer the frequent questions about Ndless compatibility.
Why is Ndless regularly blocked by OS updates?
Ndless and some of the programs built for it have the side effect of breaking the trust model between TI and the standardized tests’ regulation bodies and the teachers community about the press-to-test feature and the physical distinction between CAS and non-CAS TI-Nspire (although it is actually purely software-based and circumvented by tools such as nLaunch/nLaunchy).
Note that the ability to run games on the TI-Nspire is not really the point as games written with the official Lua API and SDK do exist.
TI chose to protect these features by locking the entire device (instead of protecting specifically the aforementioned features) against any extension and low-level access that Ndless can provide. As a result Ndless (unwillingly) poses itself as an immediate threat to TI’s business model for the TI-Nspire.
TI has for this reason been actively chasing each major version of Ndless since 2009 with anti-Ndless updates, anti-downgrade protections (all defeated except the one in OS 3.2.4) and features against third-party code execution.
We (the Ndless community) believe that any device can ultimately be hacked, and that this is also true for the TI-Nspire. TI’s business model is flawed, the compatibility of Ndless with a new OS version is just a matter of time. TI’s competitors have understood this, but TI stubbornly forces the Ndless community and itself to play a cat-and-mouse game at each OS update.
When will Ndless 3.2 be available?
OS 3.2.0 fortunately didn’t include an anti-downgrade to OS 3.1 and let Ndless 3.1 live its life for a while. We (the contributors to Ndless and its SDK) have been able during this time to focus on useful features instead of playing the wasteful cat-and-mouse game, such as the nSDL library, the bFLT loader (that makes program porting easier), C++ compatibility, the string and Graphic Context API, host and device USB, GDB debugging and other Ndless Editor development tools.
OS 3.2.4 and its anti-downgrade feature now deprives many users who acquired a new TI-Nspire of the many third-party native programs available. The TI-Nspire community is now actively working on the update of Ndless, but this is not an easy task nor a deterministic engineering effort. Unfortunately no release date can be given (and obviously no date should be given that could be taken into account by TI for its OS release management).
How can I help?
If you are a regular user, send us a report of any reproducible reboot while using the standard functions and languages of the TI-Nspire. the Ndless installer indeed relies on unexpected behaviors for the installation of Ndless.
Donating is also a good way to help. Donations help to cover hardware costs and can be redistributed to contributing members of the community.
Rendering graphics on the TI-Nspire in C/C++ with Ndless as never be so easy!
Now Levak brings nGC to the Ndless SDK. The “TI-Nspire Graphic Context” is a standard TI-Nspire API inspired by Java’s Graphics2D and based on Nucleus GRAFIX functions. If you have already developed Lua programs for the TI-Nspire the API will look very familiar to you.
I added a while ago support for GDB debugging to nspire_emu’s fork Ncubate. Ncubate has now become out-of-date and the feature broke in Ndless several revisions ago.
Thanks to the efforts of Lionel Debroux and nspire_emu’s author Goplat of merging the feature back into nspire_emu, I’m excited to announce the availability of graphical debugging for ARM, C and C++ Ndless-based programs through the scite-debug plugin!
Get the latest Ndless SDK r848.
Update your emulated OS to the latest Ndless revision r848.
My TI-Nspire, one of the earliest production model of the blue Clickpad TI-Nspire is getting old… Mid-2007 I started to work with Romain Liévin on the reverse engineering of the USB protocol that made the TI-calc linking program TiLP able to talk to the TI-Nspire.
As Jim Bauwens sends me a TI-Nspire CX CAS that will make testing on real hardware easier for me, I want to thank you, from Switzerland to Mexico for your contributions, including Benoît Garrone, Mark Mäkinen, Rodrigo Carrillo, Sebastian Wolf and Marcel Maeder.
tangrs contributed many months ago to the support of C++ for Ndless with a bFLT loader and patches for the toolchain. Unfortunately the vanilla elf2flt couldn’t handle all the relocations produced by the latest GCC for ARM, including those required when linking with nSDL, hoffa’s port of the Simple DirectMedia Layer library. I’m today excited to announce:
- Ndless SDK r825 (or higer) with C++ support and the new bFLT binary format for Ndless programs, which becomes the recommended format to use.
- Ndless r825 (or higher), required to run programs written with C++ and nSDL
- Ndless SDK YAGARTO/MSYS components r825 (or higher) for Windows users. Linux users can use the updated installation script to install and patch elf2flt required by the new bFLT format.
C++ and nSDL now offers interesting opportunities to bring nice software to the TI-Nspire calculator. I have personally tried a quick and dirty port of GDO’s Advanced Tetris: Porting a simple graphical program means remapping the keys, relaying out the display and other straightforward minor adjustments. Source code is provided for the curious. Get Advanced Tetris for the TI-Nspire!
A port of Ndless to the TI-Nspire Chinese model CM-C has been available for a few months through Levak‘s fork.
Support for the CM-C and CM-C CAS has now been officially integrated, and opens the emulators, extensions, players, USB drivers and a hundred other programs to the Chinese community: get Ndless 3.1 r786 or higher!
(Thanks to Adriweb for the tests and video)
Since both the keyboard and mouse drivers have now reached the minimal stability and OS integration for a public release, here is the first alpha version!
Please keep it mind this is an early version with basic support and several limitations.
Get Ndless r765. This update is required for the drivers to work.
Get HIDn, the USB HID drivers.
Get the Ndless SDK r765 if you want to write your own USB drivers. Note that only basic interrupt transfer support has been tested.
Discuss about it on Omnimaga.
(many thanks to Rhombicuboctahedron for the video)
Personal events left me nearly no time to make any progress on my ongoing projects, but I hopefully recently got the opportunity to improve the early experiments of USB mouse support to integrate it with the standard OS events.
The USB driver stills has major glitches and my old blue brick doesn’t let me know how it would look like on TI-Nspire CX, but here is a preview of this new way to interact with the UI parts of the OS: