Hi!

I recently downloaded an app for my TI-84+ called 3DEngine. It essentially allows one to create, view and modify objects in 3D on the calculator, which I thought would be fun to play around with. Unfortunately, ever since I downloaded it, it's been causing a bug.

On the APPS menu, when I move up and down with the arrows, I can select an app without a problem. But when I use the number keys as a shortcut to get to a certain app faster, it doesn't work when 3DEngine is downloaded. The app order is:

1: Finance
2: 3DEngine
3: CabriJr

When I press on 1, it takes me to finance. But when I press on 2, it skips immediately to CabriJr, and every number after that takes me one app too far. This only happens when 3DEngine is there, leading me to think that it has something to do with a digit being in front of the name. So I want to rename the app, but I don't know how to do that.

If anyone could offer me some help, that would be awesome!
I thought this would be simple, based on the link guide and TI's own documentation. According to the Link Guide (see the "The TI-83+ FLASH file format" section), the name for an app is stored at 0x11 in the file. TI's SDK agrees with this.

However, when I edit the file in a hex editor and change the name, it still appears as 3DEngine on the calculator. I downloaded a version someone else edited in a similar way to verify. Same thing--3DEngine.

I also noticed if I go to the memory menu and select "Apps", it doesn't show up, even the unmodified version. However, it appears in the "All" menu. If I delete the modified versions from the "All" menu, it gets stuck in defragmenting. It doesn't get stuck for the original one.

This is on wabbitemu, not real hardware, with 83+, 83+SE, and 84+SE roms.

I'm not sure where else the name is stored. It's not obvious looking in a hex editor.
The name as the calculator sees it is part of the app's contents (I suspect nothing actually cares what the name is set to in the .8xk file), so you need to modify the app's code and re-sign it. This is actually more or less the same as I did years ago in turning Doors CSE into HodorCSE, but you only need to change the first appearance of the app name instead of all the strings like I did.

Looking at how an app header is written will show you where this lives; here's a sample from spasm-ng's app.inc:

Code:
    #ifndef appname
      .echo "Warning: No name given, using \"Default\""
      #define appname "Default"
    #endif
    .org $4000
    .db $80,$0F,0,0,0,0
    .db $80,$12,1,4
    .db $80,$21,1
    .db $80,$31,1
    .db $80,$48

   #define gappname eval(appname)

_   .db appname
    #define apnamlen eval($ - -_)
    echo_fill(apnamlen,"-","------------------------------------------")
    .echo "Beginning APP \"",appname,"\", courtesy of SPASM macros"
    echo_fill(apnamlen,"-","------------------------------------------")

    #if apnamlen <= 8
      .fill 8-apnamlen,' '
    #else
      #define err "App name is ",apnamlen-8," character(s) too long."
      fatal(err,1)
    #endif


This treats the app header as having a fixed structure (which it does not), but gets the point across: the app header is part of its code that gets loaded at 0x4000 at runtime (only in the first page if the app is multiple pages) and contains a few fields, one of which is the app's name. You need to find that and change it.
Hello, Akshaya here. In this tutorial I will show you how to rename an 8xk file so it can be reordered in the list on-calc.

Limitations: I can only guarantee that this method will work if the original name of the application and the name you're renaming it to are the same length. It may work for names with different lengths, or it may not, I don't know.

For this tutorial I will be using TI's official application Cabri Jr. v2.00 downloaded from TI's website.

1. Ensure you have Rabbitsign installed. Downloads may be found on ticalc.org: Windows/UNIX. Also download FixIntelHex by BrandonW; the command line version works via latest Wine on Linux as of about April 2024. Also please ensure you have a working text editor willing to open and save files with arbitrary extensions; Notepad++/GNU Nano will do nicely.

2. Set up a directory somewhere with your starting 8xk file, and the file 0104.key, which may be found here on WikiTI.

3. Open the 8xk file with your text editor. GNU Nano and Notepad++ handle files in the hundreds of kilobytes effortlessly. If you see a bunch of nonsense symbols plastered all over the screen, make sure it's set to ANSI or ASCII encoding mode. If you see a neatly aligned set of hexadecimal numbers below the first line, you're set.

4. As soon as you open it you should notice the app's name at the top after a bit of garbage. Note that down. I have selected it as such below:


5. Now let's say we want to rename CabriJr to ZabriJr to make it appear at the very bottom of the app list. So you go and change that C to a Z. Have a steady mouse, and don't delete anything except for the characters of the title you wish to modify!


6. Now convert that string you noted down earlier^ to its hexadecimal representation. You may use whatever tool you want for this, but for sake of simplicity I used a website to produce a (somewhat) visually clear example. Make sure to set the delimiter to 'none' to ensure there are no spaces between the bytes. Anyway, you should notice that this new string is right there in the second line of your 8xk! Select it in the text editor.


7. Now convert your app's new name to ASCII hex with no spaces into that same converter. In our case, the first byte which stood for 'C' is now stands for 'Z', because I wish to change the name CabriJr to a ZabriJr in my example. Copy the output of the converter and paste it in place of the hex you selected in the last step.


8. Erase the last two characters of the line you just pasted into (i.e. what I have selected):


Those last 2 characters you just deleted made up a checkum: a number that mostly verifies the integrity of the data that came before it. But we have just changed that data (i.e. the app title), and therefore we need a new checksum! The utility FixIntelHex you hopefully downloaded earlier can do this for us. On Windows, it has a GUI which is insanely easy to use, so I'll be covering how to use it command line-wise for our liberated friends in Linux land; we'll assume they already have their Wine environments set up and have FixIntelHex in their PATH. (You can also use the command line version on real Windows in exactly the same way.)

9. Open a terminal in the directory containing FixIntelHex.exe. Then, run the command:
Code:
FixIntelHex.exe -c {YOUR_LINE}
. Replace {YOUR_LINE} with the hexadecimal numbers that come after the colon character on the second line of the 8xk. Make sure the last two characters are missing! (If Windows asks you to install some specific version of .NET, do that. Wine users may or may not have to install .NET 3.5, but I don't remember if that was needed from experience.)


10. FixIntelHex will then spit out the checksum in an easy-to-read format. In my case it was 18. So now I paste 18 at the end of that second line.


11. Alright, home stretch! Save the 8xk and close your text editor. (For the sake of convenience, I just copied the entire contents of rabbitsign.zip to my directory.) Now, run:

Code:
rabbitsign -k 0104.key -g -r {FILENAME}
where {FILENAME} = the name of the 8xk app you just edited.

If all goes well, rabbitsign should give you no warnings or errors and you will have an 8xk with a "-signed" appended to it that indicates that it is the renamed app. Transfer it to your calculator and enjoy.

Note that sometimes, misclicks happen. And if this method didn't work for you, try taking a nice long break, understanding properly how to set your PATH variable, and how to change your editor's encoding. I have used this method at least 10 times and it has never failed me.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement