Subject: Planning for UADE 2.03

From: shd
Date: Sun May 7 20:16:25 2006

To: UADE-Developer-discussion
We've done too many changes already, and I'm afraid of putting more stuff into UADE before releasing 2.03.

Please test current CVS version and report any bugs.

Michael, is ptk-prowiz good enough for release?

---

From: shd
Date: Sun May 7 20:19:53 2006

To: UADE-Developer-discussion
Argh. There are milliards of changes since 2.02. Michael, could you summarize your changes since 2.02 here?

---

From: mld/uade team
Date: Tue May 9 18:08:05 2006

To: UADE-Developer-discussion
Sorry for the delay. Have been busy lately... But I'm back now :-)

Is PTK-Prowiz ready for a release? Unless I get last minute bug reports I'd say yes... 

my changes afaik:

PTK-Prowiz: 
* can now be set to three different Protracker replay modes: Protracker 1.0c, Protracker 2.3a, Protracker 3.0b (&lt;-default).
* Protracker can manually be set to vblank timing in config file. Default is CIA
* NTSC/PAL speed for vblank timed mods (Soundtracker, Noisetracker, Startrekker, Audiosculpture, Protracker (vblank))
* several bugfixes (e.g. in STK 31 detection)

Digibooster:
* bugfixed CIA timing
* now uses DMA-wait
* reports songname

Dirk Bialluch replayer by Wanted Team added.

MED/Octamed:
* upgraded replay from v6.3 to v7.0
* probl. fixed songs with long samples (?)

Songinfo:
* more verbose songinfo for e.g. mods, digibooster, customs etc...
(you made songinfo work with uade123 as well, don't forget that :-)

Plugins:
* initial idea: title string in Playlist can be adjusted/formatted.
* we found a null pointer crash for plugins
* fixed race condition when changing very short subsongs

---

From: shd
Date: Tue May 9 18:25:11 2006

To: UADE-Developer-discussion
[quote:52b114a136="mld/uade team"]
Is PTK-Prowiz ready for a release? Unless I get last minute bug reports I'd say yes... 
[/quote:52b114a136]

Do you have time to merge my uade.library option code into PTK-Prowiz before friday? I sent you the code on 2006-04-24/25. I might release on sunday and it would be nice to have some eagleplayer option support on the release. No doubt we will have to make 2.04 short after that to polish things :-)

We had:[code:1:52b114a136]
eagleoptlist    dc.l    pt11bname,pt11bdata                                     
                dc.l    pt20aname,pt20adata                                     
                dc.l    noisetrackername,noisetrackerdata                       
                dc.l    0                                        
[/code:1:52b114a136]

If you could add vblank to that list, I would update the message passing code in uadecore, and we could do: &quot;uade123 --set=vblank mod.foo&quot;

---

From: Guest
Date: Tue May 9 18:41:36 2006

To: UADE-Developer-discussion
heh, anything has to be finished to Friday, it seems. Well, why not uade as well *g*

I have the code here. But I'm not sure how to test it. Does UADE already send something for me to check if I get it right?

Otherwise. I can start right away...

Michael

---

From: shd
Date: Tue May 9 19:37:42 2006

To: UADE-Developer-discussion
[quote:721e88d43a="Anonymous"]heh, anything has to be finished to Friday, it seems. Well, why not uade as well *g*

[/quote:721e88d43a]

You can know issue &quot;eagleoptions&quot; request. It should return two test tags concatenated: &quot;foo\0bar\0&quot; (length is 8)

While adding that I found several interesting bugs btw. See the changelog.

---

From: Guest
Date: Tue May 9 19:57:23 2006

To: UADE-Developer-discussion
commited some changes to cvs now in amigasrc/*/eagleplayers/. We don't read the cfg file anymore :-)

eagleopts are:

pt10
pt11b
pt23a
pt30b

vblank -&gt; use VBI timing

Check if it's working, shd. I might have messed it it up, tho.

---

From: Guest
Date: Tue May 9 20:04:57 2006

*oops*

pt10[b:5c2f7ab99e]c[/b:5c2f7ab99e]

---

From: shd
Date: Tue May 9 20:06:36 2006

To: UADE-Developer-discussion
[quote:25507e4785="Anonymous"]commited some changes to cvs now in amigasrc/*/eagleplayers/. We don't read the cfg file anymore :-)

eagleopts are:

pt10
pt11b
pt23a
pt30b

Check if it's working, shd. I might have messed it it up, tho.[/quote:25507e4785]

Okay, so you committed the source. Care to provide a binary too for testing?

---

From: mld/uade team
Date: Tue May 9 20:29:02 2006

To: UADE-Developer-discussion
*oops* should be in the same directory with the source, now.

---

From: shd
Date: Tue May 9 20:57:50 2006

To: UADE-Developer-discussion
[quote:df4cbf531b="mld/uade team"]*oops* should be in the same directory with the source, now.[/quote:df4cbf531b]

I committed an initial system for core that should support vblank attribute, but I don't see ptk-prowiz ever asking for eagleoptions.

First, do:
$ uade123 --set=vblank mod.foo

Then:
$ uade123 -v mod.foo

It should print something like:

&quot;score issued an info request ...&quot;

But I don't see anything. Are you sure you are calling the uade.lib?

---

From: mld/uade team
Date: Tue May 9 22:21:05 2006

To: UADE-Developer-discussion
wait a sec... heh, it seems uadlib was openened after the first eagleopt query.
ok, fixed. try again.

it does print now the info message. Btw. If no song.conf is given it has a message length of -1 ?

---

From: shd
Date: Tue May 9 22:27:46 2006

To: UADE-Developer-discussion
[quote:8e54c3c716="mld/uade team"]wait a sec... heh, it seems uadlib was openened after the first eagleopt query.
ok, fixed. try again.

it does print now the info message. Btw. If no song.conf is given it has a message length of -1 ?[/quote:8e54c3c716]

Yes, it should return -1 if no option is given or the option name is unknown.

Contrary to the original proposal, it doesn't ever return overflow indication, but that isn't the case here. See uade 1 changelog from 2004-08-29.

---

From: mld/uade team
Date: Tue May 9 22:31:37 2006

To: UADE-Developer-discussion
what is vblankdata when vblank is not set?
I &quot;tst.l vblankdata&quot; as boolean (cia=0, vbi=1) but it now always sets vblank in the replay?

---

From: shd
Date: Tue May 9 22:56:08 2006

To: UADE-Developer-discussion
[quote:123f28dbc5="mld/uade team"]what is vblankdata when vblank is not set?
I &quot;tst.l vblankdata&quot; as boolean (cia=0, vbi=1) but it now always sets vblank in the replay?[/quote:123f28dbc5]

It's the value specified in the source code when vblank is not found. When vblank is found, the value is non-zero (the pointer to the option name actually). You may not assume it is &quot;1&quot; in vblank mode.

---

From: mld/uade team
Date: Wed May 10 10:16:28 2006

To: UADE-Developer-discussion
found the bug why it didn't work... the strlen you made for the eagleopt parsing destroyed a0, tho you wrote it didn't... 

this would explain, why it ran out of bounds with more than one option as well.

---

From: mld/uade team
Date: Wed May 10 10:41:39 2006

To: UADE-Developer-discussion
We should get a way around adding new ES_* when you add options for eagleplayers.

ok, &quot;vblank&quot; is kind of a global setting. But &quot;pt30b&quot; isn't...

I dislike recompiling everything for adding like a p30b compatibility flag that's only parsed for PTK-Prowiz.

So something like a global keyword to pass flags to the replayer could be interesting. eagleplayerconf=pt10c or ep_env=pt30b or more userfriendly.

This way we could also get a cheap way to interface with amifilemagic.c

1) amifilemagic.c identifies and get's the right prefix (e.g. mod_mst)
2) eagleplayer.conf has and entries for different subformats
PTK-Prowiz prefixes=mod_mst, mod15 eagleplayerconf=st20 always_ends
PTK-Prowiz prefixes=mod eagleplayerconf=pt23a always_ends
PTK-Prowiz prefixes=mod_comp eagleplayerconf=pt30b always_ends

And other players can parse that eagelplayerconf= keyword to their liking as well.
Audiosculpture prefixes=adsc eagleplayerconf=refuse_missing_as_file

---

From: shd
Date: Wed May 10 10:55:24 2006

To: UADE-Developer-discussion
[quote:2c3bba5072="mld/uade team"]found the bug why it didn't work... the strlen you made for the eagleopt parsing destroyed a0, tho you wrote it didn't... 

this would explain, why it ran out of bounds with more than one option as well.[/quote:2c3bba5072]

Btw. that it destroys A0 is not a bug. A general calling convention for 68k is that a0-a1/d0-d1 can be destroyed. So instead you should fix the part of the code that assumes A0 is preserved.

---

From: mld/uade team
Date: Wed May 10 11:15:02 2006

To: UADE-Developer-discussion
[quote:22e50be0ef="shd"][quote:22e50be0ef="mld/uade team"]found the bug why it didn't work... the strlen you made for the eagleopt parsing destroyed a0, tho you wrote it didn't... 

this would explain, why it ran out of bounds with more than one option as well.[/quote:22e50be0ef]

Btw. that it destroys A0 is not a bug. A general calling convention for 68k is that a0-a1/d0-d1 can be destroyed. So instead you should fix the part of the code that assumes A0 is preserved.[/quote:22e50be0ef]

heh, and why did you assume a0 is preserved in your original patch.  ?-) You even commented that routine with it... *grin*

Seriously, I'll fix it.

---

From: shd
Date: Wed May 10 12:26:46 2006

To: UADE-Developer-discussion
[quote:f8f93bdbe2="mld/uade team"]
heh, and why did you assume a0 is preserved in your original patch.  ?-) You even commented that routine with it... *grin*

Seriously, I'll fix it.[/quote:f8f93bdbe2]

Now that I think it again, maybe you should stack a0 in strlen() so that amount of asm code is minimized in general. Having functions preserve most registers makes the code bit slower but avoids some stacking. Sorry for being a flip-flopper. As you can see from sound core, the general policy is to preserve all registers possible :) The original idea was to avoid bugs.

---

From: shd
Date: Wed May 10 12:56:45 2006

To: UADE-Developer-discussion
[quote:a7686e3c47="mld/uade team"]We should get a way around adding new ES_* when you add options for eagleplayers.

[/quote:a7686e3c47]

Agreed. And has been my intention. I'm still playing around with configuration systems to see what I like.

---

From: Guest
Date: Wed May 10 19:57:39 2006

To: UADE-Developer-discussion
[quote:44b3dfd291="shd"][quote:44b3dfd291="mld/uade team"]
heh, and why did you assume a0 is preserved in your original patch.  ?-) You even commented that routine with it... *grin*

Seriously, I'll fix it.[/quote:44b3dfd291]

Now that I think it again, maybe you should stack a0 in strlen() so that amount of asm code is minimized in general. Having functions preserve most registers makes the code bit slower but avoids some stacking. Sorry for being a flip-flopper. As you can see from sound core, the general policy is to preserve all registers possible :) The original idea was to avoid bugs.[/quote:44b3dfd291]

No problem. I changed the (a0)+ to a (a0,d0.w) now.

---

From: shd
Date: Wed May 10 21:14:32 2006

To: UADE-Developer-discussion
[quote:1f7e117062="Anonymous"]
No problem. I changed the (a0)+ to a (a0,d0.w) now.[/quote:1f7e117062]

1337 =) But change it to (a0,d0.l)

---

From: Guest
Date: Wed May 10 22:10:19 2006

To: UADE-Developer-discussion
hehe, you plan to have longword sized strings... cool ;-)

---

From: shd
Date: Thu May 11 08:32:59 2006

To: UADE-Developer-discussion
[quote:ec4e49242d="Anonymous"]hehe, you plan to have longword sized strings... cool ;-)[/quote:ec4e49242d]

Hey, Amiga was a 32-bit platform unlike the 16-bit competitor (PC).

---

From: shd
Date: Thu May 11 20:55:56 2006

To: UADE-Developer-discussion
[quote:2f9efa74af="mld/uade team"]We should get a way around adding new ES_* when you add options for eagleplayers.
[/quote:2f9efa74af]

Removed vblank general option. Now one can put epopt=x statements into eagleplayer.conf and song.conf.

---

From: mld/uade team
Date: Thu May 11 21:49:41 2006

To: UADE-Developer-discussion
ok... how do i implement it playerwise?

Issue eopt message I guess... What is returned as eoptdata?

---

From: shd
Date: Thu May 11 21:55:35 2006

To: UADE-Developer-discussion
[quote:592eba3043="mld/uade team"]ok... how do i implement it playerwise?

Issue eopt message I guess... What is returned as eoptdata?[/quote:592eba3043]

There's no such thing as eoptdata. You pass arbitrary parameters with it and you read them in the same way as the special ptk-prowiz code does (request &quot;eagleoptions&quot;). If you want parameters for parameters, you can do:
[code:1:592eba3043]epopt=ptversion=11b[/code:1:592eba3043]
The request interface will return ptversion=11b string. But i would prefer just &quot;epopt=pt11b&quot;. But that's up to you.

---

From: shd
Date: Thu May 11 22:01:36 2006

To: UADE-Developer-discussion
[quote:8281ca349f="shd"]
There's no such thing as eoptdata. You pass arbitrary parameters with it and you read them in the same way as the special ptk-prowiz code does ...
[/quote:8281ca349f]
Would you like a new function into uade.library that does this parsing for you? You would issue a request, and it would fill up a table of string pointers and tell you how many pointers there are. Essentially this:
[code:1:8281ca349f]int get_ep_option&#40;char **options, int *options, int maxoptions&#41;;
[/code:1:8281ca349f]
We might avoid bugs in eagleplayers if we shared the parsing code as often as possible. get_ep_option would allocate the necessary memory for options.

---

From: mld/uade team
Date: Thu May 11 22:17:32 2006

To: UADE-Developer-discussion
yes please, neat idea... This would make it easy to parse those info. :-)

---

From: shd
Date: Thu May 11 22:30:56 2006

To: UADE-Developer-discussion
[quote:aa4452143f="mld/uade team"]yes please, neat idea... This would make it easy to parse those info. :-)[/quote:aa4452143f]

Anything else you would like to have added into uade.library? There must be something crappy that is replicated into each replayer for nothing.

---

From: mld/uade team
Date: Thu May 11 22:59:15 2006

To: UADE-Developer-discussion
hmmh, nothing I can think off atm.

---

From: mld/uade team
Date: Mon May 15 21:40:57 2006

To: UADE-Developer-discussion
Just commited some changes to PTK-Prowiz to cvs.

It can now be configured by the &quot;epopt=&quot; parameter (e.g. eagleplayer.conf)
you can also set the protracker compatibility on a per song base by using the --set option of uade123. 

E.g. following configures mod.cyberlogik to use the Protracker 2.3b, when being played from now on...

uade123 --set=epopt=type:pt23b mod.cyberlogik

following will set vblank timing
uade123 --set=epopt=vblank mod.klissjepaaklissje

please test and kick my butt if I broke anything :-)

---

From: shd
Date: Mon May 15 23:23:02 2006

To: UADE-Developer-discussion
[quote:13d4a5f3c8="mld/uade team"]Just commited some changes to PTK-Prowiz to cvs.

please test and kick my butt if I broke anything :-)[/quote:13d4a5f3c8]

Now there's a short-hand that doesn't cause changes in song.conf:
[code:1:13d4a5f3c8]uade123 -x type&#58;pt23b -x vblank mod.foo
[/code:1:13d4a5f3c8]