2017-05-12 19:32:56 +00:00
using System.ComponentModel ;
using BizHawk.Emulation.Common ;
2016-03-10 01:53:02 +00:00
namespace BizHawk.Emulation.Cores.Computers.Commodore64
{
// adelikat: changing settings to default object until there are actually settings, as the ui depends on it to know if there are any settings avaialable
public partial class C64 : ISettable < C64 . C64Settings , C64 . C64SyncSettings >
{
public C64Settings GetSettings ( )
{
return Settings . Clone ( ) ;
}
public C64SyncSettings GetSyncSettings ( )
{
return SyncSettings . Clone ( ) ;
}
public bool PutSettings ( C64Settings o )
{
Settings = o ;
return false ;
}
public bool PutSyncSettings ( C64SyncSettings o )
{
SyncSettings = o ;
return false ;
}
internal C64Settings Settings { get ; private set ; }
internal C64SyncSettings SyncSettings { get ; private set ; }
public class C64Settings
{
2017-04-24 13:35:05 +00:00
[DisplayName("Border type")]
2018-08-21 19:30:04 +00:00
[ Description ( "Select how to show the border area\n" +
"NORMAL:\t Horizontal and Vertical border both set to 32 pixels (although horizontal will appear narrower due to pixel density)\n" +
"SMALL PROPORTIONAL:\t Horizontal and Vertical border both set to 16 pixels (although horizontal will appear narrower due to pixel density)\n" +
"SMALL FIXED:\t Horizontal border is set to 16 pixels and vertical is made slightly smaller so as to appear horizontal and vertical are the same after pixel density has been applied\n" +
"NONE:\t Only the pixel buffer is rendered"
) ]
2017-04-24 13:35:05 +00:00
[DefaultValue(BorderType.SmallProportional)]
public BorderType BorderType { get ; set ; }
2016-03-10 01:53:02 +00:00
public C64Settings Clone ( )
{
return ( C64Settings ) MemberwiseClone ( ) ;
}
public C64Settings ( )
{
BizHawk . Common . SettingsUtil . SetDefaultValues ( this ) ;
}
}
public class C64SyncSettings
{
[DisplayName("VIC type")]
2018-02-10 13:53:25 +00:00
[ Description ( "Set the type of video chip to use\n" +
"PAL: ~50hz. All PAL games will expect this configuration.\n" +
"NTSC: ~60hz.This is the most common NTSC configuration. Every NTSC game should work with this configuration.\n" +
"NTSCOld: ~60hz.This was used in the very earliest systems and will exhibit problems on most modern games.\n" +
"Drean: ~60hz.This was manufactured for a very specific market and is not very compatible with timing sensitive games.\n" ) ]
2016-03-10 01:53:02 +00:00
[DefaultValue(VicType.Pal)]
public VicType VicType { get ; set ; }
2017-04-24 13:35:05 +00:00
[DisplayName("SID type")]
2018-02-10 13:53:25 +00:00
[ Description ( "Set the type of sound chip to use\n" +
"OldR2, OldR3, OldR4AR: Original 6581 SID chip.\n" +
"NewR5: Updated 8580 SID chip.\n" +
"" ) ]
2017-04-24 13:35:05 +00:00
[DefaultValue(SidType.OldR2)]
public SidType SidType { get ; set ; }
2016-03-10 01:53:02 +00:00
2017-04-24 13:35:05 +00:00
[DisplayName("Tape drive type")]
2018-02-10 13:53:25 +00:00
[ Description ( "Set the type of tape drive attached\n" +
"1531: Original Datasette device." ) ]
2017-04-24 13:35:05 +00:00
[DefaultValue(TapeDriveType.None)]
public TapeDriveType TapeDriveType { get ; set ; }
2016-03-10 01:53:02 +00:00
2017-04-24 13:35:05 +00:00
[DisplayName("Disk drive type")]
2018-02-10 13:53:25 +00:00
[ Description ( "Set the type of disk drive attached\n" +
"1541: Original disk drive and ROM.\n" +
"1541 - II: Improved model with some ROM bugfixes." ) ]
2017-04-24 13:35:05 +00:00
[DefaultValue(DiskDriveType.None)]
public DiskDriveType DiskDriveType { get ; set ; }
2016-03-10 01:53:02 +00:00
2017-04-24 13:35:05 +00:00
public C64SyncSettings Clone ( )
2016-03-10 01:53:02 +00:00
{
return ( C64SyncSettings ) MemberwiseClone ( ) ;
}
public C64SyncSettings ( )
{
BizHawk . Common . SettingsUtil . SetDefaultValues ( this ) ;
}
}
public enum VicType
{
Pal , Ntsc , NtscOld , Drean
}
2017-04-24 13:35:05 +00:00
public enum CiaType
{
Pal , Ntsc , PalRevA , NtscRevA
}
public enum BorderType
{
2018-12-06 13:42:00 +00:00
None , SmallProportional , SmallFixed , Normal , Full
2017-04-24 13:35:05 +00:00
}
public enum SidType
{
OldR2 , OldR3 , OldR4AR , NewR5
}
public enum TapeDriveType
{
None , Commodore1530
}
public enum DiskDriveType
{
None , Commodore1541 , Commodore1541II
}
2016-03-10 01:53:02 +00:00
}
2015-09-28 21:52:23 +00:00
}