trunk/src/mame/machine/deco104.c
| r24574 | r24575 | |
| 90 | 90 | /* 0x082 */ { 0x28, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 }, |
| 91 | 91 | /* 0x084 */ { 0x50, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 92 | 92 | /* 0x086 */ { 0x66, { 0x0d, 0x0e, 0x0f, 0x0c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 }, |
| 93 | | /* 0x088 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 93 | /* 0x088 */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // most common input port case |
| 94 | 94 | /* 0x08a */ { 0x1c, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 }, |
| 95 | 95 | /* 0x08c */ { 0x48, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 96 | 96 | /* 0x08e */ { 0xc2, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 }, |
| r24574 | r24575 | |
| 380 | 380 | /* 0x2c6 */ { 0x50, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 0 }, |
| 381 | 381 | /* 0x2c8 */ { 0x1c, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 382 | 382 | /* 0x2ca */ { 0x1a, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 383 | | /* 0x2cc */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 383 | /* 0x2cc */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // bit order not verified, old sim says wizard fire uses it |
| 384 | 384 | /* 0x2ce */ { 0x92, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 }, |
| 385 | 385 | /* 0x2d0 */ { 0x66, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 }, |
| 386 | 386 | /* 0x2d2 */ { 0x28, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 }, |
| r24574 | r24575 | |
| 460 | 460 | /* 0x366 */ { 0xec, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 461 | 461 | /* 0x368 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 462 | 462 | /* 0x36a */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 463 | | /* 0x36c */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // Double Wing - not verified |
| 463 | /* 0x36c */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // Double Wing - not verified but standard case for most games |
| 464 | 464 | /* 0x36e */ { 0x0c, { 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 }, |
| 465 | 465 | /* 0x370 */ { 0x80, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 0 }, |
| 466 | 466 | /* 0x372 */ { 0x82, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 }, |
| r24574 | r24575 | |
| 494 | 494 | /* 0x3aa */ { 0x56, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 1, 0 }, |
| 495 | 495 | /* 0x3ac */ { 0x54, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 }, |
| 496 | 496 | /* 0x3ae */ { 0x58, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 }, |
| 497 | | /* 0x3b0 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 497 | /* 0x3b0 */ { INPUT_PORT_B , { NIB1__, BLANK_, BLANK_, BLANK_ } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // not verified, old sim says wizdfire uses it |
| 498 | 498 | /* 0x3b2 */ { 0x14, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 0 }, |
| 499 | 499 | /* 0x3b4 */ { 0x38, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 500 | 500 | /* 0x3b6 */ { 0xf8, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| r24574 | r24575 | |
| 572 | 572 | /* 0x446 */ { 0x16, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 }, |
| 573 | 573 | /* 0x448 */ { 0x90, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 }, |
| 574 | 574 | /* 0x44a */ { 0xb4, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 }, |
| 575 | | /* 0x44c */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 575 | /* 0x44c */ { INPUT_PORT_B, { NIB2R1, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // not verified, rohga, based on old sim |
| 576 | 576 | /* 0x44e */ { 0x44, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 }, |
| 577 | 577 | /* 0x450 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 578 | 578 | /* 0x452 */ { 0x30, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| r24574 | r24575 | |
| 751 | 751 | /* 0x5ac */ { 0x6e, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 1 }, |
| 752 | 752 | /* 0x5ae */ { 0xdc, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 753 | 753 | /* 0x5b0 */ { 0xc4, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 754 | | /* 0x5b2 */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings - NOT verified |
| 754 | /* 0x5b2 */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings - NOT verified |
| 755 | 755 | /* 0x5b4 */ { 0xe0, { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 }, |
| 756 | 756 | /* 0x5b6 */ { 0x92, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 0 }, |
| 757 | 757 | /* 0x5b8 */ { 0x4e, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 0 }, |
| r24574 | r24575 | |
| 948 | 948 | /* 0x736 */ { 0x68, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 }, |
| 949 | 949 | /* 0x738 */ { 0x54, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 950 | 950 | /* 0x73a */ { 0x00, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, |
| 951 | | /* 0x73c */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings uses this, NOT verified |
| 951 | /* 0x73c */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings uses this, NOT verified (standard inputs?) |
| 952 | 952 | /* 0x73e */ { 0xae, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, |
| 953 | 953 | /* 0x740 */ { 0x6a, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 }, |
| 954 | 954 | /* 0x742 */ { 0x2e, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 0 }, |
| r24574 | r24575 | |
| 1065 | 1065 | m_mask_port = 0xee; |
| 1066 | 1066 | m_soundlatch_port = 0xa8; |
| 1067 | 1067 | m_lookup_table = port104_table; |
| 1068 | | |
| 1069 | | m_use_complete_table = 0; |
| 1070 | 1068 | } |
| 1071 | 1069 | |
| 1072 | 1070 | |
| r24574 | r24575 | |
| 1076 | 1074 | { |
| 1077 | 1075 | } |
| 1078 | 1076 | |
| 1079 | | void deco104_device::set_use_dblewing_hacks(device_t &device, int use_hacks) |
| 1080 | | { |
| 1081 | | deco104_device &dev = downcast<deco104_device &>(device); |
| 1082 | | dev.m_use_complete_table = use_hacks; |
| 1083 | | } |
| 1084 | | |
| 1085 | 1077 | void deco104_device::device_start() |
| 1086 | 1078 | { |
| 1087 | 1079 | deco_146_base_device::device_start(); |
| 1088 | | |
| 1089 | | // double wing |
| 1090 | | save_item(NAME(m_008_data)); |
| 1091 | | save_item(NAME(m_104_data)); |
| 1092 | | save_item(NAME(m_406_data)); |
| 1093 | | save_item(NAME(m_608_data)); |
| 1094 | | save_item(NAME(m_70c_data)); |
| 1095 | | save_item(NAME(m_78a_data)); |
| 1096 | | save_item(NAME(m_088_data)); |
| 1097 | | save_item(NAME(m_58c_data)); |
| 1098 | | save_item(NAME(m_408_data)); |
| 1099 | | save_item(NAME(m_40e_data)); |
| 1100 | | save_item(NAME(m_080_data)); |
| 1101 | | save_item(NAME(m_788_data)); |
| 1102 | | save_item(NAME(m_38e_data)); |
| 1103 | | save_item(NAME(m_580_data)); |
| 1104 | | save_item(NAME(m_60a_data)); |
| 1105 | | save_item(NAME(m_200_data)); |
| 1106 | | save_item(NAME(m_28c_data)); |
| 1107 | | save_item(NAME(m_18a_data)); |
| 1108 | | save_item(NAME(m_280_data)); |
| 1109 | | save_item(NAME(m_384_data)); |
| 1110 | | |
| 1111 | | save_item(NAME(m_boss_move)); |
| 1112 | | save_item(NAME(m_boss_shoot_type)); |
| 1113 | | save_item(NAME(m_boss_3_data)); |
| 1114 | | save_item(NAME(m_boss_4_data)); |
| 1115 | | save_item(NAME(m_boss_5_data)); |
| 1116 | | save_item(NAME(m_boss_5sx_data)); |
| 1117 | | save_item(NAME(m_boss_6_data)); |
| 1118 | 1080 | } |
| 1119 | 1081 | |
| 1120 | 1082 | void deco104_device::device_reset() |
| 1121 | 1083 | { |
| 1122 | 1084 | deco_146_base_device::device_reset(); |
| 1123 | | |
| 1124 | | // double wing |
| 1125 | | m_008_data = 0; |
| 1126 | | m_104_data = 0; |
| 1127 | | m_406_data = 0; |
| 1128 | | m_608_data = 0; |
| 1129 | | m_70c_data = 0; |
| 1130 | | m_78a_data = 0; |
| 1131 | | m_088_data = 0; |
| 1132 | | m_58c_data = 0; |
| 1133 | | m_408_data = 0; |
| 1134 | | m_40e_data = 0; |
| 1135 | | m_080_data = 0; |
| 1136 | | m_788_data = 0; |
| 1137 | | m_38e_data = 0; |
| 1138 | | m_580_data = 0; |
| 1139 | | m_60a_data = 0; |
| 1140 | | m_200_data = 0; |
| 1141 | | m_28c_data = 0; |
| 1142 | | m_18a_data = 0; |
| 1143 | | m_280_data = 0; |
| 1144 | | m_384_data = 0; |
| 1145 | | |
| 1146 | | m_boss_move = 0; |
| 1147 | | m_boss_shoot_type = 0; |
| 1148 | | m_boss_3_data = 0; |
| 1149 | | m_boss_4_data = 0; |
| 1150 | | m_boss_5_data = 0; |
| 1151 | | m_boss_5sx_data = 0; |
| 1152 | | m_boss_6_data = 0; |
| 1153 | 1085 | } |
| 1154 | 1086 | |
| 1155 | 1087 | |
| 1156 | | /***************************************************************************/ |
| 1157 | 1088 | |
| 1158 | 1089 | |
| 1159 | | UINT16 deco104_device::read_data_getloc(UINT16 offset, int& location) |
| 1160 | | { |
| 1161 | | if (m_use_complete_table==1) |
| 1162 | | return deco_146_base_device::read_data_getloc(offset, location); |
| 1163 | | |
| 1164 | | |
| 1165 | | UINT16* prot_ram; |
| 1166 | | |
| 1167 | | if (m_current_rambank==0) |
| 1168 | | prot_ram = m_rambank0; |
| 1169 | | else |
| 1170 | | prot_ram = m_rambank1; |
| 1171 | | |
| 1172 | | |
| 1173 | | location = 0x00; |
| 1174 | | int tempinput = 0; |
| 1175 | | |
| 1176 | | |
| 1177 | | switch (offset>>1) |
| 1178 | | { |
| 1179 | | case 0x088/2: /* Player 1 & 2 input ports */ tempinput = m_port_a_r(0); return tempinput; // also caveman ninja + wizard fire |
| 1180 | | case 0x36c/2: tempinput = m_port_b_r(0); return tempinput; // also caveman ninja + wizard fire |
| 1181 | | case 0x44c/2: tempinput = m_port_b_r(0); return ((tempinput & 0x7)<<13)|((tempinput & 0x8)<<9); |
| 1182 | | case 0x292/2: /* Dips */ tempinput = m_port_c_r(0); return tempinput; // also wizard fire |
| 1183 | | case 0x044/2: location = 0x2c; return ((((DECO_PORT(location)&0x000f)<<12)) ^ m_xor) & (~m_nand); |
| 1184 | | case 0x282/2: location = 0x26; return ((DECO_PORT(location)&0x000f)<<12) & (~m_nand); |
| 1185 | | case 0x0d4/2: location = 0x6e; return ((DECO_PORT(location)&0x0ff0)<<4) | ((DECO_PORT(location)&0x000e)<<3) | ((DECO_PORT(location)&0x0001)<<7); |
| 1186 | | case 0x5a2/2: return (((DECO_PORT(0x24)&0xff00)>>4) | ((DECO_PORT(0x24)&0x000f)<<0) | ((DECO_PORT(0x24)&0x00f0)<<8)) & (~m_nand); |
| 1187 | | case 0x570/2: return (((DECO_PORT(0x24)&0xf0f0)>>0) | ((DECO_PORT(0x24)&0x000f)<<8)) ^ m_xor; |
| 1188 | | case 0x32e/2: return (((DECO_PORT(0x46)&0xf000)>>0) | ((DECO_PORT(0x46)&0x00ff)<<4)) & (~m_nand); |
| 1189 | | case 0x4dc/2: return ((DECO_PORT(0x62)&0x00ff)<<8); |
| 1190 | | case 0x1be/2: return ((((DECO_PORT(0xc2)&0x0ff0)<<4) | ((DECO_PORT(0xc2)&0x0003)<<6) | ((DECO_PORT(0xc2)&0x000c)<<2)) ^ m_xor) & (~m_nand); |
| 1191 | | case 0x420/2: return ((DECO_PORT(0x2e)&0xf000)>>4) | ((DECO_PORT(0x2e)&0x0f00)<<4) | ((DECO_PORT(0x2e)&0x00f0)>>4) | ((DECO_PORT(0x2e)&0x000f)<<4); |
| 1192 | | case 0x390/2: return DECO_PORT(0x2c); |
| 1193 | | case 0x756/2: return ((DECO_PORT(0x60)&0xfff0)>>4) | ((DECO_PORT(0x60)&0x0007)<<13) | ((DECO_PORT(0x60)&0x0008)<<9); |
| 1194 | | case 0x424/2: return ((DECO_PORT(0x60)&0xf000)>>4) | ((DECO_PORT(0x60)&0x0f00)<<4) | ((DECO_PORT(0x60)&0x00f0)>>0) | ((DECO_PORT(0x60)&0x000f)<<0); |
| 1195 | | case 0x156/2: return (((DECO_PORT(0xde)&0xff00)<<0) | ((DECO_PORT(0xde)&0x000f)<<4) | ((DECO_PORT(0xde)&0x00f0)>>4)) & (~m_nand); |
| 1196 | | case 0x0a8/2: return (((DECO_PORT(0xde)&0xff00)>>4) | ((DECO_PORT(0xde)&0x000f)<<0) | ((DECO_PORT(0xde)&0x00f0)<<8)) & (~m_nand); |
| 1197 | | case 0x64a/2: return (((DECO_PORT(0xde)&0xfff0)>>4) | ((DECO_PORT(0xde)&0x000c)<<10) | ((DECO_PORT(0xde)&0x0003)<<14)) & (~m_nand); |
| 1198 | | case 0x16e/2: return DECO_PORT(0x6a); |
| 1199 | | case 0x39c/2: return (DECO_PORT(0x6a)&0x00ff) | ((DECO_PORT(0x6a)&0xf000)>>4) | ((DECO_PORT(0x6a)&0x0f00)<<4); |
| 1200 | | case 0x212/2: return (((DECO_PORT(0x6e)&0xff00)>>4) | ((DECO_PORT(0x6e)&0x00f0)<<8) | ((DECO_PORT(0x6e)&0x000f)<<0)) ^ m_xor; |
| 1201 | | case 0x70a/2: return (((DECO_PORT(0xde)&0x00f0)<<8) | ((DECO_PORT(0xde)&0x0007)<<9) | ((DECO_PORT(0xde)&0x0008)<<5)) ^ m_xor; |
| 1202 | | case 0x7a0/2: return (DECO_PORT(0x6e)&0x00ff) | ((DECO_PORT(0x6e)&0xf000)>>4) | ((DECO_PORT(0x6e)&0x0f00)<<4); |
| 1203 | | case 0x162/2: return DECO_PORT(0x6e); |
| 1204 | | case 0x384/2: return ((DECO_PORT(0xdc)&0xf000)>>12) | ((DECO_PORT(0xdc)&0x0ff0)<<4) | ((DECO_PORT(0xdc)&0x000c)<<2) | ((DECO_PORT(0xdc)&0x0003)<<6); |
| 1205 | | case 0x302/2: return DECO_PORT(0x24); |
| 1206 | | case 0x334/2: return DECO_PORT(0x30); |
| 1207 | | case 0x34c/2: return DECO_PORT(0x3c); |
| 1208 | | case 0x514/2: return (((DECO_PORT(0x32)&0x0ff0)<<4) | ((DECO_PORT(0x32)&0x000c)<<2) | ((DECO_PORT(0x32)&0x0003)<<6)) & (~m_nand); |
| 1209 | | case 0x34e/2: return ((DECO_PORT(0xde)&0x0ff0)<<4) | ((DECO_PORT(0xde)&0xf000)>>8) | ((DECO_PORT(0xde)&0x000f)<<0); |
| 1210 | | case 0x722/2: return (((DECO_PORT(0xdc)&0x0fff)<<4) ^ m_xor) & (~m_nand); |
| 1211 | | case 0x574/2: return ((((DECO_PORT(0xdc)&0xfff0)>>0) | ((DECO_PORT(0xdc)&0x0003)<<2) | ((DECO_PORT(0xdc)&0x000c)>>2)) ^ m_xor) & (~m_nand); |
| 1212 | | case 0x5ae/2: return DECO_PORT(0xdc); // also caveman ninja |
| 1213 | | case 0x410/2: return DECO_PORT(0xde); // also caveman ninja |
| 1214 | | case 0x340/2: return ((DECO_PORT(0x90)&0xfff0) | ((DECO_PORT(0x90)&0x7)<<1) | ((DECO_PORT(0x90)&0x8)>>3)) ^ m_xor; |
| 1215 | | case 0x4a4/2: return (((DECO_PORT(0xce)&0x0ff0) | ((DECO_PORT(0xce)&0xf000)>>12) | ((DECO_PORT(0xce)&0x000f)<<12)) ^ m_xor) & (~m_nand); |
| 1216 | | case 0x256/2: return ((((DECO_PORT(0xce)&0xf000)>>12) | ((DECO_PORT(0xce)&0x0fff)<<4))) & (~m_nand); |
| 1217 | | case 0x79a/2: return (((DECO_PORT(0xc8)&0xfff0)>>4) | ((DECO_PORT(0xc8)&0x0008)<<9) | ((DECO_PORT(0xc8)&0x0007)<<13)) ^ m_xor; |
| 1218 | | case 0x65e/2: return DECO_PORT(0x9c); // also caveman ninja |
| 1219 | | case 0x79c/2: return ((DECO_PORT(0xc6)&0xf000) | ((DECO_PORT(0xc6)&0x00ff)<<4) | ((DECO_PORT(0xc6)&0x0f00)>>8)) & (~m_nand); |
| 1220 | | case 0x15e/2: return (((DECO_PORT(0x98)&0x0ff0)<<4) | ((DECO_PORT(0x98)&0xf000)>>12) | ((DECO_PORT(0x98)&0x0003)<<6) | ((DECO_PORT(0x98)&0x000c)<<2)) ^ m_xor; |
| 1221 | | case 0x6e4/2: return DECO_PORT(0x98); // also caveman ninja |
| 1222 | | case 0x01e/2: return ((((DECO_PORT(0xc4)&0xf000)>>4) | ((DECO_PORT(0xc4)&0x0f00)<<4) | ((DECO_PORT(0xc4)&0x00ff)<<0)) ^ m_xor) & (~m_nand); |
| 1223 | | case 0x23a/2: return ((((DECO_PORT(0x86)&0xfff0)>>0) | ((DECO_PORT(0x86)&0x0003)<<2) | ((DECO_PORT(0x86)&0x000c)>>2)) ^ m_xor); |
| 1224 | | case 0x06e/2: return ((((DECO_PORT(0x96)&0xf000)>>8) | ((DECO_PORT(0x96)&0x0f0f)<<0) | ((DECO_PORT(0x96)&0x00f0)<<8)) ^ m_xor); |
| 1225 | | case 0x3a2/2: return ((((DECO_PORT(0x94)&0xf000)>>8) | ((DECO_PORT(0x94)&0x0f00)>>8) | ((DECO_PORT(0x94)&0x00f0)<<8) | ((DECO_PORT(0x94)&0x000e)<<7) | ((DECO_PORT(0x94)&0x0001)<<11)) ^ m_xor);// & (~m_nand); |
| 1226 | | case 0x4a6/2: return ((DECO_PORT(0x8c)&0xff00)>>0) | ((DECO_PORT(0x8c)&0x00f0)>>4) | ((DECO_PORT(0x8c)&0x000f)<<4); |
| 1227 | | case 0x7b0/2: return DECO_PORT(0x80); // also caveman ninja |
| 1228 | | case 0x5aa/2: return ((((DECO_PORT(0x98)&0x0f00)>>8) | ((DECO_PORT(0x98)&0xf000)>>8) | ((DECO_PORT(0x98)&0x00f0)<<8) | ((DECO_PORT(0x98)&0x000e)<<7) | ((DECO_PORT(0x98)&0x0001)<<11)) ^ m_xor) & (~m_nand); |
| 1229 | | case 0x662/2: return DECO_PORT(0x8c); // also caveman ninja |
| 1230 | | case 0x624/2: return DECO_PORT(0x9a); // also caveman ninja |
| 1231 | | case 0x02c/2: return (((DECO_PORT(0x82)&0x0f0f)>>0) | ((DECO_PORT(0x82)&0xf000)>>8) | ((DECO_PORT(0x82)&0x00f0)<<8)) & (~m_nand); |
| 1232 | | case 0x1b4/2: return ((DECO_PORT(0xcc)&0x00f0)<<4) | ((DECO_PORT(0xcc)&0x000f)<<12); |
| 1233 | | case 0x7ce/2: return ((DECO_PORT(0x80)&0x000e)<<11) | ((DECO_PORT(0x80)&0x0001)<<15); |
| 1234 | | case 0x41a/2: return ((((DECO_PORT(0x84)&0x00f0)<<8) | ((DECO_PORT(0x84)&0xf000)>>8) | ((DECO_PORT(0x84)&0x0f00)>>8) | ((DECO_PORT(0x84)&0x0003)<<10) | ((DECO_PORT(0x84)&0x000c)<<6)) ^ m_xor); |
| 1235 | | case 0x168/2: return ((((DECO_PORT(0x84)&0x0ff0)<<4) | ((DECO_PORT(0x84)&0x000e)<<3) | ((DECO_PORT(0x84)&0x0001)<<5))) & (~m_nand); |
| 1236 | | case 0x314/2: return ((((DECO_PORT(0x84)&0x0ff0)<<4) | ((DECO_PORT(0x84)&0x000e)<<3) | ((DECO_PORT(0x84)&0x0001)<<5))); |
| 1237 | | case 0x5e2/2: return ((((DECO_PORT(0x84)&0x00f0)<<8) | ((DECO_PORT(0x84)&0x000e)<<7) | ((DECO_PORT(0x84)&0x0001)<<9))); |
| 1238 | | case 0x72a/2: return ((((DECO_PORT(0x86)&0xfff0)>>4) | ((DECO_PORT(0x86)&0x0003)<<14) | ((DECO_PORT(0x86)&0x000c)<<10)) ^ m_xor) & (~m_nand); |
| 1239 | | case 0x178/2: return (((DECO_PORT(0x88)&0x00ff)<<8) | ((DECO_PORT(0x88)&0xff00)>>8)) & (~m_nand); // also wizard fire |
| 1240 | | case 0x40e/2: return ((((DECO_PORT(0x8a)&0xf000)>>0) | ((DECO_PORT(0x8a)&0x00ff)<<4)) ^ m_xor) & (~m_nand); |
| 1241 | | case 0x248/2: return ((((DECO_PORT(0x8c)&0xff00)>>8) | ((DECO_PORT(0x8c)&0x00f0)<<4) | ((DECO_PORT(0x8c)&0x000f)<<12)) ^ m_xor) & (~m_nand); |
| 1242 | | case 0x27e/2: return ((((DECO_PORT(0x94)&0x00f0)<<8)) ^ m_xor) & (~m_nand); |
| 1243 | | case 0x22c/2: return ((DECO_PORT(0xc4)&0x00f0)<<8); |
| 1244 | | case 0x77e/2: return ((DECO_PORT(0x62)&0xf000)>>12) | ((DECO_PORT(0x62)&0x0ff0)<<0) | ((DECO_PORT(0x62)&0x000f)<<12); |
| 1245 | | case 0x00c/2: return ((DECO_PORT(0xd6)&0xf000)>>12) | ((DECO_PORT(0xd6)&0x0fff)<<4); |
| 1246 | | case 0x090/2: return DECO_PORT(0x44); |
| 1247 | | case 0x246/2: return ((((DECO_PORT(0x48)&0xff00)>>8) | ((DECO_PORT(0x48)&0x00f0)<<8) | ((DECO_PORT(0x48)&0x0f00)>>8) | ((DECO_PORT(0x48)&0x0003)<<10) | ((DECO_PORT(0x48)&0x000c)<<6)) ^ m_xor); |
| 1248 | | case 0x546/2: return (((DECO_PORT(0x62)&0xf0f0)>>0) | ((DECO_PORT(0x62)&0x000f)<<8)) & (~m_nand); |
| 1249 | | case 0x2e2/2: return ((DECO_PORT(0xc6)&0x000e)<<11) | ((DECO_PORT(0xc6)&0x0001)<<15); |
| 1250 | | case 0x3c0/2: return DECO_PORT(0x22); |
| 1251 | | case 0x4b8/2: return (((DECO_PORT(0x46)&0xf000)>>12) | ((DECO_PORT(0x46)&0x0f00)>>4) | ((DECO_PORT(0x46)&0x00ff)<<8)) ^ m_xor; |
| 1252 | | case 0x65c/2: return ((((DECO_PORT(0x44)&0xf000)>>12) | ((DECO_PORT(0x44)&0x0fff)<<4)) ^ m_xor) & (~m_nand); |
| 1253 | | case 0x32a/2: return ((((DECO_PORT(0xc0)&0x0ff0)<<4) | ((DECO_PORT(0xc0)&0x000e)<<3) | ((DECO_PORT(0xc0)&0x0001)<<7))) & (~m_nand);// ^ m_xor; |
| 1254 | | case 0x008/2: return ((((DECO_PORT(0x94)&0xfff0)<<0) | ((DECO_PORT(0x94)&0x000e)>>1) | ((DECO_PORT(0x94)&0x0001)<<3))) & (~m_nand);// ^ m_xor; |
| 1255 | | case 0x456/2: return (((DECO_PORT(0x26)&0xfff0)<<0) | ((DECO_PORT(0x26)&0x0007)<<1) | ((DECO_PORT(0x26)&0x0008)>>3));// ^ m_xor; |
| 1256 | | case 0x190/2: return ((((DECO_PORT(0x44)&0xf000)<<0) | ((DECO_PORT(0x44)&0x00ff)<<4))) & (~m_nand);// ^ m_xor; |
| 1257 | | case 0x3f2/2: return ((((DECO_PORT(0x48)&0x000f)<<12) | ((DECO_PORT(0x48)&0x00f0)<<4))) & (~m_nand);// ^ m_xor; |
| 1258 | | case 0x2be/2: return ((DECO_PORT(0x40)&0x00ff)<<8); |
| 1259 | | case 0x19e/2: return ((((DECO_PORT(0x3c)&0xf000)>>12) | ((DECO_PORT(0x3c)&0x0f00)<<4) | ((DECO_PORT(0x3c)&0x00f0)>>0) | ((DECO_PORT(0x3c)&0x000f)<<8)) ^ m_xor) & (~m_nand); |
| 1260 | | case 0x2a2/2: return ((((DECO_PORT(0x44)&0xff00)>>8) | ((DECO_PORT(0x44)&0x00f0)<<8) | ((DECO_PORT(0x44)&0x000e)<<7) | ((DECO_PORT(0x44)&0x0001)<<11)) ^ m_xor) & (~m_nand); |
| 1261 | | case 0x748/2: return (((DECO_PORT(0x44)&0xfff0)<<0) | ((DECO_PORT(0x44)&0x000e)>>1) | ((DECO_PORT(0x44)&0x0001)<<3));// & (~m_nand); |
| 1262 | | case 0x686/2: return (((DECO_PORT(0x46)&0xf000)>>4) | ((DECO_PORT(0x46)&0x0f00)>>8) | ((DECO_PORT(0x46)&0x00f0)<<8) | ((DECO_PORT(0x46)&0x000f)<<4));// & (~m_nand); |
| 1263 | | case 0x4c4/2: return ((DECO_PORT(0x3c)&0x000f)<<12) & (~m_nand); |
| 1264 | | case 0x538/2: return ((DECO_PORT(0x3c)&0x000f)<<12); |
| 1265 | | case 0x63a/2: return ((DECO_PORT(0x3c)&0x000f)<<12); |
| 1266 | | case 0x348/2: return ((((DECO_PORT(0x44)&0xf000)>>12) | ((DECO_PORT(0x44)&0x0ff0)<<4) | ((DECO_PORT(0x44)&0x000e)<<3) | ((DECO_PORT(0x44)&0x0001)<<7))) ^ m_xor;// & (~m_nand); |
| 1267 | | case 0x200/2: return (((DECO_PORT(0xa0)&0xfff0)>>4) | ((DECO_PORT(0xa0)&0x0007)<<13) | ((DECO_PORT(0xa0)&0x0008)<<9));// & (~m_nand); |
| 1268 | | case 0x254/2: return ((((DECO_PORT(0x7e)&0x0ff0)<<4) | ((DECO_PORT(0x7e)&0x000c)<<2) | ((DECO_PORT(0x7e)&0x0003)<<6))) ^ m_xor;// & (~m_nand); |
| 1269 | | case 0x182/2: return ((DECO_PORT(0x46)&0xf000)<<0) | ((DECO_PORT(0x46)&0x0f00)>>8) | ((DECO_PORT(0x46)&0x00f0)>>0) | ((DECO_PORT(0x46)&0x000f)<<8); |
| 1270 | | case 0x058/2: return DECO_PORT(0x46); |
| 1271 | | case 0x48e/2: return ((((DECO_PORT(0x46)&0xf000)>>12) | ((DECO_PORT(0x46)&0x0f00)>>4) | ((DECO_PORT(0x46)&0x00f0)<<4) | ((DECO_PORT(0x46)&0x000f)<<12)));// /*^ m_xor*/) & (~m_nand); |
| 1272 | | case 0x4ba/2: return (((DECO_PORT(0x24)&0xf000)>>12) | ((DECO_PORT(0x24)&0x0ff0)<<4) | ((DECO_PORT(0x24)&0x000c)<<2) | ((DECO_PORT(0x24)&0x0003)<<6)) & (~m_nand); |
| 1273 | | case 0x092/2: return (((DECO_PORT(0x3c)&0xfff0)>>0) | ((DECO_PORT(0x3c)&0x0007)<<1) | ((DECO_PORT(0x3c)&0x0008)>>3)); |
| 1274 | | case 0x1f0/2: return ((((DECO_PORT(0xa2)&0xf000)>>12) | ((DECO_PORT(0xa2)&0x0f00)>>4) | ((DECO_PORT(0xa2)&0x00ff)<<8)) ^ m_xor) & (~m_nand); |
| 1275 | | case 0x24e/2: return ((((DECO_PORT(0x46)&0xf000)>>8) | ((DECO_PORT(0x46)&0x0f00)>>0) | ((DECO_PORT(0x46)&0x00f0)>>4) | ((DECO_PORT(0x46)&0x000f)<<12)) ^ m_xor);// & (~m_nand); |
| 1276 | | case 0x594/2: return ((((DECO_PORT(0x40)&0x00f0)<<8) | ((DECO_PORT(0x40)&0x000c)<<6) | ((DECO_PORT(0x40)&0x0003)<<10)) ^ m_xor);// & (~m_nand); |
| 1277 | | case 0x7e2/2: return ((((DECO_PORT(0x96)&0xf000)<<0) | ((DECO_PORT(0x96)&0x00f0)<<4) | ((DECO_PORT(0x96)&0x000f)<<4))) ^ m_xor;// | ((DECO_PORT(0x96)&0x0001)<<7));// ^ m_xor);// & (~m_nand); |
| 1278 | | case 0x18c/2: return (((DECO_PORT(0x22)&0xfff0)>>4) | ((DECO_PORT(0x22)&0x000e)<<11) | ((DECO_PORT(0x22)&0x0001)<<15));// ^ m_xor);// & (~m_nand); |
| 1279 | | case 0x1fa/2: return ((((DECO_PORT(0x26)&0xf000)>>8) | ((DECO_PORT(0x26)&0x0f00)<<0) | ((DECO_PORT(0x26)&0x00f0)>>4) | ((DECO_PORT(0x26)&0x000f)<<12))) ^ m_xor;// & (~m_nand); |
| 1280 | | case 0x70e/2: return ((((DECO_PORT(0x26)&0x0ff0)<<4) | ((DECO_PORT(0x26)&0x000c)<<2) | ((DECO_PORT(0x26)&0x0003)<<6))) ^ m_xor;// & (~m_nand); |
| 1281 | | case 0x33a/2: return DECO_PORT(0x60) & (~m_nand); |
| 1282 | | case 0x1e2/2: return ((DECO_PORT(0xd0)&0xf000)>>12) | ((DECO_PORT(0xd0)&0x0f00)>>4) | ((DECO_PORT(0xd0)&0x00ff)<<8); |
| 1283 | | case 0x3f4/2: return DECO_PORT(0x6e)<<4; |
| 1284 | | case 0x2ae/2: return ((DECO_PORT(0x9c)&0xf000)<<0) | ((DECO_PORT(0x9c)&0x0ff0)>>4) | ((DECO_PORT(0x9c)&0x000f)<<8);// & (~m_nand); |
| 1285 | | case 0x096/2: return ((((DECO_PORT(0x22)&0xff00)>>8) | ((DECO_PORT(0x22)&0x00f0)<<8) | ((DECO_PORT(0x22)&0x000e)<<7) | ((DECO_PORT(0x22)&0x0001)<<11)) ^ m_xor) & (~m_nand); |
| 1286 | | case 0x33e/2: return (((DECO_PORT(0x0)&0xf000)>>12) | ((DECO_PORT(0x0)&0x0f00)>>4) | ((DECO_PORT(0x0)&0x00f0)<<4) | ((DECO_PORT(0x0)&0x000f)<<12)) & (~m_nand); // also wizard fire |
| 1287 | | case 0x6c4/2: /* Reads from here flip buffers */location = 0x66; /* Flip occurs AFTER this data has been calculated*/return ((DECO_PORT(location)&0xf0f0) | ((DECO_PORT(location)&0x000f)<<8)) & (~m_nand); |
| 1288 | | case 0x700/2: /* Reads from here flip buffers */location = 0x66; return (((DECO_PORT(location)&0xf000)>>4) | ((DECO_PORT(location)&0x00f0)<<8)) ^ m_xor; |
| 1289 | | case 0x444/2: location = 0x66; return ((DECO_PORT(location)&0x00f0)<<8) | ((DECO_PORT(location)&0x0007)<<9) | ((DECO_PORT(location)&0x0008)<<5); |
| 1290 | | case 0x2d0/2: location = 0x66; return (((DECO_PORT(location)&0xf000)>>4) | ((DECO_PORT(location)&0x00f0)<<8)) ^ m_xor; |
| 1291 | | case 0x2b8/2: location = 0x66; return ((DECO_PORT(location)&0x00f0)<<8) ^ m_xor; |
| 1292 | | case 0x294/2: location = 0x66; return ((DECO_PORT(location)&0x000f)<<12); |
| 1293 | | case 0x1e8/2: location = 0x66; return 0; // todo |
| 1294 | | case 0x49c/2: return (((DECO_PORT(0x6c)&0x00f0)<<8) ^ m_xor) & (~m_nand); |
| 1295 | | case 0x44e/2: return (((DECO_PORT(0x44)&0x00f0)<<4) | ((DECO_PORT(0x44)&0x000f)<<12)) ^ m_xor; |
| 1296 | | case 0x3ca/2: return (((DECO_PORT(0x1e)&0xfff0)>>4) | ((DECO_PORT(0x1e)&0x0003)<<14) | ((DECO_PORT(0x1e)&0x000c)<<10)) ^ m_xor; |
| 1297 | | case 0x2ac/2: return DECO_PORT(0x1e); // also caveman ninja |
| 1298 | | case 0x03c/2: return (((DECO_PORT(0x1e)&0x0003)<<14) | ((DECO_PORT(0x1e)&0x000c)<<10)) & (~m_nand); |
| 1299 | | case 0x174/2: return (((DECO_PORT(0x1e)&0xff00)>>8) | ((DECO_PORT(0x1e)&0x00f0)<<8) | ((DECO_PORT(0x1e)&0x0007)<<9) | ((DECO_PORT(0x1e)&0x0008)<<5)) & (~m_nand); |
| 1300 | | case 0x34a/2: return (((DECO_PORT(0x4)&0xff00)>>0) | ((DECO_PORT(0x4)&0x00f0)>>4) | ((DECO_PORT(0x4)&0x000f)<<4)) & (~m_nand); |
| 1301 | | case 0x324/2: return (((DECO_PORT(0x6)&0xf000)>>12) | ((DECO_PORT(0x6)&0x0ff0)<<4) | ((DECO_PORT(0x6)&0x0007)<<5) | ((DECO_PORT(0x6)&0x0008)<<1)); |
| 1302 | | case 0x344/2: return (((DECO_PORT(0x8)&0xf000)>>8) | ((DECO_PORT(0x8)&0x0f00)>>8) | ((DECO_PORT(0x8)&0x00f0)<<4) | ((DECO_PORT(0x8)&0x000f)<<12)); |
| 1303 | | case 0x072/2: return ((((DECO_PORT(0xa)&0xf000)>>8) | ((DECO_PORT(0xa)&0x0ff0)<<4) | ((DECO_PORT(0xa)&0x000f)>>0))) & (~m_nand); |
| 1304 | | case 0x36e/2: return ((((DECO_PORT(0xc)&0xf000)>>0) | ((DECO_PORT(0xc)&0x0ff0)>>4) | ((DECO_PORT(0xc)&0x000f)<<8))) & (~m_nand); |
| 1305 | | case 0x590/2: return ((((DECO_PORT(0xe)&0xfff0)>>4) | ((DECO_PORT(0xe)&0x000e)<<11) | ((DECO_PORT(0xe)&0x0001)<<15))) ^ m_xor; |
| 1306 | | case 0x7b6/2: return ((((DECO_PORT(0x2)&0xf000)>>8) | ((DECO_PORT(0x2)&0x0ff0)<<4) | ((DECO_PORT(0x2)&0x000f)<<0)) ^ m_xor) & (~m_nand); |
| 1307 | | case 0x588/2: return ((((DECO_PORT(0x4)&0xff00)>>4) | ((DECO_PORT(0x4)&0x00f0)<<8) | ((DECO_PORT(0x4)&0x000f)<<0)) ^ m_xor) & (~m_nand); |
| 1308 | | case 0x1f6/2: return (((DECO_PORT(0x6)&0xf000)>>12) | ((DECO_PORT(0x6)&0x0ff0)<<4) | ((DECO_PORT(0x6)&0x0007)<<5) | ((DECO_PORT(0x6)&0x0008)<<1)) ^ m_xor; |
| 1309 | | case 0x4c0/2: return (((DECO_PORT(0x8)&0xf000)>>4) | ((DECO_PORT(0x8)&0x0f00)<<4) | ((DECO_PORT(0x8)&0x00f0)>>4) | ((DECO_PORT(0x8)&0x000f)<<4)) & (~m_nand); |
| 1310 | | case 0x63e/2: return ((((DECO_PORT(0xa)&0x0ff0)<<4) | ((DECO_PORT(0xa)&0xf000)>>12) | ((DECO_PORT(0xa)&0x0003)<<6) | ((DECO_PORT(0xa)&0x000c)<<2))); |
| 1311 | | case 0x7cc/2: return ((((DECO_PORT(0xc)&0xfff0)>>4) | ((DECO_PORT(0xc)&0x000e)<<11) | ((DECO_PORT(0xc)&0x0001)<<15)) ^ m_xor) & (~m_nand); |
| 1312 | | case 0x1bc/2: return (((DECO_PORT(0xe)&0xf000)>>12) | ((DECO_PORT(0xe)&0x0f00)>>4) | ((DECO_PORT(0xe)&0x00ff)<<8)) & (~m_nand); |
| 1313 | | case 0x780/2: return DECO_PORT(0xb8); // also caveman ninja |
| 1314 | | case 0x454/2: return (((DECO_PORT(0x82)&0xf000)>>8) | ((DECO_PORT(0x82)&0x0f00)>>0) | ((DECO_PORT(0x82)&0x00f0)>>4) | ((DECO_PORT(0x82)&0x000f)<<12)) ^ m_xor; |
| 1315 | | case 0x53e/2: return ((DECO_PORT(0x9e)&0x0003)<<14) | ((DECO_PORT(0x9e)&0x000c)<<10); |
| 1316 | | case 0x250/2: return (((DECO_PORT(0x62)&0xf0f0)<<0) | ((DECO_PORT(0x62)&0x0f00)>>8) | ((DECO_PORT(0x62)&0x000f)<<8)) & (~m_nand); |
| 1317 | | case 0x150/2: /* Shared */ return DECO_PORT(0x7e); |
| 1318 | | case 0x10e/2: /* Schmeizr Robo only */ return DECO_PORT(0x7c); |
| 1319 | | case 0x56a/2: /* Schmeizr Robo only */ return (((DECO_PORT(0x7c)&0xfff0)>>4) | ((DECO_PORT(0x7c)&0x000e)<<11) | ((DECO_PORT(0x7c)&0x0001)<<15)) & (~m_nand); |
| 1320 | | case 0x39a/2: /* Schmeizr Robo only */ return ((((DECO_PORT(0x7e)&0xfff0)>>4) | ((DECO_PORT(0x7e)&0x000e)<<11) | ((DECO_PORT(0x7e)&0x0001)<<15)) ^ m_xor) & (~m_nand); |
| 1321 | | case 0x188/2: /* Schmeizr Robo only */ return (((m_nand&0x0003)<<6) | ((m_nand&0x000c)<<2) | ((m_nand&0x00f0)<<4) | ((m_nand&0x0f00)<<4)) & (~m_nand); |
| 1322 | | case 0x3cc/2: /* Schmeizr Robo only */ return m_nand; |
| 1323 | | case 0x04a/2: /* Schmeizr Robo only */ return DECO_PORT(0x9e) & (~m_nand); |
| 1324 | | case 0x7e8/2: /* Schmeizr Robo only */ return DECO_PORT(0x4a) ^ m_xor; |
| 1325 | | case 0x0fc/2: /* Schmeizr Robo only */ return DECO_PORT(0x4a); |
| 1326 | | case 0x38c/2: /* Schmeizr Robo only */ return DECO_PORT(0x28); |
| 1327 | | case 0x028/2: /* Schmeizr Robo only */ return DECO_PORT(0x58); |
| 1328 | | |
| 1329 | | // caveman ninja cases |
| 1330 | | case 0x224/2: /* was 0x080 */ /* Master level control */ return prot_ram[0x0/2]; |
| 1331 | | case 0x27a/2: /* was 0x0de */ /* Restart position control */ return prot_ram[0x2/2]; |
| 1332 | | case 0x242/2: /* was 0x0e6 */ /* The number of credits in the system. */ return prot_ram[0x4/2]; |
| 1333 | | case 0x222/2: /* was 0x086 */ /* End of game check. See 0x1814 */ return prot_ram[0x6/2]; |
| 1334 | | case 0x2fe/2: /* was 0x05a */ /* Moved to 0x140000 on int */ return prot_ram[0x10/2]; |
| 1335 | | case 0x220/2: /* was 0x084 */ /* Moved to 0x14000a on int */ return prot_ram[0x12/2]; |
| 1336 | | case 0x284/2: /* was 0x020 */ /* Moved to 0x14000c on int */ return prot_ram[0x14/2]; |
| 1337 | | case 0x2d6/2: /* was 0x072 */ /* Moved to 0x14000e on int */ return prot_ram[0x16/2]; |
| 1338 | | case 0x278/2: /* was 0x0dc */ /* Moved to 0x150000 on int */ return prot_ram[0x18/2]; |
| 1339 | | case 0x2ca/2: /* was 0x06e */ /* Moved to 0x15000a on int */ return prot_ram[0x1a/2]; /* Not used on bootleg */ |
| 1340 | | case 0x2c8/2: /* was 0x06c */ /* Moved to 0x15000c on int */ return prot_ram[0x1c/2]; |
| 1341 | | //case 0x2ac/2: /* was 0x008 */ /* Moved to 0x15000e on int */ return prot_ram[0x1e/2]; |
| 1342 | | //case 0x292/2: /* was 0x036 */ /* Dip switches */ return space.machine().root_device().ioport("DSW")->read(); |
| 1343 | | //case 0x36c/2: /* was 0x1c8 */ /* Coins */ return space.machine().root_device().ioport("IN1")->read(); |
| 1344 | | //case 0x088/2: /* was 0x22c */ /* Player 1 & 2 input ports */ return space.machine().root_device().ioport("IN0")->read(); |
| 1345 | | case 0x016/2: /* was 0x2b2 */ return prot_ram[0x0fc/2]; // 0xad65 |
| 1346 | | case 0x68e/2: /* was 0x42a */ return prot_ram[0x092/2]; // 0xb2b7 |
| 1347 | | case 0x692/2: /* was 0x436 */ return prot_ram[0x088/2]; // 0xea5a |
| 1348 | | //case 0x6e4/2: /* was 0x440 */ return prot_ram[0x098/2]; // 0x7aa0 |
| 1349 | | case 0x6e2/2: /* was 0x446 */ return prot_ram[0x090/2]; // 0x5fdf |
| 1350 | | case 0x6fc/2: /* was 0x458 */ return prot_ram[0x082/2]; // 0x108d |
| 1351 | | //case 0x624/2: /* was 0x480 */ return prot_ram[0x09a/2]; // 0xfbe4 |
| 1352 | | case 0x62a/2: /* was 0x48e */ return prot_ram[0x08a/2]; // 0x67a2 |
| 1353 | | case 0x638/2: /* was 0x49c */ return prot_ram[0x094/2]; // 0xb62a |
| 1354 | | case 0x614/2: /* was 0x4b0 */ return prot_ram[0x096/2]; // 0x3555 |
| 1355 | | case 0x664/2: /* was 0x4c0 */ return prot_ram[0x09e/2]; // 0x6a34 |
| 1356 | | //case 0x662/2: /* was 0x4c6 */ return prot_ram[0x08c/2]; // 0xc6ef |
| 1357 | | case 0x64e/2: /* was 0x4ea */ return prot_ram[0x086/2]; // 0x9feb |
| 1358 | | //case 0x65e/2: /* was 0x4fa */ return prot_ram[0x09c/2]; // 0x1dcb |
| 1359 | | case 0x7ac/2: /* was 0x508 */ return prot_ram[0x08e/2]; // 0xed9c |
| 1360 | | //case 0x7b0/2: /* was 0x514 */ return prot_ram[0x080/2]; // 0xf6e2 |
| 1361 | | case 0x7b8/2: /* was 0x51c */ return prot_ram[0x084/2]; // 0xbdb9 |
| 1362 | | //case 0x780/2: /* was 0x524 */ return prot_ram[0x0b8/2]; // 0x5d26 |
| 1363 | | case 0x782/2: /* was 0x526 */ return prot_ram[0x0a2/2]; // 0x4770 |
| 1364 | | case 0x7f6/2: /* was 0x552 */ return prot_ram[0x0ac/2]; // 0x0843 |
| 1365 | | case 0x7f0/2: /* was 0x554 */ return prot_ram[0x0ba/2]; // 0x9b79 |
| 1366 | | case 0x7ca/2: /* was 0x56e */ return prot_ram[0x0a0/2]; // 0xd1be |
| 1367 | | case 0x7d4/2: /* was 0x570 */ return prot_ram[0x0b4/2]; // 0xc950 |
| 1368 | | case 0x724/2: /* was 0x580 */ return prot_ram[0x0b2/2]; // 0xa600 |
| 1369 | | case 0x73e/2: /* was 0x59a */ return prot_ram[0x0ae/2]; // 0x2b24 |
| 1370 | | case 0x77c/2: /* was 0x5d8 */ return prot_ram[0x0b6/2]; // 0x17c1 |
| 1371 | | case 0x750/2: /* was 0x5f4 */ return prot_ram[0x0aa/2]; // 0xf152 |
| 1372 | | case 0x752/2: /* was 0x5f6 */ return prot_ram[0x0be/2]; // 0x97ce |
| 1373 | | case 0x75c/2: /* was 0x5f8 */ return prot_ram[0x0bc/2]; // 0xa485 |
| 1374 | | case 0x4a0/2: /* was 0x604 */ return prot_ram[0x0a4/2]; // 0x0e88 |
| 1375 | | case 0x4a8/2: /* was 0x60c */ return prot_ram[0x0b0/2]; // 0xab89 |
| 1376 | | case 0x4be/2: /* was 0x61a */ return prot_ram[0x0a6/2]; // 0x64ba |
| 1377 | | case 0x4ee/2: /* was 0x64a */ return prot_ram[0x0cc/2]; // 0x0ae9 |
| 1378 | | case 0x4d4/2: /* was 0x670 */ return prot_ram[0x0d4/2]; // 0x4ec2 |
| 1379 | | case 0x4da/2: /* was 0x67e */ return prot_ram[0x0ca/2]; // 0x61c3 |
| 1380 | | case 0x430/2: /* was 0x694 */ return prot_ram[0x0d2/2]; // 0x3b4f |
| 1381 | | case 0x40c/2: /* was 0x6a8 */ return prot_ram[0x0d6/2]; // 0x0c27 |
| 1382 | | case 0x40a/2: /* was 0x6ae */ return prot_ram[0x0da/2]; // 0x3a72 |
| 1383 | | //case 0x410/2: /* was 0x6b4 */ return prot_ram[0x0de/2]; // 0x15d2 |
| 1384 | | case 0x460/2: /* was 0x6c4 */ return prot_ram[0x0c8/2]; // 0x5849 |
| 1385 | | case 0x46c/2: /* was 0x6c8 */ return prot_ram[0x0d0/2]; // 0x186c |
| 1386 | | case 0x468/2: /* was 0x6cc */ return prot_ram[0x0c0/2]; // 0x713e |
| 1387 | | case 0x47a/2: /* was 0x6de */ return prot_ram[0x0c2/2]; // 0xa87e |
| 1388 | | case 0x45c/2: /* was 0x6f8 */ return prot_ram[0x0d8/2]; // 0x9a31 |
| 1389 | | case 0x45a/2: /* was 0x6fe */ return prot_ram[0x0c6/2]; // 0xec69 |
| 1390 | | case 0x5a4/2: /* was 0x700 */ return prot_ram[0x0ce/2]; // 0x82d9 |
| 1391 | | //case 0x5ae/2: /* was 0x70a */ return prot_ram[0x0dc/2]; // 0x628c |
| 1392 | | case 0x5b0/2: /* was 0x714 */ return prot_ram[0x0c4/2]; // 0xda45 |
| 1393 | | case 0x5e8/2: /* was 0x74c */ return prot_ram[0x0e4/2]; // 0x8e3d |
| 1394 | | case 0x5c0/2: /* was 0x764 */ return prot_ram[0x0fe/2]; // 0xdef7 |
| 1395 | | case 0x5d4/2: /* was 0x770 */ return prot_ram[0x0f4/2]; // 0xe7fe |
| 1396 | | case 0x5d6/2: /* was 0x772 */ return prot_ram[0x0ec/2]; // 0x23ca |
| 1397 | | case 0x5d0/2: /* was 0x774 */ return prot_ram[0x0e2/2]; // 0xe62c |
| 1398 | | case 0x5da/2: /* was 0x77e */ return prot_ram[0x0e8/2]; // 0x6683 |
| 1399 | | case 0x52c/2: /* was 0x788 */ return prot_ram[0x0e0/2]; // 0xd60b |
| 1400 | | case 0x53c/2: /* was 0x798 */ return prot_ram[0x0fa/2]; // 0x9e1a |
| 1401 | | case 0x500/2: /* was 0x7a4 */ return prot_ram[0x0f0/2]; // 0x578f |
| 1402 | | case 0x566/2: /* was 0x7c2 */ return prot_ram[0x0f8/2]; // 0x0503 |
| 1403 | | case 0x54e/2: /* was 0x7ea */ return prot_ram[0x0e6/2]; // 0x8654 |
| 1404 | | case 0x548/2: /* was 0x7ec */ return prot_ram[0x0f6/2]; // 0xa1e1 |
| 1405 | | case 0x55e/2: /* was 0x7fa */ return prot_ram[0x0ea/2]; // 0x5146 |
| 1406 | | case 0x55a/2: /* was 0x7fe */ return prot_ram[0x0f2/2]; // 0x91d4 |
| 1407 | | |
| 1408 | | // wizard fire cases |
| 1409 | | //case 0x088/2: /* was 0x110*/ /* Player input */ return space.machine().root_device().ioport("IN0")->read(); // also used in rohga sim |
| 1410 | | //case 0x36c/2: /* was 0x36c*/ return space.machine().root_device().ioport("IN1")->read(); // also used in rohga sim |
| 1411 | | case 0x2cc/2: /* was 0x334*/ tempinput = m_port_b_r(0); return tempinput; |
| 1412 | | case 0x3b0/2: /* was 0x0dc*/ tempinput = m_port_b_r(0); return tempinput<<4; |
| 1413 | | //case 0x292/2: /* was 0x494*/ /* Dips */ return space.machine().root_device().ioport("DSW1_2")->read(); // also used in rohga sim // also caveman ninja |
| 1414 | | //case 0x224/2: /* was 0x244*/ return DECO_NEW_PORT(0x00); // also caveman ninja |
| 1415 | | //case 0x33e/2: /* was 0x7cc*/ return ((DECO_NEW_PORT(0x00)&0x000f)<<12) | ((DECO_NEW_PORT(0x00)&0x00f0)<<4) | ((DECO_NEW_PORT(0x00)&0x0f00)>>4) | ((DECO_NEW_PORT(0x00)&0xf000)>>12); // also used in rohga sim (NOTE, ROHGA APPLIES MASK, CHECK!) |
| 1416 | | case 0x030/2: /* was 0x0c0*/ return (((DECO_NEW_PORT(0x00)&0x000e)>>1) | ((DECO_NEW_PORT(0x00)&0x0001)<<3))<<12; |
| 1417 | | case 0x118/2: /* was 0x188*/ return (((DECO_NEW_PORT(0x00)&0x000e)>>1) | ((DECO_NEW_PORT(0x00)&0x0001)<<3))<<12; |
| 1418 | | case 0x7a6/2: /* was 0x65e*/ return (((DECO_NEW_PORT(0x00)&0x000c)>>2) | ((DECO_NEW_PORT(0x00)&0x0003)<<2))<<12; |
| 1419 | | case 0x73a/2: /* was 0x5ce*/ return ((DECO_NEW_PORT(0x00)<<8)&0xf000) | ((DECO_NEW_PORT(0x00)&0xe)<<7) | ((DECO_NEW_PORT(0x00)&0x1)<<11); |
| 1420 | | case 0x586/2: /* was 0x61a*/ return (DECO_NEW_PORT(0x00)<<8)&0xff00; |
| 1421 | | //case 0x692/2: /* was 0x496*/ return DECO_NEW_PORT(0x88); // also caveman ninja |
| 1422 | | case 0x502/2: /* was 0x40a*/ return ((DECO_NEW_PORT(0x88)&0x000f)<<12) | ((DECO_NEW_PORT(0x88)&0x00f0)>>4) | ((DECO_NEW_PORT(0x88)&0x0f00)<<0) | ((DECO_NEW_PORT(0x88)&0xf000)>>8); |
| 1423 | | //case 0x178/2: /* was 0x1e8*/ return ((DECO_NEW_PORT(0x88)&0x00ff)<<8) | ((DECO_NEW_PORT(0x88)&0xff00)>>8); // also used in rohga sim (NOTE, ROHGA APPLIES MASK, CHECK!) |
| 1424 | | case 0x3d2/2: /* was 0x4bc*/ return ((DECO_NEW_PORT(0x88)&0x0ff0)<<4) | ((DECO_NEW_PORT(0x88)&0x0003)<<6) | ((DECO_NEW_PORT(0x88)&0x000c)<<2); |
| 1425 | | case 0x762/2: /* was 0x46e*/ return ((DECO_NEW_PORT(0x88)&0xfff0)<<0) | ((DECO_NEW_PORT(0x88)&0x0007)<<1) | ((DECO_NEW_PORT(0x88)&0x0008)>>3); |
| 1426 | | case 0x264/2: /* was 0x264*/ return ((DECO_NEW_PORT(0x88)&0x000f)<<8) | ((DECO_NEW_PORT(0x88)&0x00f0)>>0) | ((DECO_NEW_PORT(0x88)&0x0f00)<<4); |
| 1427 | | case 0x4e8/2: /* was 0x172*/ return ((DECO_NEW_PORT(0x88)&0x000f)<<4) | ((DECO_NEW_PORT(0x88)&0x00f0)<<4) | ((DECO_NEW_PORT(0x88)&0xf000)<<0); |
| 1428 | | //case 0x284/2: /* was 0x214*/ return DECO_NEW_PORT(0x14); // also caveman ninja |
| 1429 | | case 0x74a/2: /* was 0x52e*/ return ((DECO_NEW_PORT(0x14)&0x000f)<<8) | ((DECO_NEW_PORT(0x14)&0x00f0)>>0) | ((DECO_NEW_PORT(0x14)&0x0f00)>>8) | ((DECO_NEW_PORT(0x14)&0xf000)>>0); |
| 1430 | | case 0x5e0/2: /* was 0x07a*/ return ((DECO_NEW_PORT(0x14)&0x000f)<<8) | ((DECO_NEW_PORT(0x14)&0x00f0)>>0) | ((DECO_NEW_PORT(0x14)&0x0f00)>>8) | ((DECO_NEW_PORT(0x14)&0xf000)>>0); |
| 1431 | | case 0x06c/2: /* was 0x360*/ return ((DECO_NEW_PORT(0x14)&0x000f)<<8) | ((DECO_NEW_PORT(0x14)&0x00f0)>>0) | ((DECO_NEW_PORT(0x14)&0x0f00)>>8) | ((DECO_NEW_PORT(0x14)&0xf000)>>0); |
| 1432 | | case 0x3b2/2: /* was 0x4dc*/ return ((DECO_NEW_PORT(0x14)&0x0ff0)<<4) | ((DECO_NEW_PORT(0x14)&0x0007)<<5) | ((DECO_NEW_PORT(0x14)&0x0008)<<1); |
| 1433 | | case 0x15c/2: /* was 0x3a8*/ return ((DECO_NEW_PORT(0x14)&0x000e)<<3) | ((DECO_NEW_PORT(0x14)&0x0001)<<7) | ((DECO_NEW_PORT(0x14)&0x0ff0)<<4) | ((DECO_NEW_PORT(0x14)&0xf000)>>12); |
| 1434 | | case 0x6f4/2: /* was 0x2f6*/ return ((DECO_NEW_PORT(0x14)&0xff00)>>8) | ((DECO_NEW_PORT(0x14)&0x00f0)<<8) | ((DECO_NEW_PORT(0x14)&0x000c)<<6) | ((DECO_NEW_PORT(0x14)&0x0003)<<10); |
| 1435 | | //case 0x27e/2: /* was 0x7e4*/ return (DECO_NEW_PORT(0x94)&0x00f0)<<8; // also used in rohga sim (NOTE, ROHGA APPLIES XOR and MASK, CHECK!) |
| 1436 | | case 0x6ca/2: /* was 0x536*/ return ((DECO_NEW_PORT(0xd4)&0x000f)<<8) | ((DECO_NEW_PORT(0xd4)&0x00f0)<<0) | ((DECO_NEW_PORT(0xd4)&0x0f00)<<4) | ((DECO_NEW_PORT(0xd4)&0xf000)>>12); |
| 1437 | | case 0x7d0/2: /* was 0x0be*/ return ((DECO_NEW_PORT(0xec)&0x000f)<<4) | ((DECO_NEW_PORT(0xec)&0x00f0)<<4) | ((DECO_NEW_PORT(0xec)&0x0f00)>>8) | ((DECO_NEW_PORT(0xec)&0xf000)>>0); |
| 1438 | | //case 0x092/2: /* was 0x490*/ return (DECO_NEW_PORT(0x3c)&0xfff0) | ((DECO_NEW_PORT(0x3c)&0x0007)<<1) | ((DECO_NEW_PORT(0x3c)&0x0008)>>3); // also used in rohga sim |
| 1439 | | case 0x08e/2: /* was 0x710*/ return (DECO_NEW_PORT(0xc2)&0xfff0) | ((DECO_NEW_PORT(0xc2)&0x0007)<<1) | ((DECO_NEW_PORT(0xc2)&0x0008)>>3); |
| 1440 | | case 0x544/2: /* was 0x22a*/ return ((DECO_NEW_PORT(0x5a)&0xff00)>>8) | ((DECO_NEW_PORT(0x5a)&0x00f0)<<8) | ((DECO_NEW_PORT(0x5a)&0x0001)<<11) | ((DECO_NEW_PORT(0x5a)&0x000e)<<7); |
| 1441 | | case 0x646/2: /* was 0x626*/ return ((DECO_NEW_PORT(0xda)&0x000f)<<8) | ((DECO_NEW_PORT(0xda)&0x00f0)<<8) | ((DECO_NEW_PORT(0xda)&0x0f00)>>4) | ((DECO_NEW_PORT(0xda)&0xf000)>>12); |
| 1442 | | //case 0x222/2: /* was 0x444*/ return DECO_NEW_PORT(0x06); // (old comment was 'rohga') /* this CAN'T be right (port addr > 0x100), is it even used by this game or some c+p error? */ |
| 1443 | | case 0x35a/2: /* was 0x5ac*/ return ((DECO_NEW_PORT(0x76)&0xfff0)>>4) | ((DECO_NEW_PORT(0x76)&0x0007)<<13) | ((DECO_NEW_PORT(0x76)&0x0008)<<9); |
| 1444 | | case 0x0a6/2: /* was 0x650*/ return ((DECO_NEW_PORT(0xbe)&0xfff0)>>4) | ((DECO_NEW_PORT(0xbe)&0x000f)<<12); // also used in rohga sim |
| 1445 | | case 0x352/2: /* was 0x4ac*/ return ((DECO_NEW_PORT(0x62)&0x0007)<<13) | ((DECO_NEW_PORT(0x62)&0x0008)<<9); |
| 1446 | | |
| 1447 | | } |
| 1448 | | //logerror("Protection PC %06x: warning - read unmapped memory address %04x\n",device().safe_pc(),offset); |
| 1449 | | |
| 1450 | | return 0x0000; |
| 1451 | | } |
| 1452 | | |
| 1453 | | |
| 1454 | | |
| 1455 | 1090 | /**********************************************************************************/ |
| 1456 | 1091 | |
| 1457 | 1092 | |
| r24574 | r24575 | |
| 1490 | 1125 | /**********************************************************************************/ |
| 1491 | 1126 | |
| 1492 | 1127 | |
| 1493 | | |
| 1494 | | |
| 1495 | | |
| 1496 | | void deco104_device::write_protport(address_space &space, UINT16 address, UINT16 data, UINT16 mem_mask) |
| 1497 | | { |
| 1498 | | deco_146_base_device::write_protport(space,address,data,mem_mask); |
| 1499 | | } |