battlera.c: added save state support, deleted video/battlera.c since it was empty. make REGENIE=1 or linking will fail. (nw)

This commit is contained in:
Ivan Vangelista 2015-06-17 17:09:52 +02:00
parent c94923836f
commit a7556c3dce
4 changed files with 34 additions and 45 deletions

View File

@ -1243,7 +1243,6 @@ files {
MAME_DIR .. "src/mame/audio/astrof.c", MAME_DIR .. "src/mame/audio/astrof.c",
MAME_DIR .. "src/mame/drivers/backfire.c", MAME_DIR .. "src/mame/drivers/backfire.c",
MAME_DIR .. "src/mame/drivers/battlera.c", MAME_DIR .. "src/mame/drivers/battlera.c",
MAME_DIR .. "src/mame/video/battlera.c",
MAME_DIR .. "src/mame/drivers/boogwing.c", MAME_DIR .. "src/mame/drivers/boogwing.c",
MAME_DIR .. "src/mame/video/boogwing.c", MAME_DIR .. "src/mame/video/boogwing.c",
MAME_DIR .. "src/mame/drivers/brkthru.c", MAME_DIR .. "src/mame/drivers/brkthru.c",

View File

@ -24,14 +24,20 @@
#include "emu.h" #include "emu.h"
#include "cpu/h6280/h6280.h" #include "cpu/h6280/h6280.h"
#include "sound/2203intf.h" #include "sound/2203intf.h"
#include "sound/msm5205.h"
#include "sound/c6280.h" #include "sound/c6280.h"
#include "includes/battlera.h" #include "includes/battlera.h"
void battlera_state::machine_start()
{
save_item(NAME(m_control_port_select));
save_item(NAME(m_msm5205next));
save_item(NAME(m_toggle));
}
/******************************************************************************/ /******************************************************************************/
WRITE8_MEMBER(battlera_state::battlera_sound_w) WRITE8_MEMBER(battlera_state::sound_w)
{ {
if (offset == 0) if (offset == 0)
{ {
@ -65,7 +71,7 @@ READ8_MEMBER(battlera_state::control_data_r)
static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8, battlera_state ) static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE(battlera_sound_w) AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE(sound_w)
AM_RANGE(0x1e1000, 0x1e13ff) AM_DEVREADWRITE( "huc6260", huc6260_device, palette_direct_read, palette_direct_write) AM_SHARE("paletteram") AM_RANGE(0x1e1000, 0x1e13ff) AM_DEVREADWRITE( "huc6260", huc6260_device, palette_direct_read, palette_direct_write) AM_SHARE("paletteram")
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* Main ram */ AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* Main ram */
AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(control_data_r, control_data_w) AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(control_data_r, control_data_w)
@ -84,7 +90,7 @@ ADDRESS_MAP_END
/******************************************************************************/ /******************************************************************************/
WRITE_LINE_MEMBER(battlera_state::battlera_adpcm_int) WRITE_LINE_MEMBER(battlera_state::adpcm_int)
{ {
m_msm->data_w(m_msm5205next >> 4); m_msm->data_w(m_msm5205next >> 4);
m_msm5205next <<= 4; m_msm5205next <<= 4;
@ -94,12 +100,12 @@ WRITE_LINE_MEMBER(battlera_state::battlera_adpcm_int)
m_audiocpu->set_input_line(1, HOLD_LINE); m_audiocpu->set_input_line(1, HOLD_LINE);
} }
WRITE8_MEMBER(battlera_state::battlera_adpcm_data_w) WRITE8_MEMBER(battlera_state::adpcm_data_w)
{ {
m_msm5205next = data; m_msm5205next = data;
} }
WRITE8_MEMBER(battlera_state::battlera_adpcm_reset_w) WRITE8_MEMBER(battlera_state::adpcm_reset_w)
{ {
m_msm->reset_w(0); m_msm->reset_w(0);
} }
@ -107,10 +113,10 @@ WRITE8_MEMBER(battlera_state::battlera_adpcm_reset_w)
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state ) static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_DEVWRITE("ymsnd", ym2203_device, write) AM_RANGE(0x040000, 0x040001) AM_DEVWRITE("ymsnd", ym2203_device, write)
AM_RANGE(0x080000, 0x080001) AM_WRITE(battlera_adpcm_data_w) AM_RANGE(0x080000, 0x080001) AM_WRITE(adpcm_data_w)
AM_RANGE(0x1fe800, 0x1fe80f) AM_DEVWRITE("c6280", c6280_device, c6280_w) AM_RANGE(0x1fe800, 0x1fe80f) AM_DEVWRITE("c6280", c6280_device, c6280_w)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank7") /* Main ram */ AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank7") /* Main ram */
AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_byte_r) AM_WRITE(battlera_adpcm_reset_w) AM_RANGE(0x1ff000, 0x1ff001) AM_READ(soundlatch_byte_r) AM_WRITE(adpcm_reset_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w) AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
ADDRESS_MAP_END ADDRESS_MAP_END
@ -183,11 +189,6 @@ INPUT_PORTS_END
/******************************************************************************/ /******************************************************************************/
WRITE_LINE_MEMBER(battlera_state::pce_irq_changed)
{
m_maincpu->set_input_line(0, state);
}
UINT32 battlera_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 battlera_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
m_huc6260->video_update( bitmap, cliprect ); m_huc6260->video_update( bitmap, cliprect );
@ -219,8 +220,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state )
MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 ) MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 )
MCFG_HUC6270_VRAM_SIZE(0x20000) MCFG_HUC6270_VRAM_SIZE(0x20000)
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(battlera_state, pce_irq_changed)) MCFG_HUC6270_IRQ_CHANGED_CB(INPUTLINE("maincpu", 0))
/* sound hardware */ /* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@ -230,7 +230,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
MCFG_SOUND_ADD("msm", MSM5205, 384000) MCFG_SOUND_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(battlera_state, battlera_adpcm_int)) /* interrupt function */ MCFG_MSM5205_VCLK_CB(WRITELINE(battlera_state, adpcm_int)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8KHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.85) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.85)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.85) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.85)
@ -301,6 +301,6 @@ ROM_END
/******************************************************************************/ /******************************************************************************/
GAME( 1988, battlera, 0, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Battle Rangers (World)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1988, battlera, 0, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Battle Rangers (World)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
GAME( 1988, bldwolf, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East USA", "Bloody Wolf (US)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1988, bldwolf, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East USA", "Bloody Wolf (US)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
GAME( 1988, bldwolfj, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Narazumono Sentoubutai Bloody Wolf (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) GAME( 1988, bldwolfj, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Narazumono Sentoubutai Bloody Wolf (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )

View File

@ -3,7 +3,6 @@
#include "sound/msm5205.h" #include "sound/msm5205.h"
#include "video/huc6260.h" #include "video/huc6260.h"
#include "video/huc6270.h" #include "video/huc6270.h"
#include "video/huc6202.h"
#define MAIN_CLOCK 21477270 #define MAIN_CLOCK 21477270
@ -19,30 +18,24 @@ public:
m_huc6260(*this, "huc6260") m_huc6260(*this, "huc6260")
{ } { }
int m_control_port_select;
int m_msm5205next;
int m_toggle;
int m_inc_value;
int m_irq_enable;
int m_rcr_enable;
int m_sb_enable;
int m_bb_enable;
int m_bldwolf_vblank;
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
DECLARE_WRITE8_MEMBER(battlera_sound_w);
DECLARE_WRITE8_MEMBER(control_data_w);
DECLARE_READ8_MEMBER(control_data_r);
DECLARE_WRITE8_MEMBER(battlera_adpcm_data_w);
DECLARE_WRITE8_MEMBER(battlera_adpcm_reset_w);
DECLARE_WRITE_LINE_MEMBER(battlera_adpcm_int);
required_device<cpu_device> m_audiocpu; required_device<cpu_device> m_audiocpu;
required_device<msm5205_device> m_msm; required_device<msm5205_device> m_msm;
required_device<screen_device> m_screen; required_device<screen_device> m_screen;
optional_device<huc6260_device> m_huc6260; required_device<huc6260_device> m_huc6260;
int m_control_port_select;
int m_msm5205next;
int m_toggle;
DECLARE_WRITE8_MEMBER(sound_w);
DECLARE_WRITE8_MEMBER(control_data_w);
DECLARE_READ8_MEMBER(control_data_r);
DECLARE_WRITE8_MEMBER(adpcm_data_w);
DECLARE_WRITE8_MEMBER(adpcm_reset_w);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
virtual void machine_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(pce_irq_changed);
}; };

View File

@ -1,3 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Bryan McPhail
// delete me