@ -1,12 +1,11 @@
using System ;
using System.Collections.Generic ;
using System.IO ;
using System.Linq ;
using BizHawk.Common ;
using BizHawk.Common.BufferExtensions ;
using BizHawk.Emulation.Common ;
using BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy ;
using BizHawk.Emulation.Cores.Properties ;
namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
{
@ -163,35 +162,35 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
if ( DeterministicEmulation )
{
int [ ] rtcRegs = new int [ 11 ] ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh ] = 0 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh ] = 0 ;
if ( _syncSettings . InternalRTCOverflow )
{
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh ] | = 0x80 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh ] | = 0x80 ;
}
if ( _syncSettings . InternalRTCHalt )
{
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh ] | = 0x40 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh ] | = 0x40 ;
}
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh ] | = _syncSettings . InternalRTCDays > > 8 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dl ] = _syncSettings . InternalRTCDays & 0xFF ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. H ] = ( _syncSettings . InternalRTCHours < 0 ) ? ( _syncSettings . InternalRTCHours + 0x20 ) : _syncSettings . InternalRTCHours ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. M ] = ( _syncSettings . InternalRTCMinutes < 0 ) ? ( _syncSettings . InternalRTCMinutes + 0x40 ) : _syncSettings . InternalRTCMinutes ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. S ] = ( _syncSettings . InternalRTCSeconds < 0 ) ? ( _syncSettings . InternalRTCSeconds + 0x40 ) : _syncSettings . InternalRTCSeconds ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. C ] = _syncSettings . InternalRTCCycles ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh_L ] = 0 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh ] | = _syncSettings . InternalRTCDays > > 8 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dl ] = _syncSettings . InternalRTCDays & 0xFF ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. H ] = ( _syncSettings . InternalRTCHours < 0 ) ? ( _syncSettings . InternalRTCHours + 0x20 ) : _syncSettings . InternalRTCHours ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. M ] = ( _syncSettings . InternalRTCMinutes < 0 ) ? ( _syncSettings . InternalRTCMinutes + 0x40 ) : _syncSettings . InternalRTCMinutes ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. S ] = ( _syncSettings . InternalRTCSeconds < 0 ) ? ( _syncSettings . InternalRTCSeconds + 0x40 ) : _syncSettings . InternalRTCSeconds ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. C ] = _syncSettings . InternalRTCCycles ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh_L ] = 0 ;
if ( _syncSettings . LatchedRTCOverflow )
{
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh_L ] | = 0x80 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh_L ] | = 0x80 ;
}
if ( _syncSettings . LatchedRTCHalt )
{
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh_L ] | = 0x40 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh_L ] | = 0x40 ;
}
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dh_L ] | = _syncSettings . LatchedRTCDays > > 8 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. Dl_L ] = _syncSettings . LatchedRTCDays & 0xFF ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. H_L ] = _syncSettings . LatchedRTCHours ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. M_L ] = _syncSettings . LatchedRTCMinutes ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic i es. S_L ] = _syncSettings . LatchedRTCSeconds ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dh_L ] | = _syncSettings . LatchedRTCDays > > 8 ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. Dl_L ] = _syncSettings . LatchedRTCDays & 0xFF ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. H_L ] = _syncSettings . LatchedRTCHours ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. M_L ] = _syncSettings . LatchedRTCMinutes ;
rtcRegs [ ( int ) LibGambatte . RtcRegIndic es. S_L ] = _syncSettings . LatchedRTCSeconds ;
LibGambatte . gambatte_setrtcregs ( GambatteState , rtcRegs ) ;
}
@ -234,7 +233,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
/// <summary>
/// keep a copy of the input callback delegate so it doesn't get GCed
/// </summary>
private LibGambatte . InputGetter InputCallback ;
private readonly LibGambatte . InputGetter InputCallback ;
/// <summary>
/// whatever keys are currently depressed
@ -414,32 +413,32 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
private static string MapperName ( byte [ ] romdata )
{
switch ( romdata [ 0x147 ] )
return ( romdata [ 0x147 ] ) switch
{
case 0x00 : return "Plain ROM" ; // = PLAIN; break;
case 0x01 : return "MBC1 ROM" ; // = MBC1; break;
case 0x02 : return "MBC1 ROM+RAM" ; // = MBC1; break;
case 0x03 : return "MBC1 ROM+RAM+BATTERY" ; // = MBC1; break;
case 0x05 : return "MBC2 ROM" ; // = MBC2; break;
case 0x06 : return "MBC2 ROM+BATTERY" ; // = MBC2; break;
case 0x08 : return "Plain ROM+RAM" ; // = PLAIN; break;
case 0x09 : return "Plain ROM+RAM+BATTERY" ; // = PLAIN; break;
case 0x0F : return "MBC3 ROM+TIMER+BATTERY" ; // = MBC3; break;
case 0x10 : return "MBC3 ROM+TIMER+RAM+BATTERY" ; // = MBC3; break;
case 0x11 : return "MBC3 ROM" ; // = MBC3; break;
case 0x12 : return "MBC3 ROM+RAM" ; // = MBC3; break;
case 0x13 : return "MBC3 ROM+RAM+BATTERY" ; // = MBC3; break;
case 0x19 : return "MBC5 ROM" ; // = MBC5; break;
case 0x1A : return "MBC5 ROM+RAM" ; // = MBC5; break;
case 0x1B : return "MBC5 ROM+RAM+BATTERY" ; // = MBC5; break;
case 0x1C : return "MBC5 ROM+RUMBLE" ; // = MBC5; break;
case 0x1D : return "MBC5 ROM+RUMBLE+RAM" ; // = MBC5; break;
case 0x1E : return "MBC5 ROM+RUMBLE+RAM+BATTERY" ; // = MBC5; break;
case 0xFC : return "Pocket Camera ROM+RAM+BATTERY" ; // = POCKETCAMERA; break
case 0xFE : return "HuC3 ROM+RAM+BATTERY" ; // = HUC3; break;
case 0xFF : return "HuC1 ROM+RAM+BATTERY" ; // = HUC1; break;
default : return "UNKNOWN" ;
}
0x00 = > "Plain ROM" ,
0x01 = > "MBC1 ROM" ,
0x02 = > "MBC1 ROM+RAM" ,
0x03 = > "MBC1 ROM+RAM+BATTERY" ,
0x05 = > "MBC2 ROM" ,
0x06 = > "MBC2 ROM+BATTERY" ,
0x08 = > "Plain ROM+RAM" ,
0x09 = > "Plain ROM+RAM+BATTERY" ,
0x0F = > "MBC3 ROM+TIMER+BATTERY" ,
0x10 = > "MBC3 ROM+TIMER+RAM+BATTERY" ,
0x11 = > "MBC3 ROM" ,
0x12 = > "MBC3 ROM+RAM" ,
0x13 = > "MBC3 ROM+RAM+BATTERY" ,
0x19 = > "MBC5 ROM" ,
0x1A = > "MBC5 ROM+RAM" ,
0x1B = > "MBC5 ROM+RAM+BATTERY" ,
0x1C = > "MBC5 ROM+RUMBLE" ,
0x1D = > "MBC5 ROM+RUMBLE+RAM" ,
0x1E = > "MBC5 ROM+RUMBLE+RAM+BATTERY" ,
0xFC = > "Pocket Camera ROM+RAM+BATTERY" ,
0xFE = > "HuC3 ROM+RAM+BATTERY" ,
0xFF = > "HuC1 ROM+RAM+BATTERY" ,
_ = > "UNKNOWN" ,
} ;
}
/// <summary>
@ -463,30 +462,30 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
case 0x08 : break ;
case 0x09 : break ;
case 0x0 b : throw new UnsupportedGameException ( "\"MM01\" Mapper not supported!" ) ;
case 0x0 c : throw new UnsupportedGameException ( "\"MM01\" Mapper not supported!" ) ;
case 0x0 d : throw new UnsupportedGameException ( "\"MM01\" Mapper not supported!" ) ;
case 0x0 B : throw new UnsupportedGameException ( "\"MM01\" Mapper not supported!" ) ;
case 0x0 C : throw new UnsupportedGameException ( "\"MM01\" Mapper not supported!" ) ;
case 0x0 D : throw new UnsupportedGameException ( "\"MM01\" Mapper not supported!" ) ;
case 0x0 f : break ;
case 0x0 F : break ;
case 0x10 : break ;
case 0x11 : break ;
case 0x12 : break ;
case 0x13 : break ;
case 0x19 : break ;
case 0x1 a : break ;
case 0x1 b : break ;
case 0x1 c : break ; // rumble
case 0x1 d : break ; // rumble
case 0x1 e : break ; // rumble
case 0x1 A : break ;
case 0x1 B : break ;
case 0x1 C : break ; // rumble
case 0x1 D : break ; // rumble
case 0x1 E : break ; // rumble
case 0x20 : throw new UnsupportedGameException ( "\"MBC6\" Mapper not supported!" ) ;
case 0x22 : throw new UnsupportedGameException ( "\"MBC7\" Mapper not supported!" ) ;
case 0x fc : break ;
case 0x fd : throw new UnsupportedGameException ( "\"Bandai TAMA5\" Mapper not supported!" ) ;
case 0x fe : break ;
case 0x ff : break ;
case 0x FC : break ;
case 0x FD : throw new UnsupportedGameException ( "\"Bandai TAMA5\" Mapper not supported!" ) ;
case 0x FE : break ;
case 0x FF : break ;
default : throw new UnsupportedGameException ( $"Unknown mapper: {romdata[0x147]:x2}" ) ;
}
}
@ -499,244 +498,126 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
titleHash + = romdata [ 0x134 + i ] ;
}
switch ( titleHash & 0xFF )
return ( titleHash & 0xFF ) switch
{
case 0x01 :
case 0x10 :
case 0x29 :
case 0x52 :
case 0x5D :
case 0x68 :
case 0x6D :
case 0xF6 :
return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ;
case 0x0C :
case 0x16 :
case 0x35 :
case 0x67 :
case 0x75 :
case 0x92 :
case 0x99 :
case 0xB7 :
return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
case 0x14 :
return new int [ ] { 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x15 :
case 0xDB :
return new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 } ;
case 0x17 :
case 0x8B :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0x19 :
return new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x1D :
return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 } ;
case 0x34 :
return new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x36 :
return new int [ ] { 0x52DE00 , 0xFF8400 , 0xFFFF00 , 0xFFFFFF , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x39 :
case 0x43 :
case 0x97 :
return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0x3C :
return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x3D :
return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x3E :
case 0xE0 :
return new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
case 0x49 :
case 0x5C :
return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ;
case 0x4B :
case 0x90 :
case 0x9A :
case 0xBD :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x4E :
return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFFFF7B , 0x0084FF , 0xFF0000 } ;
case 0x58 :
return new int [ ] { 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 , 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 , 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 } ;
case 0x59 :
return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
case 0x69 :
case 0xF2 :
return new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
case 0x6B :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
case 0x6F :
return new int [ ] { 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 , 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 , 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 } ;
case 0x70 :
return new int [ ] { 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x00FF00 , 0x318400 , 0x004A00 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0x71 :
case 0xFF :
return new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 } ;
case 0x86 :
case 0xA8 :
return new int [ ] { 0xFFFF9C , 0x94B5FF , 0x639473 , 0x003A3A , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x88 :
return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 } ;
case 0x8C :
return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 } ;
case 0x95 :
return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
case 0x9C :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 } ;
case 0x9D :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
case 0xA2 :
case 0xF7 :
return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0xAA :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 } ;
case 0xC9 :
return new int [ ] { 0xFFFFCE , 0x63EFEF , 0x9C8431 , 0x5A5A5A , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0xCE :
case 0xD1 :
case 0xF0 :
return new int [ ] { 0x6BFF00 , 0xFFFFFF , 0xFF524A , 0x000000 , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
case 0xE8 :
return new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ;
case 0x0D :
switch ( romdata [ 0x137 ] )
{
case 0x45 :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 } ;
case 0x52 :
return new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x18 :
switch ( romdata [ 0x137 ] )
{
case 0x4B :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x27 :
switch ( romdata [ 0x137 ] )
{
case 0x42 :
return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ;
case 0x4E :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x28 :
switch ( romdata [ 0x137 ] )
{
case 0x41 :
return new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ;
case 0x46 :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x46 :
switch ( romdata [ 0x137 ] )
{
case 0x45 :
return new int [ ] { 0xB5B5FF , 0xFFFF94 , 0xAD5A42 , 0x000000 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A } ;
case 0x52 :
return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFF00 , 0xFF0000 , 0x630000 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x61 :
switch ( romdata [ 0x137 ] )
{
case 0x41 :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0x45 :
return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x66 :
switch ( romdata [ 0x137 ] )
{
case 0x45 :
return new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0x6A :
switch ( romdata [ 0x137 ] )
{
case 0x49 :
return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x4B :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0xA5 :
switch ( romdata [ 0x137 ] )
{
case 0x41 :
return new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ;
case 0x52 :
return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0xB3 :
switch ( romdata [ 0x137 ] )
{
case 0x42 :
return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ;
case 0x52 :
return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
case 0x55 :
return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0xBF :
switch ( romdata [ 0x137 ] )
{
case 0x20 :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x43 :
return new int [ ] { 0x6BFF00 , 0xFFFFFF , 0xFF524A , 0x000000 , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0xC6 :
switch ( romdata [ 0x137 ] )
{
case 0x41 :
return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0xD3 :
switch ( romdata [ 0x137 ] )
{
case 0x49 :
return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
case 0x52 :
return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
case 0xF4 :
switch ( romdata [ 0x137 ] )
{
case 0x20 :
return new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
case 0x2D :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
default :
return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
}
0x01 or 0x10 or 0x29 or 0x52 or 0x5D or 0x68 or 0x6D or 0xF6 = > new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ,
0x0C or 0x16 or 0x35 or 0x67 or 0x75 or 0x92 or 0x99 or 0xB7 = > new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ,
0x14 = > new int [ ] { 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x15 or 0xDB = > new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 } ,
0x17 or 0x8B = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0x19 = > new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x1D = > new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 } ,
0x34 = > new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x36 = > new int [ ] { 0x52DE00 , 0xFF8400 , 0xFFFF00 , 0xFFFFFF , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x39 or 0x43 or 0x97 = > new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0x3C = > new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x3D = > new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x3E or 0xE0 = > new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
0x49 or 0x5C = > new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ,
0x4B or 0x90 or 0x9A or 0xBD = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x4E = > new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFFFF7B , 0x0084FF , 0xFF0000 } ,
0x58 = > new int [ ] { 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 , 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 , 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 } ,
0x59 = > new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
0x69 or 0xF2 = > new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
0x6B = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
0x6F = > new int [ ] { 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 , 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 , 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 } ,
0x70 = > new int [ ] { 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x00FF00 , 0x318400 , 0x004A00 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0x71 or 0xFF = > new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 } ,
0x86 or 0xA8 = > new int [ ] { 0xFFFF9C , 0x94B5FF , 0x639473 , 0x003A3A , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x88 = > new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 } ,
0x8C = > new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 } ,
0x95 = > new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
0x9C = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 } ,
0x9D = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ,
0xA2 or 0xF7 = > new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0xAA = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 } ,
0xC9 = > new int [ ] { 0xFFFFCE , 0x63EFEF , 0x9C8431 , 0x5A5A5A , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0xCE or 0xD1 or 0xF0 = > new int [ ] { 0x6BFF00 , 0xFFFFFF , 0xFF524A , 0x000000 , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ,
0xE8 = > new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ,
0x0D = > ( romdata [ 0x137 ] ) switch
{
0x45 = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 } ,
0x52 = > new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x18 = > ( romdata [ 0x137 ] ) switch
{
0x4B = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x27 = > ( romdata [ 0x137 ] ) switch
{
0x42 = > new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ,
0x4E = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x28 = > ( romdata [ 0x137 ] ) switch
{
0x41 = > new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ,
0x46 = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x46 = > ( romdata [ 0x137 ] ) switch
{
0x45 = > new int [ ] { 0xB5B5FF , 0xFFFF94 , 0xAD5A42 , 0x000000 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A } ,
0x52 = > new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFF00 , 0xFF0000 , 0x630000 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x61 = > ( romdata [ 0x137 ] ) switch
{
0x41 = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0x45 = > new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x66 = > ( romdata [ 0x137 ] ) switch
{
0x45 = > new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0x6A = > ( romdata [ 0x137 ] ) switch
{
0x49 = > new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x4B = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0xA5 = > ( romdata [ 0x137 ] ) switch
{
0x41 = > new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ,
0x52 = > new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0xB3 = > ( romdata [ 0x137 ] ) switch
{
0x42 = > new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ,
0x52 = > new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
0x55 = > new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0xBF = > ( romdata [ 0x137 ] ) switch
{
0x20 = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x43 = > new int [ ] { 0x6BFF00 , 0xFFFFFF , 0xFF524A , 0x000000 , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0xC6 = > ( romdata [ 0x137 ] ) switch
{
0x41 = > new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0xD3 = > ( romdata [ 0x137 ] ) switch
{
0x49 = > new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
0x52 = > new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
0xF4 = > ( romdata [ 0x137 ] ) switch
{
0x20 = > new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
0x2D = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ,
_ = > new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ,
} ;
}
public IGPUMemoryAreas LockGPU ( )
@ -797,12 +678,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
}
else if ( line = = - 2 )
{
callback ( LibGambatte . gambatte_cpuread ( GambatteState , 0x ff 40) ) ;
callback ( LibGambatte . gambatte_cpuread ( GambatteState , 0x FF 40) ) ;
}
}
else if ( line > = 0 & & line < = 153 )
{
scanlinecb = ( ) = > callback ( LibGambatte . gambatte_cpuread ( GambatteState , 0x ff 40) ) ;
scanlinecb = ( ) = > callback ( LibGambatte . gambatte_cpuread ( GambatteState , 0x FF 40) ) ;
LibGambatte . gambatte_setscanlinecallback ( GambatteState , scanlinecb , line ) ;
}
else