Commit 98245f0

Nick committed on
Fix wave export/pattern jumping in the order table
commit 98245f0b5a101dc24e30fbdc86374ae20fd8cabf parent 26623c4
5 changed files +27−34
ModifiedGBEmu.lpi +0−13
@@ -350,17 +350,4 @@
350 <CustomOptions Value="-dBorland -dVer150 -dDelphi7 -dCompiler6_Up -dPUREPASCAL -dDEVELOPMENT"/> 350 <CustomOptions Value="-dBorland -dVer150 -dDelphi7 -dCompiler6_Up -dPUREPASCAL -dDEVELOPMENT"/>
351 </Other> 351 </Other>
352 </CompilerOptions> 352 </CompilerOptions>
353 <Debugging>
354 <Exceptions Count="3">
355 <Item1>
356 <Name Value="EAbort"/>
357 </Item1>
358 <Item2>
359 <Name Value="ECodetoolError"/>
360 </Item2>
361 <Item3>
362 <Name Value="EFOpenError"/>
363 </Item3>
364 </Exceptions>
365 </Debugging>
366 </CONFIG> 353 </CONFIG>
Modifiedconstants.pas +3−0
@@ -29,7 +29,10 @@ const
29 LM_PREVIEW_NOTE = LM_USER + 2; 29 LM_PREVIEW_NOTE = LM_USER + 2;
30 30
31 SYM_ROW = 'row'; 31 SYM_ROW = 'row';
32 SYM_TICK = 'tick';
32 SYM_CURRENT_ORDER = 'current_order'; 33 SYM_CURRENT_ORDER = 'current_order';
34 SYM_NEXT_ORDER = 'next_order';
35 SYM_ROW_BREAK = 'row_break';
33 SYM_TICKS_PER_ROW = 'ticks_per_row'; 36 SYM_TICKS_PER_ROW = 'ticks_per_row';
34 SYM_ORDER_COUNT = 'order_cnt'; 37 SYM_ORDER_COUNT = 'order_cnt';
35 38
Modifiedhtwavewriter.pas +6−1
@@ -16,7 +16,8 @@
16 16
17 { 17 {
18 This is a vendored version of the FPC fpWavWriter unit, which removes an 18 This is a vendored version of the FPC fpWavWriter unit, which removes an
19 accidental debugging leftover which causes output to take forever. 19 accidental debugging leftover, and explicitly removes range checks on
20 a misbehaving function.
20 } 21 }
21 22
22 unit htWaveWriter; 23 unit htWaveWriter;
@@ -86,6 +87,9 @@ begin
86 end; 87 end;
87 end; 88 end;
88 89
90 // This whole module should probably be rewritten (and contributed back to FPC)
91 // but for now, disable range checks in this routine
92 {$push}{$R-}
89 function TWavWriter.FlushHeader: Boolean; 93 function TWavWriter.FlushHeader: Boolean;
90 var 94 var
91 riff: TRiffHeader; 95 riff: TRiffHeader;
@@ -114,6 +118,7 @@ begin
114 Result := Write(DataChunk, SizeOf(DataChunk)) = SizeOf(DataChunk); 118 Result := Write(DataChunk, SizeOf(DataChunk)) = SizeOf(DataChunk);
115 end; 119 end;
116 end; 120 end;
121 {$pop}
117 122
118 function TWavWriter.StoreToFile(const FileName: string):Boolean; 123 function TWavWriter.StoreToFile(const FileName: string):Boolean;
119 begin 124 begin
Modifiedtracker.lfm +4−4
@@ -1,7 +1,7 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 671 2 Left = 1811
3 Height = 687 3 Height = 687
4 Top = 221 4 Top = 297
5 Width = 1145 5 Width = 1145
6 AllowDropFiles = True 6 AllowDropFiles = True
7 Caption = 'hUGETracker' 7 Caption = 'hUGETracker'
@@ -62,10 +62,10 @@ object frmTracker: TfrmTracker
62 Height = 555 62 Height = 555
63 Top = 0 63 Top = 0
64 Width = 947 64 Width = 947
65 ActivePage = GeneralTabSheet 65 ActivePage = PatternTabSheet
66 Align = alClient 66 Align = alClient
67 ParentFont = False 67 ParentFont = False
68 TabIndex = 0 68 TabIndex = 1
69 TabOrder = 0 69 TabOrder = 0
70 object GeneralTabSheet: TTabSheet 70 object GeneralTabSheet: TTabSheet
71 Caption = 'General' 71 Caption = 'General'
Modifiedtracker.pas +14−16
@@ -388,6 +388,8 @@ type
388 388
389 VisualizerBuffer: TBGRABitmap; 389 VisualizerBuffer: TBGRABitmap;
390 390
391 InFDCallback: Boolean;
392
391 procedure ChangeToSquare; 393 procedure ChangeToSquare;
392 procedure ChangeToWave; 394 procedure ChangeToWave;
393 procedure ChangeToNoise; 395 procedure ChangeToNoise;
@@ -914,8 +916,10 @@ end;
914 916
915 procedure TfrmTracker.OnFD(var Msg: TLMessage); 917 procedure TfrmTracker.OnFD(var Msg: TLMessage);
916 begin 918 begin
919 InFDCallback := True; // HACK!!!!!!!!!
917 TrackerGrid.HighlightedRow := PeekSymbol(SYM_ROW); 920 TrackerGrid.HighlightedRow := PeekSymbol(SYM_ROW);
918 OrderEditStringGrid.Row := (PeekSymbol(SYM_CURRENT_ORDER) div 2) + 1; 921 OrderEditStringGrid.Row := (PeekSymbol(SYM_CURRENT_ORDER) div 2) + 1;
922 InFDCallback := False; // HACK!!!!!!!!
919 end; 923 end;
920 924
921 procedure TfrmTracker.OnUndoOccured(var Msg: TLMessage); 925 procedure TfrmTracker.OnUndoOccured(var Msg: TLMessage);
@@ -1947,12 +1951,12 @@ begin
1947 if OrderEditStringGrid.Row > -1 then 1951 if OrderEditStringGrid.Row > -1 then
1948 ReloadPatterns; 1952 ReloadPatterns;
1949 1953
1950 {if Playing then begin 1954 if not InFDCallback then begin // Hacky solution, but probably the best there is.
1951 LockPlayback; 1955 LockPlayback;
1952 PokeSymbol(SYM_CURRENT_ORDER, 2*(OrderEditStringGrid.Row-1)); 1956 PokeSymbol(SYM_NEXT_ORDER, OrderEditStringGrid.Row);
1953 PokeSymbol(SYM_ROW, 0); 1957 PokeSymbol(SYM_ROW_BREAK, 1);
1954 UnlockPlayback; 1958 UnlockPlayback;
1955 end} 1959 end
1956 end; 1960 end;
1957 1961
1958 procedure TfrmTracker.OrderEditStringGridColRowDeleted(Sender: TObject; 1962 procedure TfrmTracker.OrderEditStringGridColRowDeleted(Sender: TObject;
@@ -1988,19 +1992,11 @@ procedure TfrmTracker.OrderEditStringGridDblClick(Sender: TObject);
1988 var 1992 var
1989 Highest: Integer; 1993 Highest: Integer;
1990 begin 1994 begin
1991 {if Playing then begin 1995 Highest := Song.Patterns.MaxKey;
1992 LockPlayback;
1993 PokeSymbol(SYM_CURRENT_ORDER, 2*(OrderEditStringGrid.Row-1));
1994 PokeSymbol(SYM_ROW, 0);
1995 UnlockPlayback;
1996 end
1997 else} begin
1998 Highest := Song.Patterns.MaxKey;
1999 1996
2000 with OrderEditStringGrid do begin 1997 with OrderEditStringGrid do begin
2001 Cells[Col, Row] := IntToStr(Highest); 1998 Cells[Col, Row] := IntToStr(Highest);
2002 TrackerGrid.LoadPattern(Col - 1, Highest); 1999 TrackerGrid.LoadPattern(Col - 1, Highest);
2003 end;
2004 end; 2000 end;
2005 end; 2001 end;
2006 2002
@@ -2088,8 +2084,10 @@ end;
2088 procedure TfrmTracker.ToolButton10Click(Sender: TObject); 2084 procedure TfrmTracker.ToolButton10Click(Sender: TObject);
2089 begin 2085 begin
2090 if RenderPreviewROM(Song) then begin 2086 if RenderPreviewROM(Song) then begin
2087 StopPlayback;
2091 SymbolTable := ParseSymFile('hUGEDriver/preview.sym'); 2088 SymbolTable := ParseSymFile('hUGEDriver/preview.sym');
2092 frmRenderToWave.ShowModal; 2089 frmRenderToWave.ShowModal;
2090 StartPlayback;
2093 HaltPlayback; 2091 HaltPlayback;
2094 end; 2092 end;
2095 end; 2093 end;