vgmstream/Generic Header Creator 3/Form1.frm
2009-01-10 22:39:43 +00:00

3598 lines
120 KiB
Plaintext

VERSION 5.00
Object = "{49CBE90A-5F9F-4127-919C-0B74E18CB87E}#1.0#0"; "CK-Tools.ocx"
Begin VB.Form Form1
BackColor = &H00E0E0E0&
BorderStyle = 0 'Kein
Caption = "Generic Header Creator 3.00 for vgmstream"
ClientHeight = 8940
ClientLeft = 0
ClientTop = 0
ClientWidth = 13110
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 596
ScaleMode = 3 'Pixel
ScaleWidth = 874
StartUpPosition = 1 'Fenstermitte
Begin VB.TextBox txtInputFile
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 285
Left = 120
Locked = -1 'True
TabIndex = 95
Top = 10320
Width = 4095
End
Begin VB.TextBox txtLoopEndCut
Appearance = 0 '2D
Height = 285
Left = 6000
TabIndex = 93
Top = 11040
Width = 2055
End
Begin VB.TextBox txtGetFileName
Appearance = 0 '2D
Height = 285
Left = 3960
TabIndex = 92
Top = 10680
Width = 4095
End
Begin VB.TextBox txtLoopStartCut
Appearance = 0 '2D
Height = 285
Left = 3960
TabIndex = 91
Top = 11040
Width = 2055
End
Begin VB.Frame frmEDITOR
BackColor = &H00B8B8B8&
Caption = "Editor:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 255
Left = 2640
TabIndex = 61
Top = 10680
Width = 1215
Begin VB.Frame Frame4
BackColor = &H00B8B8B8&
Caption = "File:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 6135
Left = 360
TabIndex = 83
Top = 240
Width = 4335
Begin VB.TextBox txtInputFileLengthEditor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Enabled = 0 'False
Height = 285
Left = 3000
TabIndex = 87
Top = 840
Width = 1215
End
Begin VB.TextBox txtInputFileEditor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Enabled = 0 'False
Height = 285
Left = 120
TabIndex = 86
Top = 840
Width = 2775
End
Begin VB.FileListBox File2
Appearance = 0 '2D
BackColor = &H00E0E0E0&
ForeColor = &H00800000&
Height = 4320
Left = 120
Pattern = "*.GENH"
TabIndex = 85
Top = 1200
Width = 4095
End
Begin VB.CommandButton cmdSaveEditor
Caption = "Save Changes"
Height = 375
Left = 120
TabIndex = 84
Top = 5640
Width = 4095
End
Begin CK_Tools.FolderBrowser FolderBrowser1Editor
Height = 285
Left = 120
TabIndex = 88
Top = 240
Width = 4080
_ExtentX = 7197
_ExtentY = 503
BackColor = 14737632
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Label Label7
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "File Length:"
ForeColor = &H00800000&
Height = 195
Left = 3000
TabIndex = 90
Top = 600
Width = 825
End
Begin VB.Label Label8
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Input File Name:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 89
Top = 600
Width = 1155
End
End
Begin VB.Frame Frame6
BackColor = &H00B8B8B8&
Caption = "Format:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 1575
Left = 4560
TabIndex = 79
Top = 240
Width = 4695
Begin VB.ComboBox comboFileFormatEditor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":0000
Left = 120
List = "Form1.frx":0028
TabIndex = 80
Top = 480
Width = 4455
End
Begin VB.Label Label9
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "File Format:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 82
Top = 240
Width = 810
End
Begin VB.Label lblERROREditor
Alignment = 2 'Zentriert
BackStyle = 0 'Transparent
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 495
Left = 120
TabIndex = 81
Top = 960
Width = 4485
End
End
Begin VB.Frame Frame7
BackColor = &H00B8B8B8&
Caption = "Options:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 4455
Left = 4560
TabIndex = 62
Top = 1920
Width = 4695
Begin VB.ComboBox txtGENHFrequencyEditor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":01A0
Left = 2520
List = "Form1.frx":01C5
TabIndex = 70
Top = 2520
Width = 1935
End
Begin VB.ComboBox txtGENHInterleaveEditor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":0215
Left = 2520
List = "Form1.frx":0246
TabIndex = 69
Top = 1920
Width = 1935
End
Begin VB.ComboBox txtGENHHeaderSkipEditor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":029D
Left = 360
List = "Form1.frx":02C8
TabIndex = 68
Top = 1920
Width = 1935
End
Begin VB.TextBox txtGENHLoopStartSamplesEditor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 315
Left = 360
TabIndex = 67
Top = 3360
Width = 1935
End
Begin VB.TextBox txtGENHLoopEndSamplesEditor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 315
Left = 2520
TabIndex = 66
Top = 3360
Width = 1935
End
Begin VB.ComboBox txtGENHChannelsEditor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":030D
Left = 360
List = "Form1.frx":0329
TabIndex = 65
Top = 2520
Width = 1935
End
Begin VB.TextBox txtEmbeddedFileEditor
Alignment = 2 'Zentriert
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 285
Left = 360
Locked = -1 'True
TabIndex = 64
Top = 1200
Width = 4095
End
Begin VB.TextBox txtGENHVersionEditor
Alignment = 2 'Zentriert
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 285
Left = 360
Locked = -1 'True
TabIndex = 63
Top = 600
Width = 4095
End
Begin VB.Label Label12
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Header Skip:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 78
Top = 1680
Width = 930
End
Begin VB.Label Label13
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Loop End (Samples):"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 77
Top = 3120
Width = 1470
End
Begin VB.Label Label14
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Loop Start (Samples):"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 76
Top = 3120
Width = 1515
End
Begin VB.Label Label15
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Frequency:"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 75
Top = 2280
Width = 795
End
Begin VB.Label Label16
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Interleave:"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 74
Top = 1680
Width = 750
End
Begin VB.Label Label17
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Channels:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 73
Top = 2280
Width = 705
End
Begin VB.Label Label18
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Embedded File:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 72
Top = 960
Width = 1095
End
Begin VB.Label Label6
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "GENH Version:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 71
Top = 360
Width = 1080
End
End
End
Begin VB.Frame frmExtractor
BackColor = &H00B8B8B8&
Caption = "Extractor:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 255
Left = 2640
TabIndex = 29
Top = 11040
Width = 1215
Begin VB.Frame Frame8
BackColor = &H00B8B8B8&
Caption = "File:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 6135
Left = 120
TabIndex = 53
Top = 240
Width = 4335
Begin VB.CommandButton cmdExtractEmbeddedFile
Caption = "Extract Embedded File"
Height = 375
Left = 120
TabIndex = 57
Top = 5640
Width = 4095
End
Begin VB.FileListBox File3
Appearance = 0 '2D
BackColor = &H00E0E0E0&
ForeColor = &H00800000&
Height = 4320
Left = 120
Pattern = "*.GENH"
TabIndex = 56
Top = 1200
Width = 4095
End
Begin VB.TextBox txtInputFileExtractor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Enabled = 0 'False
Height = 285
Left = 120
TabIndex = 55
Top = 840
Width = 2775
End
Begin VB.TextBox txtInputFileLengthExtractor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Enabled = 0 'False
Height = 285
Left = 3000
TabIndex = 54
Top = 840
Width = 1215
End
Begin CK_Tools.FolderBrowser FolderBrowser1Extractor
Height = 285
Left = 120
TabIndex = 58
Top = 240
Width = 4080
_ExtentX = 7197
_ExtentY = 503
BackColor = 14737632
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Label Label10
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Input File Name:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 60
Top = 600
Width = 1155
End
Begin VB.Label Label11
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "File Length:"
ForeColor = &H00800000&
Height = 195
Left = 3000
TabIndex = 59
Top = 600
Width = 825
End
End
Begin VB.Frame Frame9
BackColor = &H00B8B8B8&
Caption = "Options:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 4455
Left = 4560
TabIndex = 34
Top = 1920
Width = 4695
Begin VB.TextBox txtGENHVersionExtractor
Alignment = 2 'Zentriert
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 285
Left = 360
Locked = -1 'True
TabIndex = 43
Top = 600
Width = 4095
End
Begin VB.TextBox txtEmbeddedFileExtractor
Alignment = 2 'Zentriert
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 285
Left = 360
TabIndex = 42
Top = 1200
Width = 4095
End
Begin VB.ComboBox txtGENHChannelsExtractor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":0345
Left = 360
List = "Form1.frx":0361
TabIndex = 41
Top = 3120
Width = 1935
End
Begin VB.TextBox txtGENHLoopEndSamplesExtractor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 315
Left = 2520
TabIndex = 40
Top = 3960
Width = 1935
End
Begin VB.TextBox txtGENHLoopStartSamplesExtractor
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 315
Left = 360
TabIndex = 39
Top = 3960
Width = 1935
End
Begin VB.ComboBox txtGENHHeaderSkipExtractor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":037D
Left = 360
List = "Form1.frx":03A8
TabIndex = 38
Top = 2520
Width = 1935
End
Begin VB.ComboBox txtGENHInterleaveExtractor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":03ED
Left = 2520
List = "Form1.frx":041E
TabIndex = 37
Top = 2520
Width = 1935
End
Begin VB.ComboBox txtGENHFrequencyExtractor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":0475
Left = 2520
List = "Form1.frx":049A
TabIndex = 36
Top = 3120
Width = 1935
End
Begin VB.TextBox txtExtractLengthExtractor
Alignment = 2 'Zentriert
Appearance = 0 '2D
BackColor = &H00E0E0E0&
Height = 285
Left = 360
Locked = -1 'True
TabIndex = 35
Top = 1800
Width = 4095
End
Begin VB.Label Label19
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "GENH Version:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 52
Top = 360
Width = 1080
End
Begin VB.Label Label20
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Embedded File:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 51
Top = 960
Width = 1095
End
Begin VB.Label Label21
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Channels:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 50
Top = 2880
Width = 705
End
Begin VB.Label Label22
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Interleave:"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 49
Top = 2280
Width = 750
End
Begin VB.Label Label23
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Frequency:"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 48
Top = 2880
Width = 795
End
Begin VB.Label Label24
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Loop Start (Samples):"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 47
Top = 3720
Width = 1515
End
Begin VB.Label Label25
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Loop End (Samples):"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 46
Top = 3720
Width = 1470
End
Begin VB.Label Label26
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Header Skip:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 45
Top = 2280
Width = 930
End
Begin VB.Label Label27
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Extract Length (Bytes):"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 44
Top = 1560
Width = 1605
End
End
Begin VB.Frame Frame10
BackColor = &H00B8B8B8&
Caption = "Format:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 1575
Left = 4560
TabIndex = 30
Top = 240
Width = 4695
Begin VB.ComboBox comboFileFormatExtractor
BackColor = &H00E0E0E0&
Height = 315
ItemData = "Form1.frx":04EA
Left = 120
List = "Form1.frx":0512
TabIndex = 31
Top = 480
Width = 4455
End
Begin VB.Label lblERRORExtractor
Alignment = 2 'Zentriert
BackStyle = 0 'Transparent
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 495
Left = 120
TabIndex = 33
Top = 960
Width = 4485
End
Begin VB.Label Label28
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "File Format:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 32
Top = 240
Width = 810
End
End
End
Begin VB.Frame frmCREATOR
BackColor = &H00B8B8B8&
Caption = "Creator:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 8295
Left = 120
TabIndex = 3
Top = 480
Width = 12855
Begin VB.Frame frmSpecialOptionsPSX
BackColor = &H00B8B8B8&
Caption = "Special Options (PSX/PS2):"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 1935
Left = 9720
TabIndex = 120
Top = 1920
Visible = 0 'False
Width = 3015
Begin VB.CommandButton cmdFIndLoopsPSX
Caption = "Find Loops"
Height = 255
Left = 120
TabIndex = 122
Top = 720
Width = 2775
End
Begin VB.CommandButton cmdFindInterleavePSX
Caption = "Find Interleave"
Height = 255
Left = 120
TabIndex = 121
Top = 360
Width = 2775
End
End
Begin VB.CheckBox chkHalfFileInterleave
BackColor = &H00B8B8B8&
Caption = "Half File Interleave (SPSD only?)"
ForeColor = &H00800000&
Height = 255
Left = 9840
TabIndex = 116
Top = 4440
Visible = 0 'False
Width = 2775
End
Begin VB.Frame frmLoopCalculation
BackColor = &H00B8B8B8&
Caption = "Loop Calculation"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 3135
Left = 4560
TabIndex = 104
Top = 3960
Width = 5055
Begin VB.TextBox txtGENHLoopStartSamples
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 315
Left = 240
TabIndex = 108
Top = 480
Width = 1455
End
Begin VB.TextBox txtGENHLoopEndSamples
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 315
Left = 240
TabIndex = 107
Top = 1200
Width = 1455
End
Begin VB.TextBox txtGENHLoopEnd
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 315
Left = 1800
TabIndex = 106
Top = 1200
Width = 1455
End
Begin VB.TextBox txtGENHLoopStart
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 315
Left = 1800
TabIndex = 105
Top = 480
Width = 1455
End
Begin VB.Label lblUseFileEnd
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Use File End"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 195
Left = 2040
TabIndex = 115
Top = 1920
Width = 1095
End
Begin VB.Label lblLoopEndToSamples_Click
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Calculate"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 195
Left = 3720
TabIndex = 114
Top = 1280
Width = 810
End
Begin VB.Label Label5
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Calculate"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 195
Left = 3720
TabIndex = 113
Top = 560
Width = 810
End
Begin VB.Label Label3
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Loop End (Bytes):"
ForeColor = &H00800000&
Height = 195
Left = 1800
TabIndex = 112
Top = 960
Width = 1260
End
Begin VB.Label Label2
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Loop Start (Bytes):"
ForeColor = &H00800000&
Height = 195
Left = 1800
TabIndex = 111
Top = 240
Width = 1305
End
Begin VB.Label lblGENHLoopEnd
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Loop End:"
ForeColor = &H00800000&
Height = 195
Left = 240
TabIndex = 110
Top = 960
Width = 735
End
Begin VB.Label lblGENHLoopStart
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Loop Start:"
ForeColor = &H00800000&
Height = 195
Left = 240
TabIndex = 109
Top = 240
Width = 780
End
Begin VB.Image cmdUSEFILEEND
Height = 375
Left = 480
Top = 1800
Width = 4095
End
Begin VB.Image cmdLoopStartToSamples
Height = 315
Left = 3360
Picture = "Form1.frx":068A
Top = 480
Width = 1455
End
Begin VB.Image cmdLoopEndToSamples
Height = 315
Left = 3360
Picture = "Form1.frx":1EC0
Top = 1200
Width = 1455
End
End
Begin VB.CommandButton cmdCreateFormatList
Caption = "Create format list (dev only)"
Height = 255
Left = 9960
TabIndex = 100
Top = 7800
Visible = 0 'False
Width = 2655
End
Begin VB.Frame frmSpecialOptionsGameCube
BackColor = &H00B8B8B8&
Caption = "Special Options (GameCube):"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 2415
Left = 9720
TabIndex = 99
Top = 1920
Visible = 0 'False
Width = 3015
Begin VB.TextBox txtDSPCoef1
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 285
Left = 120
TabIndex = 103
Text = "0"
Top = 720
Width = 1335
End
Begin VB.TextBox txtDSPCoef2
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 285
Left = 1560
TabIndex = 102
Text = "0"
Top = 720
Width = 1335
End
Begin VB.CheckBox chkCapcomHack
BackColor = &H00B8B8B8&
Caption = "Capcom Hack"
ForeColor = &H00800000&
Height = 255
Left = 120
TabIndex = 101
Top = 1080
Width = 2775
End
Begin VB.Label Label31
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Right Channel:"
ForeColor = &H00800000&
Height = 195
Left = 1560
TabIndex = 119
Top = 480
Width = 1050
End
Begin VB.Label Label30
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "Left Channel:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 118
Top = 480
Width = 945
End
Begin VB.Label Label29
AutoSize = -1 'True
BackColor = &H00B8B8B8&
Caption = "coefficients offsets:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 117
Top = 240
Width = 1365
End
End
Begin VB.Frame frmINFO
Caption = "Info and Help:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 615
Left = 120
TabIndex = 97
Top = 7560
Width = 9495
Begin VB.Label lblINFO
BackColor = &H00FFFFFF&
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 255
Left = 120
TabIndex = 98
Top = 240
Width = 9255
End
End
Begin VB.Frame frmOptionsCreator
BackColor = &H00B8B8B8&
Caption = "Options:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 1935
Left = 4560
TabIndex = 18
Top = 1920
Width = 5055
Begin VB.ComboBox txtGENHChannels
BackColor = &H00C0C0C0&
Height = 315
ItemData = "Form1.frx":36F6
Left = 360
List = "Form1.frx":3712
TabIndex = 22
Top = 1080
Width = 1935
End
Begin VB.ComboBox txtGENHHeaderSkip
BackColor = &H00C0C0C0&
Height = 315
ItemData = "Form1.frx":372E
Left = 360
List = "Form1.frx":3759
TabIndex = 21
ToolTipText = "Set here the offset where the BGM data starts..."
Top = 480
Width = 1935
End
Begin VB.ComboBox txtGENHInterleave
BackColor = &H00C0C0C0&
Height = 315
ItemData = "Form1.frx":379E
Left = 2520
List = "Form1.frx":37CF
TabIndex = 20
Top = 480
Width = 1935
End
Begin VB.ComboBox txtGENHFrequency
BackColor = &H00C0C0C0&
Height = 315
ItemData = "Form1.frx":3826
Left = 2520
List = "Form1.frx":384B
TabIndex = 19
Top = 1080
Width = 1935
End
Begin VB.Label lblGENHChannels
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Channels:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 26
Top = 840
Width = 705
End
Begin VB.Label lblGENHInterleave
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Interleave:"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 25
Top = 240
Width = 750
End
Begin VB.Label lblGENHFrequency
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Frequency:"
ForeColor = &H00800000&
Height = 195
Left = 2520
TabIndex = 24
Top = 840
Width = 795
End
Begin VB.Label lblHeaderSkip
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Header Skip:"
ForeColor = &H00800000&
Height = 195
Left = 360
TabIndex = 23
Top = 240
Width = 930
End
End
Begin VB.Frame frmFileCreator
BackColor = &H00B8B8B8&
Caption = "File:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 7215
Left = 120
TabIndex = 9
Top = 240
Width = 4335
Begin VB.FileListBox File1
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 3735
Left = 120
TabIndex = 28
Top = 1800
Width = 4095
End
Begin VB.TextBox txtInputFileLength
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 285
Left = 120
Locked = -1 'True
TabIndex = 14
Top = 1440
Width = 1935
End
Begin VB.TextBox txtOutputFile
Appearance = 0 '2D
BackColor = &H00C0C0C0&
Height = 285
Left = 120
TabIndex = 13
Top = 840
Width = 4095
End
Begin VB.CheckBox chkCreateOnlyHeader
BackColor = &H00B8B8B8&
Caption = "Create only Header"
ForeColor = &H00800000&
Height = 255
Left = 120
TabIndex = 12
Top = 6360
Width = 1695
End
Begin VB.CheckBox chkProcessWholeList
BackColor = &H00B8B8B8&
Caption = "Process Whole List"
ForeColor = &H00800000&
Height = 255
Left = 120
TabIndex = 11
Top = 6120
Width = 1815
End
Begin VB.TextBox txtFilter
Alignment = 2 'Zentriert
Appearance = 0 '2D
BackColor = &H00C0C0C0&
ForeColor = &H00800000&
Height = 285
Left = 2160
TabIndex = 10
Text = "*.*"
Top = 1440
Width = 2055
End
Begin CK_Tools.FolderBrowser FolderBrowser1
Height = 285
Left = 120
TabIndex = 15
Top = 240
Width = 4080
_ExtentX = 7197
_ExtentY = 503
BackColor = 12632256
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Label lblCreateGenh
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Create Generic Header"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 195
Left = 1080
TabIndex = 94
Top = 6820
Width = 1965
End
Begin VB.Image cmdCreateGENH
Height = 390
Left = 120
Top = 6720
Width = 4095
End
Begin VB.Label lblFilterCreator
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "Filter:"
ForeColor = &H00800000&
Height = 195
Left = 2160
TabIndex = 27
Top = 1200
Width = 375
End
Begin VB.Label lblInputFileLength
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "File Length:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 17
Top = 1200
Width = 825
End
Begin VB.Label lblOutputFileNameCreator
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Output File Name:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 16
Top = 600
Width = 1275
End
End
Begin VB.Frame frmFormatCreator
BackColor = &H00B8B8B8&
Caption = "Format:"
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00800000&
Height = 1575
Left = 4560
TabIndex = 4
Top = 240
Width = 8175
Begin VB.ComboBox comboFileFormat
BackColor = &H00C0C0C0&
Height = 315
ItemData = "Form1.frx":389B
Left = 120
List = "Form1.frx":38CC
TabIndex = 6
Top = 480
Width = 7935
End
Begin VB.ComboBox ComboPresets
BackColor = &H00C0C0C0&
Height = 315
ItemData = "Form1.frx":3AD7
Left = 120
List = "Form1.frx":3AE7
TabIndex = 5
Top = 1080
Width = 7935
End
Begin VB.Label Label1
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "File Format:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 8
Top = 240
Width = 810
End
Begin VB.Label Label4
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Presets:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 7
Top = 840
Width = 570
End
End
End
Begin VB.PictureBox imgEXITNORMAL
AutoSize = -1 'True
BorderStyle = 0 'Kein
Height = 285
Left = 1800
Picture = "Form1.frx":3BAD
ScaleHeight = 285
ScaleWidth = 285
TabIndex = 2
Top = 10680
Visible = 0 'False
Width = 285
End
Begin VB.PictureBox imgEXITOVER
AutoSize = -1 'True
BorderStyle = 0 'Kein
Height = 285
Left = 2160
Picture = "Form1.frx":416B
ScaleHeight = 285
ScaleWidth = 285
TabIndex = 1
Top = 10680
Visible = 0 'False
Width = 285
End
Begin VB.PictureBox imgEXIT
BorderStyle = 0 'Kein
Height = 285
Left = 1440
Picture = "Form1.frx":4729
ScaleHeight = 285
ScaleWidth = 285
TabIndex = 0
Top = 10680
Width = 285
End
Begin VB.Label lblInputFileNameCreator
AutoSize = -1 'True
BackColor = &H00B8B8B8&
BackStyle = 0 'Transparent
Caption = "Input File Name:"
ForeColor = &H00800000&
Height = 195
Left = 120
TabIndex = 96
Top = 10080
Width = 1155
End
Begin VB.Image imgMINIMIZE
Height = 285
Left = 1440
Picture = "Form1.frx":5405
Top = 11040
Width = 285
End
Begin VB.Image imgMINIMIZEOVER
Height = 285
Left = 2160
Picture = "Form1.frx":59C3
Top = 11040
Width = 285
End
Begin VB.Image imgMINIMIZENORMAL
Height = 285
Left = 1800
Picture = "Form1.frx":5F81
Top = 11040
Width = 285
End
Begin VB.Image btnOVER
Height = 390
Left = 8160
Picture = "Form1.frx":653F
Top = 10920
Width = 4095
End
Begin VB.Image btnNormal
Height = 390
Left = 8160
Picture = "Form1.frx":B8C9
Top = 10560
Width = 4095
End
Begin VB.Image picBOTTOM
Height = 75
Left = 720
Picture = "Form1.frx":10C53
Stretch = -1 'True
Top = 11280
Width = 15
End
Begin VB.Image picRIGHTD
Height = 165
Left = 1200
Picture = "Form1.frx":110A9
Top = 11280
Width = 75
End
Begin VB.Image picRIGHTM
Height = 15
Left = 1200
Picture = "Form1.frx":11543
Stretch = -1 'True
Top = 11160
Width = 75
End
Begin VB.Image picRIGHTU
Height = 390
Left = 1200
Picture = "Form1.frx":1198D
Top = 10680
Width = 75
End
Begin VB.Image picLEFTD
Height = 165
Left = 120
Picture = "Form1.frx":11E9F
Top = 11280
Width = 75
End
Begin VB.Image picLEFTM
Height = 15
Left = 120
Picture = "Form1.frx":12339
Stretch = -1 'True
Top = 11160
Width = 75
End
Begin VB.Image picLEFTU
Height = 390
Left = 120
Picture = "Form1.frx":12783
Top = 10680
Width = 75
End
Begin VB.Image picTOPR
Height = 390
Left = 840
Picture = "Form1.frx":12C95
Top = 10680
Width = 90
End
Begin VB.Image picTOPM
Height = 390
Left = 720
Picture = "Form1.frx":131A7
Stretch = -1 'True
Top = 10680
Width = 15
End
Begin VB.Image picTOPL
Height = 390
Left = 480
Picture = "Form1.frx":13651
Top = 10680
Width = 90
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'setting up the skin-feature
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function SetWindowRgn Lib "User32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function ReleaseCapture Lib "User32" () As Long
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Const RGN_OR = 2
'For Big Endian reading
Dim START_BYTE As Long
Dim TEMP_BYTE1 As Byte
Dim TEMP_BYTE2 As Byte
Dim TEMP_BYTE3 As Byte
Dim TEMP_BYTE4 As Byte
Dim TEMP_LONG1 As Long
Dim TEMP_LONG2 As Long
Dim TEMP_LONG3 As Long
Dim TEMP_LONG4 As Long
Dim Calculated_Value As Long
'setting up main variables for reading/ exporting, etc
Dim COUNTER
Dim NAMECUT
Dim EXPORTNAME
Dim Samples
Dim PaddingBits
Dim Byte01 As Byte
Dim Byte02 As Byte
Dim Byte03 As Byte
Dim Byte04 As Byte
Dim strByte01 As String * 8
Dim strByte02 As String * 8
Dim strByte03 As String * 8
Dim strByte04 As String * 8
Dim MPEGFRAMEBIN As String * 32
Dim MPEGVersionBIN As String * 2
Dim MPEGLayerBIN As String * 2
Dim MPEGBitRateBIN As String * 4
Dim MPEGSampleRateBIN As String * 2
Dim MPEGPaddingBitBIN As String * 1
Dim MPEGVersion
Dim MPEGLayer
Dim MPEGBitRate
Dim MPEGSampleRate
Dim MPEGPaddingBit
Dim MPEGFrameLength
Dim strInputFile As String
Dim strInputFileEditor As String
Dim strInputFileExtractor As String
Dim strOutputFile As String
Dim strOutputFileExtractor As String
Dim ExportBytesLarge As Long
Dim ExportBytesSmall As Long
Dim SmallBuffer As Byte
Dim LargeBuffer As String * 2048
Dim END_BYTE As Byte
Dim WholeListCounter
Dim TimeSecondsLoopStart
Dim TimeSecondsCutLoopStart
Dim TimeSecondsLoopEnd
Dim TimeSecondsCutLoopEnd
Dim MSADPCM_Frames
Dim MSADPCM_LastFrame
Dim RiffChannels As Integer
Dim RiffBits As Integer
'setting up needed GENH variables (ordered - all are 4 bytes long)
Dim strGENHCheck As String * 4
Dim strGENH As String * 4 '0x0000
Dim GENHChannels As Long '0x0004
Dim GENHInterleave As Long '0x0008
Dim GENHFrequency As Long '0x000C
Dim GENHLoopStart As Long 'In Samples '0x0010
Dim GENHLoopEnd As Long 'In Samples '0x0014
Dim GENHIdentiferByte As Long '0x0018
Dim GENHHeaderSkip As Long '0x001C
Dim GENHFileStartOffset As Long '0x0020
Dim DSPCoef1 As Long '0x0024
Dim DSPCoef2 As Long '0x0028
Dim DSP_Interleave_Type As Long '0x002C
Dim strGENHEditor As String * 4 '0x0000
Dim GENHChannelsEditor As Long '0x0004
Dim GENHInterleaveEditor As Long '0x0008
Dim GENHFrequencyEditor As Long '0x000C
Dim GENHLoopStartEditor As Long 'In Samples '0x0010
Dim GENHLoopEndEditor As Long 'In Samples '0x0014
Dim GENHIdentiferByteEditor As Long '0x0018
Dim GENHHeaderSkipEditor As Long '0x001C
Dim GENHFileStartOffsetEditor As Long '0x0020
Dim strEmbeddedFileNameEditor As String * 256
Dim strGENHVersionEditorCheck As Byte
Dim strGENHVersionEditor As String * 4
Dim DummyByteEditor As Byte
Dim strGENHCheckExtractor As String * 4
Dim strGENHExtractor As String * 4 '0x0000
Dim GENHChannelsExtractor As Long '0x0004
Dim GENHInterleaveExtractor As Long '0x0008
Dim GENHFrequencyExtractor As Long '0x000C
Dim GENHLoopStartExtractor As Long 'In Samples '0x0010
Dim GENHLoopEndExtractor As Long 'In Samples '0x0014
Dim GENHIdentiferByteExtractor As Long '0x0018
Dim GENHHeaderSkipExtractor As Long '0x001C
Dim GENHFileStartOffsetExtractor As Long '0x0020
Dim strEmbeddedFileNameExtractor As String * 256
Dim strGENHVersionExtractorCheck As Byte
Dim strGENHVersionExtractor As String * 4
Dim DummyByteExtractor As Byte
Dim ExportLengthExtractor As Long
'######################## Reserved #####################
'### 'Dim miniGENHNameLength As Long '0x0024 ##
'### 'Dim GENH_miniGENH_Selector As Long '0x0028 ##
'######################## Reserved #####################
Dim strGENHVersion As String * 4 '0x0304
Private Sub cmdCreateFormatList_Click()
'nonsense for users, only to retrieve a list of implemented formats
comboFileFormat.ListIndex = 0
Open "Formats.txt" For Output As #10
Do
On Error GoTo EndReached:
Print #10, comboFileFormat.Text
comboFileFormat.ListIndex = comboFileFormat.ListIndex + 1
Loop Until comboFileFormat.ListIndex = comboFileFormat.ListCount
EndReached:
Close #10
Beep
Exit Sub
End Sub
Private Sub cmdCreateGENH_Click()
DSP_Interleave_Type = 2 '0 = layout_interleave
'1 = layout_interleave_byte
'2 = layout_none
DSPCoef1 = 0
DSPCoef2 = 0
Close #1
'#####################################################
'##### Here we're creating the GENH file #####
'#####################################################
'Set the "COUNTER" to zero, it's important to prevent
'freezing if you work on more than one file
COUNTER = 0
WholeListCounter = 0
END_BYTE = &H0
'Set the output file name, given by the textbox
strOutputFile = txtOutputFile.Text
'Check if we have all basic values we need
If strInputFile = "" Then
lblINFO.Caption = ("No File selected!")
Close #1
Exit Sub
ElseIf comboFileFormat.Text = "" Then
lblINFO.Caption = ("No Format selected!")
Close #1
Exit Sub
ElseIf txtGENHHeaderSkip.Text = "" Then
lblINFO.Caption = ("Header Size Value not set!")
Close #1
Exit Sub
ElseIf txtGENHChannels.Text = "" Then
lblINFO.Caption = ("Channel Value not set!")
Close #1
Exit Sub
ElseIf txtGENHFrequency.Text = "" Then
lblINFO.Caption = ("Frequency Value not set!")
Close #1
Exit Sub
ElseIf txtGENHInterleave.Text = "" Then
lblINFO.Caption = ("Interleave Value not set!")
Close #1
Exit Sub
End If
GENHInterleave = txtGENHInterleave.Text
If comboFileFormat.ListIndex = &HB Then
If GENHInterleave < 1 Then
lblINFO.Caption = "We need an interleave value to calculate this!"
Exit Sub
End If
End If
'Handling DSP with 1 Channel here
If comboFileFormat.ListIndex = 12 Then '0x0D GC DSP
If GENHChannels = 1 Then
'Check if the textbox has a value
If txtDSPCoef1.Text = "" Then
MsgBox ("Start Offset for coef table 1 needed!"), vbInformation, "Generic Header Creator " & strGENHVersion
Close #1
Close #2
Exit Sub
Else
'else go on
DSPCoef1 = txtDSPCoef1.Text
DSP_Interleave_Type = 2 'layout_none
End If
End If
End If
'Handling DSP with 2 Channels here
If comboFileFormat.ListIndex = 12 Then '0x0D GC DSP
If GENHChannels = 2 Then
'Check if the textbox has a value
If txtDSPCoef1.Text = "" Then
MsgBox ("Start Offset for coef table 1 needed!"), vbInformation, "Generic Header Creator " & strGENHVersion
Close #1
Close #2
Exit Sub
End If
If txtDSPCoef2.Text = "" Then
MsgBox ("Start Offset for coef table 2 needed!"), vbInformation, "Generic Header Creator " & strGENHVersion
Close #1
Close #2
Exit Sub
Else
'else go on
DSPCoef1 = txtDSPCoef1.Text
DSPCoef2 = txtDSPCoef2.Text
If GENHInterleave > 7 Then
DSP_Interleave_Type = 0 'layout_interleave
ElseIf GENHInterleave < 8 Then
DSP_Interleave_Type = 1 'layout_interleave_byte
End If
End If
End If
End If
If GENHInterleave > ((FileLen(strInputFile) - GENHHeaderSkip) / 2) - 4096 Then
DSP_Interleave_Type = 2 'layout_none
End If
GENHChannels = txtGENHChannels.Text
GENHFrequency = txtGENHFrequency.Text
GENHInterleave = txtGENHInterleave.Text
'Look if we have a Loop End value
If txtGENHLoopEndSamples.Text = "" Then
If comboFileFormat.ListIndex = &H8 Then
lblINFO.Caption = ("Please hit 'Use File End'!")
Exit Sub
Else
Call cmdUSEFILEEND_Click 'If not, Use the File End
lblINFO.Caption = ("Loop End not set, using the File End!")
End If
End If
GENHLoopEnd = txtGENHLoopEndSamples.Text
GENHIdentiferByte = comboFileFormat.ListIndex
GENHHeaderSkip = txtGENHHeaderSkip.Text
Open strInputFile For Binary As #1
Open strOutputFile For Binary As #2
Put #2, 1, strGENH
Put #2, 5, GENHChannels
Put #2, 9, GENHInterleave
Put #2, 13, GENHFrequency
If txtGENHLoopStartSamples.Text = "" Then
GENHLoopStart = -1
Else:
GENHLoopStart = txtGENHLoopStartSamples.Text
End If
Put #2, 17, GENHLoopStart
Put #2, 21, GENHLoopEnd
Put #2, 25, GENHIdentiferByte
Put #2, 29, GENHFileStartOffset + GENHHeaderSkip
Put #2, 33, GENHFileStartOffset
Put #2, 37, DSPCoef1 + GENHFileStartOffset
Put #2, 41, DSPCoef2 + GENHFileStartOffset
'For coef which are stored like: 16bytes positive then 16 bytes negative
If chkCapcomHack.Value = 1 Then
Put #2, 49, chkCapcomHack.Value
Put #2, 53, DSPCoef1 + GENHFileStartOffset + 16
Put #2, 57, DSPCoef2 + GENHFileStartOffset + 16
ElseIf chkCapcomHack.Value = 0 Then
Put #2, 49, chkCapcomHack.Value
Put #2, 53, chkCapcomHack.Value
Put #2, 57, chkCapcomHack.Value
End If
Put #2, 45, DSP_Interleave_Type
Put #2, 513, txtGetFileName.Text
Put #2, 769, (FileLen(strInputFile))
Put #2, 773, strGENHVersion
'Creating only the Header
If chkCreateOnlyHeader.Value = 1 Then
Put #2, 4096, END_BYTE
Close #1
Close #2
Beep
Exit Sub 'Interrupting the routine here, we'll not go further
End If
'Calculating a variable dividable by the large buffer size, _
otherwise the loop funtion will freeze
ExportBytesLarge = (Int(FileLen(strInputFile) / 2048) * 2048)
'Calculating the remaing bytes
ExportBytesSmall = (FileLen(strInputFile) - ExportBytesLarge)
Do
'Working with a buffer of 2048 bytes, to improve speed
Get #1, 1 + COUNTER, LargeBuffer
Put #2, GENHFileStartOffset + 1 + COUNTER, LargeBuffer
'Count until we reached the calculated large buffer size
COUNTER = COUNTER + 2048
Loop Until COUNTER = ExportBytesLarge
COUNTER = 0
If ExportBytesSmall > 0 Then
Do
Get #1, ExportBytesLarge + 1 + COUNTER, SmallBuffer
Put #2, GENHFileStartOffset + ExportBytesLarge + 1 + COUNTER, SmallBuffer
COUNTER = COUNTER + 1
Loop Until COUNTER = ExportBytesSmall
End If
Close #1
Close #2
lblINFO.Caption = "Bytes written " & (ExportBytesLarge + ExportBytesSmall) & "/" & (FileLen(strInputFile))
File2.Refresh
'Time calculation
'Loop Start
If GENHLoopStart = -1 Then
lblGENHLoopStart.Caption = "Loop Start: 0"
Else
txtLoopStartCut.Text = GENHLoopStart / GENHFrequency
TimeSecondsCutLoopStart = txtLoopStartCut.Text
lblGENHLoopStart.Caption = "Loop Start: (" & Left(TimeSecondsCutLoopStart, InStrRev(txtLoopStartCut.Text, ",") + 3) & ")"
End If
'Loop End
txtLoopEndCut.Text = GENHLoopEnd / GENHFrequency
TimeSecondsCutLoopEnd = txtLoopEndCut.Text
lblGENHLoopEnd.Caption = "Loop End: (" & Left(TimeSecondsCutLoopEnd, InStrRev(txtLoopEndCut.Text, ",") + 3) & ")"
If chkProcessWholeList.Value = 1 Then
'""
Else
Beep
End If
Call PROCESS_WHOLE_LIST
End Sub
Private Sub cmdExtractEmbeddedFile_Click()
COUNTER = 0
ExportLengthExtractor = txtExtractLengthExtractor.Text
Open strInputFileExtractor For Binary As #5
Open strOutputFileExtractor For Binary As #6
ExportBytesLarge = (Int(ExportLengthExtractor / 2048) * 2048)
'Calculating the remaing bytes
ExportBytesSmall = ExportLengthExtractor - ExportBytesLarge
Do
'Working with a buffer of 2048 bytes, to improve speed
Get #5, 4097 + COUNTER, LargeBuffer
Put #6, 1 + COUNTER, LargeBuffer
'Count until we reached the calculated large buffer size
COUNTER = COUNTER + 2048
Loop Until COUNTER = ExportBytesLarge
COUNTER = 0
If ExportBytesSmall > 0 Then
Do
Get #5, ExportBytesLarge + 4097 + COUNTER, SmallBuffer
Put #6, ExportBytesLarge + 1 + COUNTER, SmallBuffer
COUNTER = COUNTER + 1
Loop Until COUNTER = ExportBytesSmall
End If
Close #5
Close #6
File1.Refresh
Beep
End Sub
Private Sub PROCESS_WHOLE_LIST()
If chkProcessWholeList.Value = 1 Then
If File1.ListIndex = File1.ListCount - 1 Then
Close #1
Close #2
Beep
Exit Sub
Else
File1.ListIndex = File1.ListIndex + 1
Call cmdUSEFILEEND_Click
Call cmdCreateGENH_Click
End If
End If
End Sub
Private Sub cmdFindInterleavePSX_Click()
lblINFO.Caption = "Be sure you have set the correct headerskip value...!"
'Check if the needed values are given
If strInputFile = "" Then
lblINFO.Caption = ("No File selected!")
Exit Sub
End If
Close #1 'Just to be sure, we'll open it later again
COUNTER = 0
Dim strInterleave1 As String * 16
Dim strInterleave2 As String * 16
GENHHeaderSkip = txtGENHHeaderSkip.Text
Open strInputFile For Binary As #1
Get #1, 1 + GENHHeaderSkip, strInterleave1
Do
Get #1, 17 + GENHHeaderSkip + COUNTER, strInterleave2
If strInterleave1 = strInterleave2 Then
txtGENHInterleave.Text = COUNTER + 16
Exit Sub
Close #1
End If
COUNTER = COUNTER + 16
Loop Until COUNTER = &H20000
Close #1
End Sub
Private Sub cmdFindLoopsPSX_Click()
Close #1
Dim CheckByte As Byte
COUNTER = 0
If strInputFile = "" Then
lblINFO.Caption = ("No File selected!")
Exit Sub
ElseIf txtGENHChannels.Text = "" Then
lblINFO.Caption = ("Channel Value not set!")
Exit Sub
End If
GENHChannels = txtGENHChannels.Text
Open strInputFile For Binary As #1
Do
Get #1, 2 + COUNTER, CheckByte
If CheckByte = 0 Then
lblINFO.Caption = "File has no Loop Flages, using standard values...!"
txtGENHLoopStartSamples.Text = ""
cmdUSEFILEEND_Click
Close #1
Exit Sub
End If
If CheckByte = 6 Then
txtGENHLoopStartSamples.Text = COUNTER / 16 / GENHChannels * 28
lblINFO.Caption = "Loop Start found (" & txtGENHLoopStartSamples.Text & ")"
End If
COUNTER = COUNTER + 16
Loop Until CheckByte = 6
COUNTER = 0
Do
Get #1, (FileLen(strInputFile) - 14) - COUNTER, CheckByte
If COUNTER = &H20000 Then
Close #1
Exit Sub
End If
If CheckByte = 3 Then
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - COUNTER) / 16 / GENHChannels * 28
lblINFO.Caption = "Loop End found (" & txtGENHLoopEndSamples.Text & ")"
End If
COUNTER = COUNTER + 16
Loop Until CheckByte = 3
Close #2
End Sub
Private Sub cmdUSEFILEEND_Click()
Close #1
'Check if the needed values are given
If strInputFile = "" Then
lblINFO.Caption = ("No File selected!")
Exit Sub
ElseIf comboFileFormat.Text = "" Then
lblINFO.Caption = ("Format not set!")
Exit Sub
ElseIf txtGENHHeaderSkip.Text = "" Then
lblINFO.Caption = ("Header Size Value not set!")
Exit Sub
ElseIf txtGENHChannels.Text = "" Then
lblINFO.Caption = ("Channel Value not set!")
Exit Sub
End If
'Get the needed variables from the textboxes
GENHHeaderSkip = txtGENHHeaderSkip.Text
GENHChannels = txtGENHChannels.Text
'Depending on the format we'll calculate now the file end (in samples)
Select Case comboFileFormat.ListIndex
Case &H0 '0x00 - PlayStation 4-bit ADPCM
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 16 / GENHChannels * 28
Case &H1 '0x01 - XBOX 4-bit IMA ADPCM
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 36 / GENHChannels * 64
Case &H2 '0x02 - GameCube ADP/DTK 4-bit ADPCM
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 32 * 28
Case &H3 '0x03 - PCM RAW (Big Endian)
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 2 / GENHChannels
Case &H4 '0x04 - PCM RAW (Little Endian)
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 2 / GENHChannels
Case &H5 '0x05 - PCM RAW (8-Bit)
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / GENHChannels
Case &H6 '0x06 - Squareroot-delta-exact 8-bit DPCM
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 1 / GENHChannels
Case &H7 '0x07 - Intel DVI 4-Bit IMA ADPCM
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / GENHChannels * 2
Case &H8 '0x08 - MPEG X Layer X
'Beware, still BETA, need to determine if we really handling with a MPEG frame!!!
COUNTER = 0
Samples = 0
PaddingBits = 0
Open strInputFile For Binary As #1
'Open "REPORT.TXT" For Output As #2
Do
Get #1, 1 + COUNTER, Byte01
Get #1, 2 + COUNTER, Byte02
Get #1, 3 + COUNTER, Byte03
Get #1, 4 + COUNTER, Byte04
strByte01 = dec2bin(Byte01)
strByte02 = dec2bin(Byte02)
strByte03 = dec2bin(Byte03)
strByte04 = dec2bin(Byte04)
MPEGFRAMEBIN = strByte01 & strByte02 & strByte03 & strByte04
MPEGVersionBIN = Mid(MPEGFRAMEBIN, 12, 2)
MPEGLayerBIN = Mid(MPEGFRAMEBIN, 14, 2)
MPEGBitRateBIN = Mid(MPEGFRAMEBIN, 17, 4)
MPEGSampleRateBIN = Mid(MPEGFRAMEBIN, 21, 2)
MPEGPaddingBitBIN = Mid(MPEGFRAMEBIN, 23, 1)
GET_MPEGVERSION
GET_MPEGLAYER
GET_MPEGSAMPLERATE
GET_MPEGPADDINGBIT
GET_MPEGBITRATE
MPEGFrameLength = (Int((144 * MPEGBitRate / MPEGSampleRate)) + MPEGPaddingBit)
Samples = Samples + 1
'Uncomment it to create a report file
'Print #2, "Frame at: " & "0x" & (Hex(COUNTER))
'Print #2, "Byte01 at: " & "0x" & (Hex(1 + COUNTER)) & " - " & Byte01
'Print #2, "Byte02 at: " & "0x" & (Hex(2 + COUNTER)) & " - " & Byte02
'Print #2, "Byte03 at: " & "0x" & (Hex(3 + COUNTER)) & " - " & Byte03
'Print #2, "Byte04 at: " & "0x" & (Hex(4 + COUNTER)) & " - " & Byte04
'Print #2, "MPEG " & MPEGVersion & "Layer " & MPEGLayer & " / " & MPEGVersionBIN & "-" & MPEGLayerBIN
'Print #2, "Sample Rate: " & MPEGSampleRate & " / " & MPEGSampleRateBIN
'Print #2, "Bit Rate: " & MPEGBitRate & " / " & MPEGBitRateBIN
'Print #2, "Padding Bit: " & MPEGPaddingBit & " / " & MPEGPaddingBitBIN
'Print #2, "" & MPEGFrameLength
'Print #2, ""
'Print #2, ""
COUNTER = COUNTER + MPEGFrameLength
Loop Until COUNTER > (FileLen(strInputFile))
If MPEGLayer = 1 Then
Samples = (Samples - 1) * 384
ElseIf MPEGLayer = 2 Or MPEGLayer = 3 Then
Samples = (Samples - 1) * 1152
End If
txtGENHLoopEndSamples.Text = Samples
Close #1
'Close #2
'Beep
Case &H9 '0x09 - 4-bit IMA ADPCM
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / GENHChannels * 2
Case &HA '0x0A - Yamaha AICA 4-bit ADPCM
txtGENHLoopEndSamples.Text = ((FileLen(strInputFile) - GENHHeaderSkip)) / GENHChannels * 2
Case &HB '0x0B - Microsoft 4-bit IMA ADPCM
If txtGENHInterleave.Text = "" Then
lblINFO.Caption = "We need an interleave value to calculate this!"
Exit Sub
ElseIf txtGENHInterleave.Text < 1 Then
lblINFO.Caption = "We need an interleave value to calculate this!"
Exit Sub
ElseIf txtGENHInterleave.Text > 1 Then
GENHInterleave = txtGENHInterleave.Text
'Calculating the FrameCount
MSADPCM_Frames = (FileLen(strInputFile) - GENHHeaderSkip)
MSADPCM_Frames = (Int(MSADPCM_Frames / GENHInterleave))
'Look if there a last "short" frame,
'if yes, calculate the "normal frames" + the short frame
If (FileLen(strInputFile) - GENHHeaderSkip) - (MSADPCM_Frames * GENHInterleave) > 0 Then
MSADPCM_LastFrame = (FileLen(strInputFile) - GENHHeaderSkip) - (MSADPCM_Frames * GENHInterleave)
MSADPCM_Frames = (MSADPCM_Frames * (&H800 - (14 - 2))) + (MSADPCM_LastFrame - (14 - 2))
Else
'if not, calculate only the "normal frames"
MSADPCM_Frames = MSADPCM_Frames * (&H800 - (14 - 2))
End If
txtGENHLoopEndSamples.Text = MSADPCM_Frames
End If
Case &HC '0x0C - Nintendo GameCube DSP 4-bit ADPCM
If chkCapcomHack.Value = 1 Then
'Get the Frequency
Close #1
START_BYTE = 12
BIGENDIAN_TO_LITTLEENDIAN
txtGENHFrequency.Text = Calculated_Value
'Get the Loop Start
Close #1
START_BYTE = 20
BIGENDIAN_TO_LITTLEENDIAN
If Calculated_Value = 2 Then
txtGENHLoopStartSamples.Text = ""
Else
txtGENHLoopStartSamples.Text = Calculated_Value / GENHChannels / 8 * 14
End If
'Get the Loop End
Close #1
START_BYTE = 24
BIGENDIAN_TO_LITTLEENDIAN
txtGENHLoopEndSamples.Text = Calculated_Value / GENHChannels / 8 * 14
txtDSPCoef1.Text = "32"
txtDSPCoef2.Text = "64"
ElseIf chkCapcomHack.Value = 0 Then
txtGENHLoopStartSamples.Text = ""
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / GENHChannels / 8 * 14
End If
Case &HD '0x0D - PCM RAW (8-Bit Unsigned)
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / GENHChannels
Case &HE '0x0E - PlayStation 4-bit ADPCM (with bad flags)
txtGENHLoopEndSamples.Text = (FileLen(strInputFile) - GENHHeaderSkip) / 16 / GENHChannels * 28
Case comboFileFormat.ListIndex <> comboFileFormat.ListCount
lblINFO.Caption = ("I guess you haven't selected a format!")
Exit Sub
End Select
lblINFO.Caption = ("Calculation done!") 'Guessing it's all OK
End Sub
Private Sub cmdUSEFILEEND_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdUSEFILEEND.Picture = btnOVER.Picture
End Sub
Private Sub comboFileFormat_Click()
If comboFileFormat.ListIndex = &H0 Then 'XBOX IMA
frmSpecialOptionsPSX.Visible = True
Else
frmSpecialOptionsPSX.Visible = False
End If
If comboFileFormat.ListIndex = &H1 Then 'XBOX IMA
txtGENHInterleave.Text = 0
txtGENHInterleave.Enabled = False
ElseIf comboFileFormat.ListIndex = &HD Then 'Unsigned 8-bit PCM
txtGENHInterleave.Text = 0
txtGENHInterleave.Enabled = False
Else
txtGENHInterleave.Enabled = True
End If
If comboFileFormat.ListIndex = &HC Then 'NGC DSP
frmSpecialOptionsGameCube.Visible = True
Else
frmSpecialOptionsGameCube.Visible = False
End If
End Sub
Private Sub File1_Click()
Close #1 'Just to be sure, to prevent crashes
If FolderBrowser1.Text = "" Then
txtInputFile.Text = File1.FileName
Else
txtInputFile.Text = FolderBrowser1.Text & "\" & File1.FileName
End If
strInputFile = txtInputFile.Text
txtInputFileLength.Text = (FileLen(strInputFile))
txtOutputFile.Text = txtInputFile.Text & ".GENH"
Open strInputFile For Binary As #1
'##############################################################################
'#### Here we'll implement some checks and autogetting for varoius formats ####
'##############################################################################
'"GENH" - the creator will be disabled if you select a "GENH" file
Get #1, 1, strGENHCheck
If strGENHCheck = "GENH" Then
txtOutputFile.Text = ""
cmdCreateGENH.Enabled = False
lblCreateGenh.Enabled = False
Close #1
Exit Sub
Else
'Else, we'll remove the extension for further things
cmdCreateGENH.Enabled = True
lblCreateGenh.Enabled = True
On Error Resume Next
NAMECUT = txtInputFile.Text
txtOutputFile.Text = Left(NAMECUT, InStrRev(txtInputFile.Text, ".") - 1) & ".GENH"
txtGetFileName.Text = File1.FileName
End If
'SPSD - found in various NAOMI/NAOMI2 and DreamCast games
If strGENHCheck = "SPSD" Then 'NAOMI / NAOMI 2
Get #1, 13, GENHLoopEnd
Get #1, 45, GENHLoopStart
If GENHLoopStart > GENHLoopEnd Then
GENHLoopStart = -1
Else
GENHLoopStart = GENHLoopStart
End If
comboFileFormat.ListIndex = 10 'Yamaha ADPCM
txtGENHHeaderSkip.Text = "64"
txtGENHLoopEndSamples.Text = GENHLoopEnd
txtGENHLoopStartSamples.Text = GENHLoopStart
If chkHalfFileInterleave.Value = 1 Then
GENHInterleave = GENHLoopEnd / 2
End If
End If
'Riff WAVEfmt - no need to explain this...
If strGENHCheck = "RIFF" Then
Get #1, 9, strGENHCheck
If strGENHCheck = "WAVE" Then
Get #1, 13, strGENHCheck
If strGENHCheck = "fmt " Then
Get #1, 23, RiffChannels
Get #1, 25, GENHFrequency
Get #1, 35, RiffBits
COUNTER = 0
Do
Get #1, 1 + COUNTER, strGENHCheck
If strGENHCheck = "data" Then
Get #1, COUNTER + 5, GENHLoopEnd
If RiffBits = 8 Then
txtGENHLoopEndSamples = GENHLoopEnd / RiffChannels
txtGENHHeaderSkip.Text = COUNTER + 8
txtGENHChannels.Text = RiffChannels
txtGENHFrequency.Text = GENHFrequency
ElseIf RiffBits = 16 Then
txtGENHLoopEndSamples = GENHLoopEnd / RiffChannels / 2
txtGENHHeaderSkip.Text = COUNTER + 8
txtGENHChannels.Text = RiffChannels
txtGENHFrequency.Text = GENHFrequency
End If
End If
COUNTER = COUNTER + 1
Loop Until COUNTER = 2048
End If
End If
End If
Close #1
frmFileCreator.Caption = "File: " & strInputFile
'NO_EXTENSION:
'txtOutputFile.Text = txtInputFile.Text & ".GENH"
' txtGetFileName.Text = File1.FileName
End Sub
Private Sub File1_DblClick()
Open strInputFile For Binary As #1
Get #1, 1, strGENHCheck
If strGENHCheck = "GENH" Then
txtOutputFile.Text = ""
lblCreateGenh.Enabled = False
cmdCreateGENH.Enabled = False
Close #1
Exit Sub
Else
cmdUSEFILEEND_Click
cmdCreateGENH_Click
End If
End Sub
Private Sub FolderBrowser1_Change()
File1.Path = FolderBrowser1.Text
End Sub
Private Sub Form_Load()
Dim lngRegion1 As Long
Dim lngRegion2 As Long
Dim lngRegion3 As Long
Dim lngRWert As Long
cmdCreateGENH.Picture = btnNormal.Picture
cmdUSEFILEEND = btnNormal.Picture
picLEFTU.Top = 0
picLEFTU.Left = 0
picLEFTM.Top = 26
picLEFTM.Left = 0
picLEFTD.Top = Form1.ScaleHeight - 11
picLEFTD.Left = 0
picTOPL.Top = 0
picTOPM.Top = 0
picTOPR.Top = 0
picTOPL.Left = 5
picTOPM.Left = 11
picTOPR.Left = Form1.ScaleWidth - 11
picRIGHTU.Top = 0
picRIGHTU.Left = Form1.ScaleWidth - 5
picRIGHTM.Left = Form1.ScaleWidth - 5
picRIGHTM.Top = 26
picRIGHTD.Left = Form1.ScaleWidth - 5
picRIGHTD.Top = Form1.ScaleHeight - 11
picRIGHTM.Height = Form1.ScaleHeight - 37
picBOTTOM.Top = Form1.ScaleHeight - 6
picBOTTOM.Left = 5
picBOTTOM.Width = Form1.ScaleWidth - 10
picLEFTM.Height = Form1.ScaleHeight - 37
picTOPM.Width = Form1.ScaleWidth - 22
imgEXIT.Left = Form1.ScaleWidth - 27
imgEXIT.Top = 5
imgMINIMIZE.Left = Form1.ScaleWidth - 47
imgMINIMIZE.Top = 4
'Regionen erzeugen
lngRegion1 = CreateRoundRectRgn(Me.ScaleWidth - Me.ScaleWidth / 1, 1, Me.ScaleWidth, Me.ScaleHeight, 20, 20)
'Regionen kombinieren
lngRWert = CombineRgn(lngRegion3, lngRegion1, lngRegion2, RGN_OR)
'Kombinierte Region auf Formular anwenden
lngRWert = SetWindowRgn(Me.hWnd, lngRegion1, True)
Label29.BackColor = Form1.BackColor
Label30.BackColor = Form1.BackColor
Label31.BackColor = Form1.BackColor
frmCREATOR.BackColor = Form1.BackColor
frmFileCreator.BackColor = Form1.BackColor
frmFormatCreator.BackColor = Form1.BackColor
frmOptionsCreator.BackColor = Form1.BackColor
frmINFO.BackColor = Form1.BackColor
frmSpecialOptionsGameCube.BackColor = Form1.BackColor
frmSpecialOptionsPSX.BackColor = Form1.BackColor
frmLoopCalculation.BackColor = Form1.BackColor
lblInputFileNameCreator.BackColor = Form1.BackColor
lblOutputFileNameCreator.BackColor = Form1.BackColor
lblINFO.BackColor = Form1.BackColor
chkProcessWholeList.BackColor = Form1.BackColor
chkCreateOnlyHeader.BackColor = Form1.BackColor
chkCapcomHack.BackColor = Form1.BackColor
strGENH = "GENH"
strGENHVersion = "3.00"
GENHFileStartOffset = 4096
GENHFileStartOffsetEditor = 4096
txtGENHHeaderSkip.ListIndex = 0
txtGENHInterleave.ListIndex = 0
frmCREATOR.Visible = True
frmEDITOR.Visible = False
frmExtractor.Visible = False
cmdSaveEditor.Enabled = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MOVE_FORM
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgEXIT.Picture = imgEXITNORMAL.Picture
End Sub
Private Sub frmCREATOR_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgMINIMIZE.Top = 4
imgMINIMIZE.Picture = imgMINIMIZENORMAL.Picture
cmdCreateGENH.Picture = btnNormal.Picture
End Sub
Private Sub frmFileCreator_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdCreateGENH.Picture = btnNormal.Picture
End Sub
Private Sub frmLoopCalculation_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdUSEFILEEND.Picture = btnNormal.Picture
End Sub
Private Sub frmOptionsCreator_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdCreateGENH.Picture = btnNormal.Picture
cmdUSEFILEEND.Picture = btnNormal.Picture
End Sub
Private Sub imgMINIMIZE_Click()
Form1.WindowState = vbMinimized
End Sub
Private Sub imgMINIMIZE_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgMINIMIZE.Top = 5
imgMINIMIZE.Picture = imgMINIMIZEOVER.Picture
imgEXIT.Picture = imgEXITNORMAL.Picture
End Sub
Private Sub lblCreateGenh_Click()
Call cmdCreateGENH_Click
End Sub
Private Sub lblLoopEndToSamples_Click_Click()
Call cmdLoopEndToSamples_Click
End Sub
Private Sub lblUseFileEnd_Click()
Call cmdUSEFILEEND_Click
End Sub
Private Sub picRIGHTU_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgMINIMIZE.Top = 4
imgMINIMIZE.Picture = imgMINIMIZENORMAL.Picture
imgEXIT.Picture = imgEXITNORMAL.Picture
End Sub
Private Sub picTOPR_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgMINIMIZE.Top = 4
imgMINIMIZE.Picture = imgMINIMIZENORMAL.Picture
imgEXIT.Picture = imgEXITNORMAL.Picture
End Sub
Private Sub picTOPM_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgMINIMIZE.Top = 4
imgMINIMIZE.Picture = imgMINIMIZENORMAL.Picture
imgEXIT.Picture = imgEXITNORMAL.Picture
End Sub
Private Sub picTOPM_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MOVE_FORM
End Sub
Private Sub imgEXIT_Click()
Unload Me
End Sub
Private Sub imgEXIT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
imgMINIMIZE.Top = 4
imgMINIMIZE.Picture = imgMINIMIZENORMAL.Picture
imgEXIT.Picture = imgEXITOVER.Picture
End Sub
Private Sub cmdLoopEndToSamples_Click()
'We need the file length, file format and the channel count to calculate this...
If strInputFile = "" Then
lblINFO.Caption = ("No File selected!")
Exit Sub 'Exit the complete sub to prevent crashs
ElseIf comboFileFormat.Text = "" Then
lblINFO.Caption = ("Format not set!")
Exit Sub 'Exit the complete sub to prevent crashs
ElseIf txtGENHChannels.Text = "" Then
lblINFO.Caption = ("Channel Value not set!")
Exit Sub 'Exit the complete sub to prevent crashs
ElseIf txtGENHLoopEnd.Text = "" Then
lblINFO.Caption = ("Loop End Samples (Bytes) Value not set!")
Exit Sub 'Exit the complete sub to prevent crashs
End If
'We now have all needed values and can calculate the samplecount
GENHChannels = txtGENHChannels.Text
Select Case comboFileFormat.ListIndex
Case &H0 '0x00 - PlayStation 4-bit ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 16 / GENHChannels * 28
Case &H1 '0x01 - XBOX 4-bit IMA ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 36 / GENHChannels * 64
Case &H2 '0x02 - GameCube ADP/DTK 4-bit ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 32 * 28
Case &H3 '0x03 - PCM RAW (Big Endian)
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 2 / GENHChannels
Case &H4 '0x04 - PCM RAW (Little Endian)
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 2 / GENHChannels
Case &H5 '0x05 - PCM RAW (8-Bit)
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels
Case &H6 '0x06 - Squareroot-delta-exact 8-bit DPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 1 / GENHChannels
Case &H7 '0x07 - Interleaved DVI 4-Bit IMA ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels * 2
Case &H8 '0x08 - MPEG Layer Audio File (MP1/2/3)
lblINFO.Caption = ("MPEG can't be calculated like this, sorry!")
Case &H9 'x09 - 4-bit IMA ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels * 2
Case &HA '0x0A - Yamaha AICA 4-bit ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels * 2
Case &HB '0x0B - Microsoft 4-bit IMA ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels * 2
Case &HC '0x0C - Nintendo GameCube DSP 4-bit ADPCM
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels / 8 * 14
Case &HD '0x0D - PCM RAW (8-Bit Unsigned)
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / GENHChannels
Case &HE '0x0E - PlayStation 4-bit ADPCM (with bad flags)
txtGENHLoopEndSamples.Text = txtGENHLoopEnd.Text / 16 / GENHChannels * 28
Case comboFileFormat.ListIndex <> comboFileFormat.ListCount
lblINFO.Caption = ("I guess you haven't selected a format!")
Exit Sub
End Select
lblINFO.Caption = ("Calculation done!") 'Guessing it's all OK
End Sub
Private Sub cmdLoopStartToSamples_Click()
'We need the file length, file format and the channel count to calculate this...
If strInputFile = "" Then
lblINFO.Caption = ("No File selected!")
Exit Sub 'Exit the complete sub to prevent crashs
ElseIf comboFileFormat.Text = "" Then
lblINFO.Caption = ("Format not set!")
Exit Sub 'Exit the complete sub to prevent crashs
ElseIf txtGENHChannels.Text = "" Then
lblINFO.Caption = ("Channel Value not set!")
Exit Sub 'Exit the complete sub to prevent crashs
ElseIf txtGENHLoopStart.Text = "" Then
lblINFO.Caption = ("Loop Start Samples (Bytes) Value not set!")
Exit Sub 'Exit the complete sub to prevent crashs
End If
'We now have all needed values and can calculate the samplecount
GENHChannels = txtGENHChannels.Text
Select Case comboFileFormat.ListIndex
Case &H0 '0x00 - PlayStation 4-bit ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 16 / GENHChannels * 28
Case &H1 '0x01 - XBOX 4-bit IMA ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 36 / GENHChannels * 64
Case &H2 '0x02 - GameCube ADP/DTK 4-bit ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 32 * 28
Case &H3 '0x03 - PCM RAW (Big Endian)
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 2 / GENHChannels
Case &H4 '0x04 - PCM RAW (Little Endian)
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 2 / GENHChannels
Case &H5 '0x05 - PCM RAW (8-Bit)
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels
Case &H6 '0x06 - Squareroot-delta-exact 8-bit DPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 1 / GENHChannels
Case &H7 '0x07 - Interleaved DVI 4-Bit IMA ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels * 2
Case &H8 '0x08 - MPEG Layer Audio File (MP1/2/3)
lblINFO.Caption = ("MPEG can't be calculated like this, sorry!")
Case &H9 'x09 - 4-bit IMA ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels * 2
Case &HA '0x0A - Yamaha AICA 4-bit ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels * 2
Case &HB '0x0B - Microsoft 4-bit IMA ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels * 2
Case &HC '0x0C - Nintendo GameCube DSP 4-bit ADPCM
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels / 8 * 14
Case &HD '0x0D - PCM RAW (8-Bit Unsigned)
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / GENHChannels
Case &HE '0x0E - PlayStation 4-bit ADPCM (with bad flags)
txtGENHLoopStartSamples.Text = txtGENHLoopStart.Text / 16 / GENHChannels * 28
Case comboFileFormat.ListIndex <> comboFileFormat.ListCount
lblINFO.Caption = ("I guess you haven't selected a format!")
Exit Sub
End Select
lblINFO.Caption = ("Calculation done!") 'Guessing it's all OK
End Sub
Private Sub cmdSaveEditor_Click()
If strInputFileEditor = "" Then
MsgBox ("No File selected!"), vbInformation, "Generic Header Creator 2"
Exit Sub
End If
If comboFileFormatEditor.Text = "" Then
MsgBox ("No Format selected!"), vbInformation, "Generic Header Creator 2"
Exit Sub
End If
If txtGENHHeaderSkipEditor.Text = "" Then
MsgBox ("Header Size Value not set!"), vbInformation, "Generic Header Creator 2"
Exit Sub
Else
GENHHeaderSkipEditor = txtGENHHeaderSkipEditor.Text
End If
If txtGENHChannelsEditor.Text = "" Then
MsgBox ("Channel Value not set!"), vbInformation, "Generic Header Creator 2"
Exit Sub
Else
GENHChannelsEditor = txtGENHChannelsEditor.Text
End If
If txtGENHFrequencyEditor.Text = "" Then
MsgBox ("Frequency Value not set!"), vbInformation, "Generic Header Creator 2"
Exit Sub
Else
GENHFrequencyEditor = txtGENHFrequencyEditor.Text
End If
If txtGENHInterleaveEditor.Text = "" Then
MsgBox ("Interleave Value not set!"), vbInformation, "Generic Header Creator 2"
Exit Sub
Else
GENHInterleaveEditor = txtGENHInterleaveEditor.Text
End If
If txtGENHInterleaveEditor.Text = "" Then
GENHInterleave = 0
Else
GENHInterleaveEditor = txtGENHInterleaveEditor.Text
End If
If txtGENHLoopStartSamplesEditor.Text = "" Then
GENHLoopStart = -1
Else
GENHLoopStartEditor = txtGENHLoopStartSamplesEditor.Text
End If
If txtGENHLoopEndSamplesEditor.Text = "" Then
MsgBox ("Loop End Samples Value not set!"), vbInformation, "Generic Header Creator 2"
Exit Sub
Else
GENHLoopEndEditor = txtGENHLoopEndSamplesEditor.Text
End If
Call EDIT_GENH
End Sub
Private Sub EDIT_GENH()
GENHChannelsEditor = txtGENHChannelsEditor.Text
GENHFrequencyEditor = txtGENHFrequencyEditor.Text
GENHLoopStartEditor = txtGENHLoopStartSamplesEditor.Text
GENHLoopEndEditor = txtGENHLoopEndSamplesEditor.Text
GENHIdentiferByteEditor = comboFileFormatEditor.ListIndex
GENHHeaderSkipEditor = txtGENHHeaderSkipEditor.Text
strEmbeddedFileNameEditor = txtEmbeddedFileEditor.Text
Open strInputFileEditor For Binary As #3
Put #3, 1, strGENHEditor
Put #3, 5, GENHChannelsEditor
Put #3, 9, GENHInterleaveEditor
Put #3, 13, GENHFrequencyEditor
Put #3, 17, GENHLoopStartEditor
Put #3, 21, GENHLoopEndEditor
Put #3, 25, GENHIdentiferByteEditor
Put #3, 29, GENHHeaderSkipEditor + 4096
Put #3, 33, GENHFileStartOffsetEditor
'Clear the 512 byte area which holds the filename
COUNTER = 0
DummyByteEditor = 0
Do
Put #3, 513 + COUNTER, DummyByteEditor
COUNTER = COUNTER + 1
Loop Until COUNTER = 256
Put #3, 513, txtEmbeddedFileEditor.Text
Put #3, 769, (FileLen(strInputFileEditor)) - 4096
Put #3, 773, strGENHVersion
Close #3
Call RECHECK_GENH
End Sub
Private Sub ComboPresets_Click()
If ComboPresets.Text = "PlayStation 4-bit ADPCM - IC=1 - IF=22050" Then
'PlayStation 4-bit ADPCM - IC=1 - IF=22050
txtGENHChannels.Text = "1"
txtGENHFrequency.Text = "22050"
txtGENHInterleave.Text = "0"
ElseIf ComboPresets.Text = "PlayStation 4-bit ADPCM - IC=1 - IF=44100" Then
'PlayStation 4-bit ADPCM - IC=1 - IF=44100
txtGENHChannels.Text = "1"
txtGENHFrequency.Text = "44100"
txtGENHInterleave.Text = "0"
ElseIf ComboPresets.Text = "PlayStation 4-bit ADPCM - IC=2 - II= 2048 - IF=44100" Then
'PlayStation 4-bit ADPCM - IC=2 - II= 2048 - IF=44100
txtGENHChannels.Text = "2"
txtGENHFrequency.Text = "44100"
txtGENHInterleave.Text = "2048"
ElseIf ComboPresets.Text = "PlayStation 4-bit ADPCM - IC=2 - II= 2048 - IF=48000" Then
'PlayStation 4-bit ADPCM - IC=2 - II= 2048 - IF=48000
txtGENHChannels.Text = "2"
txtGENHFrequency.Text = "48000"
txtGENHInterleave.Text = "2048"
End If
End Sub
Private Sub File2_Click()
txtInputFileEditor.Text = File2.FileName
txtInputFileLengthEditor.Text = (FileLen(File2.FileName))
strInputFileEditor = txtInputFileEditor.Text
Open strInputFileEditor For Binary As #3
Get #3, 1, strGENHEditor
If strGENHEditor = "GENH" Then
cmdSaveEditor.Enabled = True
lblERROREditor.Caption = ""
Get #3, 5, GENHChannelsEditor
Get #3, 9, GENHInterleaveEditor
Get #3, 13, GENHFrequencyEditor
Get #3, 17, GENHLoopStartEditor
Get #3, 21, GENHLoopEndEditor
Get #3, 25, GENHIdentiferByteEditor
Get #3, 29, GENHHeaderSkipEditor
Get #3, 33, GENHFileStartOffsetEditor
Get #3, 773, strGENHVersionEditorCheck
Get #3, 773, strGENHVersionEditor
GENHHeaderSkipEditor = GENHHeaderSkipEditor - GENHFileStartOffsetEditor
comboFileFormatEditor.ListIndex = GENHIdentiferByteEditor
txtGENHChannelsEditor.Text = GENHChannelsEditor
txtGENHInterleaveEditor.Text = GENHInterleaveEditor
txtGENHFrequencyEditor.Text = GENHFrequencyEditor
txtGENHHeaderSkipEditor.Text = GENHHeaderSkipEditor
txtGENHLoopStartSamplesEditor.Text = GENHLoopStartEditor
txtGENHLoopEndSamplesEditor.Text = GENHLoopEndEditor
If strGENHVersionEditorCheck = &H0 Then
txtGENHVersionEditor.Text = "Unknown Build Version"
Else
txtGENHVersionEditor.Text = strGENHVersionEditor
End If
Get #3, 513, strEmbeddedFileNameEditor
txtEmbeddedFileEditor.Text = strEmbeddedFileNameEditor
Else
cmdSaveEditor.Enabled = False
lblERROREditor.Caption = "File isn't a valid GENH file!"
End If
Close #3
End Sub
Private Sub File3_Click()
txtInputFileExtractor.Text = File3.FileName
txtInputFileLengthExtractor.Text = (FileLen(File3.FileName))
strInputFileExtractor = txtInputFileExtractor.Text
Open strInputFileExtractor For Binary As #5
Get #5, 1, strGENHExtractor
If strGENHExtractor = "GENH" Then
cmdExtractEmbeddedFile.Enabled = True
lblERRORExtractor.Caption = ""
Get #5, 5, GENHChannelsExtractor
Get #5, 9, GENHInterleaveExtractor
Get #5, 13, GENHFrequencyExtractor
Get #5, 17, GENHLoopStartExtractor
Get #5, 21, GENHLoopEndExtractor
Get #5, 25, GENHIdentiferByteExtractor
Get #5, 29, GENHHeaderSkipExtractor
Get #5, 33, GENHFileStartOffsetExtractor
Get #5, 773, strGENHVersionExtractorCheck
Get #5, 773, strGENHVersionExtractor
Get #5, 769, ExportLengthExtractor
GENHHeaderSkipExtractor = GENHHeaderSkipExtractor - GENHFileStartOffsetExtractor
comboFileFormatExtractor.ListIndex = GENHIdentiferByteExtractor
txtGENHChannelsExtractor.Text = GENHChannelsExtractor
txtGENHInterleaveExtractor.Text = GENHInterleaveExtractor
txtGENHFrequencyExtractor.Text = GENHFrequencyExtractor
txtGENHHeaderSkipExtractor.Text = GENHHeaderSkipExtractor
txtGENHLoopStartSamplesExtractor.Text = GENHLoopStartExtractor
txtGENHLoopEndSamplesExtractor.Text = GENHLoopEndExtractor
txtExtractLengthExtractor.Text = ExportLengthExtractor
If strGENHVersionExtractorCheck = &H0 Then
txtGENHVersionExtractor.Text = "Unknown Build Version"
Else
txtGENHVersionExtractor.Text = strGENHVersionExtractor
End If
Get #5, 513, strEmbeddedFileNameExtractor
txtEmbeddedFileExtractor.Text = strEmbeddedFileNameExtractor
strOutputFileExtractor = txtEmbeddedFileExtractor.Text
Else
cmdExtractEmbeddedFile.Enabled = False
lblERRORExtractor.Caption = "File isn't a valid GENH file!"
End If
Close #5
End Sub
Private Sub txtFilter_Change()
File1.Pattern = txtFilter.Text
End Sub
Function dec2bin(ByVal n As Long) As String
Do Until n = 0
If (n Mod 2) Then dec2bin = "1" & dec2bin Else dec2bin = "0" & dec2bin
n = n \ 2
Loop
End Function
Function GET_MPEGVERSION()
If MPEGVersionBIN = "00" Then 'MPEG V 2.5
MPEGVersion = "2.5"
ElseIf MPEGVersionBIN = "10" Then 'MPEG V 2
MPEGVersion = "2"
ElseIf MPEGVersionBIN = "11" Then 'MPEG V 1
MPEGVersion = "1"
End If
End Function
Function GET_MPEGLAYER()
If MPEGLayerBIN = "01" Then 'Layer 3
MPEGLayer = "3"
ElseIf MPEGLayerBIN = "10" Then 'Layer 2
MPEGLayer = "2"
ElseIf MPEGLayerBIN = "11" Then 'Layer 1
MPEGLayer = "1"
End If
End Function
Function GET_MPEGSAMPLERATE()
'MPEG V 2.5
If MPEGVersionBIN = "00" Then
If MPEGSampleRateBIN = "00" Then
MPEGSampleRate = 11025
ElseIf MPEGSampleRateBIN = "01" Then
MPEGSampleRate = 12000
ElseIf MPEGSampleRateBIN = "10" Then
MPEGSampleRate = 8000
End If
End If
'MPEG V 1
If MPEGVersionBIN = "11" Then
If MPEGSampleRateBIN = "00" Then
MPEGSampleRate = 44100
ElseIf MPEGSampleRateBIN = "01" Then
MPEGSampleRate = 48000
ElseIf MPEGSampleRateBIN = "10" Then
MPEGSampleRate = 32000
End If
End If
'MPEG V 2
If MPEGVersionBIN = "10" Then
If MPEGSampleRateBIN = "00" Then
MPEGSampleRate = 22050
ElseIf MPEGSampleRateBIN = "01" Then
MPEGSampleRate = 24000
ElseIf MPEGSampleRateBIN = "10" Then
MPEGSampleRate = 16000
End If
End If
End Function
Function GET_MPEGPADDINGBIT()
If MPEGPaddingBitBIN = "0" Then
MPEGPaddingBit = "0"
ElseIf MPEGPaddingBitBIN = "1" Then
MPEGPaddingBit = "1"
If MPEGLayer = 1 Then 'Layer 1
PaddingBits = PaddingBits + 4
ElseIf MPEGLayer = 2 Or MPEGLayer = 3 Then 'Layer 2 & 3
PaddingBits = PaddingBits + 1
End If
End If
End Function
Function GET_MPEGBITRATE()
'MPEG 1 Layer 1
If MPEGVersion = 1 Then 'V1
If MPEGLayer = 1 Then 'Layer 1
If MPEGBitRateBIN = "0001" Then
MPEGBitRate = "32000"
ElseIf MPEGBitRateBIN = "0010" Then
MPEGBitRate = "64000"
ElseIf MPEGBitRateBIN = "0011" Then
MPEGBitRate = "96000"
ElseIf MPEGBitRateBIN = "0100" Then
MPEGBitRate = "128000"
ElseIf MPEGBitRateBIN = "0101" Then
MPEGBitRate = "160000"
ElseIf MPEGBitRateBIN = "0110" Then
MPEGBitRate = "192000"
ElseIf MPEGBitRateBIN = "0111" Then
MPEGBitRate = "224000"
ElseIf MPEGBitRateBIN = "1000" Then
MPEGBitRate = "256000"
ElseIf MPEGBitRateBIN = "1001" Then
MPEGBitRate = "288000"
ElseIf MPEGBitRateBIN = "1010" Then
MPEGBitRate = "320000"
ElseIf MPEGBitRateBIN = "1011" Then
MPEGBitRate = "352000"
ElseIf MPEGBitRateBIN = "1100" Then
MPEGBitRate = "384000"
ElseIf MPEGBitRateBIN = "1101" Then
MPEGBitRate = "416000"
ElseIf MPEGBitRateBIN = "1110" Then
MPEGBitRate = "448000"
End If
End If
End If
'MPEG 1 Layer 2
If MPEGVersion = 1 Then 'V1
If MPEGLayer = 2 Then 'Layer 2
If MPEGBitRateBIN = "0001" Then
MPEGBitRate = "32000"
ElseIf MPEGBitRateBIN = "0010" Then
MPEGBitRate = "48000"
ElseIf MPEGBitRateBIN = "0011" Then
MPEGBitRate = "56000"
ElseIf MPEGBitRateBIN = "0100" Then
MPEGBitRate = "64000"
ElseIf MPEGBitRateBIN = "0101" Then
MPEGBitRate = "80000"
ElseIf MPEGBitRateBIN = "0110" Then
MPEGBitRate = "96000"
ElseIf MPEGBitRateBIN = "0111" Then
MPEGBitRate = "112000"
ElseIf MPEGBitRateBIN = "1000" Then
MPEGBitRate = "128000"
ElseIf MPEGBitRateBIN = "1001" Then
MPEGBitRate = "160000"
ElseIf MPEGBitRateBIN = "1010" Then
MPEGBitRate = "192000"
ElseIf MPEGBitRateBIN = "1011" Then
MPEGBitRate = "224000"
ElseIf MPEGBitRateBIN = "1100" Then
MPEGBitRate = "256000"
ElseIf MPEGBitRateBIN = "1101" Then
MPEGBitRate = "320000"
ElseIf MPEGBitRateBIN = "1110" Then
MPEGBitRate = "384000"
End If
End If
End If
'MPEG 1 Layer 3
If MPEGVersion = 1 Then 'V1
If MPEGLayer = 3 Then 'Layer 3
If MPEGBitRateBIN = "0001" Then
MPEGBitRate = "32000"
ElseIf MPEGBitRateBIN = "0010" Then
MPEGBitRate = "40000"
ElseIf MPEGBitRateBIN = "0011" Then
MPEGBitRate = "48000"
ElseIf MPEGBitRateBIN = "0100" Then
MPEGBitRate = "56000"
ElseIf MPEGBitRateBIN = "0101" Then
MPEGBitRate = "64000"
ElseIf MPEGBitRateBIN = "0110" Then
MPEGBitRate = "80000"
ElseIf MPEGBitRateBIN = "0111" Then
MPEGBitRate = "96000"
ElseIf MPEGBitRateBIN = "1000" Then
MPEGBitRate = "112000"
ElseIf MPEGBitRateBIN = "1001" Then
MPEGBitRate = "128000"
ElseIf MPEGBitRateBIN = "1010" Then
MPEGBitRate = "160000"
ElseIf MPEGBitRateBIN = "1011" Then
MPEGBitRate = "192000"
ElseIf MPEGBitRateBIN = "1100" Then
MPEGBitRate = "224000"
ElseIf MPEGBitRateBIN = "1101" Then
MPEGBitRate = "256000"
ElseIf MPEGBitRateBIN = "1110" Then
MPEGBitRate = "320000"
End If
End If
End If
'MPEG 2 Layer 1
If MPEGVersion = 2 Or MPEGVersion = 2.5 Then 'V2
If MPEGLayer = 1 Then 'Layer 1
If MPEGBitRateBIN = "0001" Then
MPEGBitRate = "32000"
ElseIf MPEGBitRateBIN = "0010" Then
MPEGBitRate = "48000"
ElseIf MPEGBitRateBIN = "0011" Then
MPEGBitRate = "56000"
ElseIf MPEGBitRateBIN = "0100" Then
MPEGBitRate = "64000"
ElseIf MPEGBitRateBIN = "0101" Then
MPEGBitRate = "80000"
ElseIf MPEGBitRateBIN = "0110" Then
MPEGBitRate = "96000"
ElseIf MPEGBitRateBIN = "0111" Then
MPEGBitRate = "112000"
ElseIf MPEGBitRateBIN = "1000" Then
MPEGBitRate = "128000"
ElseIf MPEGBitRateBIN = "1001" Then
MPEGBitRate = "144000"
ElseIf MPEGBitRateBIN = "1010" Then
MPEGBitRate = "160000"
ElseIf MPEGBitRateBIN = "1011" Then
MPEGBitRate = "176000"
ElseIf MPEGBitRateBIN = "1100" Then
MPEGBitRate = "192000"
ElseIf MPEGBitRateBIN = "1101" Then
MPEGBitRate = "224000"
ElseIf MPEGBitRateBIN = "1110" Then
MPEGBitRate = "256000"
End If
End If
End If
'MPEG 2 & 2.5 Layer 2 & Layer 3
If MPEGVersion = 2 Or MPEGVersion = 2.5 Then 'V2 & V2.5
If MPEGLayer = 2 Or MPEGLayer = 3 Then 'Layer 2 & Layer 3
If MPEGBitRateBIN = "0001" Then
MPEGBitRate = "8000"
ElseIf MPEGBitRateBIN = "0010" Then
MPEGBitRate = "16000"
ElseIf MPEGBitRateBIN = "0011" Then
MPEGBitRate = "24000"
ElseIf MPEGBitRateBIN = "0100" Then
MPEGBitRate = "32000"
ElseIf MPEGBitRateBIN = "0101" Then
MPEGBitRate = "40000"
ElseIf MPEGBitRateBIN = "0110" Then
MPEGBitRate = "48000"
ElseIf MPEGBitRateBIN = "0111" Then
MPEGBitRate = "56000"
ElseIf MPEGBitRateBIN = "1000" Then
MPEGBitRate = "64000"
ElseIf MPEGBitRateBIN = "1001" Then
MPEGBitRate = "80000"
ElseIf MPEGBitRateBIN = "1010" Then
MPEGBitRate = "96000"
ElseIf MPEGBitRateBIN = "1011" Then
MPEGBitRate = "112000"
ElseIf MPEGBitRateBIN = "1100" Then
MPEGBitRate = "128000"
ElseIf MPEGBitRateBIN = "1101" Then
MPEGBitRate = "144000"
ElseIf MPEGBitRateBIN = "1110" Then
MPEGBitRate = "160000"
End If
End If
End If
End Function
Function BIGENDIAN_TO_LITTLEENDIAN()
Open strInputFile For Binary As #1
Get #1, START_BYTE + 1, TEMP_BYTE1
Get #1, START_BYTE + 2, TEMP_BYTE2
Get #1, START_BYTE + 3, TEMP_BYTE3
Get #1, START_BYTE + 4, TEMP_BYTE4
TEMP_LONG1 = TEMP_BYTE1
TEMP_LONG2 = TEMP_BYTE2
TEMP_LONG3 = TEMP_BYTE3
TEMP_LONG4 = TEMP_BYTE4
TEMP_LONG1 = TEMP_LONG1 * &H1000000
TEMP_LONG2 = TEMP_LONG2 * &H10000
TEMP_LONG3 = TEMP_LONG3 * &H100
TEMP_LONG4 = TEMP_LONG4 * &H1
Calculated_Value = TEMP_LONG1 + TEMP_LONG2 + TEMP_LONG3 + TEMP_LONG4
End Function
Private Sub cmdSelectCreator_Click()
frmCREATOR.Visible = True
frmEDITOR.Visible = False
frmExtractor.Visible = False
End Sub
Private Sub cmdSelectEditor_Click()
frmCREATOR.Visible = False
frmEDITOR.Visible = True
frmExtractor.Visible = False
End Sub
Private Sub cmdSelectExtractor_Click()
frmCREATOR.Visible = False
frmEDITOR.Visible = False
frmExtractor.Visible = True
End Sub
Private Sub RECHECK_GENH()
Open strInputFileEditor For Binary As #3
Get #3, 5, GENHChannelsEditor
Get #3, 9, GENHInterleaveEditor
Get #3, 13, GENHFrequencyEditor
Get #3, 17, GENHLoopStartEditor
Get #3, 21, GENHLoopEndEditor
Get #3, 25, GENHIdentiferByteEditor
Get #3, 773, strGENHVersionEditorCheck
Get #3, 773, strGENHVersionEditor
comboFileFormatEditor.ListIndex = GENHIdentiferByteEditor
txtGENHChannelsEditor.Text = GENHChannelsEditor
txtGENHInterleaveEditor.Text = GENHInterleaveEditor
txtGENHFrequencyEditor.Text = GENHFrequencyEditor
txtGENHHeaderSkipEditor.Text = GENHHeaderSkipEditor
txtGENHLoopStartSamplesEditor.Text = GENHLoopStartEditor
txtGENHLoopEndSamplesEditor.Text = GENHLoopEndEditor
txtGENHVersionEditor.Text = strGENHVersionEditor
Close #3
Beep
End Sub
Function MOVE_FORM()
ReleaseCapture
SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
End Function
Private Sub cmdCreateGENH_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdCreateGENH.Picture = btnOVER.Picture
End Sub
Private Sub chkCreateOnlyHeader_Click()
cmdCreateGENH.Picture = btnNormal.Picture
End Sub
Private Sub chkProcessWholeList_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdCreateGENH.Picture = btnNormal.Picture
End Sub
Private Sub txtDSPCoef1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Asc("0") To Asc("9"), 8
'Zeichen zulassen
Case Else
KeyAscii = 0 'alles andere verweigern
End Select
End Sub
Private Sub txtDSPCoef2_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Asc("0") To Asc("9"), 8
'Zeichen zulassen
Case Else
KeyAscii = 0 'alles andere verweigern
End Select
End Sub
Private Sub txtGENHChannels_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Asc("1") To Asc("9"), 8
'Zeichen zulassen
Case Else
KeyAscii = 0 'alles andere verweigern
End Select
End Sub