Commit 3052808

Nick committed on
Start work towards a proper releas
commit 30528088379606c5ad6f58d5550bb24079db0ebd parent 0dd1717
7 changed files +143−100
Modified.gitignore +3−1
@@ -12,4 +12,6 @@ lib
12 *.lnk 12 *.lnk
13 *.map 13 *.map
14 ~* 14 ~*
15 SDL2* 15 Pascal-SDL2*
16 Release
17 Pascal-SDL-2-Headers
Modified.gitmodules +3−0
@@ -1,3 +1,6 @@
1 [submodule "hUGEDriver"] 1 [submodule "hUGEDriver"]
2 path = hUGEDriver 2 path = hUGEDriver
3 url = http://github.com/SuperDisk/hUGEDriver 3 url = http://github.com/SuperDisk/hUGEDriver
4 [submodule "Pascal-SDL-2-Headers"]
5 path = Pascal-SDL-2-Headers
6 url = https://github.com/ev1313/Pascal-SDL-2-Headers
ModifiedGBEmu.lpi +6−5
@@ -12,7 +12,7 @@
12 </Flags> 12 </Flags>
13 <SessionStorage Value="InProjectDir"/> 13 <SessionStorage Value="InProjectDir"/>
14 <MainUnit Value="0"/> 14 <MainUnit Value="0"/>
15 <Title Value="GBEmu"/> 15 <Title Value="hUGETracker"/>
16 <Scaled Value="True"/> 16 <Scaled Value="True"/>
17 <UseAppBundle Value="False"/> 17 <UseAppBundle Value="False"/>
18 <ResourceType Value="res"/> 18 <ResourceType Value="res"/>
@@ -32,8 +32,8 @@
32 <PathDelim Value="\"/> 32 <PathDelim Value="\"/>
33 <SearchPaths> 33 <SearchPaths>
34 <IncludeFiles Value="GPU;CPU;Sound;Global;$(ProjOutDir)"/> 34 <IncludeFiles Value="GPU;CPU;Sound;Global;$(ProjOutDir)"/>
35 <OtherUnitFiles Value="CPU;Sound;Global;SDL2_headers"/> 35 <OtherUnitFiles Value="CPU;Sound;Global;Pascal-SDL-2-Headers"/>
36 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 36 <UnitOutputDirectory Value="lib\Production\$(TargetCPU)-$(TargetOS)"/>
37 </SearchPaths> 37 </SearchPaths>
38 <Parsing> 38 <Parsing>
39 <SyntaxOptions> 39 <SyntaxOptions>
@@ -51,6 +51,7 @@
51 </CodeGeneration> 51 </CodeGeneration>
52 <Linking> 52 <Linking>
53 <Debugging> 53 <Debugging>
54 <GenerateDebugInfo Value="False"/>
54 <UseLineInfoUnit Value="False"/> 55 <UseLineInfoUnit Value="False"/>
55 <StripSymbols Value="True"/> 56 <StripSymbols Value="True"/>
56 </Debugging> 57 </Debugging>
@@ -225,8 +226,8 @@
225 <PathDelim Value="\"/> 226 <PathDelim Value="\"/>
226 <SearchPaths> 227 <SearchPaths>
227 <IncludeFiles Value="GPU;CPU;Sound;Global;$(ProjOutDir)"/> 228 <IncludeFiles Value="GPU;CPU;Sound;Global;$(ProjOutDir)"/>
228 <OtherUnitFiles Value="CPU;Sound;Global;SDL2_headers"/> 229 <OtherUnitFiles Value="CPU;Sound;Global;Pascal-SDL-2-Headers"/>
229 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 230 <UnitOutputDirectory Value="lib\Development\$(TargetCPU)-$(TargetOS)"/>
230 </SearchPaths> 231 </SearchPaths>
231 <Parsing> 232 <Parsing>
232 <SyntaxOptions> 233 <SyntaxOptions>
Modifiedeffecteditor.lfm +1−1
@@ -59,7 +59,7 @@ object frmEffectEditor: TfrmEffectEditor
59 Height = 320 59 Height = 320
60 Top = 80 60 Top = 80
61 Width = 642 61 Width = 642
62 PageIndex = 0 62 PageIndex = 2
63 TabOrder = 1 63 TabOrder = 1
64 object OneParamPage: TPage 64 object OneParamPage: TPage
65 object OneParamTrackBar: TTrackBar 65 object OneParamTrackBar: TTrackBar
Modifiedeffecteditor.pas +2−0
@@ -199,6 +199,7 @@ end;
199 procedure TfrmEffectEditor.VibratoDepthTrackBarChange(Sender: TObject); 199 procedure TfrmEffectEditor.VibratoDepthTrackBarChange(Sender: TObject);
200 begin 200 begin
201 Cell^.EffectParams.Param2 := VibratoDepthTrackBar.Position; 201 Cell^.EffectParams.Param2 := VibratoDepthTrackBar.Position;
202 Label2.Caption := 'Depth: '+IntToStr(VibratoDepthTrackBar.Position);
202 end; 203 end;
203 204
204 procedure TfrmEffectEditor.VibratoRateRadioGroupSelectionChanged(Sender: TObject 205 procedure TfrmEffectEditor.VibratoRateRadioGroupSelectionChanged(Sender: TObject
@@ -258,6 +259,7 @@ begin
258 $F: VibratoRateRadioGroup.ItemIndex := 4; 259 $F: VibratoRateRadioGroup.ItemIndex := 4;
259 end; 260 end;
260 VibratoDepthTrackBar.Position := Cell^.EffectParams.Param2; 261 VibratoDepthTrackBar.Position := Cell^.EffectParams.Param2;
262 Label2.Caption := IntToStr(VibratoDepthTrackBar.Position);
261 end; 263 end;
262 264
263 procedure TfrmEffectEditor.LoadMasterVolumeData; 265 procedure TfrmEffectEditor.LoadMasterVolumeData;
Modifiedtracker.lfm +105−91
@@ -1,11 +1,11 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 861 2 Left = 830
3 Height = 1275 3 Height = 1249
4 Top = 189 4 Top = 199
5 Width = 2056 5 Width = 2068
6 Caption = 'hUGETracker' 6 Caption = 'hUGETracker'
7 ClientHeight = 1241 7 ClientHeight = 1215
8 ClientWidth = 2056 8 ClientWidth = 2068
9 DesignTimePPI = 168 9 DesignTimePPI = 168
10 KeyPreview = True 10 KeyPreview = True
11 Menu = MainMenu1 11 Menu = MainMenu1
@@ -17,7 +17,7 @@ object frmTracker: TfrmTracker
17 LCLVersion = '2.0.6.0' 17 LCLVersion = '2.0.6.0'
18 object TreeView1: TTreeView 18 object TreeView1: TTreeView
19 Left = 0 19 Left = 0
20 Height = 845 20 Height = 819
21 Top = 353 21 Top = 353
22 Width = 338 22 Width = 338
23 Align = alLeft 23 Align = alLeft
@@ -35,35 +35,35 @@ object frmTracker: TfrmTracker
35 end 35 end
36 object Splitter1: TSplitter 36 object Splitter1: TSplitter
37 Left = 338 37 Left = 338
38 Height = 845 38 Height = 819
39 Top = 353 39 Top = 353
40 Width = 9 40 Width = 9
41 end 41 end
42 object Panel1: TPanel 42 object Panel1: TPanel
43 Left = 347 43 Left = 347
44 Height = 845 44 Height = 819
45 Top = 353 45 Top = 353
46 Width = 1709 46 Width = 1721
47 Align = alClient 47 Align = alClient
48 BevelOuter = bvNone 48 BevelOuter = bvNone
49 ClientHeight = 845 49 ClientHeight = 819
50 ClientWidth = 1709 50 ClientWidth = 1721
51 ParentFont = False 51 ParentFont = False
52 TabOrder = 2 52 TabOrder = 2
53 object PageControl1: TPageControl 53 object PageControl1: TPageControl
54 Left = 0 54 Left = 0
55 Height = 845 55 Height = 819
56 Top = 0 56 Top = 0
57 Width = 1709 57 Width = 1721
58 ActivePage = WavesTabSheet 58 ActivePage = InstrumentTabSheet
59 Align = alClient 59 Align = alClient
60 ParentFont = False 60 ParentFont = False
61 TabIndex = 3 61 TabIndex = 2
62 TabOrder = 0 62 TabOrder = 0
63 object GeneralTabSheet: TTabSheet 63 object GeneralTabSheet: TTabSheet
64 Caption = 'General' 64 Caption = 'General'
65 ClientHeight = 802 65 ClientHeight = 450
66 ClientWidth = 1701 66 ClientWidth = 969
67 ParentFont = False 67 ParentFont = False
68 object SongInformationGroupbox: TGroupBox 68 object SongInformationGroupbox: TGroupBox
69 Left = 14 69 Left = 14
@@ -77,25 +77,25 @@ object frmTracker: TfrmTracker
77 TabOrder = 0 77 TabOrder = 0
78 object Label15: TLabel 78 object Label15: TLabel
79 Left = 14 79 Left = 14
80 Height = 30 80 Height = 15
81 Top = 28 81 Top = 28
82 Width = 47 82 Width = 27
83 Caption = 'Song' 83 Caption = 'Song'
84 ParentColor = False 84 ParentColor = False
85 ParentFont = False 85 ParentFont = False
86 end 86 end
87 object Label16: TLabel 87 object Label16: TLabel
88 Left = 12 88 Left = 12
89 Height = 30 89 Height = 15
90 Top = 84 90 Top = 84
91 Width = 49 91 Width = 28
92 Caption = 'Artist' 92 Caption = 'Artist'
93 ParentColor = False 93 ParentColor = False
94 ParentFont = False 94 ParentFont = False
95 end 95 end
96 object SongEdit: TEdit 96 object SongEdit: TEdit
97 Left = 98 97 Left = 98
98 Height = 38 98 Height = 23
99 Hint = 'The name of your composition' 99 Hint = 'The name of your composition'
100 Top = 14 100 Top = 14
101 Width = 378 101 Width = 378
@@ -105,7 +105,7 @@ object frmTracker: TfrmTracker
105 end 105 end
106 object ArtistEdit: TEdit 106 object ArtistEdit: TEdit
107 Left = 98 107 Left = 98
108 Height = 38 108 Height = 23
109 Hint = 'Your name or handle' 109 Hint = 'Your name or handle'
110 Top = 70 110 Top = 70
111 Width = 378 111 Width = 378
@@ -115,16 +115,16 @@ object frmTracker: TfrmTracker
115 end 115 end
116 object Label21: TLabel 116 object Label21: TLabel
117 Left = 14 117 Left = 14
118 Height = 30 118 Height = 15
119 Top = 136 119 Top = 136
120 Width = 197 120 Width = 114
121 Caption = 'Tempo (ticks per row)' 121 Caption = 'Tempo (ticks per row)'
122 ParentColor = False 122 ParentColor = False
123 ParentFont = False 123 ParentFont = False
124 end 124 end
125 object TicksPerRowSpinEdit: TSpinEdit 125 object TicksPerRowSpinEdit: TSpinEdit
126 Left = 232 126 Left = 233
127 Height = 38 127 Height = 23
128 Hint = 'How many ticks should happen before the row changes. Higher means slower' 128 Hint = 'How many ticks should happen before the row changes. Higher means slower'
129 Top = 128 129 Top = 128
130 Width = 88 130 Width = 88
@@ -139,16 +139,16 @@ object frmTracker: TfrmTracker
139 end 139 end
140 object PatternTabSheet: TTabSheet 140 object PatternTabSheet: TTabSheet
141 Caption = 'Patterns' 141 Caption = 'Patterns'
142 ClientHeight = 802 142 ClientHeight = 803
143 ClientWidth = 1701 143 ClientWidth = 1701
144 ParentFont = False 144 ParentFont = False
145 object Panel3: TPanel 145 object Panel3: TPanel
146 Left = 392 146 Left = 392
147 Height = 802 147 Height = 803
148 Top = 0 148 Top = 0
149 Width = 1309 149 Width = 1309
150 Align = alClient 150 Align = alClient
151 ClientHeight = 802 151 ClientHeight = 803
152 ClientWidth = 1309 152 ClientWidth = 1309
153 ParentFont = False 153 ParentFont = False
154 TabOrder = 0 154 TabOrder = 0
@@ -197,7 +197,7 @@ object frmTracker: TfrmTracker
197 end 197 end
198 object ScrollBox1: TScrollBox 198 object ScrollBox1: TScrollBox
199 Left = 1 199 Left = 1
200 Height = 748 200 Height = 749
201 Top = 53 201 Top = 53
202 Width = 1307 202 Width = 1307
203 HorzScrollBar.Increment = 1 203 HorzScrollBar.Increment = 1
@@ -216,7 +216,7 @@ object frmTracker: TfrmTracker
216 end 216 end
217 object OrderEditStringGrid: TStringGrid 217 object OrderEditStringGrid: TStringGrid
218 Left = 0 218 Left = 0
219 Height = 802 219 Height = 803
220 Top = 0 220 Top = 0
221 Width = 392 221 Width = 392
222 Align = alLeft 222 Align = alLeft
@@ -251,7 +251,7 @@ object frmTracker: TfrmTracker
251 Title.Caption = 'Nse' 251 Title.Caption = 'Nse'
252 Width = 63 252 Width = 63
253 end> 253 end>
254 DefaultColWidth = 29 254 DefaultColWidth = 30
255 DefaultRowHeight = 37 255 DefaultRowHeight = 37
256 ExtendedSelect = False 256 ExtendedSelect = False
257 Options = [goFixedVertLine, goFixedHorzLine, goRangeSelect, goRowMoving, goEditing, goAutoAddRows, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight] 257 Options = [goFixedVertLine, goFixedHorzLine, goRangeSelect, goRowMoving, goEditing, goAutoAddRows, goTabs, goSmoothScroll, goFixedRowNumbering, goRowHighlight]
@@ -281,18 +281,18 @@ object frmTracker: TfrmTracker
281 end 281 end
282 object InstrumentTabSheet: TTabSheet 282 object InstrumentTabSheet: TTabSheet
283 Caption = 'Instruments' 283 Caption = 'Instruments'
284 ClientHeight = 802 284 ClientHeight = 776
285 ClientWidth = 1701 285 ClientWidth = 1713
286 ParentFont = False 286 ParentFont = False
287 object PaintBox1: TPaintBox 287 object PaintBox1: TPaintBox
288 AnchorSideTop.Control = FlowPanel1 288 AnchorSideTop.Control = FlowPanel1
289 AnchorSideTop.Side = asrBottom 289 AnchorSideTop.Side = asrBottom
290 AnchorSideBottom.Side = asrBottom 290 AnchorSideBottom.Side = asrBottom
291 Left = 0 291 Left = 0
292 Height = 102 292 Height = 77
293 Hint = 'Preview of how the resulting waveform will look with envelope applied' 293 Hint = 'Preview of how the resulting waveform will look with envelope applied'
294 Top = 700 294 Top = 699
295 Width = 1701 295 Width = 1713
296 Align = alClient 296 Align = alClient
297 Color = clBlack 297 Color = clBlack
298 ParentColor = False 298 ParentColor = False
@@ -302,9 +302,9 @@ object frmTracker: TfrmTracker
302 end 302 end
303 object FlowPanel1: TFlowPanel 303 object FlowPanel1: TFlowPanel
304 Left = 0 304 Left = 0
305 Height = 700 305 Height = 699
306 Top = 0 306 Top = 0
307 Width = 1701 307 Width = 1713
308 Align = alTop 308 Align = alTop
309 AutoSize = True 309 AutoSize = True
310 BevelOuter = bvNone 310 BevelOuter = bvNone
@@ -340,7 +340,7 @@ object frmTracker: TfrmTracker
340 TabOrder = 0 340 TabOrder = 0
341 object InstrumentGroupBox: TGroupBox 341 object InstrumentGroupBox: TGroupBox
342 Left = 12 342 Left = 12
343 Height = 356 343 Height = 355
344 Top = 12 344 Top = 12
345 Width = 474 345 Width = 474
346 Anchors = [] 346 Anchors = []
@@ -349,7 +349,7 @@ object frmTracker: TfrmTracker
349 BorderSpacing.Right = 12 349 BorderSpacing.Right = 12
350 BorderSpacing.Bottom = 12 350 BorderSpacing.Bottom = 12
351 Caption = 'Instrument' 351 Caption = 'Instrument'
352 ClientHeight = 321 352 ClientHeight = 320
353 ClientWidth = 470 353 ClientWidth = 470
354 ParentFont = False 354 ParentFont = False
355 TabOrder = 0 355 TabOrder = 0
@@ -492,6 +492,7 @@ object frmTracker: TfrmTracker
492 Width = 203 492 Width = 203
493 Caption = 'Import' 493 Caption = 'Import'
494 OnClick = InstrumentImportButtonClick 494 OnClick = InstrumentImportButtonClick
495 ParentFont = False
495 TabOrder = 5 496 TabOrder = 5
496 end 497 end
497 object InstrumentExportButton: TButton 498 object InstrumentExportButton: TButton
@@ -501,6 +502,7 @@ object frmTracker: TfrmTracker
501 Width = 203 502 Width = 203
502 Caption = 'Export' 503 Caption = 'Export'
503 OnClick = InstrumentExportButtonClick 504 OnClick = InstrumentExportButtonClick
505 ParentFont = False
504 TabOrder = 6 506 TabOrder = 6
505 end 507 end
506 object Button1: TButton 508 object Button1: TButton
@@ -510,6 +512,7 @@ object frmTracker: TfrmTracker
510 Width = 424 512 Width = 424
511 Caption = 'Test C-5' 513 Caption = 'Test C-5'
512 OnClick = Button1Click 514 OnClick = Button1Click
515 ParentFont = False
513 TabOrder = 7 516 TabOrder = 7
514 end 517 end
515 end 518 end
@@ -700,7 +703,7 @@ object frmTracker: TfrmTracker
700 object SquareGroupBox: TGroupBox 703 object SquareGroupBox: TGroupBox
701 Left = 12 704 Left = 12
702 Height = 296 705 Height = 296
703 Top = 392 706 Top = 391
704 Width = 558 707 Width = 558
705 Anchors = [] 708 Anchors = []
706 BorderSpacing.Left = 12 709 BorderSpacing.Left = 12
@@ -871,7 +874,7 @@ object frmTracker: TfrmTracker
871 object WaveGroupBox: TGroupBox 874 object WaveGroupBox: TGroupBox
872 Left = 594 875 Left = 594
873 Height = 296 876 Height = 296
874 Top = 392 877 Top = 391
875 Width = 520 878 Width = 520
876 Anchors = [] 879 Anchors = []
877 BorderSpacing.Left = 12 880 BorderSpacing.Left = 12
@@ -981,7 +984,7 @@ object frmTracker: TfrmTracker
981 object NoiseGroupBox: TGroupBox 984 object NoiseGroupBox: TGroupBox
982 Left = 1138 985 Left = 1138
983 Height = 296 986 Height = 296
984 Top = 392 987 Top = 391
985 Width = 462 988 Width = 462
986 Anchors = [] 989 Anchors = []
987 BorderSpacing.Left = 12 990 BorderSpacing.Left = 12
@@ -1009,7 +1012,7 @@ object frmTracker: TfrmTracker
1009 object Label14: TLabel 1012 object Label14: TLabel
1010 Left = 16 1013 Left = 16
1011 Height = 30 1014 Height = 30
1012 Top = 90 1015 Top = 89
1013 Width = 124 1016 Width = 124
1014 Caption = 'Dividing ratio' 1017 Caption = 'Dividing ratio'
1015 ParentColor = False 1018 ParentColor = False
@@ -1789,16 +1792,16 @@ object frmTracker: TfrmTracker
1789 Left = 0 1792 Left = 0
1790 Height = 312 1793 Height = 312
1791 Top = 41 1794 Top = 41
1792 Width = 2056 1795 Width = 2068
1793 Align = alTop 1796 Align = alTop
1794 BevelOuter = bvNone 1797 BevelOuter = bvNone
1795 ChildSizing.HorizontalSpacing = 10 1798 ChildSizing.HorizontalSpacing = 10
1796 ClientHeight = 312 1799 ClientHeight = 312
1797 ClientWidth = 2056 1800 ClientWidth = 2068
1798 ParentFont = False 1801 ParentFont = False
1799 TabOrder = 3 1802 TabOrder = 3
1800 object Panel6: TPanel 1803 object Panel6: TPanel
1801 Left = 1366 1804 Left = 1378
1802 Height = 312 1805 Height = 312
1803 Top = 0 1806 Top = 0
1804 Width = 690 1807 Width = 690
@@ -1806,39 +1809,44 @@ object frmTracker: TfrmTracker
1806 AutoSize = True 1809 AutoSize = True
1807 ClientHeight = 312 1810 ClientHeight = 312
1808 ClientWidth = 690 1811 ClientWidth = 690
1812 ParentFont = False
1809 TabOrder = 0 1813 TabOrder = 0
1810 object Duty1Visualizer: TPaintBox 1814 object Duty1Visualizer: TPaintBox
1811 Left = 1 1815 Left = 1
1812 Height = 152 1816 Height = 152
1813 Top = 1 1817 Top = 1
1814 Width = 344 1818 Width = 345
1819 ParentFont = False
1815 OnPaint = Duty1VisualizerPaint 1820 OnPaint = Duty1VisualizerPaint
1816 end 1821 end
1817 object WaveVisualizer: TPaintBox 1822 object WaveVisualizer: TPaintBox
1818 Left = 1 1823 Left = 1
1819 Height = 160 1824 Height = 159
1820 Top = 153 1825 Top = 151
1821 Width = 344 1826 Width = 345
1827 ParentFont = False
1822 OnPaint = WaveVisualizerPaint 1828 OnPaint = WaveVisualizerPaint
1823 end 1829 end
1824 object Duty2Visualizer: TPaintBox 1830 object Duty2Visualizer: TPaintBox
1825 Left = 345 1831 Left = 344
1826 Height = 152 1832 Height = 152
1827 Top = 1 1833 Top = 1
1828 Width = 344 1834 Width = 345
1835 ParentFont = False
1829 OnPaint = Duty2VisualizerPaint 1836 OnPaint = Duty2VisualizerPaint
1830 end 1837 end
1831 object NoiseVisualizer: TPaintBox 1838 object NoiseVisualizer: TPaintBox
1832 Left = 345 1839 Left = 344
1833 Height = 160 1840 Height = 159
1834 Top = 153 1841 Top = 151
1835 Width = 344 1842 Width = 345
1843 ParentFont = False
1836 OnPaint = NoiseVisualizerPaint 1844 OnPaint = NoiseVisualizerPaint
1837 end 1845 end
1838 end 1846 end
1839 object LEDMeter1: TLEDMeter 1847 object LEDMeter1: TLEDMeter
1840 AnchorSideRight.Side = asrBottom 1848 AnchorSideRight.Side = asrBottom
1841 Left = 1276 1849 Left = 1289
1842 Height = 312 1850 Height = 312
1843 Top = 0 1851 Top = 0
1844 Width = 88 1852 Width = 88
@@ -1862,7 +1870,7 @@ object frmTracker: TfrmTracker
1862 end 1870 end
1863 object LEDMeter2: TLEDMeter 1871 object LEDMeter2: TLEDMeter
1864 AnchorSideRight.Side = asrBottom 1872 AnchorSideRight.Side = asrBottom
1865 Left = 1188 1873 Left = 1200
1866 Height = 312 1874 Height = 312
1867 Top = 0 1875 Top = 0
1868 Width = 88 1876 Width = 88
@@ -1888,8 +1896,8 @@ object frmTracker: TfrmTracker
1888 object StatusBar1: TStatusBar 1896 object StatusBar1: TStatusBar
1889 Left = 0 1897 Left = 0
1890 Height = 43 1898 Height = 43
1891 Top = 1198 1899 Top = 1172
1892 Width = 2056 1900 Width = 2068
1893 AutoHint = True 1901 AutoHint = True
1894 Panels = < 1902 Panels = <
1895 item 1903 item
@@ -1910,7 +1918,7 @@ object frmTracker: TfrmTracker
1910 Left = 0 1918 Left = 0
1911 Height = 41 1919 Height = 41
1912 Top = 0 1920 Top = 0
1913 Width = 2056 1921 Width = 2068
1914 AutoSize = True 1922 AutoSize = True
1915 Caption = 'ToolBar1' 1923 Caption = 'ToolBar1'
1916 EdgeBorders = [ebBottom] 1924 EdgeBorders = [ebBottom]
@@ -1927,7 +1935,7 @@ object frmTracker: TfrmTracker
1927 ParentShowHint = False 1935 ParentShowHint = False
1928 end 1936 end
1929 object PanicToolButton: TToolButton 1937 object PanicToolButton: TToolButton
1930 Left = 547 1938 Left = 561
1931 Hint = 'Stops all sound output' 1939 Hint = 'Stops all sound output'
1932 Top = 0 1940 Top = 0
1933 AutoSize = True 1941 AutoSize = True
@@ -1938,21 +1946,21 @@ object frmTracker: TfrmTracker
1938 ShowHint = True 1946 ShowHint = True
1939 end 1947 end
1940 object ToolButton2: TToolButton 1948 object ToolButton2: TToolButton
1941 Left = 169 1949 Left = 173
1942 Top = 0 1950 Top = 0
1943 Caption = '⏯' 1951 Caption = '⏯'
1944 ImageIndex = 75 1952 ImageIndex = 75
1945 OnClick = ToolButton2Click 1953 OnClick = ToolButton2Click
1946 end 1954 end
1947 object ToolButton4: TToolButton 1955 object ToolButton4: TToolButton
1948 Left = 224 1956 Left = 228
1949 Top = 0 1957 Top = 0
1950 Caption = '⏹️' 1958 Caption = '⏹️'
1951 ImageIndex = 73 1959 ImageIndex = 73
1952 OnClick = ToolButton4Click 1960 OnClick = ToolButton4Click
1953 end 1961 end
1954 object ExportGBButton: TToolButton 1962 object ExportGBButton: TToolButton
1955 Left = 284 1963 Left = 292
1956 Top = 0 1964 Top = 0
1957 AutoSize = True 1965 AutoSize = True
1958 Caption = 'Export .GB' 1966 Caption = 'Export .GB'
@@ -1967,56 +1975,59 @@ object frmTracker: TfrmTracker
1967 Style = tbsDivider 1975 Style = tbsDivider
1968 end 1976 end
1969 object ToolButton6: TToolButton 1977 object ToolButton6: TToolButton
1970 Left = 279 1978 Left = 283
1971 Height = 39 1979 Height = 39
1972 Top = 0 1980 Top = 0
1973 Caption = 'ToolButton6' 1981 Caption = 'ToolButton6'
1974 Style = tbsDivider 1982 Style = tbsDivider
1975 end 1983 end
1976 object ToolButton7: TToolButton 1984 object ToolButton7: TToolButton
1977 Left = 539 1985 Left = 547
1978 Height = 39 1986 Height = 39
1979 Top = 0 1987 Top = 0
1980 Caption = 'ToolButton7' 1988 Caption = 'ToolButton7'
1981 Style = tbsSeparator 1989 Style = tbsSeparator
1982 end 1990 end
1983 object OctaveSpinEdit: TSpinEdit 1991 object OctaveSpinEdit: TSpinEdit
1984 Left = 708 1992 Left = 728
1985 Height = 38 1993 Height = 38
1986 Top = 0 1994 Top = 0
1987 Width = 158 1995 Width = 158
1988 MaxValue = 5 1996 MaxValue = 5
1989 OnChange = OctaveSpinEditChange 1997 OnChange = OctaveSpinEditChange
1998 ParentFont = False
1990 TabOrder = 0 1999 TabOrder = 0
1991 end 2000 end
1992 object ToolButton9: TToolButton 2001 object ToolButton9: TToolButton
1993 Left = 623 2002 Left = 637
1994 Height = 39 2003 Height = 39
1995 Top = 0 2004 Top = 0
1996 Caption = 'ToolButton9' 2005 Caption = 'ToolButton9'
1997 Style = tbsSeparator 2006 Style = tbsSeparator
1998 end 2007 end
1999 object Label22: TLabel 2008 object Label22: TLabel
2000 Left = 631 2009 Left = 651
2001 Height = 30 2010 Height = 30
2002 Top = 0 2011 Top = 0
2003 Width = 77 2012 Width = 77
2004 Caption = 'Octave ' 2013 Caption = 'Octave '
2005 ParentColor = False 2014 ParentColor = False
2015 ParentFont = False
2006 end 2016 end
2007 object Label23: TLabel 2017 object Label23: TLabel
2008 Left = 866 2018 Left = 886
2009 Height = 30 2019 Height = 30
2010 Top = 0 2020 Top = 0
2011 Width = 125 2021 Width = 125
2012 Caption = ' Instrument ' 2022 Caption = ' Instrument '
2013 ParentColor = False 2023 ParentColor = False
2024 ParentFont = False
2014 end 2025 end
2015 object InstrumentComboBox: TComboBox 2026 object InstrumentComboBox: TComboBox
2016 Left = 991 2027 Left = 1011
2017 Height = 38 2028 Height = 38
2018 Top = 0 2029 Top = 0
2019 Width = 375 2030 Width = 374
2020 ItemHeight = 30 2031 ItemHeight = 30
2021 ItemIndex = 0 2032 ItemIndex = 0
2022 Items.Strings = ( 2033 Items.Strings = (
@@ -2038,36 +2049,39 @@ object frmTracker: TfrmTracker
2038 '15:' 2049 '15:'
2039 ) 2050 )
2040 OnChange = InstrumentComboBoxChange 2051 OnChange = InstrumentComboBoxChange
2052 ParentFont = False
2041 Style = csDropDownList 2053 Style = csDropDownList
2042 TabOrder = 1 2054 TabOrder = 1
2043 Text = '(no instrument)' 2055 Text = '(no instrument)'
2044 end 2056 end
2045 object Label24: TLabel 2057 object Label24: TLabel
2046 Left = 1366 2058 Left = 1385
2047 Height = 30 2059 Height = 30
2048 Top = 0 2060 Top = 0
2049 Width = 64 2061 Width = 64
2050 Caption = ' Step ' 2062 Caption = ' Step '
2051 ParentColor = False 2063 ParentColor = False
2064 ParentFont = False
2052 end 2065 end
2053 object StepSpinEdit: TSpinEdit 2066 object StepSpinEdit: TSpinEdit
2054 Left = 1430 2067 Left = 1449
2055 Height = 38 2068 Height = 38
2056 Top = 0 2069 Top = 0
2057 Width = 88 2070 Width = 88
2058 MaxValue = 63 2071 MaxValue = 63
2059 OnChange = StepSpinEditChange 2072 OnChange = StepSpinEditChange
2073 ParentFont = False
2060 TabOrder = 2 2074 TabOrder = 2
2061 end 2075 end
2062 object ToolButton3: TToolButton 2076 object ToolButton3: TToolButton
2063 Left = 125 2077 Left = 129
2064 Top = 0 2078 Top = 0
2065 Caption = '▶️' 2079 Caption = '▶️'
2066 ImageIndex = 74 2080 ImageIndex = 74
2067 OnClick = ToolButton3Click 2081 OnClick = ToolButton3Click
2068 end 2082 end
2069 object ExportGBSButton: TToolButton 2083 object ExportGBSButton: TToolButton
2070 Left = 406 2084 Left = 414
2071 Top = 0 2085 Top = 0
2072 Caption = 'Export .GBS' 2086 Caption = 'Export .GBS'
2073 ImageIndex = 77 2087 ImageIndex = 77
@@ -2265,8 +2279,8 @@ object frmTracker: TfrmTracker
2265 end 2279 end
2266 end 2280 end
2267 object ImageList1: TImageList 2281 object ImageList1: TImageList
2268 left = 232 2282 left = 233
2269 top = 80 2283 top = 81
2270 Bitmap = { 2284 Bitmap = {
2271 4C694E0000001000000010000000000000000000000000000000000000000000 2285 4C694E0000001000000010000000000000000000000000000000000000000000
2272 0000000000000000000000000000000000000000000000000000000000000000 2286 0000000000000000000000000000000000000000000000000000000000000000
@@ -4775,11 +4789,11 @@ object frmTracker: TfrmTracker
4775 object InstrumentSaveDialog: TSaveDialog 4789 object InstrumentSaveDialog: TSaveDialog
4776 Filter = 'hUGETracker Instruments|*.ugi' 4790 Filter = 'hUGETracker Instruments|*.ugi'
4777 left = 632 4791 left = 632
4778 top = 192 4792 top = 193
4779 end 4793 end
4780 object OrderEditPopup: TPopupMenu 4794 object OrderEditPopup: TPopupMenu
4781 left = 376 4795 left = 376
4782 top = 80 4796 top = 81
4783 object MenuItem17: TMenuItem 4797 object MenuItem17: TMenuItem
4784 Caption = 'Insert new row' 4798 Caption = 'Insert new row'
4785 Hint = 'Insert a new row filled with brand new patterns' 4799 Hint = 'Insert a new row filled with brand new patterns'
@@ -4810,7 +4824,7 @@ object frmTracker: TfrmTracker
4810 object ImageList2: TImageList 4824 object ImageList2: TImageList
4811 Height = 32 4825 Height = 32
4812 Width = 32 4826 Width = 32
4813 left = 232 4827 left = 233
4814 top = 168 4828 top = 168
4815 Bitmap = { 4829 Bitmap = {
4816 4C69020000002000000020000000000000000000000000000000000000000000 4830 4C69020000002000000020000000000000000000000000000000000000000000
@@ -5076,11 +5090,11 @@ object frmTracker: TfrmTracker
5076 Interval = 25 5090 Interval = 25
5077 OnTimer = OscilloscopeUpdateTimerTimer 5091 OnTimer = OscilloscopeUpdateTimerTimer
5078 left = 504 5092 left = 504
5079 top = 80 5093 top = 81
5080 end 5094 end
5081 object GBSSaveDialog: TSaveDialog 5095 object GBSSaveDialog: TSaveDialog
5082 Filter = 'Gameboy Soundtrack|*.gbs' 5096 Filter = 'Gameboy Soundtrack|*.gbs'
5083 left = 920 5097 left = 921
5084 top = 200 5098 top = 200
5085 end 5099 end
5086 object WaveSaveDialog: TSaveDialog 5100 object WaveSaveDialog: TSaveDialog
@@ -5090,13 +5104,13 @@ object frmTracker: TfrmTracker
5090 end 5104 end
5091 object GBSaveDialog: TSaveDialog 5105 object GBSaveDialog: TSaveDialog
5092 Filter = 'Gameboy ROM|*.GB' 5106 Filter = 'Gameboy ROM|*.GB'
5093 left = 456 5107 left = 457
5094 top = 184 5108 top = 184
5095 end 5109 end
5096 object NoteHaltTimer: TTimer 5110 object NoteHaltTimer: TTimer
5097 Enabled = False 5111 Enabled = False
5098 OnTimer = NoteHaltTimerTimer 5112 OnTimer = NoteHaltTimerTimer
5099 left = 344 5113 left = 345
5100 top = 176 5114 top = 177
5101 end 5115 end
5102 end 5116 end
Modifiedtracker.pas +23−2
@@ -9,7 +9,7 @@ uses
9 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, math, Instruments, Waves, 9 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, math, Instruments, Waves,
10 Song, EmulationThread, Utils, Constants, sound, vars, machine, 10 Song, EmulationThread, Utils, Constants, sound, vars, machine,
11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls, 11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls,
12 ECProgressBar, HugeDatatypes, LCLType, RackCtls, Codegen, 12 ECProgressBar, HugeDatatypes, LCLType, BCTrackbarUpdown, RackCtls, Codegen,
13 SymParser; 13 SymParser;
14 14
15 type 15 type
@@ -855,6 +855,8 @@ procedure TfrmTracker.FormCreate(Sender: TObject);
855 var 855 var
856 I: Integer; 856 I: Integer;
857 Section: TCollectionItem; 857 Section: TCollectionItem;
858 F: file;
859 Stream: TStream;
858 begin 860 begin
859 if Screen.Fonts.IndexOf('Pixelite') < 0 then 861 if Screen.Fonts.IndexOf('Pixelite') < 0 then
860 MessageDlg('Warning', 'You don''t have the Pixelite .FON file installed, '+ 862 MessageDlg('Warning', 'You don''t have the Pixelite .FON file installed, '+
@@ -909,6 +911,20 @@ begin
909 EmulationThread := TEmulationThread.Create('halt.gb'); 911 EmulationThread := TEmulationThread.Create('halt.gb');
910 EmulationThread.Start; 912 EmulationThread.Start;
911 ResetEmulationThread; //TODO: remove this hack 913 ResetEmulationThread; //TODO: remove this hack
914
915 if (not FileExists('firstrun')) and FileExists('Sample Songs\Cognition.uge') then begin
916 stream := TFileStream.Create('Sample Songs\Cognition.uge', fmOpenRead);
917 try
918 ReadSongFromStream(stream, Song);
919 finally
920 stream.Free;
921 end;
922 UpdateUIAfterLoad;
923
924 AssignFile(F, 'firstrun');
925 Rewrite(F);
926 CloseFile(F);
927 end;
912 end; 928 end;
913 929
914 procedure TfrmTracker.FormKeyDown(Sender: TObject; var Key: Word; 930 procedure TfrmTracker.FormKeyDown(Sender: TObject; var Key: Word;
@@ -1395,7 +1411,12 @@ var
1395 I: Integer; 1411 I: Integer;
1396 Samp: Integer; 1412 Samp: Integer;
1397 begin 1413 begin
1398 if not Playing then Exit; 1414 // Hack to prevent the effect editor from choking when it's trying to close.
1415 if Playing then
1416 OscilloscopeUpdateTimer.Interval := 25
1417 else
1418 OscilloscopeUpdateTimer.Interval := 200;
1419
1399 Max1 := -1; 1420 Max1 := -1;
1400 Max2 := -1; 1421 Max2 := -1;
1401 for I := 0 to SAMPLE_BUFFER_SIZE do begin 1422 for I := 0 to SAMPLE_BUFFER_SIZE do begin