raiden2: checkpoint current state

This commit is contained in:
Olivier Galibert 2010-09-25 11:13:41 +00:00
parent f77bae5d04
commit 3630d2dbbc
4 changed files with 642 additions and 622 deletions

View File

@ -521,6 +521,8 @@ ADDRESS_MAP_START( seibu2_raiden2_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6000) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write)
AM_RANGE(0x6002, 0x6002) AM_DEVREADWRITE_MODERN("oki2", okim6295_device, read, write)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1")
AM_RANGE(0x4004, 0x4004) AM_NOP
AM_RANGE(0x401a, 0x401a) AM_NOP
ADDRESS_MAP_END

File diff suppressed because it is too large Load Diff

View File

@ -4,23 +4,79 @@ public:
raiden2_state(running_machine &machine, const driver_device_config_base &config)
: driver_device(machine, config) { }
UINT16 *videoram;
DECLARE_WRITE16_MEMBER( cop_itoa_low_w );
DECLARE_WRITE16_MEMBER( cop_itoa_high_w );
DECLARE_WRITE16_MEMBER( cop_itoa_digit_count_w );
DECLARE_WRITE16_MEMBER( cop_dma_v1_w );
DECLARE_WRITE16_MEMBER( cop_dma_v2_w );
DECLARE_WRITE16_MEMBER( cop_scale_w );
DECLARE_WRITE16_MEMBER( cop_dma_adr_w );
DECLARE_WRITE16_MEMBER( cop_dma_size_w );
DECLARE_WRITE16_MEMBER( cop_dma_v3_w );
DECLARE_WRITE16_MEMBER( cop_dma_mode_w );
DECLARE_READ16_MEMBER ( cop_reg_high_r );
DECLARE_WRITE16_MEMBER( cop_reg_high_w );
DECLARE_READ16_MEMBER ( cop_reg_low_r );
DECLARE_WRITE16_MEMBER( cop_reg_low_w );
DECLARE_WRITE16_MEMBER( cop_pgm_data_w );
DECLARE_WRITE16_MEMBER( cop_pgm_addr_w );
DECLARE_WRITE16_MEMBER( cop_pgm_value_w );
DECLARE_WRITE16_MEMBER( cop_pgm_mask_w );
DECLARE_WRITE16_MEMBER( cop_pgm_trigger_w );
DECLARE_WRITE16_MEMBER( cop_cmd_w );
DECLARE_READ16_MEMBER ( cop_itoa_digits_r );
DECLARE_READ16_MEMBER ( cop_status_r );
DECLARE_WRITE16_MEMBER ( cop_dma_trigger_w );
DECLARE_WRITE16_MEMBER ( cop_tile_bank_2_w );
DECLARE_WRITE16_MEMBER ( tile_scroll_w );
DECLARE_WRITE16_MEMBER ( tile_bank_01_w );
DECLARE_WRITE16_MEMBER ( raiden2_background_w );
DECLARE_WRITE16_MEMBER ( raiden2_foreground_w );
DECLARE_WRITE16_MEMBER ( raiden2_midground_w );
DECLARE_WRITE16_MEMBER ( raiden2_text_w );
DECLARE_WRITE16_MEMBER( sprcpt_val_1_w );
DECLARE_WRITE16_MEMBER( sprcpt_val_2_w );
DECLARE_WRITE16_MEMBER( sprcpt_data_1_w );
DECLARE_WRITE16_MEMBER( sprcpt_data_2_w );
DECLARE_WRITE16_MEMBER( sprcpt_data_3_w );
DECLARE_WRITE16_MEMBER( sprcpt_data_4_w );
DECLARE_WRITE16_MEMBER( sprcpt_adr_w );
DECLARE_WRITE16_MEMBER( sprcpt_flags_1_w );
DECLARE_WRITE16_MEMBER( sprcpt_flags_2_w );
DECLARE_WRITE16_MEMBER( mcu_prog_w );
DECLARE_WRITE16_MEMBER( mcu_prog_w2 );
DECLARE_WRITE16_MEMBER( mcu_prog_offs_w );
DECLARE_READ16_MEMBER( rdx_v33_system_r );
DECLARE_READ16_MEMBER( r2_playerin_r );
DECLARE_READ16_MEMBER( rdx_v33_unknown_r );
DECLARE_READ16_MEMBER( rdx_v33_unknown2_r );
DECLARE_READ16_MEMBER( nzerotea_unknown_r );
void common_reset();
tilemap_t *background_layer,*midground_layer,*foreground_layer,*text_layer;
UINT16 *back_data,*fore_data,*mid_data, *text_data;
int bg_bank, fg_bank, mid_bank;
UINT16 scrollvals[6];
UINT32 cop_regs[4], cop_itoa;
UINT16 cop_status, cop_scale, cop_itoa_digit_count;
UINT8 cop_itoa_digits[10];
UINT16 cop_dma_mode, cop_dma_adr, cop_dma_size, cop_dma_v1, cop_dma_v2, cop_dma_v3;
UINT16 sprites[0x800], sprites_cur_start;
UINT16 cop_func_trigger[0x100/8]; /* function trigger */
UINT16 cop_func_value[0x100/8]; /* function value (?) */
UINT16 cop_func_mask[0x100/8]; /* function mask (?) */
UINT16 cop_program[0x100]; /* program "code" */
UINT16 cop_latch_addr, cop_latch_trigger, cop_latch_value, cop_latch_mask;
void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ,int pri_mask );
};
/*----------- defined in drivers/raiden2.c -----------*/
WRITE16_HANDLER( sprcpt_val_1_w );
WRITE16_HANDLER( sprcpt_val_2_w );
WRITE16_HANDLER( sprcpt_data_1_w );
WRITE16_HANDLER( sprcpt_data_2_w );
WRITE16_HANDLER( sprcpt_data_3_w );
WRITE16_HANDLER( sprcpt_data_4_w );
WRITE16_HANDLER( sprcpt_adr_w );
WRITE16_HANDLER( sprcpt_flags_1_w );
WRITE16_HANDLER( sprcpt_flags_2_w );
/*----------- defined in machine/r2crypt.c -----------*/
void raiden2_decrypt_sprites(running_machine *machine);

View File

@ -3311,6 +3311,7 @@ WRITE16_HANDLER( raiden2_mcu_w )
default:
generic_cop_w(space, offset, data, mem_mask);
break;
#if 0
case (0x2a0/2): sprcpt_val_1_w(space,offset,data,mem_mask); break;
case (0x2a2/2): sprcpt_val_1_w(space,offset,data,mem_mask); break;
@ -3329,6 +3330,7 @@ WRITE16_HANDLER( raiden2_mcu_w )
case (0x2bc/2): sprcpt_adr_w(space,offset,data,mem_mask); break;
case (0x2be/2): sprcpt_adr_w(space,offset,data,mem_mask); break;
case (0x2ce/2): sprcpt_flags_2_w(space,offset,data,mem_mask); break;
#endif
case (0x300/2): { seibu_main_word_w(space,0,cop_mcu_ram[offset],0x00ff); break; }
case (0x304/2): { seibu_main_word_w(space,1,cop_mcu_ram[offset],0x00ff); break; }