Previous 199869 Revisions Next

r32473 Tuesday 30th September, 2014 at 15:33:22 UTC by hap
spi_layer_bank_w unknown bit wasn't alpha blending enable afterall
[src/mame/drivers]seibuspi.c
[src/mame/includes]seibuspi.h
[src/mame/video]seibuspi.c

trunk/src/mame/drivers/seibuspi.c
r32472r32473
18601860   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
18611861MACHINE_CONFIG_END
18621862
1863static MACHINE_CONFIG_DERIVED( ejanhs, spi )
18631864
1865   /* video hardware */
1866   MCFG_VIDEO_START_OVERRIDE(seibuspi_state, ejanhs)
1867MACHINE_CONFIG_END
1868
1869
18641870/* single boards */
18651871
18661872MACHINE_RESET_MEMBER(seibuspi_state,sxx2e)
r32472r32473
37573763GAME( 1995, viprp1oj,   viprp1,   spi,     spi_3button, seibuspi_state, viprp1o,  ROT270, "Seibu Kaihatsu",                         "Viper Phase 1 (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
37583764GAME( 1995, viprp1hk,   viprp1,   spi,     spi_3button, seibuspi_state, viprp1,   ROT270, "Seibu Kaihatsu (Metrotainment license)", "Viper Phase 1 (Hong Kong)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* "=HONG KONG=" seems part of title */
37593765
3760GAME( 1996, ejanhs,     0,        spi,     spi_ejanhs,  seibuspi_state, ejanhs,   ROT0,   "Seibu Kaihatsu",                         "E-Jan High School (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
3766GAME( 1996, ejanhs,     0,        ejanhs,  spi_ejanhs,  seibuspi_state, ejanhs,   ROT0,   "Seibu Kaihatsu",                         "E-Jan High School (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
37613767
37623768GAME( 1996, rdft,       0,        spi,     spi_3button, seibuspi_state, rdft,     ROT270, "Seibu Kaihatsu",                         "Raiden Fighters (Japan set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
37633769GAME( 1996, rdftj,      rdft,     spi,     spi_3button, seibuspi_state, rdft,     ROT270, "Seibu Kaihatsu",                         "Raiden Fighters (Japan set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
trunk/src/mame/includes/seibuspi.h
r32472r32473
5858   UINT32 m_layer_enable;
5959   UINT32 m_layer_bank;
6060   UINT8 m_rf2_layer_bank;
61   int m_alpha_enable;
6261   int m_rowscroll_enable;
6362   int m_midl_layer_offset;
6463   int m_fore_layer_offset;
r32472r32473
131130   virtual void video_start();
132131   DECLARE_MACHINE_RESET(spi);
133132   DECLARE_MACHINE_RESET(sxx2e);
133   DECLARE_VIDEO_START(ejanhs);
134134   DECLARE_VIDEO_START(sys386f);
135135   TILE_GET_INFO_MEMBER(get_text_tile_info);
136136   TILE_GET_INFO_MEMBER(get_back_tile_info);
trunk/src/mame/video/seibuspi.c
r32472r32473
4343   // r000f000 0010100a 00000000 00000000
4444   // r: rowscroll enable
4545   // f: fore layer d13
46   // a: global alpha blending enable (0 in ejanhs, 1 in all other games)
46   // a: ? (0 in ejanhs and rdft22kc, 1 in all other games)
4747   UINT32 prev = m_layer_bank;
4848   COMBINE_DATA(&m_layer_bank);
4949
5050   m_rowscroll_enable = m_layer_bank >> 31 & 1;
51   m_alpha_enable = m_layer_bank >> 16 & 1;
5251   set_layer_offsets();
5352
5453   if ((prev ^ m_layer_bank) & 0x08000000)
r32472r32473
319318         {
320319            pri[x] |= primask;
321320            int global_pen = pen + (color << m_sprite_bpp);
322            if (m_alpha_enable && m_alpha_table[global_pen])
321            if (m_alpha_table[global_pen])
323322               dest[x] = alpha_blend_r32(dest[x], pens[global_pen], 0x7f);
324323            else
325324               dest[x] = pens[global_pen];
r32472r32473
447446         if (opaque || (flags[x & xscroll_mask] & (TILEMAP_PIXEL_LAYER0 | TILEMAP_PIXEL_LAYER1)))
448447         {
449448            UINT16 pen = src[x & xscroll_mask];
450            if (m_alpha_enable && m_alpha_table[pen])
449            if (m_alpha_table[pen])
451450               *dest = alpha_blend_r32(*dest, m_palette->pen(pen), 0x7f);
452451            else
453452               *dest = m_palette->pen(pen);
r32472r32473
585584   m_layer_enable = 0;
586585   m_layer_bank = 0;
587586   m_rf2_layer_bank = 0;
588   m_alpha_enable = 0;
589587   m_rowscroll_enable = 0;
590588   set_layer_offsets();
591589
r32472r32473
643641   register_video_state();
644642}
645643
644VIDEO_START_MEMBER(seibuspi_state,ejanhs)
645{
646   video_start();
647
648   memset(m_alpha_table, 0, 0x2000); // no alpha blending
649}
650
646651VIDEO_START_MEMBER(seibuspi_state,sys386f)
647652{
648653   m_video_dma_length = 0;
r32472r32473
650655   m_layer_enable = 0;
651656   m_layer_bank = 0;
652657   m_rf2_layer_bank = 0;
653   m_alpha_enable = 0;
654658   m_rowscroll_enable = 0;
655659   set_layer_offsets();
656660   
r32472r32473
663667   m_palette_ram = auto_alloc_array_clear(machine(), UINT32, m_palette_ram_size/4);
664668   m_sprite_ram = auto_alloc_array_clear(machine(), UINT32, m_sprite_ram_size/4);
665669
666   memset(m_alpha_table, 0, 0x2000);
670   memset(m_alpha_table, 0, 0x2000); // no alpha blending
667671
668672   register_video_state();
669673}
r32472r32473
675679   save_item(NAME(m_layer_enable));
676680   save_item(NAME(m_layer_bank));
677681   save_item(NAME(m_rf2_layer_bank));
678   save_item(NAME(m_alpha_enable));
679682   save_item(NAME(m_rowscroll_enable));
680683
681684   save_item(NAME(m_midl_layer_offset));

Previous 199869 Revisions Next


© 1997-2024 The MAME Team