TBBS
Jeroen's Collected Resource
Menu
Login
Register
Download
Language Features
Welcome to our site
JCR is a very old project of mine, and this page is about JCR5, which basically means that I decided 5 times by now to rewrite the project from scratch.

JCR started long ago, in my green years of programming actually. It's precise date of origin is something I don't remember (must be between 1989 and 1992). Back then JCR was called JBCode as it was in the first place a simple encryption program only, but it did pack multiple files together (no compression though). My first big projects (back then written in Turbo Pascal) were using JBCode, which was very soon renamed to NCode (which could be considered as JCR2). When being forced to move to Windows, JCR3 came to be which was the first version also to carry the name JCR, which was by itself still written in TP, but I did make a reader in Visual Basic for it.

At last BlitzBasic came on my way, and JCR4 was written (basically to handle recursive directory handling and long file names, as JCR3 was limited for 12 characters for its entries).

Today JCR5 exists as JCR4 had not expansion possibilities and no compression. The target of JCR5 was to cover those two points most of all. (Thanks for the guys at ZLib for their compression algorithm and thanks to Mark Sibly to adept it for BlitzMax).

JCR5 packs all external files you may need for creating a game and forges it into one big file. JCR5 takes away the trouble of having need to give tons of files with the installation of your game, and JCR5 also has a 'patching' engine which is extremely handy when you want patching possibilities for your own upgrades or to enable people to make some addons for your games.
I am trying to make JCR available too for other programming languages, and if you want to help me by making a version for a programming language I don't know, I would gladly encourage you to!

JCR5NewsBoard
Avatar
JCR6
Posted by: Tricky; on Feb 10th 2014

JCR5 is a bit suffering from doing things a bit too quickly.

I do have some additions planned, but I came to the conclusion that to implement those I had to do some ugly coding, and also to do things with the JCR5 file format, and the format is already growing ugly.

JCR6 is yet in an experimental stage, but the first experiments are succesful

So I decided to make a shift to JCR6 in which things will be done a bit differently.

  1. First of all the file format of JCR6 will be better portable for extra features outside just storing files.
  2. JCR6 will be more 'driver' based. In JCR5 it required a core-update to implement new compression algorithms. In JCR6 you can add those algorithms just by adding a driver to JCR6. In Python 2.7 I managed to get JCR6 this way compatible with zlib, bz2 and lzma. I cannot yet promise the BlitzMax modules will have all these algorithms, if you are a Blitz Coder you can now easily write a module yourself, right? ;)
  3. Encryption might be possible now with modules you can add yourself. This project itself won't support encryption, but if you can hand in the drivers, JCR6 can contact those (at least, that's the idea). Still this feature has low priority, so it might take awhile before I implement this.
  4. I do plan to make a JCR5 driver to make JCR6 able to read JCR5 files
  5. I also plan to make a JCR6 driver for JCR5, however this driver will have minimal support and also only support files which are unencrypted and stored with either non-compression or zlib-compression.
  6. The command line tools LJCR, XJCR and DJCR will be replaced by PyJCR. Scripts for PyJCR must be written in (as the name suggests) Python. PyJCR itself requires Python 2.7 (which is implemented by default on OS X and Linux. On Windows you'll need to install this yourself). PJCR (the picture viewer) will be merged with GJCR. The fate of CJCR is yet unknown.

 

Things are in the works. As I am also in the middle of another (much bigger) project, please take into account that JCR6's development will not exactly be quick.

As long as JCR6 is unfinished JCR5 will be maintained in the sense of bugfixing whenever somebody reports one (or if I find one myself. As JCR5 is part of my other project I mentioned). When JCR6 has been released JCR5 may soon become 'deprecated'. My aim is to make JCR6 for BlitzMax as much the same as I can as JCR5 when it comes to the command set (though JCR5 uses a TMap for its pre-loaded directores. JCR6 will have its own type for that).

 

Anyway, things are currently hard to tell, but I am working on it. :)

 
Avatar
JCR5 goes Python
Posted by: Tricky; on Sep 14th 2013

Okay, the avatar issue is fixed... sorry for the long delay, but I had a lot to do. :)

Next I can proudly announce that I got the JCR5 reader working in Python.
Support is yet limited, but I see greater possibilities in getting stuff to work in Python than in the other languages I did convert JCR5 to. And as I am also exploring Python for some other projects, I got a fire under my but to get the Python version to be fully compatible here.

When the Python version is fully ready for distribution (can't tell you yet when that will be) I'll update this the JCR5 version (the main version only contains a few hotfixes so far) including my Python stuff with it.

 
Avatar
?
Posted by: Tricky; on Jun 6th 2013

Apologies for the messed up screen....

I'll sort that out as soon as possible....

 
Avatar
Release 13.06.06
Posted by: Tricky; on Jun 6th 2013

The release is here, let's put up a copy of the changelog ;)

- LZMA has been tested, and with a few lines change you can even use it, but only do so when you know BlitzMax and know what you're doing. I'm still experimenting on this so I hope for good news on this in future versions. I really hate that it malfunctioned so much. Stay tuned. - LJCR has been completely rewritten from scratch and some major updates are planned for it to make using it easier as a few nasty bugs beyond fixing are on the way (alas). LJCR.AddDir2 doesn't work any more, so stay tuned for improvement on this, so you can get around this. The good side is this is that LJCR now supports JCR merging, that it has a quicker look and it's more expandable on a few things. - LJCR now also supports the LJCR.Input feature to enable you to ask questions. This allows you a multi-config in LJCR Lua scripts. - The ability for readling LJCR scripts in GJCR has been removed and there won't ever be way any more to do this inside a GUI. In replacement GJCR is now able to pack an entire directory just by dragging it into GJCR (when in create mode). This is handy for quick packing. JCR Merging is now also supported by GJCR. - In order to still make a GUI alternative for the removed script reader and creator from GJCR the new tool CJCR has been brought to life. This tool cannot read Lua Scripts, but uses its own simplified GUI scripting method, see it as a wizard to get things done. However you still can translate this script into a .lua script for LJCR to use (which is in fact what CJCR will always do as it uses LJCR for performing the actual packing). - On a temporary basis the tool PJCR was added to provide an image viewer able to read BMP, JPEG and PNG. A viewer is also planned for GJCR and when that's finished this tool will be removed. - PPC support has now officially stopped. For the last time a PPC build will be added to the upload. My PPC device is scheduled to become my 'reserve' and will most likely only be used now as a temporary replacement if one of my 'main' devices is out of order. - Linux is most likely to become supported now. The support will however become limited to JCR5 itself. When it comes to dependencies I'm afraid I cannot offer any support - JCR now has the 'IMPORT' feature. This feature can be put into a JCR file making JCR automatically import the data from a second JCR file as well while reading a file containing such a tag. This is not merging, it's rather referencing. This can be handy for large projects. Please note that LJCR does not yet support this, only the module does, this is planned to be done in the next version. DJCR, XJCR and such will however respond well to this (if any of them do not, please notify me, but it should basically just be a matter of re-compiling). GL Basic, Blitz3D and Pascal do not yet support this, however, I'm studying if I can make it possible there. - The official license is now MPL 2.0, some files that were not modified during this update may still show MPL 1.0 or 1.1, please know that these lics are OUTDATED, MPL 2.0 will most likely appear to them once any of them will be modified. The main reason for doing this is better compatibility with the GNU General Public License.
Well, I hope this new version will be satisfying ;)
 
Avatar
Extra source for the module
Posted by: Tricky; on May 13th 2013

All modules I create and maintain will now have a place at http://tinyurl.com/trickymods  which contains a zip file will all modules of mine in uncompiled form. The JCR5 modules are also included in this file.

I most note though that I can NEVER guarantee that any module in that zip file is a stable version, same goes for the JCR5 module inside that file. On the updates I post here, the JCR5 module will just remain along the downloads, so nothing changes there.

And I must also note that the link in this message only contains the module. The tools that are part of the JCR5 project are not included in the file above.

The official next release in on the way, I hope I have time to do the finishing touches next week, but no promises yet.

See ya.

 
Avatar
Coming Soon: JCR5 Next Release
Posted by: Tricky; on Apr 25th 2013

Hi;

The next release of JCR5 is almost done, but I need you to hang on with me. I'm currently in a situation that gave me a lot of work outside of JCR5 which I (alas) must give priority.

Then another piece of bad news. LZMA has been taken off from JCR5 next release due to a lot of compilation errors on the WIndows and Linux Platforms and on MacOS X it also acts a little bit odd, but there it appears to be working. I also had a lot of issues that some files packed in LZMA became in unpacked form complete garbage. I have a few things in mind to fix these issues, but this will require time.... A LOT of time as I need to do some studies about this.
The ambition to make JCR5 compatible with LZMA has not been cancelled though. I will do some more studies on this and I already made more progress than I thought possible, I just didn't want to delay the next release because of this though.

Then a few notes with my last message here in mind:
- The creation tool of GJCR has been completely removed and been replaced by a simpler one
- In order to have full wizard capabilties in JCR creation the CJCR tool has been created
- On temporary basis the tool PJCR has been made which is a picture viewer for pictures stored inside a JCR. This tool is temporary as I plan to put a picture viewer inside GJCR

That covers it I think....
Well first my work on things outside JCR5 that MUST come first and after that I'll make the next release happen ASAP.

So hang on, guys.
 

 
Avatar
A new version of JCR5 is on the way
Posted by: Tricky; on Mar 8th 2013

Well, I said it in my last update that a major update to JCR5 is on the way.

First:
A long desire of mine was to make JCR5 compatible with the LZMA compression algorithm. There were a lot of conflicts with BlitzMax to get this done on my earlier attempts until I found out that Jan Vahro already did the dirty work for me and even released it into the public domain. Thanks Jan, you helped JCR5 a lot. Well that said I'm happy to announce that the next version of JCR5 will be LZMA compatible.

The ZLib deflate algorithm will remain present and I don't plan to deprecate it. A few reasons for that are:

  1. ZLib is more friendly on your memory while compressing. For decompressing it doesn't matter. As I want JCR5 to be able to compress in-game (when used in a game, for which it was intended), memory can be an issue.
  2. Backward compatibility
  3. There are still plans to port JCR5 to as many languages as I can. ZLib is already an issue, but can in some languages already be solved, but LZMA may be more of a problem on some languages. I really don't have the time to sort this out too deeply, so therefore this measure.
  4. There is also a technical issue on the File Table compression. Nothing big, but I won't promise it to be solved in the next update.

 

Second:
LJCR has be completely re-written from scratch. Of course, it still uses the JCR_Create.bmx file for its compression, but the code of LJCR itself was re-written. This was necessary to provide LJCR with the possibility to not only add all files into a JCR file, but to see JCR files it encounters as a folder as well and copy its entries into the new JCR file, in stead of adding the JCR file as a whole into a JCR file (which is pretty pointless as JCR5 cannot act JCR files inside another JCR file, and I don't even plan to make that possible in the future, either).

The re-write did have a few downsides. Lua doesn't seem to be able to address the AddDir2 and AddFIle2 methods any more. At least not directly. I don't think I can fix this, unless I do things differently than originally planned. This makes the future of these two methods a bit uncertain, so therefore I advice to avoid them in your scripts until further notice.

 

Third:
GJCR is a nice tool, but for serious JCR creating, it doesn't work. Therefore the current JCR creation routine in GJCR is from this moment hencheforth deprecated, and may most likely be removed in the next released. This is also due to the fact that the new LJCR has been changed so much that it won't be possible any more to keep GJCR compatible with it.

In order not to turn peeps away who rather use a GUI interface to get the job done I'm thinking to create a new app that will be a completely new script generator. This new tool won't create JCR files itself any more (but leave to that LJCR in stead) but it will contain a lot more possibilities on building scripts from a GUI interface than GJCR could ever cover. As this new tool is yet still on the drawing board, I cannot promise yet that it will be done on the next release, but I'll work as fast as I can.

 

And that should cover it, for now ;)

 
Avatar
13.02.12 released
Posted by: Tricky; on Feb 12th 2013

Well, a new version and a few new features.

I've added the feature to add author and license information to the files inside a JCR5 file. I added this feature specifically because I work a lot with 3rd party stuff in my projects, and this way I can keep my JCR5 files clean and still provide the required license and copyright information.

Please note that when you make use of that, that older versions of JCR cannot read the file any more, when you don't use it, then your file will just work as normally :)

I also must note that this feature does yet only work in BlitzMax, the readers in the other languages have not yet been updated for this feature.

 

 

Then I decided to stop the official PPC support on JCR. I think it's safe to assume that nearly all Mac users have an Intel based machine by now, so no need to keep sticking on that. If you really desire a PPC build, for the time being I can still provide it, but I basically want to save myself the trouble.

 

I can also gladly announce that I finally could compile Linux binaries of JCR5. I could not test if they work properly as I had to compile them using a VM and Linux doesn't like the fact that I work on a FAT32 device either (it refuses to run binaries that are stored on a FAT32 device and there's nothing I can do about it). I don't expect any trouble, though.

 

 

Then I can tell you that I have a big update in the planning for LJCR.
Basically it's only a feature that allows LJCR to merge other JCR files into a big JCR file (like MJCR does, but then in a way providing a lot more possibilities). As things look now this may require me to recode LJCR from scratch and this also means that I will remove all deprecated behavior in the process.
I am not planning to bring these features into GJCR yet, and I don't know if I will in the future. GJCR was never meant for serious use, only as a quick visual tool to cover a few things up for when you are too lazy to create your own LJCR lua scripts or when you don't have full understanding of those, but maybe I'll change my mind on the way, I'll have to see about that, and it will depend on how much work this will provide me (as I do have more matters on my schedule). We'll see.

 
Avatar
Working
Posted by: Tricky; on Dec 20th 2012

Well, here I am, pretty ill and still working. If it's devotion or pure insanity I'll leave that up to you cheeky

I did make some huge improvements to JCR5 and a new game project of mine of which the works have only just begun will be the first to take advantage of that. It's basically a credits & remark system. As I work A LOT with third party material released in a 'free-to-use-as-long-as-you-credit' license I could take advantage of this. In stead of putting this all in a separate txt file, JCR5 can now store it by itself and both the game as DJCR and GJCR will be able to show the copyright info of each JCR-entry. That's the idea.
Downside is that when you make use of these new features that older versions of JCR5 will not be able to read the JCR file anymore, however when you don't use these features then there's no problem.

I plan to release this upgrade in combination with the Pascal unit in January 2013

Then I'm right now putting the finishing touches onto my newest game release 'Scyndi's Forest Quest'. http://sfq.sourceforge.net
A MacOS X only alpha version can already be downloaded, I hope to release the BETA or even the first official release very soon.

And so far my story for now.

 
Avatar
A few small things
Posted by: Tricky; on Oct 31st 2012

It came to my attention that something went wrong with MJCR
It's possible that when you dl it you either get an unfinished dev version or that it's not included at all. This will be fixed in my next version update.

I can also announce that I got a reader for JCR5 working in Pascal. Yet tried in Turbo Pascal, but since nobody ever uses that anymore I'll see if it works in Free Pascal as well. If the code is Delphi compatible, I cannot say. As Delphi is based on Turbo Pascal I'd say so, but you can best try that out yourself as soon as the Pascal version is released which will be in my next update.

 
Avatar
New release
Posted by: Tricky; on Oct 25th 2012

Version 12.10.26 has been released.

 

Let's sum a few things up

- New tools (see readme)
- A few cosmetic changes in LJCR
- Blitz3D reader has been released (please note, this version does not support compression so configure LJCR or GJCR correctly on this)

And so a few more things...

More info in the readme.txt file in the download folder

 

See ya cool

 

 
Avatar
Hi there welcome to the new site.
Posted by: Tricky; on Apr 22nd 2012

Hi there;

Welcome to the official JCR5 website, which is finally accessible. Here I'll try to update you on the latest news on the project. Please note, JCR5 is an important tool for me, so (even the reasons could be a bit selfish), JCR5 is very bound to be maintained for a long time, even when I don't post updates in awhile (JCR could possibly be one of the oldest open-source projects still maintained, though this is debateble as JCR5 is the first version that went open-source) :)

With the opening of this site I can already announce that I succesfully managed to make a Blitz3D version of JCR5, and this will be opened to the public in my next version release, for which a date has not yet been set. Though BlitzPlus is very much alike Blitz3D when it comes to file handling (as far as I know), I don't know if JCR5 works on that as well, when the release it there, I hope somebody with BlitzPlus can test that out for me.


See you later, guys.

 
Avatar
Test
Posted by: Tricky; on Apr 22nd 2012

Test

 

Powered by: TBBS
© Jeroen Petrus Broks 2010