Previous 199869 Revisions Next

r21042 Wednesday 13th February, 2013 at 19:35:57 UTC by Wilbert Pol
(MESS) ng_aes: Reduce tagmap lookups (nw)
[src/mess/drivers]ng_aes.c

trunk/src/mess/drivers/ng_aes.c
r21041r21042
9797{
9898public:
9999   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")
102116   {
103117      NeoCDDMAAddress1 = 0;
104118      NeoCDDMAAddress2 = 0;
r21041r21042
180194   IRQ_CALLBACK_MEMBER(neocd_int_callback);
181195
182196protected:
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
183212   void common_machine_start();
184213};
185214
r21041r21042
959988READ16_MEMBER(ng_aes_state::aes_in0_r)
960989{
961990   UINT32 ret = 0xffff;
962   UINT32 ctrl = ioport("CTRLSEL")->read();
991   UINT32 ctrl = m_io_ctrlsel->read();
963992
964993   switch(ctrl & 0x0f)
965994   {
r21041r21042
967996      ret = 0xffff;
968997      break;
969998   case 0x01:
970      ret = ioport("IN0")->read();
999      ret = m_io_in0->read();
9711000      break;
9721001   case 0x02:
9731002      switch (m_controller_select)
9741003      {
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;
9791008         default:
980            ret = ioport("IN0")->read();
1009            ret = m_io_in0->read();
9811010            break;
9821011      }
9831012      break;
r21041r21042
9891018READ16_MEMBER(ng_aes_state::aes_in1_r)
9901019{
9911020   UINT32 ret = 0xffff;
992   UINT32 ctrl = ioport("CTRLSEL")->read();
1021   UINT32 ctrl = m_io_ctrlsel->read();
9931022
9941023   switch(ctrl & 0xf0)
9951024   {
r21041r21042
9971026      ret = 0xffff;
9981027      break;
9991028   case 0x10:
1000      ret = ioport("IN1")->read();
1029      ret = m_io_in1->read();
10011030      break;
10021031   case 0x20:
10031032      switch (m_controller_select)
10041033      {
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;
10091038         default:
1010            ret = ioport("IN1")->read();
1039            ret = m_io_in1->read();
10111040            break;
10121041      }
10131042      break;
r21041r21042
10191048
10201049READ16_MEMBER(ng_aes_state::aes_in2_r)
10211050{
1022   UINT32 in2 = ioport("IN2")->read();
1051   UINT32 in2 = m_io_in2->read();
10231052   UINT32 ret = in2;
1024   UINT32 sel = ioport("CTRLSEL")->read();
1053   UINT32 sel = m_io_ctrlsel->read();
10251054
10261055   if((sel & 0x02) && (m_controller_select == 0x24))
10271056      ret ^= 0x0200;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team