NewPlayer Tools by Crescent [web]
NewPlayer Tools released by C R E S C E N T on September 1st, 2013 Welcome to the 20th anniversary release of Crescent's NewPlayer Tools, previously remained as kinda "secret tools" only within the reach of some sceners, these tools include a depacker and a set of packers for JCH's famous Music Editor. Summary of features: - Easy to use depacker, integrated into JCH's Editor. - Depacker can depack tunes made in JCH's NewPlayer V14.G0 and up. - Depacker can also convert song data from one player to another. - Robust packers for players V14.g0, V17.g1 and V20.g4. - Source code for the packers in 64tass compatible format. NewPlayer Tools have been extensively tested through out the years since their first unofficial release, by myself and by various other composers. While it is quite straightforward to use the tools, it might be crucial for you to read the rest of this document to avoid any kind of frustration on your part. You will find detailed information about the depacker, the packers, and the other files on the disk, along with some notes about the source code. But before all that, some historical information about how and why these tools were developed follows. It is quite wordy, though, so if you are not interested, feel free to skip to the The Depacker section please. THE STORY -------------------------------------------------------------------------------- Sometime around Fall 1993, I have received a copy of JCH's Editor V2.53, which was unofficially released by Antitrack. I was always hearing good things about JCH's Editor, and it seemed like all the renowned composers had been using it. So I got curious and wanted to use it, following the help file provided by Antitrack. It was all good and well, but the sound parameters for the included V14.g0 player were not all obvious, missing some details here and there, also as admitted in the documentation itself. I had not received the example songs that were said to be included with the release. So, that diminished my hopes for examining other tunes and learning the editor and the player through that way. Also there was no packer included, while one was promised to be released later. With these problems at hand, I sat to find a solution. I started to work on the depacker first. I admired the great sounds in those tunes done in JCH's players and I had no idea how to create such beautiful sounds in the beginning. So, using The Syndrom's ZakPlayer, I identified some tunes by other composers that were done in V14.G0 player. As far as I remember, I initially took Steel's very stylish tune; "Mazemania Mix" as a packed tune to be depacked and started working actually on the depacker, also utilizing the information about the data classification from the Antitrack's document. I created an initial version of the depacker not much time after, it had some problems here and there but all that I fixed and also added support for other player versions up to what was currently available by then, V20.G4. I wrote this depacker with the monitor in Action Replay 3, so there is no source available for it. What is included in this release is the exact same version of that depacker I have written 20 years ago. Amazed with the sounds that were possible with JCH's player, I tried to learn the editor for real this time, starting with sounds from Steel's awesome tune. Of course it takes much more than simply great sounds to come up with great music, so what you are hearing in the C64 note file version of this document, was what I could come up as my very first tune in JCH's player, on January 1st, 1994, hence it is called "New Year". :-) Having an unsatisfied nature in general, I wanted to use seemingly more advanced versions of JCH's players, but the editor came only with V14.G0. So, first I found some tune in V20.G4 and stripped the song data from it and adapted the table pointers in a way expected by JCH's Editor. Seeing that it worked without any problem in the editor, I did the same also for V17.G1. The included v17.G1 and v20.G4 players in this pack are therefore my own integrations, rather than what has been provided years later in JCH's official distribution. Having all these three players, I composed some tunes once in a while, from the times that left to me from working on our diskmag, Anarchy, back then. Near the release time of Anarchy, I wanted to release a music pack along with it, too. But all these work files were so large, it was finally the time to write a packer. Unlike the depacker, I started with V20.G4 as the first target player for writing the packer, as that was the most advanced one. Already knowing ins and outs of JCH's players by that time helped a great deal bit with the process, and I wrote the initial version of the packer in a day. Our first music pack, "Sonic Anarchy" contained musics packed with this version of the packer was released in June 1994, alongside with our diskmag, Anarchy. I adapted the packer for V14.G0 and V17.G1 months later, only after releasing the first couple of music packs. Included were also some additions to handle some shortcomings of the packer. Around the second half of 1994, after our first official releases in Crescent, the number of my contacts were increased. During that period, I sent these tools to a few swap friends, from there on it was spread a little in some circles. Occasionally I got feedback on the tools, especially on the packers, that some musicians were able to pack some of their tunes that they could not pack with JCH's own packer. Eventually, the packers got a small "reputation" in this regard later. I think the reason for this is probably due to the different nature of JCH's own packer and my packer. While JCH's packer is an optimizing one and doing more advanced kind of processing, my packer is a simpler one, and that probably caused the difference. Having said that, please note that all of these tools were created many years before JCH has officially released his complete tool set and source code. Later, I did some modifications to the editor itself, too, such as keyjazz (ability to press more than one key during keyboard play), multi speed tunes support and so on. But as JCH has released Editor V3.03 later, these modifications that I have done on Editor V2.53 have become obsolete, and therefore are not included in this pack. THE DEPACKER -------------------------------------------------------------------------------- The depacker is integrated into JCH's Editor V2.53, and the editor version has been updated to V2.53D1, with D1 indicating the depacker version. The editor starts with player version V20.G4, unlike the original editor which started with V14.G0. It is very important to note that you have to use a cart such as Action Replay for this version of editor/depacker to work correctly, because it uses normal Kernal load routine. It needs help from Action Replay to load files under I/O and Kernal segments in the memory. You can load a work tune, or table data, with F1 key as usual. Also in this version, you can use F1 to load a clean player supplied with the disk, if you want to depack tunes in V14.G0 or in V17.G1. Then you can load a packed tune with the F2 key. It will ask you the name of the tune, and just enter any tune in a supported player version that normally loads into $1000. Tunes relocated to other addresses cannot be loaded. Another restriction is that you can depack only the first subtune, if the tune file contains subtunes. The menu screen in the editor has been modified such that "Save Tables Only" function has been moved to F4 key. After the tune gets loaded and depacked, you can use F8 key to go into the editor itself, and see your tune in open form. You can edit your tune as you like now and save it as a work tune as desired. Should you wish to work with the latest version of JCH's Editor, V3.03, just save the tune as a work tune, and you can load it back into Editor V3.03. The depacker can also be used as a song data converter. You can load, for example, a tune made in V14.G0 into V20.G4 player, or vice versa. To do this, just make sure in the menu screen it is the desired player that has been loaded (bottom right corner), and then depack the tune made in another player with F2 key. Of course, you will need to modify sound parameters according to the new player, as the depacker merely transfers data from one player to another, and does not do any translation. For some players with close structures though, such as V15.G1, V18.G1 and V20.G4, you might need only a small amount of modification. The following versions of clean players are provided with the disk that you can load before depacking tunes: - V14.G0 - V17.G1 - V20.G4 Please note that these files are different from what has been provided with the official release of JCH's tools ("+" files in his pack). Therefore, you cannot use other players from JCH's release with the depacker. (It needs to have the pointer table in the page $0F00). And this is the list of players that can currently be depacked: - V14.G0 - V15.G1 - V17.G1 - V18.G1 - V19.G1 - V20.G4 For this release, I tested the depacker with over 100 tunes, of which around 80 of them were from other composers, and only one tune failed to be depacked. That single tune was also depacked and could be listened without any real problem, but had some weirdness in its data here and there, and honestly I did not look into what was the problem. Apart from that, apparently there is a problem with depacking V17.G1's super-table data in general. The S00 commands are correctly depacked, but not the data they point to, inside super-table. As V17.G1 is more of an archaic player now (while I actually like it quite much due to clean sounds with not much rastertime used), I did not look into this issue. But if you still need it, just let me know and I will try to solve it in a future release. THE PACKERS -------------------------------------------------------------------------------- The packers are more straightforward to use, with their own simple user interfaces. Because these packers had been developed in different times, there is no one unified packer, you need to use the corresponding packer for different player versions. These are the packers currently provided: - V14.G0 - V17.G1 - V20.G4 As with the depacker, it will be best if you use an Action Replay or a similar cart that supports fast load/save, but not required. The user interface is a bit loosey in the sense that it does not restrict cursor movement and does not do any real input validation. This was because I have written these tools for myself, and later have not bothered to improve the UI part. The best thing about these packers is that you might be able to pack those tunes that you could not get packed with JCH's own packer, due to these packers are not optimizing packers, if you do not count removal of repeating I00 commands. The V14.G0 and V17.G1 packers provided in this pack are almost the same from 1994, that they do not include some improvements that are available only in V20.G4 packer. Again, this is due to the reason that those players are seldomly used nowadays. The V20.G4 packer is more current, though, and includes some improvements such as detecting table data length in a better way, and also handling interweaved I00 and S00 commands in a more correct way. It will not try to optimize repeating I00 commands, if there are S00 commands used in between, as S00 might have been used to change ADSR values, in which case removing a repeated I00 would cause incorrect ADSR being set in those notes that come after the removed I00 command. Lastly, any empty tables in tune data will go into packed tune as 1 byte length tables. The V20.G4 packer can also load and pack tunes longer than JCH's default maximum song length; 147 blocks. You can load tunes up to 189 blocks with this packer, provided that you merged the unpacked song data yourself manually before you try to pack it. I might put an auto merge option later, if there is demand. Please note that if you use the packer for packing tunes longer 147 blocks, the use of an Action Replay cart becomes a requirement. A last but very important note is that the packers will not pack blocks beyond an empty block. Therefore, your tune must have no empty blocks in between. Again, for this release, I tested the packers with over 50 tunes, of which more than 30 of them were from other composers. Only one tune failed, and that was the tune I mentioned above in the depacker section. It is highly possible that it would be packed with success, if it could be properly depacked first. DEMO TUNES -------------------------------------------------------------------------------- Three tunes are provided for you to easily load and test, both in packed and in unpacked forms: Packed: "Anarchy" (V14.G0) "Out of Notes" (V17.G1) "Retrochild" (V20.G4) Unpacked: "14.Anarchy" (V14.G0) "17.Out of Notes" (V17.G1) "20.Retrochild" (V20.G4) "Retrochild" and "Out of Notes" are actual work files, while "Anarchy" was depacked from the original release, as I do not have the work file for it anymore. SOURCE CODE -------------------------------------------------------------------------------- The original source code for the packers was written in Turbo Assembler on C64. The depacker has no source code available as it was written directly in Action Replay monitor. I converted the sources to be compatible with 64tass, and they now assemble cleanly. After the conversion process I did not try to assemble them with Turbo Assembler on C64 again, hence I do not know if they are still compatible there. Apart from the necessary modifications for 64tass compatibility, I tried to keep the original sources intact, except for V20.G4, which I added the I00/S00 sensing code recently, as mentioned in the packer section above. You can use the sources as you wish, but please do not forget to credit me, if you release anything done with them. In case of any complaints, questions, comments; please feel free to contact me. THANKS -------------------------------------------------------------------------------- Hereby I would like to thank the following people: - Jens-Christian Huus, for simply the best music editor ever written, and also for his permission to include his editor with this tools pack. - Antitrack, for the unofficial release of JCH's Editor and the documentation he has written, which helped me to understand the editor and the player better. - The Syndrom, for his ZakPlayer tool, which helped me to identify different versions of the players. - Whoever has used my tools during the last 20 years and given me encouraging feedback in various forms. - My mom, who was never tired of listening to my awful music when I was in the first times of learning how to compose, and even still not tired when I claim to have it learned a little. :-) - Evrim, my dear sister, in the same way, who has always supported me in this, who listened to each and every tune of mine so far, and gave me valuable feedback. :-) - Katya, my lovely girl, who got into listening to SID music solely for the reason she has met me. :-) GREETINGS -------------------------------------------------------------------------------- I would like to send my greetings to my group mates in Crescent; Beast, Impetigo, Olivaw, Ref and Zero. And to our friends in: Accuracy Algotech Alpha Flight Analog Ancients Pledge Arise ArtEffect Artline Designs Ate Bit Bronx Byterapers Camelot Censor Design Chorus Clique Cosine Creators Crest Delysid DMAgic Dual Crew Shining Elysium Extend Fairlight Focus Genesis Project Glance Heatwave Hitmen Hokuto Force HVSC Crew Inox K2 Maniacs of Noise MultiStyle Labs Offence Origo Dreamline Oxyron Padua Plush Resident Resource Retrojen SCS+TRC SHAPE Smash Designs Side B Style The Imperium Arts Triad Triangle 3532 TRSI Vibrants Wrath Designs Wisdom/Crescent September 1st, 2013 http://crescent.io
[ back to the prod ]