Added a very poorly implemented PAL/NTSC toggle

This commit is contained in:
2026-05-17 15:02:31 +01:00
parent f1140fa115
commit 1730687009
8 changed files with 78 additions and 56 deletions

View File

@@ -50,9 +50,10 @@
<None Remove="ROMS\Gangster Town %28UE%29 [!].sms" />
<None Remove="ROMS\Gauntlet %28UE%29 [!].sms" />
<None Remove="ROMS\Ghost House %28UE%29 [!].sms" />
<None Remove="ROMS\Ghouls %27n Ghosts %28UE%29 [!].sms" />
<None Remove="ROMS\Ghouls %27n Ghosts %28USA%29.sms" />
<None Remove="ROMS\Global Defense %28UE%29 [!].sms" />
<None Remove="ROMS\Golden Axe %28UE%29 [!].sms" />
<None Remove="ROMS\Golden Axe Warrior.sav" />
<None Remove="ROMS\Golden Axe Warrior.sms" />
<None Remove="ROMS\Great Baseball %28UE%29 [!].sms" />
<None Remove="ROMS\Great Basketball %28UE%29 [!].sms" />
@@ -73,7 +74,8 @@
<None Remove="ROMS\Mortal Kombat %28UE%29 [!].sms" />
<None Remove="ROMS\Mortal Kombat 2 %28UE%29 [!].sms" />
<None Remove="ROMS\Mortal Kombat 3 %28UE%29 [!].sms" />
<None Remove="ROMS\OutRun %28UE%29 [!].sms" />
<None Remove="ROMS\Olympic Gold - Barcelona %2792 %28Europe%29.sms" />
<None Remove="ROMS\OutRun %28USA%29.sms" />
<None Remove="ROMS\Paperboy %28UE%29 [!].sms" />
<None Remove="ROMS\Parlour Games %28UE%29 [!].sms" />
<None Remove="ROMS\Phantasy Star %28UE%29 [!].sms" />
@@ -88,7 +90,7 @@
<None Remove="ROMS\Sonic 2.sms" />
<None Remove="ROMS\Sonic Chaos %28UE%29 [!].sms" />
<None Remove="ROMS\Sonic.sms" />
<None Remove="ROMS\Space Harrier %28UE%29 [!].sms" />
<None Remove="ROMS\Space Harrier %28USA%29.sms" />
<None Remove="ROMS\Speedball %28UE%29 %28Virgin%29 [!].sms" />
<None Remove="ROMS\Star Wars %28UE%29 [!].sms" />
<None Remove="ROMS\Street Fighter 2 %28Brazil%29 [!].sms" />
@@ -188,15 +190,14 @@
<EmbeddedResource Include="ROMS\Ghost House (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Ghouls 'n Ghosts (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Ghouls 'n Ghosts (USA).sms" />
<EmbeddedResource Include="ROMS\Global Defense (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Golden Axe (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Golden Axe Warrior.sav" />
<EmbeddedResource Include="ROMS\Golden Axe Warrior.sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
@@ -257,9 +258,8 @@
<EmbeddedResource Include="ROMS\Mortal Kombat 3 (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\OutRun (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Olympic Gold - Barcelona '92 (Europe).sms" />
<EmbeddedResource Include="ROMS\OutRun (USA).sms" />
<EmbeddedResource Include="ROMS\Paperboy (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
@@ -302,9 +302,7 @@
<EmbeddedResource Include="ROMS\Sonic.sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Space Harrier (UE) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="ROMS\Space Harrier (USA).sms" />
<EmbeddedResource Include="ROMS\Speedball (UE) (Virgin) [!].sms">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>

View File

@@ -39,10 +39,11 @@
vRAMViewerToolStripMenuItem = new ToolStripMenuItem();
machineToolStripMenuItem = new ToolStripMenuItem();
resetToolStripMenuItem = new ToolStripMenuItem();
helpToolStripMenuItem = new ToolStripMenuItem();
aboutToolStripMenuItem = new ToolStripMenuItem();
saveStateToolStripMenuItem = new ToolStripMenuItem();
loadStateToolStripMenuItem = new ToolStripMenuItem();
helpToolStripMenuItem = new ToolStripMenuItem();
aboutToolStripMenuItem = new ToolStripMenuItem();
pALRegionToolStripMenuItem = new ToolStripMenuItem();
menuStrip1.SuspendLayout();
SuspendLayout();
//
@@ -52,7 +53,8 @@
menuStrip1.Items.AddRange(new ToolStripItem[] { fileToolStripMenuItem, viewToolStripMenuItem, machineToolStripMenuItem, helpToolStripMenuItem });
menuStrip1.Location = new Point(0, 0);
menuStrip1.Name = "menuStrip1";
menuStrip1.Size = new Size(791, 33);
menuStrip1.Padding = new Padding(5, 2, 0, 2);
menuStrip1.Size = new Size(633, 28);
menuStrip1.TabIndex = 2;
menuStrip1.Text = "menuStrip1";
//
@@ -60,34 +62,34 @@
//
fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { openToolStripMenuItem, exitToolStripMenuItem });
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new Size(54, 29);
fileToolStripMenuItem.Size = new Size(46, 24);
fileToolStripMenuItem.Text = "File";
//
// openToolStripMenuItem
//
openToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { includedToolStripMenuItem, selectROMToolStripMenuItem1 });
openToolStripMenuItem.Name = "openToolStripMenuItem";
openToolStripMenuItem.Size = new Size(158, 34);
openToolStripMenuItem.Size = new Size(224, 26);
openToolStripMenuItem.Text = "Open";
//
// includedToolStripMenuItem
//
includedToolStripMenuItem.Name = "includedToolStripMenuItem";
includedToolStripMenuItem.Size = new Size(218, 34);
includedToolStripMenuItem.Size = new Size(178, 26);
includedToolStripMenuItem.Text = "Included";
includedToolStripMenuItem.Click += includedToolStripMenuItem_Click;
//
// selectROMToolStripMenuItem1
//
selectROMToolStripMenuItem1.Name = "selectROMToolStripMenuItem1";
selectROMToolStripMenuItem1.Size = new Size(218, 34);
selectROMToolStripMenuItem1.Size = new Size(178, 26);
selectROMToolStripMenuItem1.Text = "Select ROM...";
selectROMToolStripMenuItem1.Click += selectROMToolStripMenuItem_Click;
//
// exitToolStripMenuItem
//
exitToolStripMenuItem.Name = "exitToolStripMenuItem";
exitToolStripMenuItem.Size = new Size(158, 34);
exitToolStripMenuItem.Size = new Size(224, 26);
exitToolStripMenuItem.Text = "Exit";
exitToolStripMenuItem.Click += exitToolStripMenuItem_Click;
//
@@ -95,72 +97,81 @@
//
viewToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { debuggerToolStripMenuItem, vRAMViewerToolStripMenuItem });
viewToolStripMenuItem.Name = "viewToolStripMenuItem";
viewToolStripMenuItem.Size = new Size(65, 29);
viewToolStripMenuItem.Size = new Size(55, 24);
viewToolStripMenuItem.Text = "View";
//
// debuggerToolStripMenuItem
//
debuggerToolStripMenuItem.Name = "debuggerToolStripMenuItem";
debuggerToolStripMenuItem.Size = new Size(221, 34);
debuggerToolStripMenuItem.Size = new Size(182, 26);
debuggerToolStripMenuItem.Text = "Debugger";
debuggerToolStripMenuItem.Click += debuggerToolStripMenuItem_Click;
//
// vRAMViewerToolStripMenuItem
//
vRAMViewerToolStripMenuItem.Name = "vRAMViewerToolStripMenuItem";
vRAMViewerToolStripMenuItem.Size = new Size(221, 34);
vRAMViewerToolStripMenuItem.Size = new Size(182, 26);
vRAMViewerToolStripMenuItem.Text = "VRAM Viewer";
vRAMViewerToolStripMenuItem.Click += vramViewerToolStripMenuItem_Click;
//
// machineToolStripMenuItem
//
machineToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { resetToolStripMenuItem, saveStateToolStripMenuItem, loadStateToolStripMenuItem });
machineToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { resetToolStripMenuItem, saveStateToolStripMenuItem, loadStateToolStripMenuItem, pALRegionToolStripMenuItem });
machineToolStripMenuItem.Name = "machineToolStripMenuItem";
machineToolStripMenuItem.Size = new Size(94, 29);
machineToolStripMenuItem.Size = new Size(79, 24);
machineToolStripMenuItem.Text = "Machine";
//
// resetToolStripMenuItem
//
resetToolStripMenuItem.Name = "resetToolStripMenuItem";
resetToolStripMenuItem.Size = new Size(270, 34);
resetToolStripMenuItem.Size = new Size(224, 26);
resetToolStripMenuItem.Text = "Reset";
resetToolStripMenuItem.Click += resetToolStripMenuItem_Click;
//
// helpToolStripMenuItem
//
helpToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { aboutToolStripMenuItem });
helpToolStripMenuItem.Name = "helpToolStripMenuItem";
helpToolStripMenuItem.Size = new Size(65, 29);
helpToolStripMenuItem.Text = "Help";
//
// aboutToolStripMenuItem
//
aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
aboutToolStripMenuItem.Size = new Size(164, 34);
aboutToolStripMenuItem.Text = "About";
//
// saveStateToolStripMenuItem
//
saveStateToolStripMenuItem.Name = "saveStateToolStripMenuItem";
saveStateToolStripMenuItem.Size = new Size(270, 34);
saveStateToolStripMenuItem.Size = new Size(224, 26);
saveStateToolStripMenuItem.Text = "Save State";
saveStateToolStripMenuItem.Click += saveStateToolStripMenuItem_Click;
//
// loadStateToolStripMenuItem
//
loadStateToolStripMenuItem.Name = "loadStateToolStripMenuItem";
loadStateToolStripMenuItem.Size = new Size(270, 34);
loadStateToolStripMenuItem.Size = new Size(224, 26);
loadStateToolStripMenuItem.Text = "Load State";
loadStateToolStripMenuItem.Click += loadStateToolStripMenuItem_Click;
//
// helpToolStripMenuItem
//
helpToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { aboutToolStripMenuItem });
helpToolStripMenuItem.Name = "helpToolStripMenuItem";
helpToolStripMenuItem.Size = new Size(55, 24);
helpToolStripMenuItem.Text = "Help";
//
// aboutToolStripMenuItem
//
aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
aboutToolStripMenuItem.Size = new Size(133, 26);
aboutToolStripMenuItem.Text = "About";
//
// pALRegionToolStripMenuItem
//
pALRegionToolStripMenuItem.Checked = true;
pALRegionToolStripMenuItem.CheckOnClick = true;
pALRegionToolStripMenuItem.CheckState = CheckState.Checked;
pALRegionToolStripMenuItem.Name = "pALRegionToolStripMenuItem";
pALRegionToolStripMenuItem.Size = new Size(224, 26);
pALRegionToolStripMenuItem.Text = "PAL Region?";
pALRegionToolStripMenuItem.Click += pALRegionToolStripMenuItem_Click;
//
// ParsonsForm1
//
AutoScaleDimensions = new SizeF(10F, 25F);
AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(791, 622);
ClientSize = new Size(633, 498);
Controls.Add(menuStrip1);
MainMenuStrip = menuStrip1;
Margin = new Padding(4);
Name = "ParsonsForm1";
Text = "Form1";
FormClosing += ParsonsForm1_FormClosing;
@@ -186,5 +197,6 @@
private ToolStripMenuItem vRAMViewerToolStripMenuItem;
private ToolStripMenuItem saveStateToolStripMenuItem;
private ToolStripMenuItem loadStateToolStripMenuItem;
private ToolStripMenuItem pALRegionToolStripMenuItem;
}
}

View File

@@ -113,7 +113,8 @@ namespace Desktop
IsRunning = true;
TotalFrameCount = 0;
double TargetFrameTime = 1000.0 / 59.92274;
double targetFps = _machine.VideoProcessor.IsPalRegion ? 50.0 : 59.92274;
double TargetFrameTime = 1000.0 / targetFps;
_emulatorTask = Task.Run(() =>
{
@@ -330,7 +331,7 @@ namespace Desktop
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
this.Close();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
@@ -410,5 +411,15 @@ namespace Desktop
// 3. Resume
StartEmulator();
}
private void pALRegionToolStripMenuItem_Click(object sender, EventArgs e)
{
if (pALRegionToolStripMenuItem.Checked)
_machine.VideoProcessor.IsPalRegion = true;
else _machine.VideoProcessor.IsPalRegion= false;
pALRegionToolStripMenuItem.Checked = !pALRegionToolStripMenuItem.Checked;
}
}
}

Binary file not shown.