summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/nes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/includes/nes.h')
-rw-r--r--src/mess/includes/nes.h59
1 files changed, 9 insertions, 50 deletions
diff --git a/src/mess/includes/nes.h b/src/mess/includes/nes.h
index 02b22a2b9c5..7c34c693545 100644
--- a/src/mess/includes/nes.h
+++ b/src/mess/includes/nes.h
@@ -13,8 +13,8 @@
#include "video/ppu2c0x.h"
#include "bus/nes/nes_slot.h"
#include "bus/nes/nes_carts.h"
+#include "bus/nes_ctrl/ctrl.h"
#include "sound/nes_apu.h"
-#include "imagedev/cassette.h"
/***************************************************************************
CONSTANTS
@@ -30,12 +30,6 @@
TYPE DEFINITIONS
***************************************************************************/
-struct nes_input
-{
- UINT32 shift;
- UINT32 i0, i1, i2;
-};
-
/*PPU fast banking constants and structures */
#define CHRROM 0
@@ -57,44 +51,22 @@ struct nes_input
class nes_state : public driver_device
{
public:
- enum
- {
- TIMER_ZAPPER_TICK,
- TIMER_LIGHTGUN_TICK
- };
-
nes_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_ppu(*this, "ppu"),
m_sound(*this, "nessound"),
+ m_ctrl1(*this, "ctrl1"),
+ m_ctrl2(*this, "ctrl2"),
+ m_exp(*this, "exp"),
m_cartslot(*this, "nes_slot"),
- m_disk(*this, "disk"),
- m_cassette(*this, "tape")
+ m_disk(*this, "disk")
{ }
/* video-related */
int m_last_frame_flip;
/* misc */
- ioport_port *m_io_ctrlsel;
- ioport_port *m_io_fckey[9];
- ioport_port *m_io_subkey[13];
- ioport_port *m_io_pad[4];
- ioport_port *m_io_powerpad[2];
- ioport_port *m_io_mahjong[4];
- ioport_port *m_io_ftrainer[4];
- ioport_port *m_io_cc_left;
- ioport_port *m_io_cc_right;
- ioport_port *m_io_zapper1_t;
- ioport_port *m_io_zapper1_x;
- ioport_port *m_io_zapper1_y;
- ioport_port *m_io_zapper2_t;
- ioport_port *m_io_zapper2_x;
- ioport_port *m_io_zapper2_y;
- ioport_port *m_io_paddle;
- ioport_port *m_io_paddle_btn;
- ioport_port *m_io_exp;
ioport_port *m_io_disksel;
UINT8 *m_vram;
@@ -103,9 +75,11 @@ public:
required_device<cpu_device> m_maincpu;
required_device<ppu2c0x_device> m_ppu;
required_device<nesapu_device> m_sound;
+ required_device<nes_control_port_device> m_ctrl1;
+ required_device<nes_control_port_device> m_ctrl2;
+ optional_device<nes_control_port_device> m_exp;
optional_device<nes_cart_slot_device> m_cartslot;
optional_device<nes_disksys_device> m_disk;
- optional_device<cassette_image_device> m_cassette;
int nes_ppu_vidaccess(int address, int data);
void ppu_nmi(int *ppu_regs);
@@ -113,7 +87,6 @@ public:
DECLARE_READ8_MEMBER(nes_in0_r);
DECLARE_READ8_MEMBER(nes_in1_r);
DECLARE_WRITE8_MEMBER(nes_in0_w);
- DECLARE_WRITE8_MEMBER(nes_in1_w);
DECLARE_READ8_MEMBER(fc_in0_r);
DECLARE_READ8_MEMBER(fc_in1_r);
DECLARE_WRITE8_MEMBER(fc_in0_w);
@@ -127,8 +100,7 @@ public:
DECLARE_READ8_MEMBER(psg_4015_r);
DECLARE_WRITE8_MEMBER(psg_4015_w);
DECLARE_WRITE8_MEMBER(psg_4017_w);
- void state_register();
- void setup_ioports();
+ NESCTRL_BRIGHTPIXEL_CB(bright_pixel);
DECLARE_DRIVER_INIT(famicom);
@@ -139,19 +111,6 @@ public:
DECLARE_MACHINE_RESET(famitwin);
void setup_disk(nes_disksys_device *slot);
- // input related
- UINT32 m_pad_latch[4];
- UINT8 m_zapper_latch[2][3];
- UINT8 m_paddle_latch, m_paddle_btn_latch;
- UINT8 m_mjpanel_latch;
- UINT8 m_fck_scan, m_fck_mode;
- UINT8 m_mic_obstruct;
- UINT8 m_powerpad_latch[2];
- UINT8 m_ftrainer_scan;
-
-protected:
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
-
private:
memory_bank *m_prg_bank_mem[5];
};