Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
jsTIfied, an online emulator for the TI-73, TI-81, TI-82, TI-83, TI-83+/SE, TI-84+/SE, and TI-84+CSE, has been steadily growing in features and popularity since the first LCD-less version booted a TI-83+ OS on December 4, 2011. One of the most popular additions has been TI-84 Plus C Silver Edition support, which made jsTIfied one of the if not the only free TI-84+CSE emulator around. In an effort to keep jsTIfied as one of the most useful graphing calculator emulators around, I have now finished a round of fixes and upgrades that make it more featureful, faster, and lighter-weight. It can run at 100% emulation speed on more platforms and browsers, and offers more tools to assembly programmers and TI-84+CSE users. Without further ado, some of the highlights of the new features:

:: Better TI-84+CSE LCD Support: One of the biggest overhauls is a rewrite of the TI-84+CSE LCD (ILI9335) emulation. The addition of an intermediate GRAM buffer made it possible to support partial images, interlacing, vertical offset, inversion, and much more. The upshot is that every TI-BASIC and ASM program currently available for the TI-84+CSE, including xLIBC programs that use half-resolution mode, can be run on jsTIfied.
:: Ability to drag-n-drop to RAM or ROM: As with other popular offline calculator emulators, you can drag-n-drop calculator files directly to RAM or Archive.
:: Debugger Upgrades: Tons of new debugger features are now available, from multiple breakpoints and memory watchpoints to an improved disassembler and read-write memory viewer.
:: Animated GIF improvements: Although the intricacies of generating animated GIFs from Javascript at a decent speed mean that jsTIfied occasionally makes poor choices in palettizing TI-84+CSE animated screenshots, it is now better able to avoid egregious errors.
:: (Much) faster emulation: With the help of relative newcomer UnknownLoner, a few structural changes to jsTIfied's z80 core have made it execute 2x-3x faster on some hardware. The upshot of this is that most users will now be able to emulate their calculators at 100% speed or even faster with jsTIfied. In addition, a "full speed" button (the lightning bolt symbol) has been added for when you want jsTIfied to execute as fast as possible.

In addition, scads of smaller tweaks and fixes have been implemented, including some necessary to support jsTIfied integration into SourceCoder 3. If you're a user, teacher, or programmer, I strongly encourage you to give jsTIfied a try and see if it's right for you. As always, bug reports and feature requests are welcomed and encouraged.

Use jsTIfied
jsTIfied online graphing calculator emulator

Below: 100% emulation speed (left) and full emulation speed on a Core i5 desktop (right)
Works really well so far on Firefox, which had previously been causing me lots of problems. Great work!
merthsoft wrote:
Works really well so far on Firefox, which had previously been causing me lots of problems. Great work!
Thanks, Merth! The thing that really thrills me is that I can run jsTIfied at full speed on my Android phone, delta mobile Chrome not being thrilled about the touchscreen and the emulator skin's keys. Please let me know if you see any hiccups in performance.
Played around with it on my desktop, it runs BTetris really fast now, much closer to calc speed than it did before! Very Happy Much much smoother than it was previously, key presses don't get skipped so far, and the screen shot setup seems to do a little better, but it still has issues getting colors correct and keeping them the original. Plus it really slows down the emulator in use, but that's okay. Smile
Yeah, and if I make it do better with colors, it's going to slow it down even more; I'm really in a quandary about that. It's on my perpetual to-think-about list. The current thing I'm trying to repair is that I have a great deal of trouble pressing keys when running jsTIfied on my phone, and I'd like to fix that.
Still some graphics hiccoughs:
merthsoft wrote:
Still some graphics hiccoughs:
As a bit of a reminder to myself, I believe that the reason that happens is that non-transparent colors (in this case, for example, the green that should have covered up the erased mage) gets rounded to whichever index I'm using for transparency. Inspecting the resulting GIFs shows that the "cropped" area for each frame extends everywhere it should, even if pieces of the image are missing, so it's not that pixels are getting lost. I had the same problem with the slower of the two screenshots at the top of this topic, actually, and I had to patch it manually in the GIMP.

Also, despite reconfiguring the image maps that give jsTIfied's keys their clickability, Chrome for Mobile refuses to accept keys that are short-tapped in many cases. I tried mousedown, I tried click, and I tried href. I'm beginning to suspect that jsTIfied is actually making Chrome itself miss the taps somehow.
Great work Kerm and UnknownLoner! My beast of a workstation at work can get almost 2x speed in "as fast as possible" mode. Glad to see things are improving at the rate they are.

On a side note, I'm not sure if you got the news but Wabbitemu does now have TI-84+CSE support with a modified bootfree to support the ROM from OS upgrade tool.
No, I didn't get the news on that at all; I didn't even realize Buckeye was still participating in the community at all. Well, I think jsTIfied continues to be good at what it was meant to be: a full-featured online emulator that requires no installation. It's a bit of a shame that people go to WabbitEmu because it bypasses needing to get a legitimate OS (you already know my rant on why I think WabbitEmu breaks the OS license/TOS), but I certainly understand it.
KermMartian wrote:
Well, I think jsTIfied continues to be good at what it was meant to be: a full-featured online emulator that requires no installation.
Neither does Wabbitemu. It is just a stadalone executable. And you can use it when you are in a train with no internet connexion (and I spend 6 hours a week in trains).

KermMartian wrote:
It's a bit of a shame that people go to WabbitEmu because it bypasses needing to get a legitimate OS (you already know my rant on why I think WabbitEmu breaks the OS license/TOS), but I certainly understand it.
I don't see what you mean. I had to dump a ROM from my calc, and I think this doesn't work without any OS. I don't know how you'd get Wabbitemu to work without any OS.
It is finally running fluently in my browser now, thanks a lot for optimizing it! Great job!
Sorunome wrote:
It is finally running fluently in my browser now, thanks a lot for optimizing it! Great job!
Thanks! Let me know if you encounter any difficulties in the future. Out of curiosity, what browser and hardware are you using?
browser: chromium
on firefox it doesn't run fluently but nothing, for some add reason, runs fluently in my firefox.

Hardware: AMD Dual-Core Processor E300 (iirc it was 1.2GHz)
6GB RAM

And as OS i use Archlinux with XFCE 4
KermMartian wrote:
Chrome for Mobile refuses to accept keys that are short-tapped in many cases.


I'm just making an educated guess, but may this be the cause? http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away
I have ran into a problem which has persisted on both the old and new jsTIfied emulators. I can't seem to create a .jpg from a TI-84+CSE rom. I have tried this and Chrome repeatedly says that the webpage has become unresponsive. Even if I click wait, it will not work.
Creating a .jpg from a TI-84+SE rom does work.
Aw, jsTIfied no longer works in Opera 12.16. D: All I get is a green screen. If I try to turn the calc ON it immediately turns back OFF. Tried clearing cookies, cache and reinstalling ROM, with no luck.

The emulator used to work fine (aside from the speed being almost as slow as in Firefox) in Opera 12.16 until this update.


EDIT: I actually found a solution to make it work: I have to click the screen, but hold down the mouse button for several seconds until the RAM Cleared screen finally appeared. Speed-wise, it's actually half of the calc speed and during capture it's the same as the old jsTIfied version, but at least it's no longer a CPU hog like it used to be.

AssemblyBandit's game issues are still present, though. For example, in PacMan, when you try to turn around before a corner, you stop moving completely and some dots are left over when moving around. Here's a screenshot from jsTIfied:




You could maybe ask BuckeyeDude for help to get those games to work in jsTIfied, because all AssemblyBandit games work perfectly in WabbitEmu now:



His Tunnel game won't glitch as severely as it did a while back, though. The only problem I ran into was that the car doesn't explode when you die and some vertical line appeared in the middle of the screen when dying.
gbl08ma wrote:
KermMartian wrote:
Chrome for Mobile refuses to accept keys that are short-tapped in many cases.


I'm just making an educated guess, but may this be the cause? http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away
Thank you so much; I don't know why I didn't find a mention of that anywhere else! Although it doesn't seem to have made things perfect, that change definitely seems to have improved things in mobile Firefox and Chrome.

Electromagnet8 wrote:
I have ran into a problem which has persisted on both the old and new jsTIfied emulators. I can't seem to create a .jpg from a TI-84+CSE rom. I have tried this and Chrome repeatedly says that the webpage has become unresponsive. Even if I click wait, it will not work.
Creating a .jpg from a TI-84+SE rom does work.
I have been working on debugging this. The root cause is the LZW encoding routine I created, which seems to be under the tyranny of some surprise O(n^2) problem. The following table shows the runtime on input strings of various lengths:
Code:
Length    Runtime
1000:    1 ms
2000:    1 ms
4000:    4 ms
8000:    9 ms
16000:   18 ms
32000:   33 ms
64000:   72 ms
128000:  130 ms
256000:  1093 ms
1024000: 32358 ms
2048000: 87272 ms
4194304: 351248 ms (full ROM size)
If anyone feels like staring at the routine in question, it is short:
Code:
// LZW-compress a string
function lzw_encode(data,len) {
    var dict = {};
    var out = "";
    var currChar;
    var phrase = data.charAt(0);
    var code = 256;
    for (var i=1; i<len; i++) {
        currChar=data.charAt(i);
        if (dict[phrase + currChar] != null) {
            phrase += currChar;
        } else {
            out += (phrase.length > 1 ? dict[phrase] : phrase);
            dict[phrase + currChar] = String.fromCharCode(code);
            code++;
         //console.log("code "+code);
            phrase=currChar;
         if (code > 0xFFFF) {
            code = 256;
            dict = {};
         }
        }
    }
    out += (((phrase.length > 1) && (dict[phrase] != null)) ? dict[phrase] : phrase);
   return out;
}


DJ_O wrote:
Speed-wise, it's actually half of the calc speed and during capture it's the same as the old jsTIfied version, but at least it's no longer a CPU hog like it used to be.
Try a browser other than Opera; my experience is that Opera's Javascript engine is not the best.

Quote:
AssemblyBandit's game issues are still present, though. For example, in PacMan, when you try to turn around before a corner, you stop moving completely and some dots are left over when moving around. You could maybe ask BuckeyeDude for help to get those games to work in jsTIfied, because all AssemblyBandit games work perfectly in WabbitEmu now
And did they not previously? I'd ask Buckeye about his fix, but he hasn't been around for months here; I assumed he was no longer in the community. I only found out there was TI-84+CSE support in WabbitEmu three days ago, in fact. Razz Anyway, since these problems are specific to one or two AssemblyBandit games, I'm slightly hesitant to spend the development effort tracking them down, but if they show up elsewhere, I'll look into it.
Just wanted to note that on my laptop that jstified was nearly unusable on, it works rather well, almost to calc speed. Smile Awesome work on making this so much faster!
[quote="KermMartian"]
gbl08ma wrote:
Quote:
AssemblyBandit's game issues are still present, though. For example, in PacMan, when you try to turn around before a corner, you stop moving completely and some dots are left over when moving around. You could maybe ask BuckeyeDude for help to get those games to work in jsTIfied, because all AssemblyBandit games work perfectly in WabbitEmu now
And did they not previously? I'd ask Buckeye about his fix, but he hasn't been around for months here; I assumed he was no longer in the community. I only found out there was TI-84+CSE support in WabbitEmu three days ago, in fact. Razz Anyway, since these problems are specific to one or two AssemblyBandit games, I'm slightly hesitant to spend the development effort tracking them down, but if they show up elsewhere, I'll look into it.
Actually until the current jsTIfied version, ASM Tunnel text was all over the place, same for Buttonz and Frogger was glitchy. Pacman also had odd ghost AI in the previous version.

As for him being around he only started posting again after people started asking for a CSE version of WabbitEmu. I was too convinced that he was done with calcs. >.<
Would it be possible to increase the size of the skin to match the size of the screen for the CSE? Or would that require reprogramming the button locations and all that? Only reason I'm asking is that I went to try to align menu options to buttons, forgetting there is a size difference between screen and skin :p
  
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 2
» All times are GMT - 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