pouët.net

Go to bottom

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
Go to top