CEPORT - An on-calc utility for porting your 83+/84+ TI-BASIC programs to the CSE/CE

TI-83+/84+ VERSION: http://ceme.tech/DL2190
- Recommended for developers of monochrome TI-BASIC games for porting purposes, uses Celtic III
TI-84+ CE VERSION: http://ceme.tech/DL2306
- Recommended for general users, uses Celtic CE

Converting monochrome programs that use the graph screen to the CSE and/or CE is a long and arduous process. There is a converter website out there called TI-Converter, but its method is unoptimized, resulting in programs that are frankly quite larger than they need to be.

CEPORT seeks to give monochrome TI-BASIC programmers a more straightforward and efficient method of converting their programs to CSE/CE.

Using the power of the library Celtic III, CEPORT allows you to input the name of the program you want to convert, and will then change the coordinates of every Text( and Pxl-on(/off/change/test command in the program so it looks correct on the CSE and CE. On top of being entirely on-calc, it also uses more efficient routines to keep output size down.

To show the results, here's the unmodified results of putting CSRGARAG.8xp (part of CSRacing) through both TI-Converter and CEPORT:

CEPORT's output is not only smaller, but closer to how the original game looks.

Granted, CEPORT is still in an early state- It can't parse Text commands preceded by DelVars, and converting CSRGARAG took 4 minutes and 27 seconds to complete. The speed issue is due to the amount of text commands in CSRGARAG- over 110 of them- and that this program takes about 1 second to convert 1 command for use with the CE.

EDIT: CEPORT now supports Large Font!

Some features I seek to add:
- Support for preceding delvars
- Automatic optimizations (i.e. Drop " at the end of Disp and Text commands)
- Even more optimized routines

The GitHub for this project is here: https://github.com/NinjaWeedle/CEPORT
(Feel free to criticize my string operations)

I do plan to upload this to the archives soon.
I went back and optimized this today, getting CEPORT itself down to 617 bytes.

I realize that using the same conversions for Large font as I do for small font looks a bit... off. Figuring out the right amount to scale large font coordinates to is a high priority, and then after that detecting Text and pxl commands even when they are preceded by Delvars.

I've submitted the current beta to the archives. It's available here.

EDIT: so I decided not to change the large font after all because increasing the coordinates in either direction could result in text getting cut off in select edge cases
Great work, I'm looking forward to trying this out! The size difference is pretty impressive. Now I just have to get a monochrome calculator to use Razz
TheLastMillennial wrote:
Now I just have to get a monochrome calculator to use Razz

I believe I could port this to the CSE using Celtic II libs- sadly there's no Celtic on the CE :/
I got the chance to try this out using jsTIfied and just try converting a random Tetris program. The tool worked pretty well! I didn't encounter any dimension errors which is fantastic. I did encounter an issue with the Pt-Change( command not properly inverting text but your tool doesn't touch Pt commands so I wouldn't expect it to display properly.

Anyways, it's pretty impressive the rest of the program worked normally. I'm going to enjoy using this!
Dude, this looks absolutely AMAZING! Very good job with this! I can't wait to use the huge library of programs that the 84+ has on my CE!
Alright, to answer some questions I saw in SAX earlier today:

Mr. Womp Womp wrote:
Oxiti8, does your program just not support celtic errors? >.>

No, I guess not. I was in the process of adding a function to check free ram and preemptively abort conversion if there was not enough ram, but neither Ram checking function returned anything while I worked on it, and just scrapped it. I haven't personally encountered any Celtic III-related errors during testing though.

LastMillenial wrote:
Oxiti will you be adding support for changing Line( commands?

No need. Graph dimensions already scale with the CE, and any difference is so minor it's not really worth changing. Same applies to Pt commands, as changing those would honestly do more harm than good.

Really glad this is working well for more complicated programs like Tetris 3.0.
So will this be able to make CEPORT work on the CE?

EDIT: Sorry, I read back in SAX and saw Oxiti's messages, nevermind!
I should give this a try on some of the games included with Action 52... er I mean Omnipack & Omnipack SE at some point. Nice program Smile
arusher999 wrote:
So will this be able to make CEPORT work on the CE?
EDIT: Sorry, I read back in SAX and saw Oxiti's messages, nevermind!

No, considering that library… doesn't really exist yet. I am planning a CSE port though.

Also, CEPORT is now available on ticalc.org, and TI-Planet

I've submitted the latest release of CEPORT to the archives as well.
I'd say the current version is pretty much a V1.0- It does everything I set out for it to do within a reasonable speed level.
This actually looks really interesting, nice work!
CEPORT 2.0 RELEASE - Outputted programs are now substantially smaller and faster!

What this version of changes is the following:- if it's possible (The coordinates of the text command are an integer below 99), the coordinate multiplication is done during conversion.

Basically, this results in a MASSIVE size decrease for converted programs - CSRGARAG is ~1500 bytes smaller when converted than before! Obviously the size difference differs depending on the program being converted, but still!

Also, I didn't make a GitHub release for V1.0, so I'm changing that with 2.0: https://github.com/NinjaWeedle/CEPORT/releases/tag/V2.0

It's also now available on the archives:

EDIT: I forgot to update the ticalc.org and TI-Planet versions initially, those have been updated now.

This version makes a few changes:

- Pxl commands now do the same thing as text commands- if it's possible (The coordinates of the Pxl command are an integer below 99), the coordinate multiplication is done during conversion.

- Some optimizations (Thanks Womp)

- The percentage of the conversion completed is now displayed in the bottom of the screen... during conversion.

CEPORT 2.1 has been submitted to the archives and TI-PLANET. I'll submit it to ticalc.org tomorrow.
CEPORT 2.2 - Now runs even faster!

After much bugfixing, CEPORT 2.2 is finally out- It does the same things CEPORT 2.1 does- just at nearly twice the speed of CEPORT 2.1.

It's still a bit slow - but 2 minutes 58 seconds vs. the 4 minutes 27 seconds of CEPORT 1.0 is no small feat.

Again, thanks to Mr. Womp Womp for helping with this. CEPORT 2.2 has been uploaded to the archives, TI-Planet, and ticalc.org.
I've just started work on a CE version of CEPORT written in C named CEPORT NEO.

The plan is for it to do the essentially the same thing as the original, just on the CE and in C so it's more practical to use.

The repository is available here: https://github.com/NinjaWeedle/CEPORT-NEO

Currently it just asks you for a program name and checks if it exists or not, but this will change.
That's pretty nice.
Thanks to Celtic CE, I've made a new version of CEPORT that works on the CE:

It's essentially a reworked version of CEPORT that uses Celtic II commands instead of Celtic III ones for File I/O and Eval( instead of Celtic III's NUMTOSTRING command. One could theoretically get this working on the CSE by using an old pure ti-basic Number to String method instead of Eval( but that's slower and a lot more cumbersome :/

It's technically ready for release, but I'm not going to release it until after Celtic CE releases- releasing a program that relies on a library that isn't publicly available yet doesn't really make sense, and including a private beta version of Celtic CE would be poor form to say the least.

EDIT:...And 7 hours after I posted this Celtic CE got a beta release. I've now submitted CEPORT CE to the archives.
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