Originally started on Cemetech (since there's a load of C coders there who are pretty willing to help), but I'm bringing the idea here too.
As stated in the title, "Athena" is a project to help simplify the installation of large BASIC games. It started when I was reading some thread on Cemetech and DJ Omnimaga mentioned something about me building a RoL3 installer in TI-Basic/CIII. So I figured I would try my hand at building something better. Something that could possibly be used by just about anyone. The project is targeted for the TI-83+SE/TI-84+(SE) users, since they've got crazy-insane archive space for which this is possible.
For users who will be installing these games, you will only need prgmATHENA and some number of data files that are distributed. These data files act as compressed group files. Once you get all that stuff to your graphing calculator (at least read the ReadME.txt that the developer will most likely have put in), run Asm(prgmATHENA) and it will guide you through the installation process. Once it starts, no further user interaction will be needed unless you have to do stuff like garbage collect. No longer do you have to sit in front of a computer and have to send each and every individual file and possibly have to manually archive them. No longer will you have to send group files just to extract then archive the variables. Athena will perform much of this management for you!
If you accidentally delete a few of the files used by the game and if you still have both prgmATHENA and its data files, you may repair the installation by running prgmATHENA again.
Planned is the ability to install files to work with DCS. Which is to say, it will be folder-aware and let you install files in any folder of your choosing (or create your own right then and there if you don't have the folder).
Since the data files are compressed, you'll be able to have multiple large BASIC games on your calculator at the same time. Just uninstall one and install the other if you really want to.
More information will be made available for developers interested in using Athena for their projects. So... tell me what you think.
Does it check to make sure there's enough space to decompress?In short, yes. Your RAM has got to be pretty much empty, though. There are checks in the data stream that tells the installer a rough estimate as to how much space the install will take, and then compare that to the calc's memory.
Wow thats some impressive stats right there O.O Why does it compress into 3 files instead of just one large 42K out of curiosity?The version of pucrunch that I'm using can only compress up to 64KB at a time. Since I13 is around 130KB and each file is reasonably sized, so it'll create three archives.
Just FYI, you can un-group hacked pics once they are on the PC with the WinRAR utility (if you were thinking that that's an issue). I'm not sure how the file names would show up on PC though.If it can do that, you should probably be able to rename them to whatever you want. The variable's name (when it is sent to the calc) is actually dependent on some name field somewhere near the start of the file.
This sounds really cool, good luck on it :) Can't wait to see how this turns out.Thanks for the support!
Just out of curiosity, isn't pucrunch a compression method?
Ah ok, I just remember seeing it somewhere before while compression was talked about so that's why I asked. But ah ok, thanks :) It'll be a long time before I incorporate any of that into anything I do though :PIt's not that big of a deal, though. They've already got a ready-made decompressor for the purpose of sticking it in your (Z80 ASM) program so you can use it to mess with chunks of data fitting of some really huge FlashAPP.
It doesn't work on Windows XP or below, only on Vista and 7. On older OSes, some chars are not supported and the files won't ungroup.Just FYI, you can un-group hacked pics once they are on the PC with the WinRAR utility (if you were thinking that that's an issue). I'm not sure how the file names would show up on PC though.If it can do that, you should probably be able to rename them to whatever you want. The variable's name (when it is sent to the calc) is actually dependent on some name field somewhere near the start of the file.
On another note, I've got Athena generating valid .8xp files now, so I guess I can start working on the Z80 side of things pretty soon.
To ungroup 8xg files with WinRAR do you just rename the extension ot .rar then extract the files? I wonder if the format is really that similar?The file formats are completely different. Maybe there's some kind of plug-in for zipping programs?
Also, double-clicking the group file opens its content in a Windows 98 looking way. It doesn't work in Windows 7 and can crash, though.For me, it doesn't work if the group file is in a zip file.
For me, windows is convinced 8xp are text files and will refuse to treat them as anything else x.xeasy fix, just go to the control panel and change file associations
This doesn't always work I think. I accidentally made 8xk files be openable by Notepad once and I never could find the original TI-Connect app icon again in control panel afterward, so now there's no send to TI device option anymore, I have to double-click the APP. Reinstalling TI-Connect doesn't do the trick. Once you accidentally change TI-Connect file associations, it's over.For me, windows is convinced 8xp are text files and will refuse to treat them as anything else x.xeasy fix, just go to the control panel and change file associations
Iambian, I'm really looking forward to this :)
-------------------------------------------------------------------------------
Documentation regarding the package file format for the data
portion of the TI-83/84+(SE) installer software. All instances of multibyte
numeric variables are stored little-endian.
Installations using the Athena packager/installer will contain at least two
files in addition to the installer: (1) Metadate file (2) Data files.
Metadata files contain information about the install. This includes, in no
particular order, the number of data files there are, their filenames, the
number of files that are archived inside the package, the estimated amount of
FlashROM the install will use, the amount of RAM it will use, and a slightly
longer (14 character) description field.
Metadata file structure:
Ofs Siz Desc
+00 08: header. $BB,$6D,$C9,$31,$80,$00,$01,$09
+08 01: number of installer files (64KB chunks)
+09 02: number of files to be installed (can be quite a few!)
+11 03: number of bytes of FlashROM the installation will take up
+14 02: number of bytes of RAM the installation will take up
+16 01: Install type flag (not used yet)
+17 14: 14 bytes ASCII text project project name
+31 01: RESERVED
+32 --: Names of installer files (all 8 char long). This is sized
as number of installer files times eight.
The data files that come after the metadata file contains a number of streams
formatted in the following way:
+00 1b: filetype + flags. Matches TI-OS file types, except bit 7: 0=In RAM
+01 2b: checksum. Used for comparing installed files with this one.
+03 2b: file size (includes possible filesize field that comes with file)
+05 1b: filename length
+06 nb: filename
+06+n : data stream
The number of these streams will not be known until EOF is encountered. The
amount of data in this file can be up to about 65500 bytes. None of the data
streams are split for the purpose of extracting data from the file. These data
streams are pucrunch-compressed as a solid archive, so it will be up to the
reader to decompress only bytes at a time and then read the information for
its formatting and its EOF.
The name of these data files is derived from the name of the project and the
uncompressed contents of the file. Every file name will be of the form:
Zfffnnnn
Z is just the letter Z
fff are 3 characters from 0-9 A-V. Hashed from name, so will remain constant.
nnnn are 4 characters from 0-9 A-V, hashed from data, so will likey vary.
Examples: These are true examples from an experiment done on packaging
Keven Oullet's (DJ Omnimaga) somewhat incomplete Illusiat 13.
On entering into the command line:
athena -a I13 "Illusiat 13"
I get the following files out:
I13.8xp Size (bytes) : 132
ZNG0H7DI.8xv Size (bytes) : 24716
ZNG0LK35.8xv Size (bytes) : 4846
ZNGOLRSF.8xv Size (bytes) : 11936
The input was sized collectively at 138327 bytes, so this is also a great
compression ratio. Understand that the actual filesizes on-calc are going to
be a slight bit smaller since calculator files on the computer contain
additional information that is useful for the computer to calculator linking
program.
-------------------------------------------------------------------------------
Documentation regarding the creation of DCS folders
Not created yet.
This doesn't always work I think. I accidentally made 8xk files be openable by Notepad once and I never could find the original TI-Connect app icon again in control panel afterward, so now there's no send to TI device option anymore, I have to double-click the APP. Reinstalling TI-Connect doesn't do the trick. Once you accidentally change TI-Connect file associations, it's over.For me, windows is convinced 8xp are text files and will refuse to treat them as anything else x.xeasy fix, just go to the control panel and change file associations
Iambian, I'm really looking forward to this :)
I see. Do you think there will be a release, soon? (beta-test?)Really depends on how reliable the modified pucrunch decompressor is. If it passes with flying colors, I can have something out by this Monday or Tuesday. If not I'm not really sure.
It goes well. A little more work putting in extra features and ironing things out, and it should be golden.
At the moment, you can test and install archives. For this exercise, I'm using Illusiat 13 as the example. See screenshot below.
Looks nice! :D Two questions: What's the 40803 when installing for, and can TI-Connect deal with those programs over 32KiB in size?The 40803 is a bug. A really stupid one, but one that doesn't mess up anything. It's actually supposed to display the current file, but I guess I ought to change it anyway. Needs to say something like "File x of y"
The Z80 Athena seems to be mostly done now. The only thing that doesn't really work is the "Repair" command, but then again, you can always uninstall and re-install to achieve the same effect.
The PC Athena still needs to get some group support, but once that's done, I'll be releasing Athena for testing. It shouldn't be much longer now.
[...]They all should, since they're mostly hybrid BASIC programs that are being packaged here. Thing is, it won't install FlashAPPs, and according to some sources, installing them from file can be a major pain. Not worth it unless someone could write up some example code. I recall that the way Axe does it is rather hackish, so I wouldn't want to bloat the installer any more than it is unless I can figure out a way to keep its RAM footprint low.
That reminds me of Window's uninstalling/reparing programs program. What about program compatibility? Any program(s) that don't work? Or all of them do?
This is pretty cool and it works fine in Wabbit, but when I try to send an archive to my physical calculator, it says the file is corrupt or invalid. I'm using TI-Connect, btw.If possible, would you attach both files, the one that won't send and the one that will? Much appreciated, since something like this can help me come to a solution much sooner.
Edit: Exporting them from Wabbit allows them to be sent, though... The Axe MIDI Converter had a similiar problem. Maybe something with the checksum? I dunno.