i finally rewrote those programs. i'm glad i could keep the promise but i'm very sorry it took me so long.
everything is combined in 2 exes: one for interleaving and the other one for recalculating CAV->CLV
http://www.mediafire.com/?nryjjzwv9yx
(please let me know it ther's any problems - still havent tested them much, but i think their fine.)
previously i've tried doing visualisation (on 486 dos machine in vesa

) but it's inaccurate.
either you see very small section of cd close or about 4% approximation. neither is very useful imho.
so instead i've changed algorithm for how spiral is broken into tracks from circles to smaller Archimedes' spirals.
this way parameters tie together much better and deviation on whole spiral length is only few bytes.
so generally no visualisation is required. to calculate arc length i use 1st formula given below,
but it's also possible to use 2nd, it's much smaller and very precise also - only differs by 1..2 bytes from 1st one.
1)
s(r₂) - s(r₁)
_________ _________
s = ½ r √1 + (r/a)² + ½ a ln (√1 + (r/a)² + r/a)
2)
s ≈ π (r₂² - r₁² ) / ε
ε = pitch
i've tested about 20 patterns on console (different scaling, sector headers on/off, different sector sizes by headers and so on),
with no results. they all act the same: check boot code, go to ring, return to center, return to ring, fail.
altrough they all were written to same 650mb rw @10x and subcode were not modified, i don't think it would change anything.
it's either just too rough or will not work at all because of different sector amount.
also what's interesting, to do more precise scaling, i've tried to clean up ring data by mapping everything to $59/$a8 patterns,
and it's not possible actually. the thing is - every character in copyright message, it's little different. similar letters - they just look the same
but are not. so when you have eg. byte $ff right between $59 and $a8: ..$59 $59 $ff $a8 $a8.. you can not tell, should it be $59 or $a8.
OO OO OO O?
OO OO OO O?
OO OO OO O?
OO OO OO O?
OOOOOO OOOOOO?
this adds yet more variables to the equation...
still i've uploaded it anyway here:
http://www.mediafire.com/?na6oybjaam8
(all non dual pattern bytes were mapped to $ff)
so i think only rational way to recreate this data would be by actually writting it in CAV with constant RPM.
but i don't know is this possible at all. i think it should be, by modding firmware or connecting to spindle motor controller probably.
i'll post on cdfreaks what we have, and will try to ask there. somebody should know.
edit:
i've changed one program a little today. and added brief tutorial.
so now it's very easy to output basic shapes and forms to cd. eg it's possible to draw something simple, like this even in notepad.
Code: Select all
..............0
.000000000000.0
.0..........0.0
.0.00000000.0.0
.0.0......0.0.0
.0.0.0000.0.0.0
.0.0.0....0.0.0
.0.0.000000.0.0
.0.0........0.0
.0.0000000000.0
.0............0
.00000000000000
and you just need to specify how many times to repeat pattern.
but still you need to know parameters of given CD - it's a huge drawback.
