@@ -572,6 +572,9 @@ begin |
| 572 |
OutSL.Add('SECTION "'+DescriptorName+' Song Data", ROMX'); |
572 |
OutSL.Add('SECTION "'+DescriptorName+' Song Data", ROMX'); |
| 573 |
OutSL.Add(''); |
573 |
OutSL.Add(''); |
| 574 |
|
574 |
|
|
|
575 |
OutSL.Add('db "HUGE"'); |
|
|
576 |
OutSL.Add(''); |
|
|
577 |
|
| 575 |
// Render song descriptor |
578 |
// Render song descriptor |
| 576 |
OutSL.Add(DescriptorName+'::'); |
579 |
OutSL.Add(DescriptorName+'::'); |
| 577 |
OutSL.Add('db '+IntToStr(Song.TicksPerRow[0])+', ' |
580 |
OutSL.Add('db '+IntToStr(Song.TicksPerRow[0])+', ' |
@@ -588,21 +591,6 @@ begin |
| 588 |
// Render order matrix |
591 |
// Render order matrix |
| 589 |
OutSL.Add(RenderOrderTable(Song.OrderMatrix)); |
592 |
OutSL.Add(RenderOrderTable(Song.OrderMatrix)); |
| 590 |
|
593 |
|
| 591 |
// Render patterns |
|
|
| 592 |
for I := 0 to Song.Patterns.Count - 1 do |
|
|
| 593 |
if PatternIsUsed(Song.Patterns.Keys[I], UsedStuff) then |
|
|
| 594 |
OutSL.Add(RenderPattern('P' + IntToStr(Song.Patterns.Keys[I]), Song.Patterns.Data[I]^)); |
|
|
| 595 |
|
|
|
| 596 |
// Render subpatterns |
|
|
| 597 |
for I := Low(Song.Instruments.All) to High(Song.Instruments.All) do |
|
|
| 598 |
if InstrumentIsUsed(ModInst(I), Song.Instruments.All[I].Type_, UsedStuff) then |
|
|
| 599 |
with Song.Instruments.All[I] do begin |
|
|
| 600 |
if SubpatternEnabled then begin |
|
|
| 601 |
WriteStr(TypePrefix, Type_); |
|
|
| 602 |
OutSL.Add(RenderSubpattern(TypePrefix+'SP' + IntToStr(ModInst(I)), Subpattern)); |
|
|
| 603 |
end; |
|
|
| 604 |
end; |
|
|
| 605 |
|
|
|
| 606 |
// Render instruments |
594 |
// Render instruments |
| 607 |
OutSL.Add('duty_instruments:'); |
595 |
OutSL.Add('duty_instruments:'); |
| 608 |
OutSL.Add(RenderInstruments(Song.Instruments.Duty, UsedStuff.HighestDutyInst)); |
596 |
OutSL.Add(RenderInstruments(Song.Instruments.Duty, UsedStuff.HighestDutyInst)); |
@@ -630,6 +618,21 @@ begin |
| 630 |
OutSL.Add('waves:'); |
618 |
OutSL.Add('waves:'); |
| 631 |
OutSL.Add(RenderWaveforms(Song.Waves, UsedStuff.HighestWaveform)); |
619 |
OutSL.Add(RenderWaveforms(Song.Waves, UsedStuff.HighestWaveform)); |
| 632 |
|
620 |
|
|
|
621 |
// Render patterns |
|
|
622 |
for I := 0 to Song.Patterns.Count - 1 do |
|
|
623 |
if PatternIsUsed(Song.Patterns.Keys[I], UsedStuff) then |
|
|
624 |
OutSL.Add(RenderPattern('P' + IntToStr(Song.Patterns.Keys[I]), Song.Patterns.Data[I]^)); |
|
|
625 |
|
|
|
626 |
// Render subpatterns |
|
|
627 |
for I := Low(Song.Instruments.All) to High(Song.Instruments.All) do |
|
|
628 |
if InstrumentIsUsed(ModInst(I), Song.Instruments.All[I].Type_, UsedStuff) then |
|
|
629 |
with Song.Instruments.All[I] do begin |
|
|
630 |
if SubpatternEnabled then begin |
|
|
631 |
WriteStr(TypePrefix, Type_); |
|
|
632 |
OutSL.Add(RenderSubpattern(TypePrefix+'SP' + IntToStr(ModInst(I)), Subpattern)); |
|
|
633 |
end; |
|
|
634 |
end; |
|
|
635 |
|
| 633 |
AssignFile(F, Filename); |
636 |
AssignFile(F, Filename); |
| 634 |
Rewrite(F); |
637 |
Rewrite(F); |
| 635 |
Write(F, OutSL.Text); |
638 |
Write(F, OutSL.Text); |