diff --git a/M64MM2/AboutForm.Designer.vb b/M64MM2/AboutForm.Designer.vb index 42f4991..b242972 100644 --- a/M64MM2/AboutForm.Designer.vb +++ b/M64MM2/AboutForm.Designer.vb @@ -40,7 +40,7 @@ Partial Class AboutForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(399, 26) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Mario 64 Movie Maker 2.0 beta 7" + Me.Label1.Text = "Mario 64 Movie Maker 2.0 beta 8" Me.Label1.TextAlign = System.Drawing.ContentAlignment.TopCenter ' 'Label2 @@ -65,14 +65,15 @@ Partial Class AboutForm ' Me.Label4.Location = New System.Drawing.Point(12, 108) Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(402, 28) + Me.Label4.Size = New System.Drawing.Size(402, 42) Me.Label4.TabIndex = 3 Me.Label4.Text = "Special thanks to Matthew ""MATTHEWGU4"" Guerra for helping me make this project a " & _ - "reality and for spreading the word!" + "reality and for spreading the word, and to GlitchyPSIX for his contributions to " & _ + "the program." ' 'Label5 ' - Me.Label5.Location = New System.Drawing.Point(12, 143) + Me.Label5.Location = New System.Drawing.Point(12, 159) Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(343, 13) Me.Label5.TabIndex = 4 @@ -81,15 +82,16 @@ Partial Class AboutForm 'LinkLabel1 ' Me.LinkLabel1.AutoSize = True - Me.LinkLabel1.Location = New System.Drawing.Point(12, 156) + Me.LinkLabel1.Location = New System.Drawing.Point(12, 172) Me.LinkLabel1.Name = "LinkLabel1" Me.LinkLabel1.Size = New System.Drawing.Size(143, 13) Me.LinkLabel1.TabIndex = 6 + Me.LinkLabel1.TabStop = True Me.LinkLabel1.Text = "captainswag101@gmail.com" ' 'Button1 ' - Me.Button1.Location = New System.Drawing.Point(173, 201) + Me.Button1.Location = New System.Drawing.Point(175, 216) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 5 @@ -99,18 +101,18 @@ Partial Class AboutForm 'Label6 ' Me.Label6.AutoSize = True - Me.Label6.Location = New System.Drawing.Point(12, 183) + Me.Label6.Location = New System.Drawing.Point(12, 195) Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(125, 13) + Me.Label6.Size = New System.Drawing.Size(128, 13) Me.Label6.TabIndex = 7 - Me.Label6.Text = "Build date: May 20, 2015" + Me.Label6.Text = "Build date: June 19, 2015" ' 'AboutForm ' Me.AcceptButton = Me.Button1 Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(426, 236) + Me.ClientSize = New System.Drawing.Size(426, 251) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.LinkLabel1) diff --git a/M64MM2/AboutForm.resx b/M64MM2/AboutForm.resx index 43ec471..e24a20c 100644 --- a/M64MM2/AboutForm.resx +++ b/M64MM2/AboutForm.resx @@ -123,9 +123,15 @@ True + + True + This program is dedicated to the Super Mario 64 Bloopers/Machinima community, thanks for all the effort you've put into your work, and I hope this tool will help you create awesome videos for years to come! + + True + True @@ -135,6 +141,9 @@ True + + True + True diff --git a/M64MM2/MainForm.Designer.vb b/M64MM2/MainForm.Designer.vb index 050c4e7..d726104 100644 --- a/M64MM2/MainForm.Designer.vb +++ b/M64MM2/MainForm.Designer.vb @@ -33,8 +33,8 @@ Partial Class MainForm Me.Label3 = New System.Windows.Forms.Label() Me.Label4 = New System.Windows.Forms.Label() Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() - Me.AboutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AboutM64MovieMaker20ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AboutMenu = New System.Windows.Forms.ToolStripMenuItem() + Me.AboutMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.HelpToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() Me.SettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.RetainAnimationSwapsMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -49,6 +49,7 @@ Partial Class MainForm ' 'b_Freeze ' + Me.b_Freeze.Enabled = False Me.b_Freeze.Location = New System.Drawing.Point(12, 44) Me.b_Freeze.Name = "b_Freeze" Me.b_Freeze.Size = New System.Drawing.Size(147, 23) @@ -58,6 +59,7 @@ Partial Class MainForm ' 'b_Unfreeze ' + Me.b_Unfreeze.Enabled = False Me.b_Unfreeze.Location = New System.Drawing.Point(165, 44) Me.b_Unfreeze.Name = "b_Unfreeze" Me.b_Unfreeze.Size = New System.Drawing.Size(147, 23) @@ -67,6 +69,7 @@ Partial Class MainForm ' 'b_ChangeCameraType ' + Me.b_ChangeCameraType.Enabled = False Me.b_ChangeCameraType.Location = New System.Drawing.Point(318, 44) Me.b_ChangeCameraType.Name = "b_ChangeCameraType" Me.b_ChangeCameraType.Size = New System.Drawing.Size(145, 23) @@ -116,26 +119,26 @@ Partial Class MainForm 'MenuStrip1 ' Me.MenuStrip1.BackColor = System.Drawing.SystemColors.MenuBar - Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AboutToolStripMenuItem, Me.SettingsToolStripMenuItem}) + Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AboutMenu, Me.SettingsToolStripMenuItem}) Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" Me.MenuStrip1.Size = New System.Drawing.Size(475, 24) Me.MenuStrip1.TabIndex = 7 Me.MenuStrip1.Text = "MenuStrip1" ' - 'AboutToolStripMenuItem + 'AboutMenu ' - Me.AboutToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AboutM64MovieMaker20ToolStripMenuItem, Me.HelpToolStripMenuItem1}) - Me.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem" - Me.AboutToolStripMenuItem.Size = New System.Drawing.Size(52, 20) - Me.AboutToolStripMenuItem.Text = "About" + Me.AboutMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AboutMenuItem, Me.HelpToolStripMenuItem1}) + Me.AboutMenu.Name = "AboutMenu" + Me.AboutMenu.Size = New System.Drawing.Size(52, 20) + Me.AboutMenu.Text = "About" ' - 'AboutM64MovieMaker20ToolStripMenuItem + 'AboutMenuItem ' - Me.AboutM64MovieMaker20ToolStripMenuItem.Name = "AboutM64MovieMaker20ToolStripMenuItem" - Me.AboutM64MovieMaker20ToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.A), System.Windows.Forms.Keys) - Me.AboutM64MovieMaker20ToolStripMenuItem.Size = New System.Drawing.Size(297, 22) - Me.AboutM64MovieMaker20ToolStripMenuItem.Text = "About Mario 64 Movie Maker 2.0..." + Me.AboutMenuItem.Name = "AboutMenuItem" + Me.AboutMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.A), System.Windows.Forms.Keys) + Me.AboutMenuItem.Size = New System.Drawing.Size(297, 22) + Me.AboutMenuItem.Text = "About Mario 64 Movie Maker 2.0..." ' 'HelpToolStripMenuItem1 ' @@ -180,6 +183,7 @@ Partial Class MainForm 'ComboBox2 ' Me.ComboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ComboBox2.Enabled = False Me.ComboBox2.FormattingEnabled = True Me.ComboBox2.Location = New System.Drawing.Point(12, 154) Me.ComboBox2.Name = "ComboBox2" @@ -198,6 +202,7 @@ Partial Class MainForm 'ComboBox1 ' Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ComboBox1.Enabled = False Me.ComboBox1.FormattingEnabled = True Me.ComboBox1.Location = New System.Drawing.Point(12, 110) Me.ComboBox1.Name = "ComboBox1" @@ -252,8 +257,8 @@ Partial Class MainForm Friend WithEvents Label3 As System.Windows.Forms.Label Friend WithEvents Label4 As System.Windows.Forms.Label Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip - Friend WithEvents AboutToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents AboutM64MovieMaker20ToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents AboutMenu As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents AboutMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents HelpToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ComboBox2 As System.Windows.Forms.ComboBox Friend WithEvents Label6 As System.Windows.Forms.Label diff --git a/M64MM2/MainForm.vb b/M64MM2/MainForm.vb index 2edd7a4..e2bd208 100644 --- a/M64MM2/MainForm.vb +++ b/M64MM2/MainForm.vb @@ -35,6 +35,14 @@ Public Class MainForm ' This call is required by the designer. InitializeComponent() + AddHandler ComboBox1.SelectedValueChanged, AddressOf ComboBox1_SelectedValueChanged + AddHandler ComboBox2.SelectedValueChanged, AddressOf ComboBox2_SelectedValueChanged + AddHandler ResetAnimationSwapsMenuItem.Click, AddressOf ResetAnimations + AddHandler b_Freeze.Click, AddressOf Freeze + AddHandler b_Unfreeze.Click, AddressOf Unfreeze + AddHandler b_ChangeCameraType.Click, AddressOf ChangeCameraType + AddHandler AboutMenuItem.Click, AddressOf AboutForm.ShowDialog + Try Using sr As New StreamReader("animation_data.txt") Do While sr.Peek() >= 0 @@ -59,9 +67,6 @@ Public Class MainForm ComboBox2.DataSource = New BindingSource(AnimData, Nothing) ComboBox2.DisplayMember = "Value" ComboBox2.ValueMember = "Key" - AddHandler ComboBox1.SelectedValueChanged, AddressOf ComboBox1_SelectedValueChanged - AddHandler ComboBox2.SelectedValueChanged, AddressOf ComboBox2_SelectedValueChanged - AddHandler ResetAnimationSwapsMenuItem.Click, AddressOf ResetAnimations ComboBox1.SelectedIndex = 0 ComboBox2.SelectedIndex = 0 LastCBox1Index = 0 @@ -74,9 +79,6 @@ Public Class MainForm Else EmuOpen = True End If - - Timer1.Enabled = True - Timer1.Interval = 1 End Sub Public Function GetChunks(value As String, chunkSize As Integer) As List(Of String) @@ -145,40 +147,33 @@ Public Class MainForm End Sub Private Sub Freeze() - ChangeCamera = False - WriteInteger("Project64", Base + &H33C848, &H80000000) + If EmuOpen = True And Base > 0 Then + ChangeCamera = False + WriteInteger("Project64", Base + &H33C848, &H80000000) + End If End Sub Private Sub Unfreeze() - ChangeCamera = False - CameraUnfrozen = True - WriteInteger("Project64", Base + &H33C848, 0) - End Sub - - Private Sub ChangeCameraType() - ChangeCamera = Not ChangeCamera - If ChangeCamera = True Then - b_ChangeCameraType.Text = "Go to new area" - Else + If EmuOpen = True And Base > 0 Then + ChangeCamera = False + CameraUnfrozen = True b_ChangeCameraType.Text = "Change Camera Type" + WriteInteger("Project64", Base + &H33C848, 0) End If End Sub - Private Sub b_Freeze_Click(sender As Object, e As EventArgs) Handles b_Freeze.Click - If EmuOpen = True And Base > 0 Then Freeze() - End Sub - - Private Sub b_Unfreeze_Click(sender As Object, e As EventArgs) Handles b_Unfreeze.Click - If EmuOpen = True And Base > 0 Then Unfreeze() - End Sub - - Private Sub b_ChangeCameraType_Click(sender As Object, e As EventArgs) Handles b_ChangeCameraType.Click - If EmuOpen = True And Base > 0 Then ChangeCameraType() + Private Sub ChangeCameraType() + If EmuOpen = True And Base > 0 Then + ChangeCamera = Not ChangeCamera + If ChangeCamera = True Then + b_ChangeCameraType.Text = "Go to new area" + Else + Unfreeze() + End If + End If End Sub Private Sub TimerEventProcessor(myObject As Object, ByVal myEventArgs As EventArgs) Handles Timer1.Tick - Timer1.Stop() ' Don't let the timer tick again until we're done processing the current tick (this precaution may be unnecessary) - ' Main program update call If GetEmuProcess("Project64") = Nothing Then EmuOpen = False @@ -191,14 +186,21 @@ Public Class MainForm ' Check if base address is still correct If ReadInteger("Project64", Base) <> &H3C1A8032 Then ' If our old base is not valid, we need to start looking for a new one Base = 0 - Timer1.Enabled = True ' Re-enable the timer so we can start to scan for a new base address + b_ChangeCameraType.Enabled = False + b_Freeze.Enabled = False + b_Unfreeze.Enabled = False + ComboBox1.Enabled = False + ComboBox2.Enabled = False Exit Sub End If - If TestOnce = False Then - ComboBox2.SelectedValue = CurrentAnimInRAM() - TestOnce = True - End If + b_ChangeCameraType.Enabled = True + b_Freeze.Enabled = True + b_Unfreeze.Enabled = True + ComboBox1.Enabled = True + ComboBox2.Enabled = True + + WriteAnimationSwap() ' Handle key input (for hotkeys, etc.) HandleInput() @@ -210,13 +212,28 @@ Public Class MainForm ' If we are changing camera modes, repeatedly force the camera into frozen mode. If ChangeCamera = True Then WriteInteger("Project64", Base + &H33C848, &H80000000) Else + b_Freeze.Enabled = False + b_Unfreeze.Enabled = False + b_ChangeCameraType.Enabled = False + b_ChangeCameraType.Text = "Change Camera Type" + ComboBox1.Enabled = False + ComboBox2.Enabled = False GetBase() End If Else + b_Freeze.Enabled = False + b_Unfreeze.Enabled = False + b_ChangeCameraType.Enabled = False + b_ChangeCameraType.Text = "Change Camera Type" + ComboBox1.Enabled = False + ComboBox2.Enabled = False Label1.Text = "Project64 isn't open!" End If - Timer1.Enabled = True ' Re-enable the timer so this sub will continue to be called repeatedly + 'The way this timer was repeating before was technically 1 ms per tick, which uses too much CPU by scanning adresses EVERY 1 ms. + 'Using 100ms as the interval between each scan doesn't waste too much CPU in the Base Adress Scan, and it's just as effective. + 'Both Timer1 settings are set in the MainForm.Load() Event. + 'After every tick, the timer repeats itself. End Sub Private Sub HandleInput() @@ -241,11 +258,6 @@ Public Class MainForm End If End Sub - Private Sub AboutM64MovieMaker20ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AboutM64MovieMaker20ToolStripMenuItem.Click - Dim AboutDialog As New AboutForm - AboutDialog.ShowDialog() - End Sub - Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs) If UndoPreviousAnimationSwapsMenuItem.Checked And EmuOpen = True And Base > 0 Then For Each anim As Animation In AnimList @@ -280,6 +292,11 @@ Public Class MainForm RetainAnimationSwapsMenuItem.Checked = False RetainAnimationSwapsMenuItem.CheckState = CheckState.Unchecked End Sub + + Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Timer1.Interval = 100 'Make the timer tick every tenth of a second, to avoid unneccesary CPU use in some processors. + Timer1.Start() + End Sub End Class Public Class Animation