object frmUltimap2: TfrmUltimap2 Left = 407 Height = 573 Top = 165 Width = 739 AutoSize = True Caption = 'Ultimap 2' ClientHeight = 573 ClientWidth = 739 OnClose = FormClose OnCloseQuery = FormCloseQuery OnCreate = FormCreate OnDestroy = FormDestroy OnShow = FormShow Position = poScreenCenter LCLVersion = '1.6.0.4' object Panel5: TPanel Left = 0 Height = 444 Top = 0 Width = 739 Align = alTop AutoSize = True BevelOuter = bvNone ClientHeight = 444 ClientWidth = 739 TabOrder = 0 OnClick = Panel5Click object Label3: TLabel AnchorSideBottom.Control = Panel5 AnchorSideBottom.Side = asrBottom Left = 0 Height = 15 Top = 429 Width = 6 Anchors = [akLeft, akBottom] Caption = '0' ParentColor = False end object Panel4: TPanel AnchorSideLeft.Control = Panel6 AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = Panel5 AnchorSideRight.Control = Panel5 AnchorSideRight.Side = asrBottom Left = 333 Height = 197 Top = 0 Width = 406 Anchors = [akTop, akRight] AutoSize = True BorderSpacing.Left = 10 BevelOuter = bvNone ClientHeight = 197 ClientWidth = 406 TabOrder = 0 object cbfilterOutNewEntries: TCheckBox AnchorSideLeft.Control = Panel4 AnchorSideTop.Control = btnFilterModule AnchorSideTop.Side = asrBottom Left = 0 Height = 19 Hint = 'When this checkbox is ticked all newly added code entry points will be marked as entries that do not match the filters' Top = 148 Width = 216 Caption = 'Mark all new addresses as filtered out' OnChange = cbfilterOutNewEntriesChange ParentShowHint = False ShowHint = True TabOrder = 0 end object btnFilterModule: TButton AnchorSideLeft.Control = Panel4 AnchorSideTop.Control = btnFilterCallCount AnchorSideTop.Side = asrBottom AnchorSideRight.Control = cbFilterFuturePaths Left = 0 Height = 25 Top = 123 Width = 264 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Top = 2 Caption = 'Filter out instructions not in a specific range' OnClick = btnFilterModuleClick TabOrder = 1 end object btnFilterCallCount: TButton Tag = 3 AnchorSideLeft.Control = Panel4 AnchorSideTop.Control = btnNotCalled AnchorSideTop.Side = asrBottom AnchorSideRight.Control = cbFilterFuturePaths Left = 0 Height = 25 Top = 96 Width = 264 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Top = 2 Caption = 'Filter out instructions where callcount is NOT' OnClick = btnFilterCallCountClick TabOrder = 2 end object edtCallCount: TEdit AnchorSideLeft.Control = btnFilterCallCount AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = btnFilterCallCount AnchorSideTop.Side = asrCenter Left = 267 Height = 23 Top = 97 Width = 40 BorderSpacing.Left = 3 TabOrder = 3 Text = '1' end object btnResetCount: TButton AnchorSideLeft.Control = edtCallCount AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = edtCallCount AnchorSideTop.Side = asrCenter Left = 310 Height = 25 Top = 96 Width = 90 AutoSize = True BorderSpacing.Left = 3 Caption = 'Reset Count' OnClick = btnResetCountClick TabOrder = 4 end object btnNotCalled: TButton Tag = 2 AnchorSideLeft.Control = Panel4 AnchorSideTop.Control = btnExecuted AnchorSideTop.Side = asrBottom AnchorSideRight.Control = cbFilterFuturePaths Left = 0 Height = 25 Top = 69 Width = 264 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Top = 2 Caption = 'Filter out everything except CALL' OnClick = btnNotCalledClick TabOrder = 5 end object btnExecuted: TButton AnchorSideLeft.Control = Panel4 AnchorSideTop.Control = btnNotExecuted AnchorSideTop.Side = asrBottom AnchorSideRight.Control = cbFilterFuturePaths Left = 0 Height = 25 Top = 42 Width = 264 Anchors = [akTop, akLeft, akRight] AutoSize = True BorderSpacing.Top = 2 Caption = 'Code has been executed' OnClick = btnExecutedClick TabOrder = 6 end object cbFilterFuturePaths: TCheckBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = btnExecuted AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Panel4 AnchorSideRight.Side = asrBottom Left = 267 Height = 19 Hint = 'When checked (default) will mark all subsequent paths after this as filtered out' Top = 45 Width = 139 Anchors = [akTop, akRight] BorderSpacing.Left = 3 Caption = 'Exclude new addresses' Checked = True ParentShowHint = False ShowHint = True State = cbChecked TabOrder = 7 end object btnNotExecuted: TButton Tag = 1 AnchorSideLeft.Control = cbfilterOutNewEntries AnchorSideTop.Control = lblLastfilterresult AnchorSideTop.Side = asrBottom AnchorSideRight.Control = cbFilterFuturePaths Left = 0 Height = 25 Top = 15 Width = 264 Anchors = [akTop, akLeft, akRight] AutoSize = True Caption = 'Code did not get executed' OnClick = btnNotExecutedClick TabOrder = 8 end object lblLastfilterresult: TLabel AnchorSideLeft.Control = Panel4 AnchorSideTop.Control = Panel4 Left = 0 Height = 15 Top = 0 Width = 88 Caption = 'Last filter results:' ParentColor = False Visible = False end object btnReset: TButton AnchorSideTop.Control = Panel4 AnchorSideRight.Control = Panel4 AnchorSideRight.Side = asrBottom Left = 332 Height = 25 Hint = 'If you lost track of what happened, use this. It will set execution count back to 0 of all the branches it has found' Top = 3 Width = 74 Anchors = [akTop, akRight] BorderSpacing.Top = 3 Caption = 'Reset' OnClick = btnResetClick ParentShowHint = False ShowHint = True TabOrder = 9 end object btnCancelFilter: TButton AnchorSideLeft.Control = btnFilterModule AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = cbfilterOutNewEntries AnchorSideTop.Side = asrBottom Left = 61 Height = 25 Top = 172 Width = 143 AutoSize = True BorderSpacing.Top = 5 Caption = 'Cancel filter operation' OnClick = btnCancelFilterClick TabOrder = 10 Visible = False end end object Panel6: TPanel AnchorSideLeft.Control = Panel5 AnchorSideTop.Control = Panel5 AnchorSideRight.Control = Panel4 Left = 0 Height = 444 Top = 0 Width = 323 Anchors = [akTop, akLeft, akRight] AutoSize = True BevelOuter = bvNone ClientHeight = 444 ClientWidth = 323 Constraints.MinWidth = 100 TabOrder = 1 object lblIPCount: TLabel AnchorSideLeft.Control = rbLogToFolder AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrBottom Left = 5 Height = 15 Top = 429 Width = 145 Caption = 'Instruction Pointer List Size:' ParentColor = False end object Panel1: TPanel AnchorSideLeft.Control = btnRecordPause AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = gbRange AnchorSideTop.Side = asrBottom AnchorSideRight.Control = gbRange AnchorSideRight.Side = asrBottom Left = 115 Height = 64 Top = 363 Width = 64 BorderSpacing.Top = 2 BorderSpacing.Bottom = 2 ClientHeight = 64 ClientWidth = 64 Color = clGreen ParentColor = False TabOrder = 0 object Label1: TLabel AnchorSideLeft.Control = Panel1 AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrCenter Left = 13 Height = 15 Top = 25 Width = 38 Alignment = taCenter Caption = 'Paused' ParentColor = False WordWrap = True end end object btnRecordPause: TButton AnchorSideLeft.Control = Panel6 AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrCenter AnchorSideRight.Control = Panel1 Left = 5 Height = 25 Top = 383 Width = 105 AutoSize = True BorderSpacing.Left = 5 BorderSpacing.Right = 5 Caption = 'Record / Pause' OnClick = tbRecordPauseChange TabOrder = 1 end object gbRange: TGroupBox AnchorSideLeft.Control = rbRuntimeParsing AnchorSideTop.Control = deTextOut AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Panel6 AnchorSideRight.Side = asrBottom Left = 5 Height = 129 Top = 232 Width = 183 AutoSize = True Caption = 'Ranges: (Empty for all) (Max 0) ' ClientHeight = 109 ClientWidth = 179 TabOrder = 2 object lbRange: TListBox AnchorSideLeft.Control = gbRange AnchorSideTop.Control = gbRange AnchorSideRight.Control = gbRange AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = btnAddRange Left = 0 Height = 80 Top = 0 Width = 179 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Bottom = 2 ItemHeight = 0 MultiSelect = True OnDblClick = btnAddRangeClick PopupMenu = pmRangeOptions TabOrder = 0 end object btnAddRange: TButton AnchorSideBottom.Control = gbRange AnchorSideBottom.Side = asrBottom Left = 0 Height = 25 Top = 82 Width = 81 Anchors = [akLeft, akBottom] AutoSize = True BorderSpacing.Bottom = 2 Caption = 'Add range' OnClick = btnAddRangeClick TabOrder = 1 end end object rbRuntimeParsing: TRadioButton AnchorSideLeft.Control = rbLogToFolder AnchorSideTop.Control = edtBufSize AnchorSideTop.Side = asrBottom Left = 5 Height = 19 Hint = 'Constantly process the data instead of waiting for the user''s input' Top = 26 Width = 171 Caption = 'Process data while recording' OnChange = rbLogToFolderChange ParentShowHint = False ShowHint = True TabOrder = 3 end object deTargetFolder: TDirectoryEdit AnchorSideLeft.Control = rbLogToFolder AnchorSideTop.Control = rbLogToFolder AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Panel6 AnchorSideRight.Side = asrBottom Left = 21 Height = 23 Hint = 'The folder to store the processor trace files. '#13#10'These files can be quite big (a few seconds can already be over 200MB of space or more)' Top = 64 Width = 302 Directory = 'd:\lotsofspace' ShowHidden = False ButtonWidth = 23 NumGlyphs = 1 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 16 MaxLength = 0 ParentShowHint = False ShowHint = True TabOrder = 4 Text = 'd:\lotsofspace' end object rbLogToFolder: TRadioButton AnchorSideLeft.Control = lblBuffersPerCPU AnchorSideTop.Control = rbRuntimeParsing AnchorSideTop.Side = asrBottom AnchorSideRight.Control = Panel6 AnchorSideRight.Side = asrBottom Left = 5 Height = 19 Hint = 'CE will write the results to disk as quickly as possible but won''t process it until the recording is stopped, or a filter function is being used.' Top = 45 Width = 112 Caption = 'Process data later' Checked = True OnChange = rbLogToFolderChange ParentShowHint = False ShowHint = True TabOrder = 5 TabStop = True end object lblBuffersPerCPU: TLabel AnchorSideTop.Control = edtBufSize AnchorSideTop.Side = asrCenter Left = 5 Height = 15 Top = 7 Width = 78 BorderSpacing.Left = 5 Caption = 'Buffer per CPU' ParentColor = False end object edtBufSize: TEdit AnchorSideLeft.Control = lblBuffersPerCPU AnchorSideLeft.Side = asrBottom Left = 86 Height = 23 Top = 3 Width = 56 BorderSpacing.Left = 3 BorderSpacing.Top = 3 TabOrder = 6 Text = '16384' end object lblKB: TLabel AnchorSideLeft.Control = edtBufSize AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = edtBufSize AnchorSideTop.Side = asrCenter Left = 145 Height = 15 Top = 7 Width = 14 BorderSpacing.Left = 3 Caption = 'KB' ParentColor = False end object cbDontDeleteTraceFiles: TCheckBox AnchorSideLeft.Control = deTargetFolder AnchorSideTop.Control = cbPauseTargetWhileProcessing AnchorSideTop.Side = asrBottom Left = 21 Height = 19 Hint = 'Normally Cheat Engine will delete the trace files after they have been processed. But if you wish to save them for your own use, check this box'#13#10#13#10'These trace files can grow really big, so make sure you have enough diskspace' Top = 171 Width = 137 Caption = 'Don''t delete trace files' ParentShowHint = False ShowHint = True TabOrder = 7 end object cbParseToTextfile: TCheckBox AnchorSideLeft.Control = rbRuntimeParsing AnchorSideTop.Control = cbDontDeleteTraceFiles AnchorSideTop.Side = asrBottom Left = 5 Height = 19 Hint = 'When enabled will write the sequence of events as they happen as plain text to a file called cpu#trace.txt.'#13#10'This file contains the disassemble and some event data that happens along the way.'#13#10#13#10'It is recommended to use a very small range, and a stop condition' Top = 190 Width = 129 Caption = 'Parse trace to textfile' OnChange = cbParseToTextfileChange ParentShowHint = False ShowHint = True TabOrder = 8 end object deTextOut: TDirectoryEdit AnchorSideLeft.Control = deTargetFolder AnchorSideTop.Control = cbParseToTextfile AnchorSideTop.Side = asrBottom AnchorSideRight.Control = deTargetFolder AnchorSideRight.Side = asrBottom Left = 21 Height = 23 Hint = 'The folder to store the trace output to'#13#10'It is recommended to use a small region with a stop condition, else this disk will be full before you know it' Top = 209 Width = 302 Directory = 'd:\lotsofspace' ShowHidden = False ButtonWidth = 23 NumGlyphs = 1 Anchors = [akTop, akLeft, akRight] MaxLength = 0 ParentShowHint = False ShowHint = True TabOrder = 9 Visible = False Text = 'd:\lotsofspace' end object cbAutoProcess: TCheckBox AnchorSideLeft.Control = cbDontDeleteTraceFiles AnchorSideTop.Control = deTargetFolder AnchorSideTop.Side = asrBottom Left = 21 Height = 19 Hint = 'When enabled this will check the filesize every few seconds, and will process the files when they have grown beyond the given size.'#13#10#13#10'Note: Due to the way the processing is done, trace data will still be written to disk during the processing. If you generate more data than can be processed at a time, the filesize will keep growing. You can combine this with the "Pause target while processing" option so that it shouldn''t generate too much data' Top = 87 Width = 136 Caption = 'Autoprocess tracefiles' ParentShowHint = False ShowHint = True TabOrder = 10 end object edtMaxFilesize: TEdit AnchorSideLeft.Control = cbWhenFilesizeAbove AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = edtFlushInterval AnchorSideTop.Side = asrBottom Left = 159 Height = 23 Top = 129 Width = 48 Enabled = False OnChange = edtMaxFilesizeChange TabOrder = 11 Text = '2048' end object Label2: TLabel AnchorSideLeft.Control = edtMaxFilesize AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = edtMaxFilesize AnchorSideTop.Side = asrCenter Left = 212 Height = 15 Top = 133 Width = 18 BorderSpacing.Left = 5 Caption = 'MB' ParentColor = False end object cbPauseTargetWhileProcessing: TCheckBox AnchorSideLeft.Control = cbAutoProcess AnchorSideTop.Control = edtMaxFilesize AnchorSideTop.Side = asrBottom Left = 21 Height = 19 Top = 152 Width = 176 Caption = 'Pause target while processing' TabOrder = 12 end object cbWhenFilesizeAbove: TCheckBox AnchorSideLeft.Control = cbTraceInterval AnchorSideTop.Control = edtMaxFilesize AnchorSideTop.Side = asrCenter Left = 37 Height = 19 Top = 131 Width = 122 Caption = 'when filesize above' OnChange = cbWhenFilesizeAboveChange TabOrder = 13 end object cbTraceInterval: TCheckBox AnchorSideLeft.Control = cbAutoProcess AnchorSideTop.Control = edtFlushInterval Left = 37 Height = 19 Top = 106 Width = 51 BorderSpacing.Left = 16 Caption = 'every ' OnChange = cbTraceIntervalChange TabOrder = 14 end object edtFlushInterval: TEdit AnchorSideLeft.Control = cbTraceInterval AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = cbAutoProcess AnchorSideTop.Side = asrBottom Left = 88 Height = 23 Top = 106 Width = 42 Enabled = False OnChange = edtFlushIntervalChange TabOrder = 15 Text = '10' end object Label4: TLabel AnchorSideLeft.Control = edtFlushInterval AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = edtFlushInterval AnchorSideTop.Side = asrCenter Left = 132 Height = 15 Top = 110 Width = 44 BorderSpacing.Left = 2 Caption = 'Seconds' ParentColor = False end end end object Panel2: TPanel Left = 0 Height = 129 Top = 444 Width = 739 Align = alClient AutoSize = True BevelOuter = bvNone Caption = 'Panel2' ClientHeight = 129 ClientWidth = 739 TabOrder = 1 object ListView1: TListView Left = 0 Height = 84 Top = 0 Width = 739 Align = alClient Columns = < item Caption = 'Address' Width = 150 end item Caption = 'Count' Width = 100 end item Caption = 'Invalidated' Width = 100 end> HideSelection = False MultiSelect = True OwnerData = True PopupMenu = PopupMenu1 ReadOnly = True RowSelect = True TabOrder = 0 ViewStyle = vsReport OnData = ListView1Data OnDblClick = ListView1DblClick end object Panel3: TPanel Left = 0 Height = 45 Top = 84 Width = 739 Align = alBottom AutoSize = True BevelOuter = bvNone ClientHeight = 45 ClientWidth = 739 TabOrder = 1 object btnShowResults: TButton AnchorSideLeft.Control = Panel3 AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = Panel3 AnchorSideTop.Side = asrCenter Left = 258 Height = 25 Top = 10 Width = 222 AutoSize = True BorderSpacing.Top = 10 BorderSpacing.Bottom = 10 Caption = 'Show the current valid instruction list' OnClick = btnShowResultsClick TabOrder = 0 end end end object pmRangeOptions: TPopupMenu OnPopup = pmRangeOptionsPopup left = 216 top = 192 object miRangeDeleteSelected: TMenuItem Caption = 'Delete Selected' Default = True OnClick = miRangeDeleteSelectedClick end object miRangeDeleteAll: TMenuItem Caption = 'Clear List' OnClick = miRangeDeleteAllClick end end object tActivator: TTimer Enabled = False Interval = 500 OnTimer = tActivatorTimer left = 224 top = 240 end object PopupMenu1: TPopupMenu left = 216 top = 384 object MenuItem1: TMenuItem Caption = 'Copy selection to clipboard' OnClick = MenuItem1Click end end object tProcessor: TTimer Enabled = False Interval = 2000 OnTimer = tProcessorTimer left = 400 top = 243 end end