Ndless is back for OS 3.9!

You should actually forget OS 3.9 which doesn’t bring anything interesting for users expect the usual anti-Ndless/anti-downgrade protection.

Get the new DowngradeFix 3.9 to uninstall OS 3.9 and (re)install OS 3.6, compatible with Ndless 3.6, the TI-Nspire calculator jailbreak. Make sure to follow all the steps described in the tutorial.

Many thanks to the usual enthusiasts who worked  hard on it behind the scenes.

You will now be able to try out the Ndless-powered MicroPython port and its PyWrite editor. Python is an interesting alternative to Lua and the #1 programming language for learning programming.

downgradefix 3.9

Ndless and OS 3.9

Ndless is currently not compatible with OS 3.9. OS 3.9 has (once again) a downgrade protection that blocks downgrade to OS 3.6, do not upgrade to OS 3.9.

Unfortunately nothing can be announced for the moment about any upcoming Ndless update. Just stick to OS 3.6.

New users who just bought a TI-Nspire with OS 3.9 pre-installed will have to wait a bit for a solution (and there’s have always been one since 2010). Sorry for the delay, you can subscribe to this blog to be notified.

New Docker Development Environment

Setting up the GCC cross-compilation toolchain to make your own Ndless C/C++ programs on Linux is easy thanks to the build_toolchain.sh script of the Ndless SDK, but a bit long as everything needs to be built from scratch.

We’re now introducing the Ndless SDK Docker image. Docker is a platform to build and share applications through lightweight containers. The Ndless SDK Docker image packs the Ndless SDK and all its dependencies.

First make sure to update your Linux box to the latest version of Docker. Then run the two commands:

$ sudo docker pull ndless/ndless-sdk
$ git clone https://github.com/ndless-nspire/Ndless.git

Add ndless-sdk/bin-docker/ to your PATH and here you go! All nspire-* commands will automatically be propagated to the Docker container.

[2014-08-27]: Change Docker Hub repo and GitHub repo URLs to latest.

Shoot ‘N Up!

After Mraklopaz and critor’s nDOOM port of Doom for the TI-Nspire in 2011, rwill joins the community with a challenging project: porting Quake… and it looks rather good!

(credits to gameblabla for the video)

Matrefeytontias is also making great progress on his Ikaruga-inspired game written from scratch in C++, nKaruga.

wVzXgctYcBez

Finally… v3.6

ndless 3.6

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!

On the Way to Ndless 3.2

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 its SDK are the unofficial way to build and run advanced programs for the TI-Nspire in assembly ARM, C and C++, with full access to the hardware and OS services.

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.

If you are familiar with ARM assembly, join the community, have a closer look to Ndless and let’s work together. Ndless is open source since 2009 for this reason.

Donating is also a good way to help. Donations help to cover hardware costs and can be redistributed to contributing members of the community.

Easy graphics with nGC

Rendering graphics on the TI-Nspire in C/C++ with Ndless as never be so easy!

hoffa’s SDL port nSDL and totorigolo’s nRGBlib were already available.

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.

ngc1

ngc2

ngc5

Get Ndless and Ndless SDK >= r903,  #include <ngc.h>, have a look at the API documentation, run the sample program in _samples/ngc/ and start to write your own colorful native programs now!

GDB debugging now available

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!

breakpoint_hit

Get the latest Ndless SDK r848.

Update your emulated OS to the latest Ndless revision r848.

Follow the tutorial for GDB debugging with Ndless.

Happy debugging!