Commit 856f311

Nick committed on
Use render directory instead of polluting hUGEDriver. Thanks toxa!
commit 856f311d89415ffb64242fc5e133f9e7a81791a2 parent dc71a8f
3 changed files +28−29
Modifiedcodegen.pas +25−23
@@ -454,6 +454,8 @@ var
454 begin 454 begin
455 Proc.Executable := 'rgbasm'; 455 Proc.Executable := 'rgbasm';
456 Proc.Parameters.Clear; 456 Proc.Parameters.Clear;
457 Proc.Parameters.Add('-i' + 'render');
458 Proc.Parameters.Add('-i' + 'hUGEDriver');
457 Proc.Parameters.Add('-o' + OutFile); 459 Proc.Parameters.Add('-o' + OutFile);
458 for Define in Defines do 460 for Define in Defines do
459 Proc.Parameters.Add('-D' + Define); 461 Proc.Parameters.Add('-D' + Define);
@@ -500,17 +502,17 @@ begin
500 Song := OptimizeSong(Song); 502 Song := OptimizeSong(Song);
501 503
502 FilePath := Filename; 504 FilePath := Filename;
503 Filename := ExtractFileNameWithoutExt(ExtractFileNameOnly(Filename)); 505 Filename := 'render/' + ExtractFileNameWithoutExt(ExtractFileNameOnly(Filename));
504 506
505 WriteHTT('./hUGEDriver/wave.htt', RenderWaveforms(Song.Waves)); 507 WriteHTT('./render/wave.htt', RenderWaveforms(Song.Waves));
506 WriteHTT('./hUGEDriver/order.htt', RenderOrderTable(Song.OrderMatrix)); 508 WriteHTT('./render/order.htt', RenderOrderTable(Song.OrderMatrix));
507 WriteHTT('./hUGEDriver/duty_instrument.htt', RenderInstruments(Song.Instruments.Duty)); 509 WriteHTT('./render/duty_instrument.htt', RenderInstruments(Song.Instruments.Duty));
508 WriteHTT('./hUGEDriver/wave_instrument.htt', RenderInstruments(Song.Instruments.Wave)); 510 WriteHTT('./render/wave_instrument.htt', RenderInstruments(Song.Instruments.Wave));
509 WriteHTT('./hUGEDriver/noise_instrument.htt', RenderInstruments(Song.Instruments.Noise)); 511 WriteHTT('./render/noise_instrument.htt', RenderInstruments(Song.Instruments.Noise));
510 for I := Low(TRoutineBank) to High(TRoutineBank) do 512 for I := Low(TRoutineBank) to High(TRoutineBank) do
511 WriteHTT('./hUGEDriver/routine'+IntToStr(I)+'.htt', Song.Routines[I]); 513 WriteHTT('./render/routine'+IntToStr(I)+'.htt', Song.Routines[I]);
512 514
513 AssignFile(OutFile, './hUGEDriver/pattern.htt'); 515 AssignFile(OutFile, './render/pattern.htt');
514 Rewrite(OutFile); 516 Rewrite(OutFile);
515 517
516 // TODO: Are keys and data defined to be aligned? Seems like they are but 518 // TODO: Are keys and data defined to be aligned? Seems like they are but
@@ -523,8 +525,6 @@ begin
523 CloseFile(OutFile); 525 CloseFile(OutFile);
524 526
525 // Build the file 527 // Build the file
526 Chdir('hUGEDriver');
527
528 OutSL := TStringList.Create; 528 OutSL := TStringList.Create;
529 Proc := TProcess.Create(nil); 529 Proc := TProcess.Create(nil);
530 Proc.Options := Proc.Options + [poWaitOnExit, poUsePipes, poStdErrToOutput, poNoConsole]; 530 Proc.Options := Proc.Options + [poWaitOnExit, poUsePipes, poStdErrToOutput, poNoConsole];
@@ -532,24 +532,24 @@ begin
532 // Assemble 532 // Assemble
533 if Mode = emPreview then 533 if Mode = emPreview then
534 begin 534 begin
535 if Assemble(Filename + '_driver.obj', 'hUGEDriver.asm', ['PREVIEW_MODE']) <> 0 then 535 if Assemble(Filename + '_driver.obj', 'hUGEDriver/hUGEDriver.asm', ['PREVIEW_MODE']) <> 0 then
536 goto AssemblyError; 536 goto AssemblyError;
537 end 537 end
538 else 538 else
539 begin 539 begin
540 if Assemble(Filename + '_driver.obj', 'hUGEDriver.asm', []) <> 0 then 540 if Assemble(Filename + '_driver.obj', 'hUGEDriver/hUGEDriver.asm', []) <> 0 then
541 goto AssemblyError; 541 goto AssemblyError;
542 end; 542 end;
543 543
544 if Assemble(Filename + '_song.obj', 544 if Assemble(Filename + '_song.obj',
545 'song.asm', 545 'hUGEDriver/song.asm',
546 ['SONG_DESCRIPTOR=song', 'TICKS='+IntToStr(Song.TicksPerRow)]) <> 0 then 546 ['SONG_DESCRIPTOR=song', 'TICKS='+IntToStr(Song.TicksPerRow)]) <> 0 then
547 goto AssemblyError; 547 goto AssemblyError;
548 548
549 if Mode = emGBS then 549 if Mode = emGBS then
550 begin 550 begin
551 if Assemble( 551 if Assemble(
552 Filename + '_gbs.obj', 'gbs.asm', 552 Filename + '_gbs.obj', 'hUGEDriver/gbs.asm',
553 ['SONG_DESCRIPTOR=song', 553 ['SONG_DESCRIPTOR=song',
554 'GBS_TITLE='+PadRight(Song.Name, 32), 554 'GBS_TITLE='+PadRight(Song.Name, 32),
555 'GBS_AUTHOR='+PadRight(Song.Artist, 32), 555 'GBS_AUTHOR='+PadRight(Song.Artist, 32),
@@ -558,23 +558,26 @@ begin
558 end 558 end
559 else 559 else
560 begin 560 begin
561 if Assemble(Filename + '_player.obj', 'player.asm', ['SONG_DESCRIPTOR=song']) <> 0 then 561 if Assemble(Filename + '_player.obj', 'hUGEDriver/player.asm', ['SONG_DESCRIPTOR=song']) <> 0 then
562 goto AssemblyError; 562 goto AssemblyError;
563 end; 563 end;
564 564
565 // Link 565 // Link
566 if Mode = emGBS then 566 if Mode = emGBS then
567 begin 567 begin
568 if Link(Filename + '.gbs', [Filename + '_driver.obj', Filename + 568 if Link(Filename + '.gbs',
569 '_song.obj', Filename + '_gbs.obj']) <> 0 then 569 [Filename + '_driver.obj',
570 goto AssemblyError; 570 Filename + '_song.obj',
571 Filename + '_gbs.obj']) <> 0 then goto AssemblyError;
571 end 572 end
572 else 573 else
573 begin 574 begin
574 if Link(Filename + '.gb', [Filename + '_driver.obj', Filename + 575 if Link(Filename + '.gb',
575 '_song.obj', Filename + '_player.obj'], Filename + '.map', Filename + 576 [Filename + '_driver.obj',
576 '.sym') <> 0 then 577 Filename + '_song.obj',
577 goto AssemblyError; 578 Filename + '_player.obj'],
579 Filename + '.map',
580 Filename + '.sym') <> 0 then goto AssemblyError;
578 end; 581 end;
579 582
580 // Fix 583 // Fix
@@ -661,7 +664,6 @@ begin
661 // as its argument. 664 // as its argument.
662 Proc.Free; 665 Proc.Free;
663 OutSL.Free; 666 OutSL.Free;
664 Chdir('..');
665 end; 667 end;
666 668
667 end. 669 end.
Modifiedrendertowave.pas +1−4
@@ -156,8 +156,7 @@ begin
156 enablesound; 156 enablesound;
157 157
158 FDCallback := nil; 158 FDCallback := nil;
159 load('hUGEDriver/preview.gb'); 159 load('render/preview.gb');
160 chdir('hUGEDriver');
161 160
162 if format = rfWave then begin 161 if format = rfWave then begin
163 OutStream := TFileStream.Create(Filename, fmCreate); 162 OutStream := TFileStream.Create(Filename, fmCreate);
@@ -189,8 +188,6 @@ begin
189 finally 188 finally
190 EndWritingSoundToStream; 189 EndWritingSoundToStream;
191 190
192 Chdir('..');
193
194 try 191 try
195 if Format = rfMP3 then begin 192 if Format = rfMP3 then begin
196 OutStream.Seek(0, soFromBeginning); 193 OutStream.Seek(0, soFromBeginning);
Modifiedtracker.pas +2−2
@@ -939,11 +939,11 @@ var
939 begin 939 begin
940 if RenderPreviewROM(Song) then begin 940 if RenderPreviewROM(Song) then begin
941 // Load the new symbol table 941 // Load the new symbol table
942 ParseSymFile('hUGEDriver/preview.sym'); 942 ParseSymFile('render/preview.sym');
943 943
944 // Start emulation on the rendered preview binary 944 // Start emulation on the rendered preview binary
945 LockPlayback; 945 LockPlayback;
946 GetROMReady('hUGEDriver/preview.gb'); 946 GetROMReady('render/preview.gb');
947 947
948 for I := 1 to 4 do 948 for I := 1 to 4 do
949 snd[I].ChannelOFF := HeaderControl1.Sections[I].ImageIndex = 0; 949 snd[I].ChannelOFF := HeaderControl1.Sections[I].ImageIndex = 0;