Added included snapshot and tzx option with roms

This commit is contained in:
2026-04-30 16:58:37 +01:00
parent 2f498d00be
commit 5c7ccc02ff
6 changed files with 77 additions and 35 deletions

View File

@@ -18,6 +18,7 @@
<None Remove="ROMS\Snapshot\Dizzy - Trasure Island.sna" /> <None Remove="ROMS\Snapshot\Dizzy - Trasure Island.sna" />
<None Remove="ROMS\Snapshot\GHILL48K.sna" /> <None Remove="ROMS\Snapshot\GHILL48K.sna" />
<None Remove="ROMS\Snapshot\manic.sna" /> <None Remove="ROMS\Snapshot\manic.sna" />
<None Remove="ROMS\Snapshot\tristam.sna" />
<None Remove="ROMS\TAP\Chuckie Egg.tap" /> <None Remove="ROMS\TAP\Chuckie Egg.tap" />
<None Remove="ROMS\TAP\Grange Hill.TAP" /> <None Remove="ROMS\TAP\Grange Hill.TAP" />
<None Remove="ROMS\TAP\Grange Hill128.TAP" /> <None Remove="ROMS\TAP\Grange Hill128.TAP" />
@@ -54,6 +55,9 @@
<EmbeddedResource Include="ROMS\Snapshot\manic.sna"> <EmbeddedResource Include="ROMS\Snapshot\manic.sna">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="ROMS\Snapshot\tristam.sna">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\TAP\Chuckie Egg.tap"> <EmbeddedResource Include="ROMS\TAP\Chuckie Egg.tap">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource> </EmbeddedResource>

View File

@@ -33,7 +33,7 @@
openToolStripMenuItem = new ToolStripMenuItem(); openToolStripMenuItem = new ToolStripMenuItem();
includedToolStripMenuItem = new ToolStripMenuItem(); includedToolStripMenuItem = new ToolStripMenuItem();
tAPToolStripMenuItem1 = new ToolStripMenuItem(); tAPToolStripMenuItem1 = new ToolStripMenuItem();
sNAToolStripMenuItem1 = new ToolStripMenuItem(); SNAPToolStripMenuItem1 = new ToolStripMenuItem();
tAPToolStripMenuItem = new ToolStripMenuItem(); tAPToolStripMenuItem = new ToolStripMenuItem();
sNAToolStripMenuItem = new ToolStripMenuItem(); sNAToolStripMenuItem = new ToolStripMenuItem();
saveSnapshotToolStripMenuItem = new ToolStripMenuItem(); saveSnapshotToolStripMenuItem = new ToolStripMenuItem();
@@ -51,6 +51,7 @@
HighSpeedToolStripMenuItem = new ToolStripMenuItem(); HighSpeedToolStripMenuItem = new ToolStripMenuItem();
fastLoadToolStripMenuItem = new ToolStripMenuItem(); fastLoadToolStripMenuItem = new ToolStripMenuItem();
playTapeToolStripMenuItem = new ToolStripMenuItem(); playTapeToolStripMenuItem = new ToolStripMenuItem();
TZXToolStripMenuItem1 = new ToolStripMenuItem();
menuStrip1.SuspendLayout(); menuStrip1.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
@@ -60,7 +61,8 @@
menuStrip1.Items.AddRange(new ToolStripItem[] { fileToolStripMenuItem, machineToolStripMenuItem, viewToolStripMenuItem, optionsToolStripMenuItem, playTapeToolStripMenuItem }); menuStrip1.Items.AddRange(new ToolStripItem[] { fileToolStripMenuItem, machineToolStripMenuItem, viewToolStripMenuItem, optionsToolStripMenuItem, playTapeToolStripMenuItem });
menuStrip1.Location = new Point(0, 0); menuStrip1.Location = new Point(0, 0);
menuStrip1.Name = "menuStrip1"; menuStrip1.Name = "menuStrip1";
menuStrip1.Size = new Size(922, 33); menuStrip1.Padding = new Padding(5, 2, 0, 2);
menuStrip1.Size = new Size(738, 28);
menuStrip1.TabIndex = 1; menuStrip1.TabIndex = 1;
menuStrip1.Text = "menuStrip1"; menuStrip1.Text = "menuStrip1";
// //
@@ -68,60 +70,60 @@
// //
fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { openToolStripMenuItem, saveSnapshotToolStripMenuItem, exitToolStripMenuItem }); fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { openToolStripMenuItem, saveSnapshotToolStripMenuItem, exitToolStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem"; fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new Size(54, 29); fileToolStripMenuItem.Size = new Size(46, 24);
fileToolStripMenuItem.Text = "File"; fileToolStripMenuItem.Text = "File";
// //
// openToolStripMenuItem // openToolStripMenuItem
// //
openToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { includedToolStripMenuItem, tAPToolStripMenuItem, sNAToolStripMenuItem }); openToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { includedToolStripMenuItem, tAPToolStripMenuItem, sNAToolStripMenuItem });
openToolStripMenuItem.Name = "openToolStripMenuItem"; openToolStripMenuItem.Name = "openToolStripMenuItem";
openToolStripMenuItem.Size = new Size(231, 34); openToolStripMenuItem.Size = new Size(224, 26);
openToolStripMenuItem.Text = "Open"; openToolStripMenuItem.Text = "Open";
// //
// includedToolStripMenuItem // includedToolStripMenuItem
// //
includedToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { tAPToolStripMenuItem1, sNAToolStripMenuItem1 }); includedToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { tAPToolStripMenuItem1, SNAPToolStripMenuItem1, TZXToolStripMenuItem1 });
includedToolStripMenuItem.Name = "includedToolStripMenuItem"; includedToolStripMenuItem.Name = "includedToolStripMenuItem";
includedToolStripMenuItem.Size = new Size(182, 34); includedToolStripMenuItem.Size = new Size(224, 26);
includedToolStripMenuItem.Text = "Included"; includedToolStripMenuItem.Text = "Included";
// //
// tAPToolStripMenuItem1 // tAPToolStripMenuItem1
// //
tAPToolStripMenuItem1.Name = "tAPToolStripMenuItem1"; tAPToolStripMenuItem1.Name = "tAPToolStripMenuItem1";
tAPToolStripMenuItem1.Size = new Size(149, 34); tAPToolStripMenuItem1.Size = new Size(224, 26);
tAPToolStripMenuItem1.Text = "TAP"; tAPToolStripMenuItem1.Text = "TAP";
// //
// sNAToolStripMenuItem1 // SNAPToolStripMenuItem1
// //
sNAToolStripMenuItem1.Name = "sNAToolStripMenuItem1"; SNAPToolStripMenuItem1.Name = "SNAPToolStripMenuItem1";
sNAToolStripMenuItem1.Size = new Size(149, 34); SNAPToolStripMenuItem1.Size = new Size(224, 26);
sNAToolStripMenuItem1.Text = "SNA"; SNAPToolStripMenuItem1.Text = "SNA";
// //
// tAPToolStripMenuItem // tAPToolStripMenuItem
// //
tAPToolStripMenuItem.Name = "tAPToolStripMenuItem"; tAPToolStripMenuItem.Name = "tAPToolStripMenuItem";
tAPToolStripMenuItem.Size = new Size(182, 34); tAPToolStripMenuItem.Size = new Size(224, 26);
tAPToolStripMenuItem.Text = "TAP"; tAPToolStripMenuItem.Text = "TAP";
tAPToolStripMenuItem.Click += loadTAPToolStripMenuItem_Click; tAPToolStripMenuItem.Click += loadTAPToolStripMenuItem_Click;
// //
// sNAToolStripMenuItem // sNAToolStripMenuItem
// //
sNAToolStripMenuItem.Name = "sNAToolStripMenuItem"; sNAToolStripMenuItem.Name = "sNAToolStripMenuItem";
sNAToolStripMenuItem.Size = new Size(182, 34); sNAToolStripMenuItem.Size = new Size(224, 26);
sNAToolStripMenuItem.Text = "SNA"; sNAToolStripMenuItem.Text = "SNA";
sNAToolStripMenuItem.Click += openSNAToolStripMenuItem_Click; sNAToolStripMenuItem.Click += openSNAToolStripMenuItem_Click;
// //
// saveSnapshotToolStripMenuItem // saveSnapshotToolStripMenuItem
// //
saveSnapshotToolStripMenuItem.Name = "saveSnapshotToolStripMenuItem"; saveSnapshotToolStripMenuItem.Name = "saveSnapshotToolStripMenuItem";
saveSnapshotToolStripMenuItem.Size = new Size(231, 34); saveSnapshotToolStripMenuItem.Size = new Size(224, 26);
saveSnapshotToolStripMenuItem.Text = "Save Snapshot"; saveSnapshotToolStripMenuItem.Text = "Save Snapshot";
saveSnapshotToolStripMenuItem.Click += SaveSNAMenuItem_Click; saveSnapshotToolStripMenuItem.Click += SaveSNAMenuItem_Click;
// //
// exitToolStripMenuItem // exitToolStripMenuItem
// //
exitToolStripMenuItem.Name = "exitToolStripMenuItem"; exitToolStripMenuItem.Name = "exitToolStripMenuItem";
exitToolStripMenuItem.Size = new Size(231, 34); exitToolStripMenuItem.Size = new Size(224, 26);
exitToolStripMenuItem.Text = "Exit"; exitToolStripMenuItem.Text = "Exit";
exitToolStripMenuItem.Click += btnExit_Click; exitToolStripMenuItem.Click += btnExit_Click;
// //
@@ -129,7 +131,7 @@
// //
machineToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { spectrum48KToolStripMenuItem, spectrum128KPlus2AToolStripMenuItem, runToolStripMenuItem, resetToolStripMenuItem, stepToolStripMenuItem, resetToolStripMenuItem1 }); machineToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { spectrum48KToolStripMenuItem, spectrum128KPlus2AToolStripMenuItem, runToolStripMenuItem, resetToolStripMenuItem, stepToolStripMenuItem, resetToolStripMenuItem1 });
machineToolStripMenuItem.Name = "machineToolStripMenuItem"; machineToolStripMenuItem.Name = "machineToolStripMenuItem";
machineToolStripMenuItem.Size = new Size(94, 29); machineToolStripMenuItem.Size = new Size(79, 24);
machineToolStripMenuItem.Text = "Machine"; machineToolStripMenuItem.Text = "Machine";
// //
// spectrum48KToolStripMenuItem // spectrum48KToolStripMenuItem
@@ -137,42 +139,42 @@
spectrum48KToolStripMenuItem.Checked = true; spectrum48KToolStripMenuItem.Checked = true;
spectrum48KToolStripMenuItem.CheckState = CheckState.Checked; spectrum48KToolStripMenuItem.CheckState = CheckState.Checked;
spectrum48KToolStripMenuItem.Name = "spectrum48KToolStripMenuItem"; spectrum48KToolStripMenuItem.Name = "spectrum48KToolStripMenuItem";
spectrum48KToolStripMenuItem.Size = new Size(270, 34); spectrum48KToolStripMenuItem.Size = new Size(157, 26);
spectrum48KToolStripMenuItem.Text = "48K"; spectrum48KToolStripMenuItem.Text = "48K";
spectrum48KToolStripMenuItem.Click += spectrum48KToolStripMenuItem_Click; spectrum48KToolStripMenuItem.Click += spectrum48KToolStripMenuItem_Click;
// //
// spectrum128KPlus2AToolStripMenuItem // spectrum128KPlus2AToolStripMenuItem
// //
spectrum128KPlus2AToolStripMenuItem.Name = "spectrum128KPlus2AToolStripMenuItem"; spectrum128KPlus2AToolStripMenuItem.Name = "spectrum128KPlus2AToolStripMenuItem";
spectrum128KPlus2AToolStripMenuItem.Size = new Size(270, 34); spectrum128KPlus2AToolStripMenuItem.Size = new Size(157, 26);
spectrum128KPlus2AToolStripMenuItem.Text = "128K +2A"; spectrum128KPlus2AToolStripMenuItem.Text = "128K +2A";
spectrum128KPlus2AToolStripMenuItem.Click += spectrum128KPlus2AToolStripMenuItem_Click; spectrum128KPlus2AToolStripMenuItem.Click += spectrum128KPlus2AToolStripMenuItem_Click;
// //
// runToolStripMenuItem // runToolStripMenuItem
// //
runToolStripMenuItem.Name = "runToolStripMenuItem"; runToolStripMenuItem.Name = "runToolStripMenuItem";
runToolStripMenuItem.Size = new Size(270, 34); runToolStripMenuItem.Size = new Size(157, 26);
runToolStripMenuItem.Text = "Run"; runToolStripMenuItem.Text = "Run";
runToolStripMenuItem.Click += btnRun_Click; runToolStripMenuItem.Click += btnRun_Click;
// //
// resetToolStripMenuItem // resetToolStripMenuItem
// //
resetToolStripMenuItem.Name = "resetToolStripMenuItem"; resetToolStripMenuItem.Name = "resetToolStripMenuItem";
resetToolStripMenuItem.Size = new Size(270, 34); resetToolStripMenuItem.Size = new Size(157, 26);
resetToolStripMenuItem.Text = "Pause"; resetToolStripMenuItem.Text = "Pause";
resetToolStripMenuItem.Click += btnPause_Click; resetToolStripMenuItem.Click += btnPause_Click;
// //
// stepToolStripMenuItem // stepToolStripMenuItem
// //
stepToolStripMenuItem.Name = "stepToolStripMenuItem"; stepToolStripMenuItem.Name = "stepToolStripMenuItem";
stepToolStripMenuItem.Size = new Size(270, 34); stepToolStripMenuItem.Size = new Size(157, 26);
stepToolStripMenuItem.Text = "Step"; stepToolStripMenuItem.Text = "Step";
stepToolStripMenuItem.Click += btnStep_Click; stepToolStripMenuItem.Click += btnStep_Click;
// //
// resetToolStripMenuItem1 // resetToolStripMenuItem1
// //
resetToolStripMenuItem1.Name = "resetToolStripMenuItem1"; resetToolStripMenuItem1.Name = "resetToolStripMenuItem1";
resetToolStripMenuItem1.Size = new Size(270, 34); resetToolStripMenuItem1.Size = new Size(157, 26);
resetToolStripMenuItem1.Text = "Reset"; resetToolStripMenuItem1.Text = "Reset";
resetToolStripMenuItem1.Click += btnReset_Click; resetToolStripMenuItem1.Click += btnReset_Click;
// //
@@ -180,13 +182,13 @@
// //
viewToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { debuggerToolStripMenuItem }); viewToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { debuggerToolStripMenuItem });
viewToolStripMenuItem.Name = "viewToolStripMenuItem"; viewToolStripMenuItem.Name = "viewToolStripMenuItem";
viewToolStripMenuItem.Size = new Size(65, 29); viewToolStripMenuItem.Size = new Size(55, 24);
viewToolStripMenuItem.Text = "View"; viewToolStripMenuItem.Text = "View";
// //
// debuggerToolStripMenuItem // debuggerToolStripMenuItem
// //
debuggerToolStripMenuItem.Name = "debuggerToolStripMenuItem"; debuggerToolStripMenuItem.Name = "debuggerToolStripMenuItem";
debuggerToolStripMenuItem.Size = new Size(270, 34); debuggerToolStripMenuItem.Size = new Size(224, 26);
debuggerToolStripMenuItem.Text = "Debugger"; debuggerToolStripMenuItem.Text = "Debugger";
debuggerToolStripMenuItem.Click += openDebuggerToolStripMenuItem_Click; debuggerToolStripMenuItem.Click += openDebuggerToolStripMenuItem_Click;
// //
@@ -194,13 +196,13 @@
// //
optionsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { HighSpeedToolStripMenuItem, fastLoadToolStripMenuItem }); optionsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { HighSpeedToolStripMenuItem, fastLoadToolStripMenuItem });
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
optionsToolStripMenuItem.Size = new Size(92, 29); optionsToolStripMenuItem.Size = new Size(75, 24);
optionsToolStripMenuItem.Text = "Options"; optionsToolStripMenuItem.Text = "Options";
// //
// HighSpeedToolStripMenuItem // HighSpeedToolStripMenuItem
// //
HighSpeedToolStripMenuItem.Name = "HighSpeedToolStripMenuItem"; HighSpeedToolStripMenuItem.Name = "HighSpeedToolStripMenuItem";
HighSpeedToolStripMenuItem.Size = new Size(214, 34); HighSpeedToolStripMenuItem.Size = new Size(175, 26);
HighSpeedToolStripMenuItem.Text = "High Speed"; HighSpeedToolStripMenuItem.Text = "High Speed";
HighSpeedToolStripMenuItem.Click += btnHighSpeedToggle_Click; HighSpeedToolStripMenuItem.Click += btnHighSpeedToggle_Click;
// //
@@ -209,26 +211,31 @@
fastLoadToolStripMenuItem.Checked = true; fastLoadToolStripMenuItem.Checked = true;
fastLoadToolStripMenuItem.CheckState = CheckState.Checked; fastLoadToolStripMenuItem.CheckState = CheckState.Checked;
fastLoadToolStripMenuItem.Name = "fastLoadToolStripMenuItem"; fastLoadToolStripMenuItem.Name = "fastLoadToolStripMenuItem";
fastLoadToolStripMenuItem.Size = new Size(214, 34); fastLoadToolStripMenuItem.Size = new Size(175, 26);
fastLoadToolStripMenuItem.Text = "Fast Loading"; fastLoadToolStripMenuItem.Text = "Fast Loading";
fastLoadToolStripMenuItem.Click += fastLoadToolStripMenuItem_Click; fastLoadToolStripMenuItem.Click += fastLoadToolStripMenuItem_Click;
// //
// playTapeToolStripMenuItem // playTapeToolStripMenuItem
// //
playTapeToolStripMenuItem.Name = "playTapeToolStripMenuItem"; playTapeToolStripMenuItem.Name = "playTapeToolStripMenuItem";
playTapeToolStripMenuItem.Size = new Size(101, 29); playTapeToolStripMenuItem.Size = new Size(85, 24);
playTapeToolStripMenuItem.Text = "Play Tape"; playTapeToolStripMenuItem.Text = "Play Tape";
playTapeToolStripMenuItem.Click += playTapeToolStripMenuItem_Click; playTapeToolStripMenuItem.Click += playTapeToolStripMenuItem_Click;
// //
// TZXToolStripMenuItem1
//
TZXToolStripMenuItem1.Name = "TZXToolStripMenuItem1";
TZXToolStripMenuItem1.Size = new Size(224, 26);
TZXToolStripMenuItem1.Text = "TZX";
//
// Form1 // Form1
// //
AutoScaleDimensions = new SizeF(10F, 25F); AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(922, 760); ClientSize = new Size(738, 608);
Controls.Add(menuStrip1); Controls.Add(menuStrip1);
KeyPreview = true; KeyPreview = true;
MainMenuStrip = menuStrip1; MainMenuStrip = menuStrip1;
Margin = new Padding(4);
Name = "Form1"; Name = "Form1";
Text = "Parsons Sinclair ZX Spectrum 48K - 2026"; Text = "Parsons Sinclair ZX Spectrum 48K - 2026";
menuStrip1.ResumeLayout(false); menuStrip1.ResumeLayout(false);
@@ -255,11 +262,12 @@
private ToolStripMenuItem HighSpeedToolStripMenuItem; private ToolStripMenuItem HighSpeedToolStripMenuItem;
private ToolStripMenuItem includedToolStripMenuItem; private ToolStripMenuItem includedToolStripMenuItem;
private ToolStripMenuItem tAPToolStripMenuItem1; private ToolStripMenuItem tAPToolStripMenuItem1;
private ToolStripMenuItem sNAToolStripMenuItem1; private ToolStripMenuItem SNAPToolStripMenuItem1;
private ToolStripMenuItem saveSnapshotToolStripMenuItem; private ToolStripMenuItem saveSnapshotToolStripMenuItem;
private ToolStripMenuItem playTapeToolStripMenuItem; private ToolStripMenuItem playTapeToolStripMenuItem;
private ToolStripMenuItem fastLoadToolStripMenuItem; private ToolStripMenuItem fastLoadToolStripMenuItem;
private ToolStripMenuItem spectrum48KToolStripMenuItem; private ToolStripMenuItem spectrum48KToolStripMenuItem;
private ToolStripMenuItem spectrum128KPlus2AToolStripMenuItem; private ToolStripMenuItem spectrum128KPlus2AToolStripMenuItem;
private ToolStripMenuItem TZXToolStripMenuItem1;
} }
} }

View File

@@ -344,6 +344,22 @@ namespace Desktop
item.Click += IncludedTapMenuItem_Click; item.Click += IncludedTapMenuItem_Click;
tAPToolStripMenuItem1.DropDownItems.Add(item); tAPToolStripMenuItem1.DropDownItems.Add(item);
} }
if (resourceName.Contains("Desktop.ROMS.Snapshot.") && resourceName.EndsWith(".sna", StringComparison.OrdinalIgnoreCase))
{
string[] parts = resourceName.Split('.');
string displayName = parts[parts.Length - 2];
ToolStripMenuItem item = new ToolStripMenuItem(displayName) { Tag = resourceName };
item.Click += IncludedTapMenuItem_Click;
SNAPToolStripMenuItem1.DropDownItems.Add(item);
}
if (resourceName.Contains("Desktop.ROMS.TZX.") && resourceName.EndsWith(".tzx", StringComparison.OrdinalIgnoreCase))
{
string[] parts = resourceName.Split('.');
string displayName = parts[parts.Length - 2];
ToolStripMenuItem item = new ToolStripMenuItem(displayName) { Tag = resourceName };
item.Click += IncludedTapMenuItem_Click;
TZXToolStripMenuItem1.DropDownItems.Add(item);
}
} }
} }
@@ -355,19 +371,33 @@ namespace Desktop
try try
{ {
Assembly assembly = Assembly.GetExecutingAssembly(); Assembly assembly = Assembly.GetExecutingAssembly();
// Open the embedded resource stream once
using (Stream? stream = assembly.GetManifestResourceStream(resourceName)) using (Stream? stream = assembly.GetManifestResourceStream(resourceName))
{ {
if (stream == null) throw new Exception("Could not find embedded resource."); if (stream == null) throw new Exception($"Could not find embedded resource: {resourceName}");
// Copy the stream into a memory stream to extract the raw byte array
using (MemoryStream ms = new MemoryStream()) using (MemoryStream ms = new MemoryStream())
{ {
stream.CopyTo(ms); stream.CopyTo(ms);
_machine.TapeDeck.LoadTapData(ms.ToArray()); byte[] fileBytes = ms.ToArray();
// Route the byte array to the correct emulator component
if (resourceName.EndsWith(".tap", StringComparison.OrdinalIgnoreCase))
{
_machine.TapeDeck.LoadTapData(fileBytes);
}
else if (resourceName.EndsWith(".sna", StringComparison.OrdinalIgnoreCase))
{
_machine.LoadSnapshot(fileBytes);
}
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
MessageBox.Show($"Failed to load built-in TAP:\n{ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show($"Failed to load built-in resource:\n{ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
finally finally
{ {

Binary file not shown.

Binary file not shown.

Binary file not shown.