summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-01-31 09:20:51 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-01-31 09:20:51 +0000
commit2ab4d2770abe8dd3544a010da7f840700e40032a (patch)
tree45c0f02d790d1e44e231306e5fb961013489d60e /src/mame
parentf913a4767fc2678a3f57d42c42b2f64add8135e2 (diff)
Move some calls into machine state (no whatsnew)
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/alg.c20
-rw-r--r--src/mame/drivers/amaticmg.c20
-rw-r--r--src/mame/drivers/arcadia.c47
-rw-r--r--src/mame/drivers/astinvad.c10
-rw-r--r--src/mame/drivers/astrocorp.c12
-rw-r--r--src/mame/drivers/atvtrack.c78
-rw-r--r--src/mame/drivers/backfire.c11
-rw-r--r--src/mame/drivers/beaminv.c16
-rw-r--r--src/mame/drivers/berzerk.c45
-rw-r--r--src/mame/drivers/bestleag.c22
-rw-r--r--src/mame/drivers/bfcobra.c55
-rw-r--r--src/mame/drivers/bfm_sc1.c26
-rw-r--r--src/mame/drivers/blackt96.c25
-rw-r--r--src/mame/drivers/bnstars.c108
-rw-r--r--src/mame/drivers/boxer.c20
15 files changed, 263 insertions, 252 deletions
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index 4792e983c41..ebefe2f368b 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -60,6 +60,7 @@ public:
DECLARE_MACHINE_RESET(alg);
DECLARE_VIDEO_START(alg);
TIMER_CALLBACK_MEMBER(response_timer);
+ void alg_init();
};
@@ -687,9 +688,8 @@ ROM_END
*
*************************************/
-static void alg_init(running_machine &machine)
+void alg_state::alg_init()
{
- alg_state *state = machine.driver_data<alg_state>();
static const amiga_machine_interface alg_intf =
{
ANGUS_CHIP_RAM_MASK,
@@ -701,11 +701,11 @@ static void alg_init(running_machine &machine)
NULL,
0
};
- amiga_machine_config(machine, &alg_intf);
+ amiga_machine_config(machine(), &alg_intf);
/* set up memory */
- state->m_bank1->configure_entry(0, state->m_chip_ram);
- state->m_bank1->configure_entry(1, machine.root_device().memregion("user1")->base());
+ m_bank1->configure_entry(0, m_chip_ram);
+ m_bank1->configure_entry(1, machine().root_device().memregion("user1")->base());
}
@@ -733,7 +733,7 @@ DRIVER_INIT_MEMBER(alg_state,palr1)
}
auto_free(machine(), original);
- alg_init(machine());
+ alg_init();
}
DRIVER_INIT_MEMBER(alg_state,palr3)
@@ -752,7 +752,7 @@ DRIVER_INIT_MEMBER(alg_state,palr3)
}
auto_free(machine(), original);
- alg_init(machine());
+ alg_init();
}
DRIVER_INIT_MEMBER(alg_state,palr6)
@@ -773,7 +773,7 @@ DRIVER_INIT_MEMBER(alg_state,palr6)
}
auto_free(machine(), original);
- alg_init(machine());
+ alg_init();
}
DRIVER_INIT_MEMBER(alg_state,aplatoon)
@@ -793,12 +793,12 @@ DRIVER_INIT_MEMBER(alg_state,aplatoon)
memcpy(decrypted + i * 0x1000, rom + shuffle[i] * 0x1000, 0x1000);
memcpy(rom, decrypted, 0x40000);
logerror("decrypt done\n ");
- alg_init(machine());
+ alg_init();
}
DRIVER_INIT_MEMBER(alg_state,none)
{
- alg_init(machine());
+ alg_init();
}
diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c
index eeb935f0273..0faf46441f6 100644
--- a/src/mame/drivers/amaticmg.c
+++ b/src/mame/drivers/amaticmg.c
@@ -455,6 +455,8 @@ public:
UINT32 screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(amaticmg2_irq);
+ void encf(UINT8 ciphertext, int address, UINT8 &plaintext, int &newaddress);
+ void decrypt(int key1, int key2);
};
@@ -1060,7 +1062,7 @@ ROM_END
* Driver Initialization *
************************************/
-static void encf(UINT8 ciphertext, int address, UINT8 &plaintext, int &newaddress)
+void amaticmg_state::encf(UINT8 ciphertext, int address, UINT8 &plaintext, int &newaddress)
{
int aux = address & 0xfff;
aux = aux ^ (aux>>6);
@@ -1074,14 +1076,14 @@ static void encf(UINT8 ciphertext, int address, UINT8 &plaintext, int &newaddres
newaddress = (address & ~0xfff) | aux;
}
-static void decrypt(running_machine &machine, int key1, int key2)
+void amaticmg_state::decrypt(int key1, int key2)
{
UINT8 plaintext;
int newaddress;
- UINT8 *src = machine.root_device().memregion("mainprg")->base();
- UINT8 *dest = machine.root_device().memregion("maincpu")->base();
- int len = machine.root_device().memregion("mainprg")->bytes();
+ UINT8 *src = machine().root_device().memregion("mainprg")->base();
+ UINT8 *dest = machine().root_device().memregion("maincpu")->base();
+ int len = machine().root_device().memregion("mainprg")->bytes();
for (int i = 0; i < len; i++)
{
@@ -1092,22 +1094,22 @@ static void decrypt(running_machine &machine, int key1, int key2)
DRIVER_INIT_MEMBER(amaticmg_state,ama8000_1_x)
{
- decrypt(machine(), 0x4d1, 0xf5);
+ decrypt(0x4d1, 0xf5);
}
DRIVER_INIT_MEMBER(amaticmg_state,ama8000_2_i)
{
- decrypt(machine(), 0x436, 0x55);
+ decrypt(0x436, 0x55);
}
DRIVER_INIT_MEMBER(amaticmg_state,ama8000_2_v)
{
- decrypt(machine(), 0x703, 0xaf);
+ decrypt(0x703, 0xaf);
}
DRIVER_INIT_MEMBER(amaticmg_state,ama8000_3_o)
{
- decrypt(machine(), 0x56e, 0xa7);
+ decrypt(0x56e, 0xa7);
}
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index 677ca54d6ae..4d54b0e6665 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -79,6 +79,8 @@ public:
DECLARE_DRIVER_INIT(airh);
DECLARE_DRIVER_INIT(ldrba);
DECLARE_DRIVER_INIT(socc);
+ void arcadia_init();
+ inline void generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0);
};
@@ -764,9 +766,9 @@ ROM_END
*
*************************************/
-INLINE void generic_decode(running_machine &machine, const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0)
+void arcadia_amiga_state::generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0)
{
- UINT16 *rom = (UINT16 *)machine.root_device().memregion(tag)->base();
+ UINT16 *rom = (UINT16 *)machine().root_device().memregion(tag)->base();
int i;
/* only the low byte of ROMs are encrypted in these games */
@@ -775,12 +777,12 @@ INLINE void generic_decode(running_machine &machine, const char *tag, int bit7,
#if 0
{
- UINT8 *ROM = machine.root_device().memregion(tag)->base();
- int size = machine.root_device().memregion(tag)->bytes();
+ UINT8 *ROM = machine().root_device().memregion(tag)->base();
+ int size = machine().root_device().memregion(tag)->bytes();
FILE *fp;
char filename[256];
- sprintf(filename,"decrypted_%s", machine.system().name);
+ sprintf(filename,"decrypted_%s", machine().system().name);
fp=fopen(filename, "w+b");
if (fp)
{
@@ -799,9 +801,8 @@ INLINE void generic_decode(running_machine &machine, const char *tag, int bit7,
*
*************************************/
-static void arcadia_init(running_machine &machine)
+void arcadia_amiga_state::arcadia_init()
{
- arcadia_amiga_state *state = machine.driver_data<arcadia_amiga_state>();
static const amiga_machine_interface arcadia_intf =
{
ANGUS_CHIP_RAM_MASK,
@@ -814,16 +815,16 @@ static void arcadia_init(running_machine &machine)
UINT16 *biosrom;
/* configure our Amiga setup */
- amiga_machine_config(machine, &arcadia_intf);
+ amiga_machine_config(machine(), &arcadia_intf);
/* set up memory */
- state->m_bank1->configure_entry(0, state->m_chip_ram);
- state->m_bank1->configure_entry(1, machine.root_device().memregion("user1")->base());
+ m_bank1->configure_entry(0, m_chip_ram);
+ m_bank1->configure_entry(1, machine().root_device().memregion("user1")->base());
/* OnePlay bios is encrypted, TenPlay is not */
- biosrom = (UINT16 *)machine.root_device().memregion("user2")->base();
+ biosrom = (UINT16 *)machine().root_device().memregion("user2")->base();
if (biosrom[0] != 0x4afc)
- generic_decode(machine, "user2", 6, 1, 0, 2, 3, 4, 5, 7);
+ generic_decode("user2", 6, 1, 0, 2, 3, 4, 5, 7);
}
@@ -834,17 +835,17 @@ static void arcadia_init(running_machine &machine)
*
*************************************/
-DRIVER_INIT_MEMBER(arcadia_amiga_state,none) { arcadia_init(machine()); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,airh) { arcadia_init(machine()); generic_decode(machine(), "user3", 5, 0, 2, 4, 7, 6, 1, 3); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,bowl) { arcadia_init(machine()); generic_decode(machine(), "user3", 7, 6, 0, 1, 2, 3, 4, 5); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,dart) { arcadia_init(machine()); generic_decode(machine(), "user3", 4, 0, 7, 6, 3, 1, 2, 5); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,ldrba) { arcadia_init(machine()); generic_decode(machine(), "user3", 2, 3, 4, 1, 0, 7, 5, 6); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,ninj) { arcadia_init(machine()); generic_decode(machine(), "user3", 1, 6, 5, 7, 4, 2, 0, 3); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,rdwr) { arcadia_init(machine()); generic_decode(machine(), "user3", 3, 1, 6, 4, 0, 5, 2, 7); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,sdwr) { arcadia_init(machine()); generic_decode(machine(), "user3", 6, 3, 4, 5, 2, 1, 0, 7); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,socc) { arcadia_init(machine()); generic_decode(machine(), "user3", 0, 7, 1, 6, 5, 4, 3, 2); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,sprg) { arcadia_init(machine()); generic_decode(machine(), "user3", 4, 7, 3, 0, 6, 5, 2, 1); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,xeon) { arcadia_init(machine()); generic_decode(machine(), "user3", 3, 1, 2, 4, 0, 5, 6, 7); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,none) { arcadia_init(); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,airh) { arcadia_init(); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,bowl) { arcadia_init(); generic_decode("user3", 7, 6, 0, 1, 2, 3, 4, 5); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,dart) { arcadia_init(); generic_decode("user3", 4, 0, 7, 6, 3, 1, 2, 5); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,ldrba) { arcadia_init(); generic_decode("user3", 2, 3, 4, 1, 0, 7, 5, 6); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,ninj) { arcadia_init(); generic_decode("user3", 1, 6, 5, 7, 4, 2, 0, 3); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,rdwr) { arcadia_init(); generic_decode("user3", 3, 1, 6, 4, 0, 5, 2, 7); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,sdwr) { arcadia_init(); generic_decode("user3", 6, 3, 4, 5, 2, 1, 0, 7); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,socc) { arcadia_init(); generic_decode("user3", 0, 7, 1, 6, 5, 4, 3, 2); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,sprg) { arcadia_init(); generic_decode("user3", 4, 7, 3, 0, 6, 5, 2, 1); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,xeon) { arcadia_init(); generic_decode("user3", 3, 1, 2, 4, 0, 5, 6, 7); }
/*************************************
*
diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c
index 35b7670ac49..1c88a19e709 100644
--- a/src/mame/drivers/astinvad.c
+++ b/src/mame/drivers/astinvad.c
@@ -85,6 +85,7 @@ public:
UINT32 screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(kamikaze_int_off);
TIMER_CALLBACK_MEMBER(kamizake_int_gen);
+ void plot_byte( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, UINT8 color );
};
@@ -154,11 +155,10 @@ WRITE8_MEMBER(astinvad_state::spaceint_videoram_w)
*
*************************************/
-static void plot_byte( running_machine &machine, bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, UINT8 color )
+void astinvad_state::plot_byte( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, UINT8 color )
{
- astinvad_state *state = machine.driver_data<astinvad_state>();
pen_t fore_pen = MAKE_RGB(pal1bit(color >> 0), pal1bit(color >> 2), pal1bit(color >> 1));
- UINT8 flip_xor = state->m_screen_flip & 7;
+ UINT8 flip_xor = m_screen_flip & 7;
bitmap.pix32(y, x + (0 ^ flip_xor)) = (data & 0x01) ? fore_pen : RGB_BLACK;
bitmap.pix32(y, x + (1 ^ flip_xor)) = (data & 0x02) ? fore_pen : RGB_BLACK;
@@ -183,7 +183,7 @@ UINT32 astinvad_state::screen_update_astinvad(screen_device &screen, bitmap_rgb3
{
UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (m_screen_flip ? 0 : 4);
UINT8 data = m_videoram[(((y ^ m_screen_flip) + yoffs) << 5) | ((x ^ m_screen_flip) >> 3)];
- plot_byte(machine(), bitmap, y, x, data, m_screen_red ? 1 : color);
+ plot_byte(bitmap, y, x, data, m_screen_red ? 1 : color);
}
return 0;
@@ -216,7 +216,7 @@ UINT32 astinvad_state::screen_update_spaceint(screen_device &screen, bitmap_rgb3
n = ((offs >> 5) & 0xf0) | color;
color = color_prom[n] & 0x07;
- plot_byte(machine(), bitmap, y, x, data, color);
+ plot_byte(bitmap, y, x, data, color);
}
return 0;
diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c
index ffab5563334..668e5d51b35 100644
--- a/src/mame/drivers/astrocorp.c
+++ b/src/mame/drivers/astrocorp.c
@@ -69,6 +69,7 @@ public:
DECLARE_VIDEO_START(astrocorp);
UINT32 screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(skilldrp_scanline);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/***************************************************************************
@@ -106,11 +107,10 @@ VIDEO_START_MEMBER(astrocorp_state,astrocorp)
***************************************************************************/
-static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
+void astrocorp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- astrocorp_state *state = machine.driver_data<astrocorp_state>();
- UINT16 *source = state->m_spriteram;
- UINT16 *finish = state->m_spriteram + state->m_spriteram.bytes() / 2;
+ UINT16 *source = m_spriteram;
+ UINT16 *finish = m_spriteram + m_spriteram.bytes() / 2;
for ( ; source < finish; source += 8 / 2 )
{
@@ -142,7 +142,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
{
for (xwrap = 0 ; xwrap <= 0x200 ; xwrap += 0x200)
{
- drawgfx_transpen(bitmap,cliprect, machine.gfx[0],
+ drawgfx_transpen(bitmap,cliprect, machine().gfx[0],
code, 0,
0, 0,
sx + x * 16 - xwrap, sy + y * 16 - ywrap, 0xff);
@@ -175,7 +175,7 @@ WRITE16_MEMBER(astrocorp_state::astrocorp_draw_sprites_w)
UINT16 now = COMBINE_DATA(&m_draw_sprites);
if (!old && now)
- draw_sprites(machine(), m_bitmap, machine().primary_screen->visible_area());
+ draw_sprites(m_bitmap, machine().primary_screen->visible_area());
}
WRITE16_MEMBER(astrocorp_state::astrocorp_eeprom_w)
diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c
index 209d2d0e394..32da20a2729 100644
--- a/src/mame/drivers/atvtrack.c
+++ b/src/mame/drivers/atvtrack.c
@@ -60,9 +60,6 @@ Notes:
#include "cpu/sh4/sh4.h"
#include "debugger.h"
-memory_region *nandregion;
-int nandcommand[4], nandoffset[4], nandaddressstep, nandaddress[4];
-UINT32 area1_data[4];
//#define SPECIALMODE 1 // Alternate code path
@@ -86,9 +83,16 @@ public:
virtual void machine_reset();
virtual void video_start();
UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ inline UINT32 decode64_32(offs_t offset64, UINT64 data, UINT64 mem_mask, offs_t &offset32);
+ void logbinary(UINT32 data,int high,int low);
+
+ memory_region *m_nandregion;
+ int m_nandcommand[4], m_nandoffset[4], m_nandaddressstep, m_nandaddress[4];
+ UINT32 m_area1_data[4];
+
};
-static void logbinary(UINT32 data,int high=31,int low=0)
+void atvtrack_state::logbinary(UINT32 data,int high=31,int low=0)
{
UINT32 s;
int z;
@@ -103,7 +107,7 @@ static void logbinary(UINT32 data,int high=31,int low=0)
}
}
-static inline UINT32 decode64_32(offs_t offset64, UINT64 data, UINT64 mem_mask, offs_t &offset32)
+inline UINT32 atvtrack_state::decode64_32(offs_t offset64, UINT64 data, UINT64 mem_mask, offs_t &offset32)
{
if (ACCESSING_BITS_0_31) {
offset32 = offset64 << 1;
@@ -137,8 +141,8 @@ WRITE64_MEMBER(atvtrack_state::area1_w)
addr = 0;
dat = decode64_32(offset, data, mem_mask, addr);
-// old = area1_data[addr];
- area1_data[addr] = dat;
+// old = m_area1_data[addr];
+ m_area1_data[addr] = dat;
if (addr == (0x00020000-0x00020000)/4) {
if (data & 4) {
device_execute_interface *exec = dynamic_cast<device_execute_interface *>(machine().device("subcpu"));
@@ -160,10 +164,10 @@ READ64_MEMBER(atvtrack_state::area2_r)
if (addr == 0) {
dat = 0;
for (c = 3;c >= 0;c--) {
- if (nandcommand[c] <= 0x50) {
- addr = nandaddress[c]+nandoffset[c];
- dat = (dat << 8) | nandregion->u8(addr+c);
- nandoffset[c] += 4;
+ if (m_nandcommand[c] <= 0x50) {
+ addr = m_nandaddress[c]+m_nandoffset[c];
+ dat = (dat << 8) | m_nandregion->u8(addr+c);
+ m_nandoffset[c] += 4;
} else
dat = (dat << 8) | 0xc0;
}
@@ -207,26 +211,26 @@ WRITE64_MEMBER(atvtrack_state::area3_w)
// dat = decode64_32(offset, data, mem_mask, addr);
if (addr == 0) {
for (c = 0;c < 4;c++) {
- nandcommand[c] = data & 0xff;
- if (nandcommand[c] == 0x00) {
- nandoffset[c] = 0;
- } else if (nandcommand[c] == 0x01) {
- nandoffset[c] = 256*4;
- } else if (nandcommand[c] == 0x50) {
- nandoffset[c] = 512*4;
- } else if (nandcommand[c] == 0x90) {
- } else if (nandcommand[c] == 0xff) {
- } else if (nandcommand[c] == 0x80) {
- } else if (nandcommand[c] == 0x60) {
- } else if (nandcommand[c] == 0x70) {
- } else if (nandcommand[c] == 0x10) {
- } else if (nandcommand[c] == 0xd0) {
+ m_nandcommand[c] = data & 0xff;
+ if (m_nandcommand[c] == 0x00) {
+ m_nandoffset[c] = 0;
+ } else if (m_nandcommand[c] == 0x01) {
+ m_nandoffset[c] = 256*4;
+ } else if (m_nandcommand[c] == 0x50) {
+ m_nandoffset[c] = 512*4;
+ } else if (m_nandcommand[c] == 0x90) {
+ } else if (m_nandcommand[c] == 0xff) {
+ } else if (m_nandcommand[c] == 0x80) {
+ } else if (m_nandcommand[c] == 0x60) {
+ } else if (m_nandcommand[c] == 0x70) {
+ } else if (m_nandcommand[c] == 0x10) {
+ } else if (m_nandcommand[c] == 0xd0) {
} else {
- nandcommand[c] = 0xff;
+ m_nandcommand[c] = 0xff;
}
data=data >> 8;
}
- nandaddressstep = 0;
+ m_nandaddressstep = 0;
} else
;
}
@@ -253,16 +257,16 @@ WRITE64_MEMBER(atvtrack_state::area4_w)
// dat = decode64_32(offset, data, mem_mask, addr);
if (addr == 0) {
for (c = 0;c < 4;c++) {
- if (nandaddressstep == 0) {
- nandaddress[c] = (data & 0xff)*4;
- } else if (nandaddressstep == 1) {
- nandaddress[c] = nandaddress[c]+(data & 0xff)*0x840;
- } else if (nandaddressstep == 2) {
- nandaddress[c] = nandaddress[c]+(data & 0xff)*0x84000;
+ if (m_nandaddressstep == 0) {
+ m_nandaddress[c] = (data & 0xff)*4;
+ } else if (m_nandaddressstep == 1) {
+ m_nandaddress[c] = m_nandaddress[c]+(data & 0xff)*0x840;
+ } else if (m_nandaddressstep == 2) {
+ m_nandaddress[c] = m_nandaddress[c]+(data & 0xff)*0x84000;
}
data = data >> 8;
}
- nandaddressstep++;
+ m_nandaddressstep++;
} else
;
}
@@ -328,11 +332,11 @@ void atvtrack_state::machine_start()
{
UINT8 *src, *dst;
- nandaddressstep = 0;
- nandregion = machine().root_device().memregion("maincpu");
+ m_nandaddressstep = 0;
+ m_nandregion = machine().root_device().memregion("maincpu");
address_space &as = machine().device("maincpu")->memory().space(AS_PROGRAM);
dst = (UINT8 *)(as.get_write_ptr(0x0c7f0000));
- src = nandregion->base()+0x10;
+ src = m_nandregion->base()+0x10;
// copy 0x10000 bytes from region "maincpu" offset 0x10 to 0x0c7f0000
memcpy(dst, src, 0x10000);
}
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index 139c92a228c..edad08a686d 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -87,6 +87,7 @@ public:
UINT32 screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
+ void descramble_sound();
};
//UINT32 *backfire_180010, *backfire_188010;
@@ -668,11 +669,11 @@ ROM_START( backfirea )
ROM_LOAD( "mbz-06.19l", 0x200000, 0x080000, CRC(4a38c635) SHA1(7f0fb6a7a4aa6774c04fa38e53ceff8744fe1e9f) )
ROM_END
-static void descramble_sound( running_machine &machine )
+void backfire_state::descramble_sound()
{
- UINT8 *rom = machine.root_device().memregion("ymz")->base();
+ UINT8 *rom = machine().root_device().memregion("ymz")->base();
int length = 0x200000; // only the first rom is swapped on backfire!
- UINT8 *buf1 = auto_alloc_array(machine, UINT8, length);
+ UINT8 *buf1 = auto_alloc_array(machine(), UINT8, length);
UINT32 x;
for (x = 0; x < length; x++)
@@ -691,7 +692,7 @@ static void descramble_sound( running_machine &machine )
memcpy(rom, buf1, length);
- auto_free(machine, buf1);
+ auto_free(machine(), buf1);
}
READ32_MEMBER(backfire_state::backfire_speedup_r)
@@ -711,7 +712,7 @@ DRIVER_INIT_MEMBER(backfire_state,backfire)
deco56_decrypt_gfx(machine(), "gfx2"); /* 141 */
deco156_decrypt(machine());
machine().device("maincpu")->set_clock_scale(4.0f); /* core timings aren't accurate */
- descramble_sound(machine());
+ descramble_sound();
machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x0170018, 0x017001b, read32_delegate(FUNC(backfire_state::backfire_speedup_r), this));
}
diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c
index 9fa7c6e5aba..f3eae9510b9 100644
--- a/src/mame/drivers/beaminv.c
+++ b/src/mame/drivers/beaminv.c
@@ -81,6 +81,8 @@ public:
virtual void machine_reset();
UINT32 screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(interrupt_callback);
+ void create_interrupt_timer();
+ void start_interrupt_timer();
};
@@ -114,18 +116,16 @@ TIMER_CALLBACK_MEMBER(beaminv_state::interrupt_callback)
}
-static void create_interrupt_timer( running_machine &machine )
+void beaminv_state::create_interrupt_timer()
{
- beaminv_state *state = machine.driver_data<beaminv_state>();
- state->m_interrupt_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(beaminv_state::interrupt_callback),state));
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(beaminv_state::interrupt_callback),this));
}
-static void start_interrupt_timer( running_machine &machine )
+void beaminv_state::start_interrupt_timer()
{
- beaminv_state *state = machine.driver_data<beaminv_state>();
int vpos = interrupt_lines[0];
- state->m_interrupt_timer->adjust(machine.primary_screen->time_until_pos(vpos));
+ m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(vpos));
}
@@ -138,7 +138,7 @@ static void start_interrupt_timer( running_machine &machine )
void beaminv_state::machine_start()
{
- create_interrupt_timer(machine());
+ create_interrupt_timer();
m_maincpu = machine().device<cpu_device>("maincpu");
@@ -156,7 +156,7 @@ void beaminv_state::machine_start()
void beaminv_state::machine_reset()
{
- start_interrupt_timer(machine());
+ start_interrupt_timer();
m_controller_select = 0;
}
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index ce812c2ccb5..31812d1f7a8 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -61,6 +61,13 @@ public:
UINT32 screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(irq_callback);
TIMER_CALLBACK_MEMBER(nmi_callback);
+ void vpos_to_vsync_chain_counter(int vpos, UINT8 *counter, UINT8 *v256);
+ int vsync_chain_counter_to_vpos(UINT8 counter, UINT8 v256);
+ void create_irq_timer();
+ void start_irq_timer();
+ void create_nmi_timer();
+ void start_nmi_timer();
+ void get_pens(pen_t *pens);
};
@@ -130,7 +137,7 @@ WRITE8_MEMBER(berzerk_state::led_off_w)
*
*************************************/
-static void vpos_to_vsync_chain_counter(int vpos, UINT8 *counter, UINT8 *v256)
+void berzerk_state::vpos_to_vsync_chain_counter(int vpos, UINT8 *counter, UINT8 *v256)
{
/* convert from a vertical position to the actual values on the vertical sync counters */
*v256 = ((vpos < VBEND) || (vpos >= VBSTART));
@@ -149,7 +156,7 @@ static void vpos_to_vsync_chain_counter(int vpos, UINT8 *counter, UINT8 *v256)
}
-static int vsync_chain_counter_to_vpos(UINT8 counter, UINT8 v256)
+int berzerk_state::vsync_chain_counter_to_vpos(UINT8 counter, UINT8 v256)
{
/* convert from the vertical sync counters to an actual vertical position */
int vpos;
@@ -205,18 +212,16 @@ TIMER_CALLBACK_MEMBER(berzerk_state::irq_callback)
}
-static void create_irq_timer(running_machine &machine)
+void berzerk_state::create_irq_timer()
{
- berzerk_state *state = machine.driver_data<berzerk_state>();
- state->m_irq_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(berzerk_state::irq_callback),state));
+ m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(berzerk_state::irq_callback),this));
}
-static void start_irq_timer(running_machine &machine)
+void berzerk_state::start_irq_timer()
{
- berzerk_state *state = machine.driver_data<berzerk_state>();
int vpos = vsync_chain_counter_to_vpos(irq_trigger_counts[0], irq_trigger_v256s[0]);
- state->m_irq_timer->adjust(machine.primary_screen->time_until_pos(vpos));
+ m_irq_timer->adjust(machine().primary_screen->time_until_pos(vpos));
}
@@ -284,18 +289,16 @@ TIMER_CALLBACK_MEMBER(berzerk_state::nmi_callback)
}
-static void create_nmi_timer(running_machine &machine)
+void berzerk_state::create_nmi_timer()
{
- berzerk_state *state = machine.driver_data<berzerk_state>();
- state->m_nmi_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(berzerk_state::nmi_callback),state));
+ m_nmi_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(berzerk_state::nmi_callback),this));
}
-static void start_nmi_timer(running_machine &machine)
+void berzerk_state::start_nmi_timer()
{
- berzerk_state *state = machine.driver_data<berzerk_state>();
int vpos = vsync_chain_counter_to_vpos(nmi_trigger_counts[0], nmi_trigger_v256s[0]);
- state->m_nmi_timer->adjust(machine.primary_screen->time_until_pos(vpos));
+ m_nmi_timer->adjust(machine().primary_screen->time_until_pos(vpos));
}
@@ -308,8 +311,8 @@ static void start_nmi_timer(running_machine &machine)
void berzerk_state::machine_start()
{
- create_irq_timer(machine());
- create_nmi_timer(machine());
+ create_irq_timer();
+ create_nmi_timer();
/* register for state saving */
state_save_register_global(machine(), m_magicram_control);
@@ -334,8 +337,8 @@ void berzerk_state::machine_reset()
set_led_status(machine(), 0, 0);
m_magicram_control = 0;
- start_irq_timer(machine());
- start_nmi_timer(machine());
+ start_irq_timer();
+ start_nmi_timer();
}
@@ -421,7 +424,7 @@ READ8_MEMBER(berzerk_state::intercept_v256_r)
}
-static void get_pens(running_machine &machine, pen_t *pens)
+void berzerk_state::get_pens(pen_t *pens)
{
static const int resistances_wg[] = { 750, 0 };
static const int resistances_el[] = { 1.0 / ((1.0 / 750.0) + (1.0 / 360.0)), 0 };
@@ -429,7 +432,7 @@ static void get_pens(running_machine &machine, pen_t *pens)
int color;
double color_weights[2];
- if (machine.root_device().ioport(MONITOR_TYPE_PORT_TAG)->read() == 0)
+ if (machine().root_device().ioport(MONITOR_TYPE_PORT_TAG)->read() == 0)
compute_resistor_weights(0, 0xff, -1.0,
2, resistances_wg, color_weights, 0, 270,
2, resistances_wg, color_weights, 0, 270,
@@ -461,7 +464,7 @@ UINT32 berzerk_state::screen_update_berzerk(screen_device &screen, bitmap_rgb32
pen_t pens[NUM_PENS];
offs_t offs;
- get_pens(machine(), pens);
+ get_pens(pens);
for (offs = 0; offs < m_videoram.bytes(); offs++)
{
diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c
index eba7bc87932..6a33aa8514a 100644
--- a/src/mame/drivers/bestleag.c
+++ b/src/mame/drivers/bestleag.c
@@ -53,6 +53,7 @@ public:
virtual void video_start();
UINT32 screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -118,10 +119,9 @@ Note: sprite chip is different than the other Big Striker sets and they
include several similiarities with other Playmark games (including
the sprite end code and the data being offset (i.e. spriteram starting from 0x16/2))
*/
-static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect)
+void bestleag_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bestleag_state *state = machine.driver_data<bestleag_state>();
- UINT16 *spriteram16 = state->m_spriteram;
+ UINT16 *spriteram16 = m_spriteram;
/*
@@ -131,7 +131,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
int offs;
- for (offs = 0x16/2;offs < state->m_spriteram.bytes()/2;offs += 4)
+ for (offs = 0x16/2;offs < m_spriteram.bytes()/2;offs += 4)
{
int code = spriteram16[offs+3] & 0xfff;
int color = (spriteram16[offs+2] & 0xf000) >> 12;
@@ -144,29 +144,29 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
return;
/* it can change sprites color mask like the original set */
- if(state->m_vregs[0x00/2] & 0x1000)
+ if(m_vregs[0x00/2] & 0x1000)
color &= 7;
- drawgfx_transpen(bitmap,cliprect,machine.gfx[2],
+ drawgfx_transpen(bitmap,cliprect,machine().gfx[2],
code,
color,
flipx, 0,
flipx ? (sx+16) : (sx),sy,15);
- drawgfx_transpen(bitmap,cliprect,machine.gfx[2],
+ drawgfx_transpen(bitmap,cliprect,machine().gfx[2],
code+1,
color,
flipx, 0,
flipx ? (sx) : (sx+16),sy,15);
/* wraparound x */
- drawgfx_transpen(bitmap,cliprect,machine.gfx[2],
+ drawgfx_transpen(bitmap,cliprect,machine().gfx[2],
code,
color,
flipx, 0,
flipx ? (sx+16 - 512) : (sx - 512),sy,15);
- drawgfx_transpen(bitmap,cliprect,machine.gfx[2],
+ drawgfx_transpen(bitmap,cliprect,machine().gfx[2],
code+1,
color,
flipx, 0,
@@ -185,7 +185,7 @@ UINT32 bestleag_state::screen_update_bestleag(screen_device &screen, bitmap_ind1
m_bg_tilemap->draw(bitmap, cliprect, 0,0);
m_fg_tilemap->draw(bitmap, cliprect, 0,0);
- draw_sprites(machine(),bitmap,cliprect);
+ draw_sprites(bitmap,cliprect);
m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -201,7 +201,7 @@ UINT32 bestleag_state::screen_update_bestleaw(screen_device &screen, bitmap_ind1
m_bg_tilemap->draw(bitmap, cliprect, 0,0);
m_fg_tilemap->draw(bitmap, cliprect, 0,0);
- draw_sprites(machine(),bitmap,cliprect);
+ draw_sprites(bitmap,cliprect);
m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index 82d0a084cee..a3de6e37bbc 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -302,6 +302,12 @@ public:
UINT32 screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(timer_irq);
INTERRUPT_GEN_MEMBER(vblank_gen);
+ void RunBlit(address_space &space);
+ void update_irqs();
+ void reset_fdc();
+ void exec_w_phase(UINT8 data);
+ void init_ram();
+ void command_phase(struct fdc_t &fdc, UINT8 data);
};
@@ -459,12 +465,11 @@ INLINE UINT8* blitter_get_addr(running_machine &machine, UINT32 addr)
The Flare One blitter is a simpler design with slightly different parameters
and will require hardware tests to figure everything out correctly.
*/
-static void RunBlit(address_space &space)
+void bfcobra_state::RunBlit(address_space &space)
{
#define BLITPRG_READ(x) blitter.x = *(blitter_get_addr(space.machine(), blitter.program.addr++))
- bfcobra_state *state = space.machine().driver_data<bfcobra_state>();
- struct blitter_t &blitter = state->m_blitter;
+ struct blitter_t &blitter = m_blitter;
int cycles_used = 0;
@@ -873,15 +878,14 @@ WRITE8_MEMBER(bfcobra_state::ramdac_w)
***************************************************************************/
-static void update_irqs(running_machine &machine)
+void bfcobra_state::update_irqs()
{
- bfcobra_state *state = machine.driver_data<bfcobra_state>();
- int newstate = state->m_blitter_irq || state->m_vblank_irq || state->m_acia_irq;
+ int newstate = m_blitter_irq || m_vblank_irq || m_acia_irq;
- if (newstate != state->m_irq_state)
+ if (newstate != m_irq_state)
{
- state->m_irq_state = newstate;
- machine.device("maincpu")->execute().set_input_line(0, state->m_irq_state ? ASSERT_LINE : CLEAR_LINE);
+ m_irq_state = newstate;
+ machine().device("maincpu")->execute().set_input_line(0, m_irq_state ? ASSERT_LINE : CLEAR_LINE);
}
}
@@ -910,7 +914,7 @@ READ8_MEMBER(bfcobra_state::chipset_r)
val = 0x1;
/* TODO */
- update_irqs(machine());
+ update_irqs();
break;
}
case 0x1C:
@@ -1067,9 +1071,6 @@ WRITE8_MEMBER(bfcobra_state::rombank_w)
***************************************************************************/
-static void command_phase(struct fdc_t &fdc, UINT8 data);
-static void exec_w_phase(UINT8 data);
-//UINT8 exec_r_phase(void);
/*
WD37C656C-PL (or equivalent) Floppy Disk Controller
@@ -1102,13 +1103,12 @@ enum command
SCAN_HIGH_OR_EQUAL = 29
};
-static void reset_fdc(running_machine &machine)
+void bfcobra_state::reset_fdc()
{
- bfcobra_state *state = machine.driver_data<bfcobra_state>();
- memset(&state->m_fdc, 0, sizeof(state->m_fdc));
+ memset(&m_fdc, 0, sizeof(m_fdc));
- state->m_fdc.MSR = 0x80;
- state->m_fdc.phase = COMMAND;
+ m_fdc.MSR = 0x80;
+ m_fdc.phase = COMMAND;
}
READ8_MEMBER(bfcobra_state::fdctrl_r)
@@ -1215,7 +1215,7 @@ WRITE8_MEMBER(bfcobra_state::fdctrl_w)
}
}
-static void command_phase(struct fdc_t &fdc, UINT8 data)
+void bfcobra_state::command_phase(struct fdc_t &fdc, UINT8 data)
{
if (fdc.cmd_cnt == 0)
{
@@ -1303,7 +1303,7 @@ UINT8 exec_r_phase(void)
}
#endif
-static void exec_w_phase(UINT8 data)
+void bfcobra_state::exec_w_phase(UINT8 data)
{
}
@@ -1333,7 +1333,7 @@ void bfcobra_state::machine_reset()
m_bank_data[0] = 1;
memset(&m_ramdac, 0, sizeof(m_ramdac));
- reset_fdc(machine());
+ reset_fdc();
m_irq_state = m_blitter_irq = m_vblank_irq = m_acia_irq = 0;
}
@@ -1604,14 +1604,13 @@ INPUT_PORTS_END
/*
Allocate work RAM and video RAM shared by the Z80 and chipset.
*/
-static void init_ram(running_machine &machine)
+void bfcobra_state::init_ram()
{
- bfcobra_state *state = machine.driver_data<bfcobra_state>();
/* 768kB work RAM */
- state->m_work_ram = auto_alloc_array_clear(machine, UINT8, 0xC0000);
+ m_work_ram = auto_alloc_array_clear(machine(), UINT8, 0xC0000);
/* 128kB video RAM */
- state->m_video_ram = auto_alloc_array_clear(machine, UINT8, 0x20000);
+ m_video_ram = auto_alloc_array_clear(machine(), UINT8, 0x20000);
}
/*
@@ -1631,7 +1630,7 @@ WRITE_LINE_MEMBER(bfcobra_state::z80_acia_tx_w)
WRITE_LINE_MEMBER(bfcobra_state::z80_acia_irq)
{
m_acia_irq = state;
- update_irqs(machine());
+ update_irqs();
}
static ACIA6850_INTERFACE( z80_acia_if )
@@ -1733,7 +1732,7 @@ DRIVER_INIT_MEMBER(bfcobra_state,bfcobra)
auto_free(machine(), tmp);
- init_ram(machine());
+ init_ram();
m_bank_data[0] = 1;
m_bank_data[1] = 0;
@@ -1772,7 +1771,7 @@ INTERRUPT_GEN_MEMBER(bfcobra_state::timer_irq)
INTERRUPT_GEN_MEMBER(bfcobra_state::vblank_gen)
{
m_vblank_irq = 1;
- update_irqs(machine());
+ update_irqs();
}
static MACHINE_CONFIG_START( bfcobra, bfcobra_state )
diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c
index fc40a734520..9e4fab95f31 100644
--- a/src/mame/drivers/bfm_sc1.c
+++ b/src/mame/drivers/bfm_sc1.c
@@ -180,6 +180,7 @@ public:
DECLARE_DRIVER_INIT(nocrypt);
virtual void machine_reset();
INTERRUPT_GEN_MEMBER(timer_irq);
+ void sc1_common_init(int reels, int decrypt, int defaultbank);
};
#define VFD_RESET 0x20
@@ -1152,21 +1153,20 @@ static MACHINE_CONFIG_DERIVED( scorpion1_viper, scorpion1 )
MACHINE_CONFIG_END
-static void sc1_common_init(running_machine &machine, int reels, int decrypt, int defaultbank)
+void bfm_sc1_state::sc1_common_init(int reels, int decrypt, int defaultbank)
{
- bfm_sc1_state *state = machine.driver_data<bfm_sc1_state>();
UINT8 i;
- memset(state->m_sc1_Inputs, 0, sizeof(state->m_sc1_Inputs));
+ memset(m_sc1_Inputs, 0, sizeof(m_sc1_Inputs));
// setup n default 96 half step reels ///////////////////////////////////////////
for ( i = 0; i < reels; i++ )
{
- stepper_config(machine, i, &starpoint_interface_48step);
+ stepper_config(machine(), i, &starpoint_interface_48step);
}
- if (decrypt) bfm_decode_mainrom(machine,"maincpu", state->m_codec_data); // decode main rom
+ if (decrypt) bfm_decode_mainrom(machine(),"maincpu", m_codec_data); // decode main rom
- state->m_defaultbank = defaultbank;
+ m_defaultbank = defaultbank;
}
@@ -1249,7 +1249,7 @@ int sc1_find_project_string(running_machine &machine )
DRIVER_INIT_MEMBER(bfm_sc1_state,toppoker)
{
- sc1_common_init(machine(),3,1, 3);
+ sc1_common_init(3,1, 3);
adder2_decode_char_roms(machine()); // decode GFX roms
MechMtr_config(machine(),8);
sc1_find_project_string(machine());
@@ -1257,14 +1257,14 @@ DRIVER_INIT_MEMBER(bfm_sc1_state,toppoker)
DRIVER_INIT_MEMBER(bfm_sc1_state,lotse)
{
- sc1_common_init(machine(),6,1, 3);
+ sc1_common_init(6,1, 3);
MechMtr_config(machine(),8);
sc1_find_project_string(machine());
}
DRIVER_INIT_MEMBER(bfm_sc1_state,lotse_bank0)
{
- sc1_common_init(machine(),6,1, 0);
+ sc1_common_init(6,1, 0);
MechMtr_config(machine(),8);
sc1_find_project_string(machine());
}
@@ -1272,14 +1272,14 @@ DRIVER_INIT_MEMBER(bfm_sc1_state,lotse_bank0)
DRIVER_INIT_MEMBER(bfm_sc1_state,nocrypt)
{
- sc1_common_init(machine(),6,0, 3);
+ sc1_common_init(6,0, 3);
MechMtr_config(machine(),8);
sc1_find_project_string(machine());
}
DRIVER_INIT_MEMBER(bfm_sc1_state,nocrypt_bank0)
{
- sc1_common_init(machine(),6,0, 0);
+ sc1_common_init(6,0, 0);
MechMtr_config(machine(),8);
sc1_find_project_string(machine());
}
@@ -1289,7 +1289,7 @@ DRIVER_INIT_MEMBER(bfm_sc1_state,nocrypt_bank0)
DRIVER_INIT_MEMBER(bfm_sc1_state,rou029)
{
- sc1_common_init(machine(),6,0, 3);
+ sc1_common_init(6,0, 3);
MechMtr_config(machine(),8);
sc1_find_project_string(machine());
}
@@ -1298,7 +1298,7 @@ DRIVER_INIT_MEMBER(bfm_sc1_state,rou029)
DRIVER_INIT_MEMBER(bfm_sc1_state,clatt)
{
- sc1_common_init(machine(),6,1, 3);
+ sc1_common_init(6,1, 3);
MechMtr_config(machine(),8);
Scorpion1_SetSwitchState(this,3,2,1);
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index f25aa0e8e1f..06221f01060 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -151,6 +151,8 @@ public:
TILE_GET_INFO_MEMBER(get_bg7_tile_info);
virtual void video_start();
UINT32 screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_strip(bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int column);
+ void draw_page(bitmap_ind16 &bitmap, const rectangle &cliprect, int page);
};
#define GET_INFO( ram ) \
@@ -200,12 +202,11 @@ void blackt96_state::video_start()
m_spriteram[7] = m_spriteram7;
}
-static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int column)
+void blackt96_state::draw_strip(bitmap_ind16 &bitmap, const rectangle &cliprect, int page, int column)
{
- blackt96_state *state = machine.driver_data<blackt96_state>();
/* the very first 'page' in the spriteram contains the x/y positions for each tile strip */
- gfx_element *gfxbg = machine.gfx[0];
- gfx_element *gfxspr = machine.gfx[1];
+ gfx_element *gfxbg = machine().gfx[0];
+ gfx_element *gfxspr = machine().gfx[1];
int base = column * (0x80/2);
base += page * 2;
@@ -213,8 +214,8 @@ static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rec
/* ---- ---- ---x xxxx
xxxx ---y yyyy yyyy */
- int xx= ((state->m_spriteram[0][base+0]&0x001f)<<4) | (state->m_spriteram[0][base+1]&0xf000)>>12;
- int yy = ((state->m_spriteram[0][base+1]&0x1ff));
+ int xx= ((m_spriteram[0][base+0]&0x001f)<<4) | (m_spriteram[0][base+1]&0xf000)>>12;
+ int yy = ((m_spriteram[0][base+1]&0x1ff));
if (xx&0x100) xx-=0x200;
yy = 0x1ff-yy;
@@ -222,7 +223,7 @@ static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rec
yy -= 15;
- UINT16* base2 = state->m_spriteram[page]+column * (0x80/2);
+ UINT16* base2 = m_spriteram[page]+column * (0x80/2);
for (int y=0;y<32;y++)
{
@@ -244,11 +245,11 @@ static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rec
}
}
-static void draw_page(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int page)
+void blackt96_state::draw_page(bitmap_ind16 &bitmap, const rectangle &cliprect, int page)
{
for (int strip=0;strip<32;strip++)
{
- draw_strip(machine, bitmap, cliprect, page, strip);
+ draw_strip(bitmap, cliprect, page, strip);
}
}
@@ -256,9 +257,9 @@ UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind1
{
bitmap.fill(get_black_pen(machine()), cliprect);
- draw_page(machine(), bitmap, cliprect, 2); // bg
- draw_page(machine(), bitmap, cliprect, 3); // lower pri sprites
- draw_page(machine(), bitmap, cliprect, 1); // higher pri sprites
+ draw_page(bitmap, cliprect, 2); // bg
+ draw_page(bitmap, cliprect, 3); // lower pri sprites
+ draw_page(bitmap, cliprect, 1); // higher pri sprites
/* Text Layer */
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c
index 60ee5b18c99..8ca40e3888e 100644
--- a/src/mame/drivers/bnstars.c
+++ b/src/mame/drivers/bnstars.c
@@ -158,6 +158,11 @@ public:
UINT32 screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(ms32_interrupt);
+ void draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip);
+ void update_color(int color, int screen);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region);
+ void irq_init();
+ void irq_raise(int level);
};
@@ -230,12 +235,11 @@ WRITE32_MEMBER(bnstars_state::ms32_bg1_ram_w)
/* ROZ Layers */
-static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip)
+void bnstars_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip)
{
- bnstars_state *state = machine.driver_data<bnstars_state>();
/* TODO: registers 0x40/4 / 0x44/4 and 0x50/4 / 0x54/4 are used, meaning unknown */
- if (state->m_ms32_roz_ctrl[chip][0x5c/4] & 1) /* "super" mode */
+ if (m_ms32_roz_ctrl[chip][0x5c/4] & 1) /* "super" mode */
{
printf("no lineram!\n");
return;
@@ -257,15 +261,15 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta
int start2y = (lineaddr[0x08/4] & 0xffff) | ((lineaddr[0x0c/4] & 3) << 16);
int incxx = (lineaddr[0x10/4] & 0xffff) | ((lineaddr[0x14/4] & 1) << 16);
int incxy = (lineaddr[0x18/4] & 0xffff) | ((lineaddr[0x1c/4] & 1) << 16);
- int startx = (state->m_ms32_roz_ctrl[0x00/4] & 0xffff) | ((state->m_ms32_roz_ctrl[0x04/4] & 3) << 16);
- int starty = (state->m_ms32_roz_ctrl[0x08/4] & 0xffff) | ((state->m_ms32_roz_ctrl[0x0c/4] & 3) << 16);
- int offsx = state->m_ms32_roz_ctrl[0x30/4];
- int offsy = state->m_ms32_roz_ctrl[0x34/4];
+ int startx = (m_ms32_roz_ctrl[0x00/4] & 0xffff) | ((m_ms32_roz_ctrl[0x04/4] & 3) << 16);
+ int starty = (m_ms32_roz_ctrl[0x08/4] & 0xffff) | ((m_ms32_roz_ctrl[0x0c/4] & 3) << 16);
+ int offsx = m_ms32_roz_ctrl[0x30/4];
+ int offsy = m_ms32_roz_ctrl[0x34/4];
my_clip.min_y = my_clip.max_y = y;
- offsx += (state->m_ms32_roz_ctrl[0x38/4] & 1) * 0x400; // ??? gratia, hayaosi1...
- offsy += (state->m_ms32_roz_ctrl[0x3c/4] & 1) * 0x400; // ??? gratia, hayaosi1...
+ offsx += (m_ms32_roz_ctrl[0x38/4] & 1) * 0x400; // ??? gratia, hayaosi1...
+ offsy += (m_ms32_roz_ctrl[0x3c/4] & 1) * 0x400; // ??? gratia, hayaosi1...
// extend sign
if (start2x & 0x20000) start2x |= ~0x3ffff;
@@ -275,7 +279,7 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta
if (incxx & 0x10000) incxx |= ~0x1ffff;
if (incxy & 0x10000) incxy |= ~0x1ffff;
- state->m_ms32_roz_tilemap->draw_roz(bitmap, &my_clip,
+ m_ms32_roz_tilemap->draw_roz(bitmap, &my_clip,
(start2x+startx+offsx)<<16, (start2y+starty+offsy)<<16,
incxx<<8, incxy<<8, 0, 0,
1, // Wrap
@@ -287,17 +291,17 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta
}
else /* "simple" mode */
{
- int startx = (state->m_ms32_roz_ctrl[chip][0x00/4] & 0xffff) | ((state->m_ms32_roz_ctrl[chip][0x04/4] & 3) << 16);
- int starty = (state->m_ms32_roz_ctrl[chip][0x08/4] & 0xffff) | ((state->m_ms32_roz_ctrl[chip][0x0c/4] & 3) << 16);
- int incxx = (state->m_ms32_roz_ctrl[chip][0x10/4] & 0xffff) | ((state->m_ms32_roz_ctrl[chip][0x14/4] & 1) << 16);
- int incxy = (state->m_ms32_roz_ctrl[chip][0x18/4] & 0xffff) | ((state->m_ms32_roz_ctrl[chip][0x1c/4] & 1) << 16);
- int incyy = (state->m_ms32_roz_ctrl[chip][0x20/4] & 0xffff) | ((state->m_ms32_roz_ctrl[chip][0x24/4] & 1) << 16);
- int incyx = (state->m_ms32_roz_ctrl[chip][0x28/4] & 0xffff) | ((state->m_ms32_roz_ctrl[chip][0x2c/4] & 1) << 16);
- int offsx = state->m_ms32_roz_ctrl[chip][0x30/4];
- int offsy = state->m_ms32_roz_ctrl[chip][0x34/4];
-
- offsx += (state->m_ms32_roz_ctrl[chip][0x38/4] & 1) * 0x400; // ??? gratia, hayaosi1...
- offsy += (state->m_ms32_roz_ctrl[chip][0x3c/4] & 1) * 0x400; // ??? gratia, hayaosi1...
+ int startx = (m_ms32_roz_ctrl[chip][0x00/4] & 0xffff) | ((m_ms32_roz_ctrl[chip][0x04/4] & 3) << 16);
+ int starty = (m_ms32_roz_ctrl[chip][0x08/4] & 0xffff) | ((m_ms32_roz_ctrl[chip][0x0c/4] & 3) << 16);
+ int incxx = (m_ms32_roz_ctrl[chip][0x10/4] & 0xffff) | ((m_ms32_roz_ctrl[chip][0x14/4] & 1) << 16);
+ int incxy = (m_ms32_roz_ctrl[chip][0x18/4] & 0xffff) | ((m_ms32_roz_ctrl[chip][0x1c/4] & 1) << 16);
+ int incyy = (m_ms32_roz_ctrl[chip][0x20/4] & 0xffff) | ((m_ms32_roz_ctrl[chip][0x24/4] & 1) << 16);
+ int incyx = (m_ms32_roz_ctrl[chip][0x28/4] & 0xffff) | ((m_ms32_roz_ctrl[chip][0x2c/4] & 1) << 16);
+ int offsx = m_ms32_roz_ctrl[chip][0x30/4];
+ int offsy = m_ms32_roz_ctrl[chip][0x34/4];
+
+ offsx += (m_ms32_roz_ctrl[chip][0x38/4] & 1) * 0x400; // ??? gratia, hayaosi1...
+ offsy += (m_ms32_roz_ctrl[chip][0x3c/4] & 1) * 0x400; // ??? gratia, hayaosi1...
/* extend sign */
if (startx & 0x20000) startx |= ~0x3ffff;
@@ -307,7 +311,7 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta
if (incyy & 0x10000) incyy |= ~0x1ffff;
if (incyx & 0x10000) incyx |= ~0x1ffff;
- state->m_ms32_roz_tilemap[chip]->draw_roz(bitmap, cliprect,
+ m_ms32_roz_tilemap[chip]->draw_roz(bitmap, cliprect,
(startx+offsx)<<16, (starty+offsy)<<16,
incxx<<8, incxy<<8, incyx<<8, incyy<<8,
1, // Wrap
@@ -349,35 +353,33 @@ WRITE32_MEMBER(bnstars_state::ms32_roz1_ram_w)
}
-static void update_color(running_machine &machine, int color, int screen)
+void bnstars_state::update_color(int color, int screen)
{
- bnstars_state *state = machine.driver_data<bnstars_state>();
int r,g,b;
- r = ((state->m_ms32_pal_ram[screen][color*2] & 0xff00) >>8 );
- g = ((state->m_ms32_pal_ram[screen][color*2] & 0x00ff) >>0 );
- b = ((state->m_ms32_pal_ram[screen][color*2+1] & 0x00ff) >>0 );
+ r = ((m_ms32_pal_ram[screen][color*2] & 0xff00) >>8 );
+ g = ((m_ms32_pal_ram[screen][color*2] & 0x00ff) >>0 );
+ b = ((m_ms32_pal_ram[screen][color*2+1] & 0x00ff) >>0 );
- palette_set_color(machine,color+screen*0x8000,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),color+screen*0x8000,MAKE_RGB(r,g,b));
}
WRITE32_MEMBER(bnstars_state::ms32_pal0_ram_w)
{
COMBINE_DATA(&m_ms32_pal_ram[0][offset]);
- update_color(machine(), offset/2, 0);
+ update_color(offset/2, 0);
}
WRITE32_MEMBER(bnstars_state::ms32_pal1_ram_w)
{
COMBINE_DATA(&m_ms32_pal_ram[1][offset]);
- update_color(machine(), offset/2, 1);
+ update_color(offset/2, 1);
}
/* SPRITES based on tetrisp2 for now, readd priority bits later */
-static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region)
+void bnstars_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region)
{
- bnstars_state *state = machine.driver_data<bnstars_state>();
/***************************************************************************
@@ -418,20 +420,20 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
int tx, ty, sx, sy, flipx, flipy;
int xsize, ysize, xzoom, yzoom;
int code, attr, color, size, pri, pri_mask;
- gfx_element *gfx = machine.gfx[region];
+ gfx_element *gfx = machine().gfx[region];
UINT32 *source = sprram_top;
const UINT32 *finish = sprram_top + (sprram_size - 0x10) / 4;
- if (state->m_ms32_reverse_sprite_order == 1)
+ if (m_ms32_reverse_sprite_order == 1)
{
source = sprram_top + (sprram_size - 0x10) / 4;
finish = sprram_top;
}
- for (;state->m_ms32_reverse_sprite_order ? (source>=finish) : (source<finish); state->m_ms32_reverse_sprite_order ? (source-=4) : (source+=4))
+ for (;m_ms32_reverse_sprite_order ? (source>=finish) : (source<finish); m_ms32_reverse_sprite_order ? (source-=4) : (source+=4))
{
attr = source[ 0 ];
@@ -473,7 +475,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
// there are surely also shadows (see gametngk) but how they're enabled we don't know
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 320 - ((xsize*xzoom)>>16) - sx;
sy = 224 - ((ysize*yzoom)>>16) - sy;
@@ -497,7 +499,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
color,
flipx, flipy,
sx,sy,
- xzoom, yzoom, machine.priority_bitmap,pri_mask, 0);
+ xzoom, yzoom, machine().priority_bitmap,pri_mask, 0);
} /* end sprite loop */
}
@@ -544,14 +546,14 @@ UINT32 bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_i
m_ms32_bg_tilemap[0]->set_scrolly(0, m_ms32_bg0_scroll[0x0c/4] + m_ms32_bg0_scroll[0x14/4] );
m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1);
- draw_roz(machine(),bitmap,cliprect,2,0);
+ draw_roz(bitmap,cliprect,2,0);
m_ms32_tx_tilemap[0]->set_scrollx(0, m_ms32_tx0_scroll[0x00/4] + m_ms32_tx0_scroll[0x08/4] + 0x18);
m_ms32_tx_tilemap[0]->set_scrolly(0, m_ms32_tx0_scroll[0x0c/4] + m_ms32_tx0_scroll[0x14/4]);
m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4);
- draw_sprites(machine(),bitmap,cliprect, m_ms32_spram, 0x20000, 0);
+ draw_sprites(bitmap,cliprect, m_ms32_spram, 0x20000, 0);
return 0;
}
@@ -567,13 +569,13 @@ UINT32 bnstars_state::screen_update_bnstars_right(screen_device &screen, bitmap_
m_ms32_bg_tilemap[1]->set_scrolly(0, m_ms32_bg1_scroll[0x0c/4] + m_ms32_bg1_scroll[0x14/4] );
m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1);
- draw_roz(machine(),bitmap,cliprect,2,1);
+ draw_roz(bitmap,cliprect,2,1);
m_ms32_tx_tilemap[1]->set_scrollx(0, m_ms32_tx1_scroll[0x00/4] + m_ms32_tx1_scroll[0x08/4] + 0x18);
m_ms32_tx_tilemap[1]->set_scrolly(0, m_ms32_tx1_scroll[0x0c/4] + m_ms32_tx1_scroll[0x14/4]);
m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4);
- draw_sprites(machine(),bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4);
+ draw_sprites(bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4);
return 0;
}
@@ -1334,27 +1336,25 @@ static IRQ_CALLBACK(irq_callback)
return i;
}
-static void irq_init(running_machine &machine)
+void bnstars_state::irq_init()
{
- bnstars_state *state = machine.driver_data<bnstars_state>();
- state->m_irqreq = 0;
- machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
- machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
+ m_irqreq = 0;
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
}
-static void irq_raise(running_machine &machine, int level)
+void bnstars_state::irq_raise(int level)
{
- bnstars_state *state = machine.driver_data<bnstars_state>();
- state->m_irqreq |= (1<<level);
- machine.device("maincpu")->execute().set_input_line(0, ASSERT_LINE);
+ m_irqreq |= (1<<level);
+ machine().device("maincpu")->execute().set_input_line(0, ASSERT_LINE);
}
/* TODO: fix this arrangement (derived from old deprecat lib) */
TIMER_DEVICE_CALLBACK_MEMBER(bnstars_state::ms32_interrupt)
{
int scanline = param;
- if( scanline == 0 ) irq_raise(machine(), 10);
- if( scanline == 8) irq_raise(machine(), 9);
+ if( scanline == 0 ) irq_raise(10);
+ if( scanline == 8) irq_raise(9);
/* hayaosi1 needs at least 12 IRQ 0 per frame to work (see code at FFE02289)
kirarast needs it too, at least 8 per frame, but waits for a variable amount
47pi2 needs ?? per frame (otherwise it hangs when you lose)
@@ -1363,12 +1363,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(bnstars_state::ms32_interrupt)
desertwr
p47aces
*/
- if( (scanline % 8) == 0 && scanline <= 224 ) irq_raise(machine(), 0);
+ if( (scanline % 8) == 0 && scanline <= 224 ) irq_raise(0);
}
void bnstars_state::machine_reset()
{
- irq_init(machine());
+ irq_init();
}
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index e94d12eea1b..0835abed1c2 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -52,6 +52,7 @@ public:
UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(pot_interrupt);
TIMER_CALLBACK_MEMBER(periodic_callback);
+ void draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect );
};
/*************************************
@@ -123,22 +124,21 @@ void boxer_state::palette_init()
palette_set_color(machine(),3, MAKE_RGB(0x00,0x00,0x00));
}
-static void draw_boxer( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
+void boxer_state::draw_boxer( bitmap_ind16 &bitmap, const rectangle &cliprect )
{
- boxer_state *state = machine.driver_data<boxer_state>();
int n;
for (n = 0; n < 2; n++)
{
- const UINT8* p = state->memregion(n == 0 ? "user1" : "user2")->base();
+ const UINT8* p = memregion(n == 0 ? "user1" : "user2")->base();
int i, j;
- int x = 196 - state->m_sprite_ram[0 + 2 * n];
- int y = 192 - state->m_sprite_ram[1 + 2 * n];
+ int x = 196 - m_sprite_ram[0 + 2 * n];
+ int y = 192 - m_sprite_ram[1 + 2 * n];
- int l = state->m_sprite_ram[4 + 2 * n] & 15;
- int r = state->m_sprite_ram[5 + 2 * n] & 15;
+ int l = m_sprite_ram[4 + 2 * n] & 15;
+ int r = m_sprite_ram[5 + 2 * n] & 15;
for (i = 0; i < 8; i++)
{
@@ -149,7 +149,7 @@ static void draw_boxer( running_machine &machine, bitmap_ind16 &bitmap, const re
code = p[32 * l + 4 * i + j];
drawgfx_transpen(bitmap, cliprect,
- machine.gfx[n],
+ machine().gfx[n],
code,
0,
code & 0x80, 0,
@@ -159,7 +159,7 @@ static void draw_boxer( running_machine &machine, bitmap_ind16 &bitmap, const re
code = p[32 * r + 4 * i - j + 3];
drawgfx_transpen(bitmap, cliprect,
- machine.gfx[n],
+ machine().gfx[n],
code,
0,
!(code & 0x80), 0,
@@ -193,7 +193,7 @@ UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind16 &bit
}
}
- draw_boxer(machine(), bitmap, cliprect);
+ draw_boxer(bitmap, cliprect);
return 0;
}