trunk/src/mess/drivers/ng_aes.c
| r21041 | r21042 | |
| 97 | 97 | { |
| 98 | 98 | public: |
| 99 | 99 | ng_aes_state(const machine_config &mconfig, device_type type, const char *tag) |
| 100 | | : neogeo_state(mconfig, type, tag), |
| 101 | | m_tempcdc(*this,"tempcdc") |
| 100 | : neogeo_state(mconfig, type, tag) |
| 101 | , m_tempcdc(*this,"tempcdc") |
| 102 | , m_io_in2(*this, "IN2") |
| 103 | , m_io_in3(*this, "IN3") |
| 104 | , m_io_in4(*this, "IN4") |
| 105 | , m_io_in0(*this, "IN0") |
| 106 | , m_io_in1(*this, "IN1") |
| 107 | , m_io_mj01_p1(*this, "MJ01_P1") |
| 108 | , m_io_mj02_p1(*this, "MJ02_P1") |
| 109 | , m_io_mj03_p1(*this, "MJ03_P1") |
| 110 | , m_io_mj04_p1(*this, "MJ04_P1") |
| 111 | , m_io_mj01_p2(*this, "MJ01_P2") |
| 112 | , m_io_mj02_p2(*this, "MJ02_P2") |
| 113 | , m_io_mj03_p2(*this, "MJ03_P2") |
| 114 | , m_io_mj04_p2(*this, "MJ04_P2") |
| 115 | , m_io_ctrlsel(*this, "CTRLSEL") |
| 102 | 116 | { |
| 103 | 117 | NeoCDDMAAddress1 = 0; |
| 104 | 118 | NeoCDDMAAddress2 = 0; |
| r21041 | r21042 | |
| 180 | 194 | IRQ_CALLBACK_MEMBER(neocd_int_callback); |
| 181 | 195 | |
| 182 | 196 | protected: |
| 197 | required_ioport m_io_in2; |
| 198 | required_ioport m_io_in3; |
| 199 | required_ioport m_io_in4; |
| 200 | required_ioport m_io_in0; |
| 201 | required_ioport m_io_in1; |
| 202 | required_ioport m_io_mj01_p1; |
| 203 | required_ioport m_io_mj02_p1; |
| 204 | required_ioport m_io_mj03_p1; |
| 205 | required_ioport m_io_mj04_p1; |
| 206 | required_ioport m_io_mj01_p2; |
| 207 | required_ioport m_io_mj02_p2; |
| 208 | required_ioport m_io_mj03_p2; |
| 209 | required_ioport m_io_mj04_p2; |
| 210 | required_ioport m_io_ctrlsel; |
| 211 | |
| 183 | 212 | void common_machine_start(); |
| 184 | 213 | }; |
| 185 | 214 | |
| r21041 | r21042 | |
| 959 | 988 | READ16_MEMBER(ng_aes_state::aes_in0_r) |
| 960 | 989 | { |
| 961 | 990 | UINT32 ret = 0xffff; |
| 962 | | UINT32 ctrl = ioport("CTRLSEL")->read(); |
| 991 | UINT32 ctrl = m_io_ctrlsel->read(); |
| 963 | 992 | |
| 964 | 993 | switch(ctrl & 0x0f) |
| 965 | 994 | { |
| r21041 | r21042 | |
| 967 | 996 | ret = 0xffff; |
| 968 | 997 | break; |
| 969 | 998 | case 0x01: |
| 970 | | ret = ioport("IN0")->read(); |
| 999 | ret = m_io_in0->read(); |
| 971 | 1000 | break; |
| 972 | 1001 | case 0x02: |
| 973 | 1002 | switch (m_controller_select) |
| 974 | 1003 | { |
| 975 | | case 0x09: ret = ioport("MJ01_P1")->read(); break; |
| 976 | | case 0x12: ret = ioport("MJ02_P1")->read(); break; |
| 977 | | case 0x1b: ret = ioport("MJ03_P1")->read(); break; /* player 1 normal inputs? */ |
| 978 | | case 0x24: ret = ioport("MJ04_P1")->read(); break; |
| 1004 | case 0x09: ret = m_io_mj01_p1->read(); break; |
| 1005 | case 0x12: ret = m_io_mj02_p1->read(); break; |
| 1006 | case 0x1b: ret = m_io_mj03_p1->read(); break; /* player 1 normal inputs? */ |
| 1007 | case 0x24: ret = m_io_mj04_p1->read(); break; |
| 979 | 1008 | default: |
| 980 | | ret = ioport("IN0")->read(); |
| 1009 | ret = m_io_in0->read(); |
| 981 | 1010 | break; |
| 982 | 1011 | } |
| 983 | 1012 | break; |
| r21041 | r21042 | |
| 989 | 1018 | READ16_MEMBER(ng_aes_state::aes_in1_r) |
| 990 | 1019 | { |
| 991 | 1020 | UINT32 ret = 0xffff; |
| 992 | | UINT32 ctrl = ioport("CTRLSEL")->read(); |
| 1021 | UINT32 ctrl = m_io_ctrlsel->read(); |
| 993 | 1022 | |
| 994 | 1023 | switch(ctrl & 0xf0) |
| 995 | 1024 | { |
| r21041 | r21042 | |
| 997 | 1026 | ret = 0xffff; |
| 998 | 1027 | break; |
| 999 | 1028 | case 0x10: |
| 1000 | | ret = ioport("IN1")->read(); |
| 1029 | ret = m_io_in1->read(); |
| 1001 | 1030 | break; |
| 1002 | 1031 | case 0x20: |
| 1003 | 1032 | switch (m_controller_select) |
| 1004 | 1033 | { |
| 1005 | | case 0x09: ret = ioport("MJ01_P2")->read(); break; |
| 1006 | | case 0x12: ret = ioport("MJ02_P2")->read(); break; |
| 1007 | | case 0x1b: ret = ioport("MJ03_P2")->read(); break; /* player 2 normal inputs? */ |
| 1008 | | case 0x24: ret = ioport("MJ04_P2")->read(); break; |
| 1034 | case 0x09: ret = m_io_mj01_p2->read(); break; |
| 1035 | case 0x12: ret = m_io_mj02_p2->read(); break; |
| 1036 | case 0x1b: ret = m_io_mj03_p2->read(); break; /* player 2 normal inputs? */ |
| 1037 | case 0x24: ret = m_io_mj04_p2->read(); break; |
| 1009 | 1038 | default: |
| 1010 | | ret = ioport("IN1")->read(); |
| 1039 | ret = m_io_in1->read(); |
| 1011 | 1040 | break; |
| 1012 | 1041 | } |
| 1013 | 1042 | break; |
| r21041 | r21042 | |
| 1019 | 1048 | |
| 1020 | 1049 | READ16_MEMBER(ng_aes_state::aes_in2_r) |
| 1021 | 1050 | { |
| 1022 | | UINT32 in2 = ioport("IN2")->read(); |
| 1051 | UINT32 in2 = m_io_in2->read(); |
| 1023 | 1052 | UINT32 ret = in2; |
| 1024 | | UINT32 sel = ioport("CTRLSEL")->read(); |
| 1053 | UINT32 sel = m_io_ctrlsel->read(); |
| 1025 | 1054 | |
| 1026 | 1055 | if((sel & 0x02) && (m_controller_select == 0x24)) |
| 1027 | 1056 | ret ^= 0x0200; |