C64 - multi-disk support
This commit is contained in:
parent
120f70b83b
commit
f093ad8606
|
@ -326,8 +326,9 @@
|
|||
this.SnesGameGenieMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.SnesOptionsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ColecoSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ColecoSkipBiosMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ColecoControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator35 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.ColecoSkipBiosMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.N64SubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.N64PluginSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.N64ControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -351,6 +352,7 @@
|
|||
this.toolStripSeparator31 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.settingsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.C64SubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.C64DisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.C64SettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.IntvSubMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.IntVControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -433,7 +435,7 @@
|
|||
this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.timerMouseIdle = new System.Windows.Forms.Timer(this.components);
|
||||
this.toolStripSeparator35 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripSeparator36 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.MainformMenu.SuspendLayout();
|
||||
this.MainStatusBar.SuspendLayout();
|
||||
this.MainFormContextMenu.SuspendLayout();
|
||||
|
@ -2933,13 +2935,6 @@
|
|||
this.ColecoSubMenu.Text = "&Coleco";
|
||||
this.ColecoSubMenu.DropDownOpened += new System.EventHandler(this.ColecoSubMenu_DropDownOpened);
|
||||
//
|
||||
// ColecoSkipBiosMenuItem
|
||||
//
|
||||
this.ColecoSkipBiosMenuItem.Name = "ColecoSkipBiosMenuItem";
|
||||
this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||
this.ColecoSkipBiosMenuItem.Text = "&Skip BIOS intro (When Applicable)";
|
||||
this.ColecoSkipBiosMenuItem.Click += new System.EventHandler(this.ColecoSkipBiosMenuItem_Click);
|
||||
//
|
||||
// ColecoControllerSettingsMenuItem
|
||||
//
|
||||
this.ColecoControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController;
|
||||
|
@ -2948,6 +2943,18 @@
|
|||
this.ColecoControllerSettingsMenuItem.Text = "&Controller Settings...";
|
||||
this.ColecoControllerSettingsMenuItem.Click += new System.EventHandler(this.ColecoControllerSettingsMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator35
|
||||
//
|
||||
this.toolStripSeparator35.Name = "toolStripSeparator35";
|
||||
this.toolStripSeparator35.Size = new System.Drawing.Size(250, 6);
|
||||
//
|
||||
// ColecoSkipBiosMenuItem
|
||||
//
|
||||
this.ColecoSkipBiosMenuItem.Name = "ColecoSkipBiosMenuItem";
|
||||
this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(253, 22);
|
||||
this.ColecoSkipBiosMenuItem.Text = "&Skip BIOS intro (When Applicable)";
|
||||
this.ColecoSkipBiosMenuItem.Click += new System.EventHandler(this.ColecoSkipBiosMenuItem_Click);
|
||||
//
|
||||
// N64SubMenu
|
||||
//
|
||||
this.N64SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
|
@ -3101,34 +3108,45 @@
|
|||
this.AppleDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripSeparator31});
|
||||
this.AppleDisksSubMenu.Name = "AppleDisksSubMenu";
|
||||
this.AppleDisksSubMenu.Size = new System.Drawing.Size(125, 22);
|
||||
this.AppleDisksSubMenu.Size = new System.Drawing.Size(152, 22);
|
||||
this.AppleDisksSubMenu.Text = "Disks";
|
||||
this.AppleDisksSubMenu.DropDownOpened += new System.EventHandler(this.AppleDisksSubMenu_DropDownOpened);
|
||||
//
|
||||
// toolStripSeparator31
|
||||
//
|
||||
this.toolStripSeparator31.Name = "toolStripSeparator31";
|
||||
this.toolStripSeparator31.Size = new System.Drawing.Size(57, 6);
|
||||
this.toolStripSeparator31.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// settingsToolStripMenuItem1
|
||||
//
|
||||
this.settingsToolStripMenuItem1.Name = "settingsToolStripMenuItem1";
|
||||
this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(125, 22);
|
||||
this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(152, 22);
|
||||
this.settingsToolStripMenuItem1.Text = "&Settings...";
|
||||
this.settingsToolStripMenuItem1.Click += new System.EventHandler(this.settingsToolStripMenuItem1_Click_1);
|
||||
//
|
||||
// C64SubMenu
|
||||
//
|
||||
this.C64SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.C64DisksSubMenu,
|
||||
this.C64SettingsMenuItem});
|
||||
this.C64SubMenu.Name = "C64SubMenu";
|
||||
this.C64SubMenu.Size = new System.Drawing.Size(39, 19);
|
||||
this.C64SubMenu.Text = "&C64";
|
||||
this.C64SubMenu.DropDownOpened += new System.EventHandler(this.C64SubMenu_DropDownOpened);
|
||||
//
|
||||
// C64DisksSubMenu
|
||||
//
|
||||
this.C64DisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripSeparator36});
|
||||
this.C64DisksSubMenu.Name = "C64DisksSubMenu";
|
||||
this.C64DisksSubMenu.Size = new System.Drawing.Size(152, 22);
|
||||
this.C64DisksSubMenu.Text = "Disks";
|
||||
this.C64DisksSubMenu.DropDownOpened += new System.EventHandler(this.C64DisksSubMenu_DropDownOpened);
|
||||
//
|
||||
// C64SettingsMenuItem
|
||||
//
|
||||
this.C64SettingsMenuItem.Name = "C64SettingsMenuItem";
|
||||
this.C64SettingsMenuItem.Size = new System.Drawing.Size(125, 22);
|
||||
this.C64SettingsMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.C64SettingsMenuItem.Text = "&Settings...";
|
||||
this.C64SettingsMenuItem.Click += new System.EventHandler(this.C64SettingsMenuItem_Click);
|
||||
//
|
||||
|
@ -3837,10 +3855,10 @@
|
|||
this.timerMouseIdle.Interval = 2000;
|
||||
this.timerMouseIdle.Tick += new System.EventHandler(this.timerMouseIdle_Tick);
|
||||
//
|
||||
// toolStripSeparator35
|
||||
// toolStripSeparator36
|
||||
//
|
||||
this.toolStripSeparator35.Name = "toolStripSeparator35";
|
||||
this.toolStripSeparator35.Size = new System.Drawing.Size(250, 6);
|
||||
this.toolStripSeparator36.Name = "toolStripSeparator36";
|
||||
this.toolStripSeparator36.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
|
@ -4287,5 +4305,7 @@
|
|||
private System.Windows.Forms.ToolStripMenuItem IntVControllerSettingsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem SNESControllerConfigurationMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator35;
|
||||
private System.Windows.Forms.ToolStripMenuItem C64DisksSubMenu;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator36;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ using BizHawk.Client.EmuHawk.WinFormExtensions;
|
|||
using BizHawk.Client.EmuHawk.ToolExtensions;
|
||||
using BizHawk.Emulation.Cores.Computers.AppleII;
|
||||
using BizHawk.Client.ApiHawk;
|
||||
using BizHawk.Emulation.Cores.Computers.Commodore64;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
|
@ -2388,6 +2389,41 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
#region C64
|
||||
|
||||
private void C64SubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
if (Emulator is C64)
|
||||
{
|
||||
C64DisksSubMenu.Enabled = (Emulator as C64).DiskCount > 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void C64DisksSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
{
|
||||
C64DisksSubMenu.DropDownItems.Clear();
|
||||
|
||||
if (Emulator is C64)
|
||||
{
|
||||
var c64 = Emulator as C64;
|
||||
for (int i = 0; i < c64.DiskCount; i++)
|
||||
{
|
||||
var menuItem = new ToolStripMenuItem
|
||||
{
|
||||
Name = "Disk" + (i + 1),
|
||||
Text = "Disk" + (i + 1),
|
||||
Checked = c64.CurrentDisk == i
|
||||
};
|
||||
|
||||
int dummy = i;
|
||||
menuItem.Click += (o, ev) =>
|
||||
{
|
||||
c64.SetDisk(dummy);
|
||||
};
|
||||
|
||||
C64DisksSubMenu.DropDownItems.Add(menuItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void C64SettingsMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
GenericCoreConfig.DoDialog(this, "C64 Settings");
|
||||
|
|
|
@ -2704,7 +2704,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
GlobalWin.OSD.AddMessage("Key priority set to Input over Hotkey");
|
||||
break;
|
||||
case 2:
|
||||
GlobalWin.OSD.AddMessage("Key priority set to Gamepad");
|
||||
GlobalWin.OSD.AddMessage("Key priority set to Input");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,28 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
public void FrameAdvance(IController controller, bool render, bool rendersound)
|
||||
{
|
||||
_board.Controller = controller;
|
||||
|
||||
if (controller.IsPressed("Next Disk") && !_nextPressed)
|
||||
{
|
||||
_nextPressed = true;
|
||||
IncrementDisk();
|
||||
}
|
||||
else if (controller.IsPressed("Previous Disk") && !_prevPressed)
|
||||
{
|
||||
_prevPressed = true;
|
||||
DecrementDisk();
|
||||
}
|
||||
|
||||
if (!controller.IsPressed("Next Disk"))
|
||||
{
|
||||
_nextPressed = false;
|
||||
}
|
||||
|
||||
if (!controller.IsPressed("Previous Disk"))
|
||||
{
|
||||
_prevPressed = false;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
DoCycle();
|
||||
|
|
|
@ -47,6 +47,9 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
ser.Sync("Frame", ref _frame);
|
||||
ser.Sync("IsLagFrame", ref _isLagFrame);
|
||||
ser.Sync("LagCount", ref _lagCount);
|
||||
ser.Sync("CurrentDisk", ref _currentDisk);
|
||||
ser.Sync("PreviousDiskPressed", ref _prevPressed);
|
||||
ser.Sync("NextDiskPressed", ref _nextPressed);
|
||||
ser.BeginSection("Board");
|
||||
_board.SyncState(ser);
|
||||
ser.EndSection();
|
||||
|
|
|
@ -17,6 +17,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
{
|
||||
public C64(CoreComm comm, IEnumerable<byte[]> roms, object settings, object syncSettings)
|
||||
{
|
||||
|
||||
PutSyncSettings((C64SyncSettings)syncSettings ?? new C64SyncSettings());
|
||||
PutSettings((C64Settings)settings ?? new C64Settings());
|
||||
|
||||
|
@ -25,7 +26,10 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
InputCallbacks = new InputCallbackSystem();
|
||||
|
||||
CoreComm = comm;
|
||||
Roms = roms;
|
||||
Roms = roms?.ToList() ?? new List<byte[]>();
|
||||
_currentDisk = 0;
|
||||
RomSanityCheck();
|
||||
|
||||
Init(SyncSettings.VicType, Settings.BorderType, SyncSettings.SidType, SyncSettings.TapeDriveType, SyncSettings.DiskDriveType);
|
||||
_cyclesPerFrame = _board.Vic.CyclesPerFrame;
|
||||
SetupMemoryDomains(_board.DiskDrive != null);
|
||||
|
@ -54,6 +58,30 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
ser.Register<IDriveLight>(this);
|
||||
}
|
||||
|
||||
// Currently we will require at least one rom. If multiple they MUST be all the same media type in the same format
|
||||
// Given a good enough use case we could in theory expand those requirements, but for now we need a sanity check
|
||||
private void RomSanityCheck()
|
||||
{
|
||||
if (Roms.Count == 0)
|
||||
{
|
||||
throw new NotSupportedException("Currently, a Rom is required to run this core.");
|
||||
}
|
||||
|
||||
var formats = Roms.Select(rom => C64FormatFinder.GetFormat(rom));
|
||||
|
||||
HashSet<C64Format> uniqueFormats = new HashSet<C64Format>();
|
||||
|
||||
foreach (var format in formats)
|
||||
{
|
||||
uniqueFormats.Add(format);
|
||||
}
|
||||
|
||||
if (uniqueFormats.Count > 1)
|
||||
{
|
||||
throw new NotSupportedException("Currently Roms must all be of the same type.");
|
||||
}
|
||||
}
|
||||
|
||||
// IBoardInfo
|
||||
public string BoardName
|
||||
{
|
||||
|
@ -83,7 +111,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
|
||||
private readonly int _cyclesPerFrame;
|
||||
|
||||
public IEnumerable<byte[]> Roms { get; private set; }
|
||||
private List<byte[]> Roms = new List<byte[]>();
|
||||
|
||||
private static readonly ControllerDefinition C64ControllerDefinition = new ControllerDefinition
|
||||
{
|
||||
|
@ -97,7 +125,8 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
"Key Run/Stop", "Key Lck", "Key A", "Key S", "Key D", "Key F", "Key G", "Key H", "Key J", "Key K", "Key L", "Key Colon", "Key Semicolon", "Key Equal", "Key Return",
|
||||
"Key Commodore", "Key Left Shift", "Key Z", "Key X", "Key C", "Key V", "Key B", "Key N", "Key M", "Key Comma", "Key Period", "Key Slash", "Key Right Shift", "Key Cursor Up/Down", "Key Cursor Left/Right",
|
||||
"Key Space",
|
||||
"Key F1", "Key F3", "Key F5", "Key F7"
|
||||
"Key F1", "Key F3", "Key F5", "Key F7",
|
||||
"Previous Disk", "Next Disk"
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -107,6 +136,52 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
|
||||
private int _frame;
|
||||
|
||||
// Disk stuff
|
||||
|
||||
private bool _nextPressed;
|
||||
private bool _prevPressed;
|
||||
private int _currentDisk;
|
||||
public int CurrentDisk => _currentDisk;
|
||||
public int DiskCount => Roms.Count;
|
||||
|
||||
private void IncrementDisk()
|
||||
{
|
||||
_currentDisk++;
|
||||
if (CurrentDisk >= Roms.Count)
|
||||
{
|
||||
_currentDisk = 0;
|
||||
}
|
||||
|
||||
InitDisk();
|
||||
}
|
||||
|
||||
private void DecrementDisk()
|
||||
{
|
||||
_currentDisk--;
|
||||
if (_currentDisk < 0)
|
||||
{
|
||||
_currentDisk = Roms.Count - 1;
|
||||
}
|
||||
|
||||
InitDisk();
|
||||
}
|
||||
|
||||
private void InitDisk()
|
||||
{
|
||||
InitMedia(Roms[_currentDisk]);
|
||||
}
|
||||
|
||||
public void SetDisk(int discNum)
|
||||
{
|
||||
if (_currentDisk != discNum)
|
||||
{
|
||||
_currentDisk = discNum;
|
||||
InitDisk();
|
||||
}
|
||||
}
|
||||
|
||||
/**********************************************/
|
||||
|
||||
private ISoundProvider _soundProvider;
|
||||
|
||||
private void DoCycle()
|
||||
|
@ -149,37 +224,36 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
private void Init(VicType initRegion, BorderType borderType, SidType sidType, TapeDriveType tapeDriveType, DiskDriveType diskDriveType)
|
||||
{
|
||||
// Force certain drive types to be available depending on ROM type
|
||||
foreach (var rom in Roms)
|
||||
var rom = Roms.First();
|
||||
|
||||
switch (C64FormatFinder.GetFormat(rom))
|
||||
{
|
||||
switch (C64FormatFinder.GetFormat(rom))
|
||||
{
|
||||
case C64Format.D64:
|
||||
case C64Format.G64:
|
||||
case C64Format.X64:
|
||||
if (diskDriveType == DiskDriveType.None)
|
||||
diskDriveType = DiskDriveType.Commodore1541;
|
||||
break;
|
||||
case C64Format.T64:
|
||||
case C64Format.TAP:
|
||||
if (tapeDriveType == TapeDriveType.None)
|
||||
{
|
||||
tapeDriveType = TapeDriveType.Commodore1530;
|
||||
}
|
||||
break;
|
||||
case C64Format.CRT:
|
||||
// Nothing required.
|
||||
break;
|
||||
case C64Format.Unknown:
|
||||
if (rom.Length >= 0xFE00)
|
||||
{
|
||||
throw new Exception("The image format is not known, and too large to be used as a PRG.");
|
||||
}
|
||||
if (diskDriveType == DiskDriveType.None)
|
||||
diskDriveType = DiskDriveType.Commodore1541;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("The image format is not yet supported by the Commodore 64 core.");
|
||||
}
|
||||
case C64Format.D64:
|
||||
case C64Format.G64:
|
||||
case C64Format.X64:
|
||||
if (diskDriveType == DiskDriveType.None)
|
||||
diskDriveType = DiskDriveType.Commodore1541;
|
||||
break;
|
||||
case C64Format.T64:
|
||||
case C64Format.TAP:
|
||||
if (tapeDriveType == TapeDriveType.None)
|
||||
{
|
||||
tapeDriveType = TapeDriveType.Commodore1530;
|
||||
}
|
||||
break;
|
||||
case C64Format.CRT:
|
||||
// Nothing required.
|
||||
break;
|
||||
case C64Format.Unknown:
|
||||
if (rom.Length >= 0xFE00)
|
||||
{
|
||||
throw new Exception("The image format is not known, and too large to be used as a PRG.");
|
||||
}
|
||||
if (diskDriveType == DiskDriveType.None)
|
||||
diskDriveType = DiskDriveType.Commodore1541;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("The image format is not yet supported by the Commodore 64 core.");
|
||||
}
|
||||
|
||||
_board = new Motherboard(this, initRegion, borderType, sidType, tapeDriveType, diskDriveType);
|
||||
|
@ -187,62 +261,59 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
_board.Init();
|
||||
}
|
||||
|
||||
private void InitMedia()
|
||||
private void InitMedia(byte[] rom)
|
||||
{
|
||||
foreach (var rom in Roms)
|
||||
switch (C64FormatFinder.GetFormat(rom))
|
||||
{
|
||||
switch (C64FormatFinder.GetFormat(rom))
|
||||
{
|
||||
case C64Format.D64:
|
||||
var d64 = D64.Read(rom);
|
||||
if (d64 != null)
|
||||
case C64Format.D64:
|
||||
var d64 = D64.Read(rom);
|
||||
if (d64 != null)
|
||||
{
|
||||
_board.DiskDrive.InsertMedia(d64);
|
||||
}
|
||||
break;
|
||||
case C64Format.G64:
|
||||
var g64 = G64.Read(rom);
|
||||
if (g64 != null)
|
||||
{
|
||||
_board.DiskDrive.InsertMedia(g64);
|
||||
}
|
||||
break;
|
||||
case C64Format.CRT:
|
||||
var cart = CartridgeDevice.Load(rom);
|
||||
if (cart != null)
|
||||
{
|
||||
_board.CartPort.Connect(cart);
|
||||
}
|
||||
break;
|
||||
case C64Format.TAP:
|
||||
var tape = Tape.Load(rom);
|
||||
if (tape != null)
|
||||
{
|
||||
_board.TapeDrive.Insert(tape);
|
||||
}
|
||||
break;
|
||||
case C64Format.Unknown:
|
||||
var prgDisk = new DiskBuilder
|
||||
{
|
||||
Entries = new List<DiskBuilder.Entry>
|
||||
{
|
||||
_board.DiskDrive.InsertMedia(d64);
|
||||
}
|
||||
break;
|
||||
case C64Format.G64:
|
||||
var g64 = G64.Read(rom);
|
||||
if (g64 != null)
|
||||
{
|
||||
_board.DiskDrive.InsertMedia(g64);
|
||||
}
|
||||
break;
|
||||
case C64Format.CRT:
|
||||
var cart = CartridgeDevice.Load(rom);
|
||||
if (cart != null)
|
||||
{
|
||||
_board.CartPort.Connect(cart);
|
||||
}
|
||||
break;
|
||||
case C64Format.TAP:
|
||||
var tape = Tape.Load(rom);
|
||||
if (tape != null)
|
||||
{
|
||||
_board.TapeDrive.Insert(tape);
|
||||
}
|
||||
break;
|
||||
case C64Format.Unknown:
|
||||
var prgDisk = new DiskBuilder
|
||||
{
|
||||
Entries = new List<DiskBuilder.Entry>
|
||||
new DiskBuilder.Entry
|
||||
{
|
||||
new DiskBuilder.Entry
|
||||
{
|
||||
Closed = true,
|
||||
Data = rom,
|
||||
Locked = false,
|
||||
Name = "PRG",
|
||||
RecordLength = 0,
|
||||
Type = DiskBuilder.FileType.Program
|
||||
}
|
||||
Closed = true,
|
||||
Data = rom,
|
||||
Locked = false,
|
||||
Name = "PRG",
|
||||
RecordLength = 0,
|
||||
Type = DiskBuilder.FileType.Program
|
||||
}
|
||||
}.Build();
|
||||
if (prgDisk != null)
|
||||
{
|
||||
_board.DiskDrive.InsertMedia(prgDisk);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}.Build();
|
||||
if (prgDisk != null)
|
||||
{
|
||||
_board.DiskDrive.InsertMedia(prgDisk);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -265,7 +336,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
|
||||
private void HardReset()
|
||||
{
|
||||
InitMedia();
|
||||
InitMedia(Roms[_currentDisk]);
|
||||
_board.HardReset();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue