mirror of
https://github.com/holub/mame
synced 2025-04-22 00:11:58 +03:00
by request, save states (nw)
This commit is contained in:
parent
05221b7ecc
commit
b9f3300000
@ -164,6 +164,80 @@ Current Problem(s) - in order of priority
|
||||
#include "includes/raiden2.h"
|
||||
#include "video/seibu_crtc.h"
|
||||
|
||||
|
||||
void raiden2_state::machine_start()
|
||||
{
|
||||
save_item(NAME(bg_bank));
|
||||
save_item(NAME(fg_bank));
|
||||
save_item(NAME(mid_bank));
|
||||
save_item(NAME(raiden2_tilemap_enable));
|
||||
save_item(NAME(prg_bank));
|
||||
save_item(NAME(cop_bank));
|
||||
save_item(NAME(cop_itoa));
|
||||
save_item(NAME(cop_status));
|
||||
save_item(NAME(cop_scale));
|
||||
save_item(NAME(cop_itoa_digit_count));
|
||||
save_item(NAME(cop_angle));
|
||||
save_item(NAME(cop_dist));
|
||||
save_item(NAME(cop_latch_addr));
|
||||
save_item(NAME(cop_latch_trigger));
|
||||
save_item(NAME(cop_latch_value));
|
||||
save_item(NAME(cop_latch_mask));
|
||||
save_item(NAME(cop_angle_target));
|
||||
save_item(NAME(cop_angle_step));
|
||||
save_item(NAME(sprite_prot_x));
|
||||
save_item(NAME(sprite_prot_y));
|
||||
save_item(NAME(dst1));
|
||||
save_item(NAME(cop_spr_maxx));
|
||||
save_item(NAME(cop_spr_off));
|
||||
save_item(NAME(cop_hit_status));
|
||||
save_item(NAME(cop_hit_baseadr));
|
||||
save_item(NAME(cop_hit_val_x));
|
||||
save_item(NAME( cop_hit_val_y));
|
||||
save_item(NAME(cop_hit_val_z));
|
||||
save_item(NAME(cop_hit_val_unk));
|
||||
save_item(NAME(cop_sort_ram_addr));
|
||||
save_item(NAME(cop_sort_lookup));
|
||||
save_item(NAME(cop_sort_param));
|
||||
|
||||
save_item(NAME(scrollvals));
|
||||
save_item(NAME(cop_regs));
|
||||
save_item(NAME(cop_itoa_digits));
|
||||
save_item(NAME(cop_func_trigger));
|
||||
save_item(NAME(cop_func_value));
|
||||
save_item(NAME(cop_func_mask));
|
||||
save_item(NAME(cop_program));
|
||||
save_item(NAME(sprite_prot_src_addr));
|
||||
|
||||
// save_pointer(NAME(cop_collision_info), sizeof(colinfo)*2); // this is illegal
|
||||
save_item(NAME(cop_collision_info[0].x));
|
||||
save_item(NAME(cop_collision_info[0].y));
|
||||
save_item(NAME(cop_collision_info[0].z));
|
||||
|
||||
save_item(NAME(cop_collision_info[0].min_x));
|
||||
save_item(NAME(cop_collision_info[0].min_y));
|
||||
save_item(NAME(cop_collision_info[0].min_z));
|
||||
|
||||
save_item(NAME(cop_collision_info[0].max_x));
|
||||
save_item(NAME(cop_collision_info[0].max_y));
|
||||
save_item(NAME(cop_collision_info[0].max_z));
|
||||
|
||||
save_item(NAME(cop_collision_info[1].x));
|
||||
save_item(NAME(cop_collision_info[1].y));
|
||||
save_item(NAME(cop_collision_info[1].z));
|
||||
|
||||
save_item(NAME(cop_collision_info[1].min_x));
|
||||
save_item(NAME(cop_collision_info[1].min_y));
|
||||
save_item(NAME(cop_collision_info[1].min_z));
|
||||
|
||||
save_item(NAME(cop_collision_info[1].max_x));
|
||||
save_item(NAME(cop_collision_info[1].max_y));
|
||||
save_item(NAME(cop_collision_info[1].max_z));
|
||||
|
||||
// save_item(NAME(tile_buffer));
|
||||
// save_item(NAME(sprite_buffer));
|
||||
}
|
||||
|
||||
UINT16 raiden2_state::rps()
|
||||
{
|
||||
return m_maincpu->state_int(NEC_CS);
|
||||
|
@ -17,12 +17,56 @@ public:
|
||||
m_seibu_sound(*this, "seibu_sound"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
|
||||
bg_bank(0),
|
||||
fg_bank(0),
|
||||
mid_bank(0),
|
||||
raiden2_tilemap_enable(0),
|
||||
prg_bank(0),
|
||||
cop_bank(0),
|
||||
cop_itoa(0),
|
||||
cop_status(0),
|
||||
cop_scale(0),
|
||||
cop_itoa_digit_count(0),
|
||||
cop_angle(0),
|
||||
cop_dist(0),
|
||||
cop_latch_addr(0),
|
||||
cop_latch_trigger(0),
|
||||
cop_latch_value(0),
|
||||
cop_latch_mask(0),
|
||||
cop_angle_target(0),
|
||||
cop_angle_step(0),
|
||||
sprite_prot_x(0),
|
||||
sprite_prot_y(0),
|
||||
dst1(0),
|
||||
cop_spr_maxx(0),
|
||||
cop_spr_off(0),
|
||||
cop_hit_status(0),
|
||||
cop_hit_baseadr(0),
|
||||
cop_hit_val_x(0),
|
||||
cop_hit_val_y(0),
|
||||
cop_hit_val_z(0),
|
||||
cop_hit_val_unk(0),
|
||||
cop_sort_ram_addr(0),
|
||||
cop_sort_lookup(0),
|
||||
cop_sort_param(0),
|
||||
tile_buffer(320, 256),
|
||||
sprite_buffer(320, 256),
|
||||
m_raiden2cop(*this, "raiden2cop")
|
||||
{ }
|
||||
{
|
||||
memset(scrollvals, 0, sizeof(UINT16)*6);
|
||||
memset(cop_regs, 0, sizeof(UINT32)*8);
|
||||
memset(cop_itoa_digits, 0, sizeof(UINT8)*10);
|
||||
|
||||
UINT16 *back_data, *fore_data, *mid_data, *text_data;
|
||||
memset(cop_func_trigger, 0, sizeof(UINT16)*(0x100/8));
|
||||
memset(cop_func_value, 0, sizeof(UINT16)*(0x100/8));
|
||||
memset(cop_func_mask, 0, sizeof(UINT16)*(0x100/8));
|
||||
memset(cop_program, 0, sizeof(UINT16)*(0x100));
|
||||
memset(sprite_prot_src_addr, 0, sizeof(UINT16)*2);
|
||||
memset(cop_collision_info, 0, sizeof(colinfo)*2);
|
||||
}
|
||||
|
||||
UINT16 *back_data, *fore_data, *mid_data, *text_data; // private buffers, allocated in init
|
||||
required_shared_ptr<UINT16> sprites;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<seibu_sound_device> m_seibu_sound;
|
||||
@ -95,12 +139,14 @@ public:
|
||||
static UINT16 const xsedae_blended_colors[];
|
||||
static UINT16 const zeroteam_blended_colors[];
|
||||
|
||||
bool blend_active[0x800];
|
||||
bool blend_active[0x800]; // cfg
|
||||
|
||||
tilemap_t *background_layer,*midground_layer,*foreground_layer,*text_layer;
|
||||
|
||||
|
||||
int bg_bank, fg_bank, mid_bank;
|
||||
UINT16 raiden2_tilemap_enable;
|
||||
UINT8 prg_bank,prot_data;
|
||||
UINT8 prg_bank;
|
||||
UINT16 cop_bank;
|
||||
|
||||
UINT16 scrollvals[6];
|
||||
@ -116,7 +162,6 @@ public:
|
||||
UINT16 cop_angle_target;
|
||||
UINT16 cop_angle_step;
|
||||
|
||||
bitmap_ind16 tile_buffer, sprite_buffer;
|
||||
|
||||
DECLARE_WRITE16_MEMBER( sprite_prot_x_w );
|
||||
DECLARE_WRITE16_MEMBER( sprite_prot_y_w );
|
||||
@ -133,10 +178,12 @@ public:
|
||||
UINT16 sprite_prot_x,sprite_prot_y,dst1,cop_spr_maxx,cop_spr_off;
|
||||
UINT16 sprite_prot_src_addr[2];
|
||||
|
||||
struct {
|
||||
struct colinfo {
|
||||
int x, y, z;
|
||||
int min_x, min_y, min_z, max_x, max_y, max_z;
|
||||
} cop_collision_info[2];
|
||||
};
|
||||
|
||||
colinfo cop_collision_info[2];
|
||||
|
||||
UINT16 cop_hit_status, cop_hit_baseadr;
|
||||
INT16 cop_hit_val_x, cop_hit_val_y, cop_hit_val_z, cop_hit_val_unk;
|
||||
@ -156,7 +203,7 @@ public:
|
||||
|
||||
UINT32 cop_sort_ram_addr, cop_sort_lookup;
|
||||
UINT16 cop_sort_param;
|
||||
const int *cur_spri;
|
||||
const int *cur_spri; // cfg
|
||||
|
||||
DECLARE_DRIVER_INIT(raidendx);
|
||||
DECLARE_DRIVER_INIT(xsedae);
|
||||
@ -183,9 +230,11 @@ public:
|
||||
|
||||
void init_blending(const UINT16 *table);
|
||||
|
||||
bitmap_ind16 tile_buffer, sprite_buffer;
|
||||
required_device<raiden2cop_device> m_raiden2cop;
|
||||
|
||||
|
||||
protected:
|
||||
virtual void machine_start();
|
||||
};
|
||||
|
||||
/*----------- defined in machine/r2crypt.c -----------*/
|
||||
|
@ -12,9 +12,18 @@ const device_type RAIDEN2COP = &device_creator<raiden2cop_device>;
|
||||
|
||||
raiden2cop_device::raiden2cop_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, RAIDEN2COP, "RAIDEN2COP", tag, owner, clock, "raiden2cop", __FILE__),
|
||||
cop_dma_v1(0),
|
||||
cop_dma_v2(0),
|
||||
cop_dma_mode(0),
|
||||
cop_dma_adr_rel(0),
|
||||
pal_brightness_val(0),
|
||||
pal_brightness_mode(0),
|
||||
m_videoramout_cb(*this),
|
||||
m_palette(*this, ":palette")
|
||||
{
|
||||
memset(cop_dma_src, 0, sizeof(UINT16)*(0x200));
|
||||
memset(cop_dma_dst, 0, sizeof(UINT16)*(0x200));
|
||||
memset(cop_dma_size, 0, sizeof(UINT16)*(0x200));
|
||||
}
|
||||
|
||||
|
||||
@ -23,6 +32,17 @@ raiden2cop_device::raiden2cop_device(const machine_config &mconfig, const char *
|
||||
//-------------------------------------------------
|
||||
void raiden2cop_device::device_start()
|
||||
{
|
||||
save_item(NAME(cop_dma_v1));
|
||||
save_item(NAME(cop_dma_v2));
|
||||
save_item(NAME(cop_dma_mode));
|
||||
save_item(NAME(cop_dma_adr_rel));
|
||||
save_item(NAME(pal_brightness_val));
|
||||
save_item(NAME(pal_brightness_mode));
|
||||
|
||||
save_item(NAME(cop_dma_src));
|
||||
save_item(NAME(cop_dma_dst));
|
||||
save_item(NAME(cop_dma_size));
|
||||
|
||||
m_videoramout_cb.resolve_safe();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user