@@ -127,6 +127,16 @@ public Gameboy(CoreComm comm, GameInfo game, byte[] file, Gameboy.GambatteSettin
127
127
string romname = System . Text . Encoding . ASCII . GetString ( buff ) ;
128
128
Console . WriteLine ( "Core reported rom name: {0}" , romname ) ;
129
129
130
+ if ( ! _syncSettings . EnableBIOS && IsCgb && IsCGBDMGMode ( ) ) // without a bios, we need to set the palette for cgbdmg ourselves
131
+ {
132
+ int [ ] cgbDmgColors = new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
133
+ if ( file [ 0x14B ] == 0x01 || ( file [ 0x14B ] == 0x33 && file [ 0x144 ] == '0' && file [ 0x145 ] == '1' ) ) // Nintendo licencees get special palettes
134
+ {
135
+ cgbDmgColors = ColorsFromTitleHash ( file ) ;
136
+ }
137
+ ChangeDMGColors ( cgbDmgColors ) ;
138
+ }
139
+
130
140
if ( ! DeterministicEmulation && _syncSettings . RealTimeRTC )
131
141
{
132
142
LibGambatte . gambatte_settimemode ( GambatteState , false ) ;
@@ -392,10 +402,6 @@ private static void ThrowExceptionForBadRom(byte[] romdata)
392
402
case 0x12 : break ;
393
403
case 0x13 : break ;
394
404
395
- case 0x15 : throw new UnsupportedGameException ( "\" MBC4\" Mapper not supported!" ) ;
396
- case 0x16 : throw new UnsupportedGameException ( "\" MBC4\" Mapper not supported!" ) ;
397
- case 0x17 : throw new UnsupportedGameException ( "\" MBC4\" Mapper not supported!" ) ;
398
-
399
405
case 0x19 : break ;
400
406
case 0x1a : break ;
401
407
case 0x1b : break ;
@@ -414,6 +420,254 @@ private static void ThrowExceptionForBadRom(byte[] romdata)
414
420
}
415
421
}
416
422
423
+ private static int [ ] ColorsFromTitleHash ( byte [ ] romdata )
424
+ {
425
+ int titleHash = 0 ;
426
+ for ( int i = 0 ; i < 16 ; i ++ )
427
+ {
428
+ titleHash += romdata [ 0x134 + i ] ;
429
+ }
430
+
431
+ switch ( titleHash & 0xFF )
432
+ {
433
+ case 0x01 :
434
+ case 0x10 :
435
+ case 0x29 :
436
+ case 0x52 :
437
+ case 0x5D :
438
+ case 0x68 :
439
+ case 0x6D :
440
+ case 0xF6 :
441
+ return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ;
442
+ case 0x0C :
443
+ case 0x16 :
444
+ case 0x35 :
445
+ case 0x67 :
446
+ case 0x75 :
447
+ case 0x92 :
448
+ case 0x99 :
449
+ case 0xB7 :
450
+ return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
451
+ case 0x14 :
452
+ return new int [ ] { 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
453
+ case 0x15 :
454
+ case 0xDB :
455
+ return new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 } ;
456
+ case 0x17 :
457
+ case 0x8B :
458
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
459
+ case 0x19 :
460
+ return new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
461
+ case 0x1D :
462
+ return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 } ;
463
+ case 0x34 :
464
+ return new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
465
+ case 0x36 :
466
+ return new int [ ] { 0x52DE00 , 0xFF8400 , 0xFFFF00 , 0xFFFFFF , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
467
+ case 0x39 :
468
+ case 0x43 :
469
+ case 0x97 :
470
+ return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
471
+ case 0x3C :
472
+ return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
473
+ case 0x3D :
474
+ return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
475
+ case 0x3E :
476
+ case 0xE0 :
477
+ return new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
478
+ case 0x49 :
479
+ case 0x5C :
480
+ return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ;
481
+ case 0x4B :
482
+ case 0x90 :
483
+ case 0x9A :
484
+ case 0xBD :
485
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
486
+ case 0x4E :
487
+ return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFFFF7B , 0x0084FF , 0xFF0000 } ;
488
+ case 0x58 :
489
+ return new int [ ] { 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 , 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 , 0xFFFFFF , 0xA5A5A5 , 0x525252 , 0x000000 } ;
490
+ case 0x59 :
491
+ return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
492
+ case 0x69 :
493
+ case 0xF2 :
494
+ return new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
495
+ case 0x6B :
496
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
497
+ case 0x6F :
498
+ return new int [ ] { 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 , 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 , 0xFFFFFF , 0xFFCE00 , 0x9C6300 , 0x000000 } ;
499
+ case 0x70 :
500
+ return new int [ ] { 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x00FF00 , 0x318400 , 0x004A00 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
501
+ case 0x71 :
502
+ case 0xFF :
503
+ return new int [ ] { 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFF9C00 , 0xFF0000 , 0x000000 } ;
504
+ case 0x86 :
505
+ case 0xA8 :
506
+ return new int [ ] { 0xFFFF9C , 0x94B5FF , 0x639473 , 0x003A3A , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
507
+ case 0x88 :
508
+ return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 } ;
509
+ case 0x8C :
510
+ return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 } ;
511
+ case 0x95 :
512
+ return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
513
+ case 0x9C :
514
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 } ;
515
+ case 0x9D :
516
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
517
+ case 0xA2 :
518
+ case 0xF7 :
519
+ return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
520
+ case 0xAA :
521
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 } ;
522
+ case 0xC9 :
523
+ return new int [ ] { 0xFFFFCE , 0x63EFEF , 0x9C8431 , 0x5A5A5A , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
524
+ case 0xCE :
525
+ case 0xD1 :
526
+ case 0xF0 :
527
+ return new int [ ] { 0x6BFF00 , 0xFFFFFF , 0xFF524A , 0x000000 , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
528
+ case 0xE8 :
529
+ return new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ;
530
+ case 0x0D :
531
+ switch ( romdata [ 0x137 ] )
532
+ {
533
+ case 0x45 :
534
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 } ;
535
+ case 0x52 :
536
+ return new int [ ] { 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0xFFFF00 , 0xFF0000 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
537
+ default :
538
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
539
+ }
540
+ case 0x18 :
541
+ switch ( romdata [ 0x137 ] )
542
+ {
543
+ case 0x4B :
544
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
545
+ default :
546
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
547
+ }
548
+ case 0x27 :
549
+ switch ( romdata [ 0x137 ] )
550
+ {
551
+ case 0x42 :
552
+ return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ;
553
+ case 0x4E :
554
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
555
+ default :
556
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
557
+ }
558
+ case 0x28 :
559
+ switch ( romdata [ 0x137 ] )
560
+ {
561
+ case 0x41 :
562
+ return new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ;
563
+ case 0x46 :
564
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
565
+ default :
566
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
567
+ }
568
+ case 0x46 :
569
+ switch ( romdata [ 0x137 ] )
570
+ {
571
+ case 0x45 :
572
+ return new int [ ] { 0xB5B5FF , 0xFFFF94 , 0xAD5A42 , 0x000000 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A } ;
573
+ case 0x52 :
574
+ return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFF00 , 0xFF0000 , 0x630000 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ;
575
+ default :
576
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
577
+ }
578
+ case 0x61 :
579
+ switch ( romdata [ 0x137 ] )
580
+ {
581
+ case 0x41 :
582
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
583
+ case 0x45 :
584
+ return new int [ ] { 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
585
+ default :
586
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
587
+ }
588
+ case 0x66 :
589
+ switch ( romdata [ 0x137 ] )
590
+ {
591
+ case 0x45 :
592
+ return new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
593
+ default :
594
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
595
+ }
596
+ case 0x6A :
597
+ switch ( romdata [ 0x137 ] )
598
+ {
599
+ case 0x49 :
600
+ return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
601
+ case 0x4B :
602
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFC542 , 0xFFD600 , 0x943A00 , 0x4A0000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
603
+ default :
604
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
605
+ }
606
+ case 0xA5 :
607
+ switch ( romdata [ 0x137 ] )
608
+ {
609
+ case 0x41 :
610
+ return new int [ ] { 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF , 0x000000 , 0x008484 , 0xFFDE00 , 0xFFFFFF } ;
611
+ case 0x52 :
612
+ return new int [ ] { 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 , 0xFFFFFF , 0x7BFF31 , 0x008400 , 0x000000 } ;
613
+ default :
614
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
615
+ }
616
+ case 0xB3 :
617
+ switch ( romdata [ 0x137 ] )
618
+ {
619
+ case 0x42 :
620
+ return new int [ ] { 0xA59CFF , 0xFFFF00 , 0x006300 , 0x000000 , 0xFF6352 , 0xD60000 , 0x630000 , 0x000000 , 0x0000FF , 0xFFFFFF , 0xFFFF7B , 0x0084FF } ;
621
+ case 0x52 :
622
+ return new int [ ] { 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x52FF00 , 0xFF4200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
623
+ case 0x55 :
624
+ return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 } ;
625
+ default :
626
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
627
+ }
628
+ case 0xBF :
629
+ switch ( romdata [ 0x137 ] )
630
+ {
631
+ case 0x20 :
632
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
633
+ case 0x43 :
634
+ return new int [ ] { 0x6BFF00 , 0xFFFFFF , 0xFF524A , 0x000000 , 0xFFFFFF , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 } ;
635
+ default :
636
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
637
+ }
638
+ case 0xC6 :
639
+ switch ( romdata [ 0x137 ] )
640
+ {
641
+ case 0x41 :
642
+ return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFF7300 , 0x944200 , 0x000000 , 0xFFFFFF , 0x5ABDFF , 0xFF0000 , 0x0000FF } ;
643
+ default :
644
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
645
+ }
646
+ case 0xD3 :
647
+ switch ( romdata [ 0x137 ] )
648
+ {
649
+ case 0x49 :
650
+ return new int [ ] { 0xFFFFFF , 0xADAD84 , 0x42737B , 0x000000 , 0xFFFFFF , 0xFFAD63 , 0x843100 , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
651
+ case 0x52 :
652
+ return new int [ ] { 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x8C8CDE , 0x52528C , 0x000000 } ;
653
+ default :
654
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
655
+ }
656
+ case 0xF4 :
657
+ switch ( romdata [ 0x137 ] )
658
+ {
659
+ case 0x20 :
660
+ return new int [ ] { 0xFFFFFF , 0x7BFF00 , 0xB57300 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
661
+ case 0x2D :
662
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0x63A5FF , 0x0000FF , 0x000000 } ;
663
+ default :
664
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
665
+ }
666
+ default :
667
+ return new int [ ] { 0xFFFFFF , 0x7BFF31 , 0x0063C5 , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 , 0xFFFFFF , 0xFF8484 , 0x943A3A , 0x000000 } ;
668
+ }
669
+ }
670
+
417
671
public IGPUMemoryAreas LockGPU ( )
418
672
{
419
673
var _vram = IntPtr . Zero ;
0 commit comments