Previous 199869 Revisions Next

r32026 Tuesday 9th September, 2014 at 16:30:58 UTC by David Haywood
fix scrolling in godzilla (nw)
[src/mame/drivers]legionna.c
[src/mame/includes]legionna.h
[src/mame/machine]seicop.c seicop.h
[src/mame/video]legionna.c

trunk/src/mame/drivers/legionna.c
r32025r32026
8585   AM_RANGE(0x000000, 0x07ffff) AM_ROM
8686   AM_RANGE(0x100000, 0x1003ff) AM_RAM
8787   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, legionna_mcu_r, legionna_mcu_w) AM_SHARE("cop_mcu_ram")    /* COP mcu */
88   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
89   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
90   AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
91   AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
88   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
89   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
90   AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
91   AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
9292   AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")    /* palette xRRRRxGGGGxBBBBx ? */
9393   AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
9494   AM_RANGE(0x106000, 0x107fff) AM_RAM
r32025r32026
100100   AM_RANGE(0x000000, 0x07ffff) AM_ROM
101101   AM_RANGE(0x100000, 0x1003ff) AM_RAM
102102   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, heatbrl_mcu_r, heatbrl_mcu_w) AM_SHARE("cop_mcu_ram")  /* COP mcu */
103   AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
104   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
105   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
106   AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
103   AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
104   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
105   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
106   AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
107107   AM_RANGE(0x103000, 0x103fff) AM_RAM AM_SHARE("spriteram")
108108   AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
109109   AM_RANGE(0x108000, 0x11ffff) AM_RAM
r32025r32026
114114   AM_RANGE(0x100000, 0x1003ff) AM_RAM
115115   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, godzilla_mcu_r, godzilla_mcu_w) AM_SHARE("cop_mcu_ram")    /* COP mcu */
116116   AM_RANGE(0x100800, 0x100fff) AM_RAM
117   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
118   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
119   AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
120   AM_RANGE(0x102800, 0x1037ff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
117   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
118   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
119   AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
120   AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
121121   AM_RANGE(0x103800, 0x103fff) AM_RAM // check?
122122   AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
123123   AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
r32025r32026
139139   AM_RANGE(0x100000, 0x1003ff) AM_RAM
140140   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, denjinmk_mcu_r, denjinmk_mcu_w) AM_SHARE("cop_mcu_ram")    /* COP mcu */
141141   AM_RANGE(0x100800, 0x100fff) AM_RAM
142   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
143   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
144   AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
145   AM_RANGE(0x102800, 0x103fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
142   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
143   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
144   AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
145   AM_RANGE(0x102800, 0x103fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
146146   AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("palette")
147147   AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
148148   AM_RANGE(0x106000, 0x107fff) AM_RAM
r32025r32026
155155   AM_RANGE(0x000000, 0x0fffff) AM_ROM
156156   AM_RANGE(0x100000, 0x1003ff) AM_RAM
157157   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, grainbow_mcu_r, grainbow_mcu_w) AM_SHARE("cop_mcu_ram")    /* COP mcu */
158   AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
159   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
160   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
161   AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
158   AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
159   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
160   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
161   AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
162162   AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
163163   AM_RANGE(0x104000, 0x104fff) AM_RAM//_WRITE(paletteram_xBBBBBGGGGGRRRRR_word_w) AM_SHARE("paletteram")
164164   AM_RANGE(0x105000, 0x105fff) AM_RAM
r32025r32026
171171   AM_RANGE(0x000000, 0x0fffff) AM_ROM
172172   AM_RANGE(0x100000, 0x1003ff) AM_RAM
173173   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, cupsoc_mcu_r,cupsoc_mcu_w) AM_SHARE("cop_mcu_ram")
174   AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
175   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
176   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
177   AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
174   AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
175   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
176   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
177   AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
178178   AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
179179   AM_RANGE(0x104000, 0x104fff) AM_RAM
180180   AM_RANGE(0x105000, 0x106fff) AM_RAM
r32025r32026
190190   AM_RANGE(0x000000, 0x0fffff) AM_ROM
191191   AM_RANGE(0x100000, 0x1003ff) AM_RAM
192192   AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, cupsocs_mcu_r,cupsocs_mcu_w) AM_SHARE("cop_mcu_ram")
193   AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
194   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
195   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
196   AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
193   AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
194   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
195   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
196   AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
197197   AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
198198   AM_RANGE(0x104000, 0x104fff) AM_RAM
199199   AM_RANGE(0x105000, 0x106fff) AM_RAM
r32025r32026
209209   AM_RANGE(0x000000, 0x0fffff) AM_ROM
210210   //AM_RANGE(0x100000, 0x1003ff) AM_RAM
211211   AM_RANGE(0x100000, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, copdxbl_0_r,copdxbl_0_w) AM_SHARE("cop_mcu_ram")
212   AM_RANGE(0x100800, 0x100fff) AM_RAM_WRITE(legionna_background_w) AM_SHARE("back_data")
213   AM_RANGE(0x101000, 0x1017ff) AM_RAM_WRITE(legionna_foreground_w) AM_SHARE("fore_data")
214   AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE(legionna_midground_w) AM_SHARE("mid_data")
215   AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE(legionna_text_w) AM_SHARE("textram")
212   AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
213   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
214   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
215   AM_RANGE(0x102000, 0x102fff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
216216   AM_RANGE(0x103000, 0x103fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
217217   AM_RANGE(0x104000, 0x104fff) AM_RAM
218218   AM_RANGE(0x105000, 0x106fff) AM_RAM
r32025r32026
10661066   SEIBU_SOUND_SYSTEM_CPU(14318180/4)
10671067
10681068   MCFG_SEIBU_COP_ADD("seibucop")
1069   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
10691070
10701071   /* video hardware */
10711072   MCFG_SCREEN_ADD("screen", RASTER)
r32025r32026
10971098   SEIBU_SOUND_SYSTEM_CPU(14318180/4)
10981099
10991100   MCFG_SEIBU_COP_ADD("seibucop")
1101   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
11001102
11011103   /* video hardware */
11021104   MCFG_SCREEN_ADD("screen", RASTER)
r32025r32026
11281130   SEIBU2_SOUND_SYSTEM_CPU(14318180/4)
11291131
11301132   MCFG_SEIBU_COP_ADD("seibucop")
1133   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
11311134
11321135   /* video hardware */
11331136   MCFG_SCREEN_ADD("screen", RASTER)
r32025r32026
11601163   SEIBU2_SOUND_SYSTEM_CPU(14318180/4)
11611164
11621165   MCFG_SEIBU_COP_ADD("seibucop")
1166   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
11631167
11641168   /* video hardware */
11651169   MCFG_SCREEN_ADD("screen", RASTER)
r32025r32026
11911195   SEIBU2_SOUND_SYSTEM_CPU(14318180/4)
11921196
11931197   MCFG_SEIBU_COP_ADD("seibucop")
1198   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
11941199
11951200   /* video hardware */
11961201   MCFG_SCREEN_ADD("screen", RASTER)
r32025r32026
12231228   SEIBU_SOUND_SYSTEM_CPU(14318180/4)
12241229
12251230   MCFG_SEIBU_COP_ADD("seibucop")
1231   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
12261232
12271233   /* video hardware */
12281234   MCFG_SCREEN_ADD("screen", RASTER)
r32025r32026
12571263   MCFG_CPU_VBLANK_INT_DRIVER("screen", legionna_state,  irq4_line_hold) /* VBL */
12581264
12591265   MCFG_SEIBU_COP_ADD("seibucop")
1266   MCFG_VIDEORAM_OUT_CB(WRITE16(legionna_state, videowrite_cb_w))
12601267
12611268   /*Different Sound hardware*/
12621269   //SEIBU_SOUND_SYSTEM_CPU(14318180/4)
trunk/src/mame/machine/seicop.c
r32025r32026
16391639   m_cop_sprite_dma_abs_x(0),
16401640   m_cop_sprite_dma_abs_y(0),
16411641   m_cop_sprite_dma_size(0),
1642   m_cop_sprite_dma_param(0)
1642   m_cop_sprite_dma_param(0),
1643   m_videoramout_cb(*this)
16431644{
16441645   memset(m_copd2_table, 0, sizeof(UINT16)*0x100);
16451646   memset(m_copd2_table_2, 0, sizeof(UINT16)*0x100/8);
r32025r32026
16731674void seibu_cop_legacy_device::device_start()
16741675{
16751676   m_cop_mcu_ram = reinterpret_cast<UINT16 *>(machine().root_device().memshare("cop_mcu_ram")->ptr());
1677   m_videoramout_cb.resolve_safe();
16761678
16771679   save_item(NAME(m_cop_438));
16781680   save_item(NAME(m_cop_43a));
r32025r32026
30843086      case (0x2fc/2):
30853087      {
30863088         //seibu_cop_log("%06x: COPX execute current layer clear??? %04x\n", space.device().safe_pc(), data);
3089         //printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",m_cop_dma_src[m_cop_dma_trigger] << 6,m_cop_dma_fade_table,m_cop_dma_dst[m_cop_dma_trigger] << 6,m_cop_dma_size[m_cop_dma_trigger] << 5,m_cop_dma_trigger);
30873090
30883091         if (m_cop_dma_trigger >= 0x80 && m_cop_dma_trigger <= 0x87)
30893092         {
r32025r32026
32343237            return;
32353238         }
32363239
3237         /* private buffer copies */
3238         if ((m_cop_dma_trigger==0x14) || (m_cop_dma_trigger==0x15))
3240         /* private buffer copies - tilemaps */
3241         if (m_cop_dma_trigger == 0x14)
3242         {
3243         //   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
3244         //   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
3245         //   AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
3246         //   AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
3247            int src = m_cop_dma_src[m_cop_dma_trigger] << 6;
3248
3249            for (int i = 0; i < 0x2800 /2; i++)
3250            {
3251               UINT16 tileval = space.read_word(src);
3252               //printf("reading source %04x (data is %04x)\n", src, data);
3253               src += 2;
3254               m_videoramout_cb(space, i, tileval, 0xffff);
3255            }
3256
3257            return;
3258         }
3259
3260         /* privaet buffer copy - sprites? */
3261         if (m_cop_dma_trigger==0x15)
32393262         return;
32403263
32413264         printf("SRC: %08x %08x DST:%08x SIZE:%08x TRIGGER: %08x\n",m_cop_dma_src[m_cop_dma_trigger] << 6,m_cop_dma_fade_table,m_cop_dma_dst[m_cop_dma_trigger] << 6,m_cop_dma_size[m_cop_dma_trigger] << 5,m_cop_dma_trigger);
trunk/src/mame/machine/seicop.h
r32025r32026
1818   UINT16 hitbox_x,hitbox_y;
1919};
2020
21#define MCFG_VIDEORAM_OUT_CB(_devcb) \
22   devcb = &seibu_cop_legacy_device::set_m_videoramout_cb(*device, DEVCB_##_devcb);
23
2124class seibu_cop_legacy_device : public device_t
2225{
2326public:
r32025r32026
4346
4447   //DECLARE_READ16_MEMBER( raiden2_mcu_r );   unused
4548   //DECLARE_WRITE16_MEMBER( raiden2_mcu_w );  unused
49   template<class _Object> static devcb_base &set_m_videoramout_cb(device_t &device, _Object object) { return downcast<seibu_cop_legacy_device &>(device).m_videoramout_cb.set_callback(object); }
4650
4751protected:
4852   // device-level overrides
r32025r32026
9296   UINT8 cop_calculate_collsion_detection();
9397   DECLARE_READ16_MEMBER( generic_cop_r );
9498   DECLARE_WRITE16_MEMBER( generic_cop_w );
99   devcb_write16       m_videoramout_cb;
100
95101};
96102
97103extern const device_type SEIBU_COP_LEGACY;
trunk/src/mame/includes/legionna.h
r32025r32026
66   legionna_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
88         m_spriteram(*this, "spriteram"),
9      m_back_data(*this, "back_data"),
9      /*m_back_data(*this, "back_data"),
1010      m_fore_data(*this, "fore_data"),
1111      m_mid_data(*this, "mid_data"),
12      m_textram(*this, "textram"),
12      m_textram(*this, "textram"),*/
1313      m_maincpu(*this, "maincpu"),
1414      m_audiocpu(*this, "audiocpu"),
1515      m_oki(*this, "oki"),
r32025r32026
1717      m_palette(*this, "palette") { }
1818
1919   required_shared_ptr<UINT16> m_spriteram;
20   required_shared_ptr<UINT16> m_back_data;
21   required_shared_ptr<UINT16> m_fore_data;
22   required_shared_ptr<UINT16> m_mid_data;
23   required_shared_ptr<UINT16> m_textram;
20   UINT16* m_back_data;
21   UINT16* m_fore_data;
22   UINT16* m_mid_data;
23   UINT16* m_textram;
2424   UINT16 *m_scrollram16;
2525   UINT16 m_layer_disable;
2626   int m_sprite_xoffs;
r32025r32026
3535   UINT16 m_fore_gfx_bank;
3636   UINT16 m_mid_gfx_bank;
3737
38   DECLARE_WRITE16_MEMBER(videowrite_cb_w);
3839   DECLARE_WRITE16_MEMBER(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w);
3940   DECLARE_WRITE16_MEMBER(legionna_background_w);
4041   DECLARE_WRITE16_MEMBER(legionna_midground_w);
trunk/src/mame/video/legionna.c
r32025r32026
4040   state->m_text_layer->mark_all_dirty();
4141}
4242
43WRITE16_MEMBER(legionna_state::videowrite_cb_w)
44{
45   //   AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data")
46   //   AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data")
47   //   AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data")
48   //   AM_RANGE(0x102800, 0x1037ff) AM_RAM // _WRITE(legionna_text_w) AM_SHARE("textram")
49
50   if (offset < 0x800 / 2)
51   {
52      legionna_background_w(space, offset, data, 0xffff);
53   }
54   else if (offset < 0x1000 /2)
55   {
56      offset -= 0x800 / 2;
57      legionna_foreground_w(space, offset, data, 0xffff);
58   }
59   else if (offset < 0x1800/2)
60   {
61      offset -= 0x1000 / 2;
62      legionna_midground_w(space, offset, data, 0xffff);
63   }
64   else if (offset < 0x2800/2)
65   {
66      offset -= 0x1800 / 2;
67      legionna_text_w(space, offset, data, 0xffff);
68   }
69}
70
4371WRITE16_MEMBER(legionna_state::legionna_background_w)
4472{
4573   COMBINE_DATA(&m_back_data[offset]);
r32025r32026
141169   SET_TILE_INFO_MEMBER(0,tile,color,0);
142170}
143171
172
173
144174VIDEO_START_MEMBER(legionna_state,legionna)
145175{
176
177   m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
178   m_fore_data =  auto_alloc_array_clear(machine(), UINT16, 0x800/2);
179   m_mid_data =  auto_alloc_array_clear(machine(), UINT16, 0x800/2);
180   m_textram =  auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
181
146182   m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
147183   m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
148184   m_midground_layer =  &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
r32025r32026
163199
164200VIDEO_START_MEMBER(legionna_state,denjinmk)
165201{
202
203   m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
204   m_fore_data =  auto_alloc_array_clear(machine(), UINT16, 0x800/2);
205   m_mid_data =  auto_alloc_array_clear(machine(), UINT16, 0x800/2);
206   m_textram =  auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
207
166208   m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
167209   m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info_denji),this),TILEMAP_SCAN_ROWS,16,16,32,32);
168210   m_midground_layer =  &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_denji),this), TILEMAP_SCAN_ROWS,16,16,32,32);
r32025r32026
183225
184226VIDEO_START_MEMBER(legionna_state,cupsoc)
185227{
228   m_back_data = auto_alloc_array_clear(machine(), UINT16, 0x800/2);
229   m_fore_data =  auto_alloc_array_clear(machine(), UINT16, 0x800/2);
230   m_mid_data =  auto_alloc_array_clear(machine(), UINT16, 0x800/2);
231   m_textram =  auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
232
186233   m_background_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
187234   m_foreground_layer = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
188235   m_midground_layer =  &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_cupsoc),this), TILEMAP_SCAN_ROWS,16,16,32,32);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team