TriloTracker 0.7.2

TriloTracker 0.7.2

by Huey on 02-02-2014, 15:16
Topic: Development
Languages:

A lot of hard work has been put into TriloTracker development after the initial release just after the MSX fair in Nijmegen last weekend, and the quick fix update shortly after. This has resulted in an updated version of the tracker. This new version now includes some important features the previous release was still lacking. All bugs submitted on the previous release have been fixed in this version.

New features are:

  • Support of external memory mappers. Maximum number of patterns is now set to 235 patterns.
  • Exit the program and return to MSX-DOS2.
  • Configuration menu [SHIFT+F5] is updated with more configurations (Color themes, default speed, step and add).

Fixes in this release:

  • MSX with 4MB internal memory are now detected correctly. It was detected as having 0 available slots.
  • Waveforms were not erased after starting a new song.
  • XM import crashed on import. (Instrument import is still broken).
  • Instrument editor file menu could crash on load/save.
  • On some MSX-es there was a 'click'-ing sound in the PSG during playback and editing.
  • Speed equalization was not always set correct on PAL MSX-es (50Hz)
  • Pressing [BACKSPACE] in the last row of a pattern (Track 7 and 8) would freeze the program.
  • Warning is shown when loading a Song bigger that does not fit in RAM. Not all patterns will be loaded.

As a bonus TriloByte supplied us with some new screenshots that give a good impression of what the tracker looks like and what it can do. The new version is available for download on the TT Wiki. By request this time Trilo Tracker is now available both as a disk image and as a zip file (with loose files, for direct use on an MSX).

Relevant link: TriloTracker

Media browser (10)

  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2
  • TriloTracker 0.7.2

Comments (23)

By Latok

msx guru (3647)

Latok's picture

03-02-2014, 08:28

Thanks for the updated version Smile

By ARTRAG

Enlighted (6187)

ARTRAG's picture

03-02-2014, 09:33

Now the replayer!!!
:-)

By Meits

Scribe (5437)

Meits's picture

03-02-2014, 13:17

Things just keep getting better... Just a few more updates and I have no reason not to get my ass into this fine program anymore. Ah well, if it works on a turbo R st with an external MB in it that is...
Luckily I got quite a big tutorial by John on video... I can't hear what he says, but the things he does on screen are more than half the thing I need Smile

Great job and keep them updates coming...

By Huey

Prophet (2642)

Huey's picture

03-02-2014, 21:55

Meits wrote:

Just a few more updates

What specific updates are you waiting for?
It should work on your ST+mapper now.

By msd

Paragon (1372)

msd's picture

04-02-2014, 08:37

It should be support of secondary mappers.. Dos2 (not on turbo r or panasonic 2+, they always selected internal memory as primary ) selects the biggest mapper as primary and most programs than only select pages in the primary mapper.

By Huey

Prophet (2642)

Huey's picture

04-02-2014, 10:21

msd wrote:

It should be support of secondary mappers.. Dos2 (not on turbo r or panasonic 2+, they always selected internal memory as primary ) selects the biggest mapper as primary and most programs than only select pages in the primary mapper.

msd, you are right. The new mapper support is aimed at the issue, on turbo-R and Panasonic 2+, where internal memory is always used as primary. TT supports only 1 mapper for the storage of song data (code is always in primary memory). On start-up TT will check all available mappers and chooses the the mapper with the most amount of free slots.

The issue on turbo-R (especially an ST) is that DOS2 runs in DRAM mode using 64kb RAM. By switching to DROM mode you will free this memory and make it available for TT. Handy in case you do not have an external memory mapper available. You can switch to DROM using a utillity called Romturbo.com (just google and you'll find it).

By KdL

Paragon (1211)

KdL's picture

04-02-2014, 17:34

thx! i will test it soon...

By norakomi

Paladin (963)

norakomi's picture

10-02-2014, 02:47

Hello

Im listening to some trilotracker songs on youtube, and this is some of the best msx scc music i ever heard.
Totally loving it.
Listen, I also noticed your web page, and that looks very modern, and soothing to the eye, even inviting you to browse around.
So, here's the question. A lot of times when coders try to add sourcecode from someone else into their program, it's still very confusing to deal with a lot of issues.
For instance, me personally; I have noticed so many times that it's not so black and white as to how to add code into my gamedesigns. Music replayers & sound effect replayers for instance. The code is available, but maybe let's say, there are a lot of macros in the code, which arent supported by the assembler you use.
Or the code is not compatible with the code of your assembler for some reasons.
Anyway, what I'm trying to say is.
I was wondering if I could maybe help out on the replayer.
Maybe I can make an example assembly code 'how to add the replayer to your own sourcecode'.
Just a rom file, with the assembly file and the assembler (or where to download it), and a short but clear explanation.
the rom just plays a song.
And then people can easily import the replayer code into their own code.
for the website

By Huey

Prophet (2642)

Huey's picture

10-02-2014, 09:13

@norakomi: Thanks for the offer.

I'll try to document as much as possible about the replayer to make it easier to use the replayer in your own code. Although using most of the existing replayers isn't to difficult eighter. But it does take a long time to get them working as in most cases you need to reverse engineer the code to really understand how it works beofre you can addapt it to your needs. I'll try to avoid that so it would be easier to add/remove functionality and include it in own projects.

As for the assembly format; I use sjasm and don't use any macro's. So it won't be too hard to addapt it to another compiler (I guess).

A 'how to add the replayer to your own sourcecode' example would be great.

By giuseve

Paladin (732)

giuseve's picture

12-02-2014, 19:38

I think that MODS on MSX would be more known as they are now.
I mean:
TriloTracker: Nice software, but how to use it? On the web site I saw only screenshots.
Other Tracker on MSX?
Where can we found MOD files compatible with MSX Trackers?
Maybe it's the moment to have a wiki section about it?

By JohnHassink

Ambassador (5389)

JohnHassink's picture

12-02-2014, 22:32

By syn

Paragon (1916)

syn's picture

13-02-2014, 00:28

giuseve wrote:

TriloTracker: Nice software, but how to use it? On the web site I saw only screenshots.

The manual on the website is pretty good actually, and I thought it was pretty easy to learn how to use TT.

But then again I have used fasttracker /renoise for years and never used moonblaster much.

By Kai Magazine

Paragon (1277)

Kai Magazine's picture

25-01-2015, 00:21

Hello, I am Oscar Kenneth, from Kai Magazine (lilo, no-name, nuts...) we are developing new projects and the cartridges we use include SCC sound chip, so we are MOST interested on a replayer for the trilo-tracker; a .bin which can be controlled from basic, and compatible with turbo-basic (similar to moonblaster replayer, which also works with 64k ram msx computers, and is the replayer we used for No Name and Nuts).

I would be most honored to serve you as beta tester, and to use your replayer in our next projects.

Please let me know anything about it.

Keep up the good work!

Best regards:
Oscar.

By Huey

Prophet (2642)

Huey's picture

25-01-2015, 09:10

Hi Oscar,

Thanks for the compliments.
I currently don't have plans for a basic replayer as I simply do not know how to make one for basic. I'm working on the replayer for inclusion on assembly project. I'll try to find help to also make a BASIC compatible version.

Regards,
Richard

By ARTRAG

Enlighted (6187)

ARTRAG's picture

25-01-2015, 09:14

Once released the ASM version, it should be possible to include it in nestor basic using its capability to handle segments.

By Kai Magazine

Paragon (1277)

Kai Magazine's picture

25-01-2015, 11:09

Hello Richard, there are many ASM coders who could modify the ASM replayer to be controlled from basic with defusr or pokes.
Please let us know once you have the ASM replayer finished, and we will look for help.

Thanks!

By Huey

Prophet (2642)

Huey's picture

28-01-2015, 16:24

I'll do that.
It shouldn't be too hard.

ATRAG will probably help with his invaluable experience (no pun intended Tongue). Would be fun to work together again on code.

By ARTRAG

Enlighted (6187)

ARTRAG's picture

29-01-2015, 06:19

I agree! Ithink should be fun to make the replayer work in nestorbasic

By Huey

Prophet (2642)

Huey's picture

29-01-2015, 14:35

ARTRAG wrote:

I agree! Ithink should be fun to make the replayer work in nestorbasic

Great! In case you already want to check things out just look here: https://github.com/cornelisser/TriloTracker-Re-player
If you want you can make your own branch

By ARTRAG

Enlighted (6187)

ARTRAG's picture

30-01-2015, 20:09

studing!

By MOA

Champion (293)

MOA's picture

01-02-2015, 00:01

I was having a look at the replayer code (looks very clean). I never programmed the SCC myself before, so I was wondering why you were checking if the new register value was different from the old register value; if it's not a hardware limitation, wouldn't it be more efficient to just write the new values instead of comparing them and doing a conditional jump?

talking about this part:

;--- Update changed SCC registers.
ld hl,oldregs
ld de,SCC_registers
ld bc,0x9880
ld a,3*5+1
loop:
ex af,af' ;'
ld a,(de)
cp (hl)
jr z,1f
ld (hl),a ; update old registers in ram
ld (bc),a ; update scc registers
1:
inc hl
inc de
inc bc
ex af,af' ;'
dec a
jr nz, loop
ret

vs:

;--- Update changed SCC registers.
ld hl,oldregs
ld de,SCC_registers
ld bc,0x9880
repeat 3*5+1
ld a,(de)
ld (hl),a ; update old registers in ram
ld (bc),a ; update scc registers
inc hl
inc de
inc c ; instead of 'inc bc' as C will never overflow
endrepeat
ret

(or an even more efficient LDI[R] based version, if you don't care about reading back the register values)

By ARTRAG

Enlighted (6187)

ARTRAG's picture

01-02-2015, 00:29

The plain original SCC is very buggy.
Each time you write its control registers you get some noise in the waves.
Writing only the registers that have really changed reduces this noise.

By Grauw

Enlighted (8186)

Grauw's picture

01-02-2015, 03:25

MOA wrote:

I was wondering why you were checking if the new register value was different from the old register value

Whenever you set the frequency (period) register, the internal period counter resets to 0, extending the time taken to output the next value. The reason for this reset is all explainable and logical, however this causes a small glitch in the playback, which is unpleasant to the ears (a small click). Only changing the frequency when necessary avoids this as much as possible. Though, it’s more audible in emulators than on real hardware, and of course it can’t be avoided when doing a vibrato.