Previous 199869 Revisions Next

r18285 Thursday 4th October, 2012 at 15:35:29 UTC by hap
added support for savestates
[src/mame/drivers]ninjakd2.c
[src/mame/includes]ninjakd2.h
[src/mame/video]ninjakd2.c

trunk/src/mame/includes/ninjakd2.h
r18284r18285
4343   UINT8* m_robokid_bg2_videoram;
4444   UINT8 m_rom_bank_mask;
4545
46   void omegaf_io_protection_start();
4647   void omegaf_io_protection_reset();
4748   void robokid_motion_error_kludge(UINT16 offset);
49   void video_init_common(UINT32 vram_alloc_size);
4850   
4951   DECLARE_WRITE8_MEMBER(ninjakd2_bankselect_w);
5052   DECLARE_WRITE8_MEMBER(ninjakd2_soundreset_w);
r18284r18285
8183   TILE_GET_INFO_MEMBER(robokid_get_bg0_tile_info);
8284   TILE_GET_INFO_MEMBER(robokid_get_bg1_tile_info);
8385   TILE_GET_INFO_MEMBER(robokid_get_bg2_tile_info);
86   virtual void machine_start();
8487   virtual void machine_reset();
8588   virtual void video_start();
8689   DECLARE_VIDEO_START(mnight);
8790   DECLARE_VIDEO_START(arkarea);
8891   DECLARE_VIDEO_START(robokid);
92   DECLARE_MACHINE_START(omegaf);
8993   DECLARE_MACHINE_RESET(omegaf);
9094   DECLARE_VIDEO_START(omegaf);
9195   UINT32 screen_update_ninjakd2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
trunk/src/mame/video/ninjakd2.c
r18284r18285
11/******************************************************************************
22
33    UPL "sprite framebuffer" hardware
4   
5    Functions to emulate the video hardware
46
57******************************************************************************/
68
r18284r18285
108110 *
109111 *************************************/
110112
111static void videoram_alloc(running_machine& machine, int const size)
113void ninjakd2_state::video_init_common(UINT32 vram_alloc_size)
112114{
113   ninjakd2_state *state = machine.driver_data<ninjakd2_state>();
114   if (size)
115   // create video ram
116   if (vram_alloc_size)
115117   {
116      /* create video ram */
117      state->m_robokid_bg0_videoram = auto_alloc_array_clear(machine, UINT8, size);
118      state->m_robokid_bg1_videoram = auto_alloc_array_clear(machine, UINT8, size);
119      state->m_robokid_bg2_videoram = auto_alloc_array_clear(machine, UINT8, size);
118      m_robokid_bg0_videoram = auto_alloc_array_clear(machine(), UINT8, vram_alloc_size);
119      m_robokid_bg1_videoram = auto_alloc_array_clear(machine(), UINT8, vram_alloc_size);
120      m_robokid_bg2_videoram = auto_alloc_array_clear(machine(), UINT8, vram_alloc_size);
121     
122      save_pointer(NAME(m_robokid_bg0_videoram), vram_alloc_size);
123      save_pointer(NAME(m_robokid_bg1_videoram), vram_alloc_size);
124      save_pointer(NAME(m_robokid_bg2_videoram), vram_alloc_size);
120125   }
121126
122   machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap);
127   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
128   m_fg_tilemap->set_transparent_pen(0xf);
129
130   machine().primary_screen->register_screen_bitmap(m_sprites_bitmap);
131
132   m_sprites_updated = 0;
133   m_robokid_sprites = 0;
134   m_vram_bank_mask = 0;
135
136   // register for save states
137   save_item(NAME(m_sprites_updated));
138   save_item(NAME(m_next_sprite_overdraw_enabled));
139   save_item(NAME(m_robokid_bg0_bank));
140   save_item(NAME(m_robokid_bg1_bank));
141   save_item(NAME(m_robokid_bg2_bank));
123142}
124143
125144static int stencil_ninjakd2( UINT16 pal );
r18284r18285
130149
131150void ninjakd2_state::video_start()
132151{
133   videoram_alloc(machine(), 0);
152   video_init_common(0);
134153
135   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,   8,  8, 32, 32);
136   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info),this), TILEMAP_SCAN_ROWS,  16, 16, 32, 32);
154   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
137155
138   m_fg_tilemap->set_transparent_pen(0xf);
139
140   m_robokid_sprites = 0;
141156   m_stencil_compare_function = stencil_ninjakd2;
142157}
143158
144159VIDEO_START_MEMBER(ninjakd2_state,mnight)
145160{
146   videoram_alloc(machine(), 0);
161   video_init_common(0);
147162
148   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,   8,  8, 32, 32);
149   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS,  16, 16, 32, 32);
163   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
150164
151   m_fg_tilemap->set_transparent_pen(0xf);
152
153   m_robokid_sprites = 0;
154165   m_stencil_compare_function = stencil_mnight;
155166}
156167
157168VIDEO_START_MEMBER(ninjakd2_state,arkarea)
158169{
159   videoram_alloc(machine(), 0);
170   video_init_common(0);
160171
161   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,   8,  8, 32, 32);
162   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS,  16, 16, 32, 32);
172   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
163173
164   m_fg_tilemap->set_transparent_pen(0xf);
165
166   m_robokid_sprites = 0;
167174   m_stencil_compare_function = stencil_arkarea;
168175}
169176
170177VIDEO_START_MEMBER(ninjakd2_state,robokid)
171178{
179   video_init_common(0x0800);
172180   m_vram_bank_mask = 1;
181   m_robokid_sprites = 1;
173182
174   videoram_alloc(machine(), 0x0800);
183   m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),this), 16, 16, 32, 32);
184   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),this), 16, 16, 32, 32);
185   m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),this), 16, 16, 32, 32);
175186
176   m_fg_tilemap  = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this),  TILEMAP_SCAN_ROWS,   8,  8, 32, 32);
177   m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),this),    16, 16, 32, 32);
178   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),this),    16, 16, 32, 32);
179   m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),this),    16, 16, 32, 32);
180
181   m_fg_tilemap->set_transparent_pen(0xf);
182187   m_bg1_tilemap->set_transparent_pen(0xf);
183188   m_bg2_tilemap->set_transparent_pen(0xf);
184189
185   m_robokid_sprites = 1;
186190   m_stencil_compare_function = stencil_robokid;
187191}
188192
189193VIDEO_START_MEMBER(ninjakd2_state,omegaf)
190194{
195   video_init_common(0x2000);
191196   m_vram_bank_mask = 7;
197   m_robokid_sprites = 1;
192198
193   videoram_alloc(machine(), 0x2000);
199   m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),this), 16, 16, 128, 32);
200   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),this), 16, 16, 128, 32);
201   m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),this), 16, 16, 128, 32);
194202
195   m_fg_tilemap  = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this),  TILEMAP_SCAN_ROWS,   8,  8,  32, 32);
196   m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),this),     16, 16, 128, 32);
197   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),this),     16, 16, 128, 32);
198   m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),this), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),this),     16, 16, 128, 32);
199
200   m_fg_tilemap->set_transparent_pen(0xf);
201203   m_bg0_tilemap->set_transparent_pen(0xf);
202204   m_bg1_tilemap->set_transparent_pen(0xf);
203205   m_bg2_tilemap->set_transparent_pen(0xf);
204206
205   m_robokid_sprites = 1;
206207   m_stencil_compare_function = stencil_omegaf;
207208}
208209
r18284r18285
227228}
228229
229230
230
231231WRITE8_MEMBER(ninjakd2_state::robokid_bg0_bank_w)
232232{
233233   m_robokid_bg0_bank = data & m_vram_bank_mask;
r18284r18285
283283}
284284
285285
286
287286static void bg_ctrl(int offset, int data, tilemap_t* tilemap)
288287{
289288   int scrollx = tilemap->scrollx(0);
r18284r18285
346345   UINT8* sprptr = &state->m_spriteram[11];
347346   int sprites_drawn = 0;
348347
349   // the sprite generator draws exactly 96 16x16 sprites per frame. When big
350   // (32x32) sprites are drawn, this counts for 4 sprites drawn, so the sprite
351   // list is reduced accordingly (i.e. three slots at the end of the list will
352   // be ignored). Note that a disabled sprite, even if it is not drawn, still
353   // counts as one sprite drawn.
354   // This is proven by Mutant Night, which doesn't work correctly (leaves shots
355   // on screen) if we don't take big sprites into account.
348    /* The sprite generator draws exactly 96 16x16 sprites per frame. When big
349       (32x32) sprites are drawn, this counts for 4 sprites drawn, so the sprite
350       list is reduced accordingly (i.e. three slots at the end of the list will
351       be ignored). Note that a disabled sprite, even if it is not drawn, still
352       counts as one sprite drawn.
353       This is proven by Mutant Night, which doesn't work correctly (leaves shots
354       on screen) if we don't take big sprites into account.
355   */
356356
357357   for (;;)
358358   {
r18284r18285
444444         for (int x = 0; x < state->m_sprites_bitmap.width(); ++x)
445445         {
446446            UINT16* const ptr = &state->m_sprites_bitmap.pix16(y, x);
447
448447            if ( (*state->m_stencil_compare_function)(*ptr) ) *ptr = 0xf;
449448         }
450449      }
trunk/src/mame/drivers/ninjakd2.c
r18284r18285
177177   const int length = state->memregion("pcm")->bytes();
178178   INT16* sampledata = auto_alloc_array(machine, INT16, length);
179179
180   int i;
181
182180   // convert unsigned 8-bit PCM to signed 16-bit
183   for (i = 0; i < length; ++i)
181   for (int i = 0; i < length; ++i)
184182      sampledata[i] = rom[i] << 7;
185183
186184   state->m_sampledata = sampledata;
r18284r18285
195193   if (rom)
196194   {
197195      const int length = memregion("pcm")->bytes();
198
199196      const int start = data << 8;
200197
201      int end;
202
203198      // find end of sample
204      end = start;
199      int end = start;
205200      while (end < length && rom[end] != 0x00)
206201         ++end;
207202
r18284r18285
220215 *
221216 *************************************/
222217
218void ninjakd2_state::omegaf_io_protection_start()
219{
220   // register for save states
221   save_item(NAME(m_omegaf_io_protection));
222   save_item(NAME(m_omegaf_io_protection_input));
223   save_item(NAME(m_omegaf_io_protection_tic));
224}
225
223226void ninjakd2_state::omegaf_io_protection_reset()
224227{
225228   // make sure protection starts in a known state
r18284r18285
296299         {
297300            case 0: result = ioport("DIPSW1")->read(); break;
298301            case 1: result = ioport("DIPSW2")->read(); break;
299            case 2: result = 0x02;                         break;
302            case 2: result = 0x02; break;
300303         }
301304         break;
302305
r18284r18285
305308         {
306309            case 0: result = ioport("PAD1")->read(); break;
307310            case 1: result = ioport("PAD2")->read(); break;
308            case 2: result = 0x01;                       break;
311            case 2: result = 0x01; break;
309312         }
310313         break;
311314   }
r18284r18285
362365   AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DIPSW1")
363366   AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DIPSW2")
364367   AM_RANGE(0xc200, 0xc200) AM_WRITE(soundlatch_byte_w)
365   AM_RANGE(0xc201, 0xc201) AM_WRITE(ninjakd2_soundreset_w)   // sound reset + flip screen
368   AM_RANGE(0xc201, 0xc201) AM_WRITE(ninjakd2_soundreset_w)
366369   AM_RANGE(0xc202, 0xc202) AM_WRITE(ninjakd2_bankselect_w)
367370   AM_RANGE(0xc203, 0xc203) AM_WRITE(ninjakd2_sprite_overdraw_w)
368   AM_RANGE(0xc208, 0xc20c) AM_WRITE(ninjakd2_bg_ctrl_w)   // scroll + enable
371   AM_RANGE(0xc208, 0xc20c) AM_WRITE(ninjakd2_bg_ctrl_w)
369372   AM_RANGE(0xc800, 0xcdff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
370373   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_SHARE("fg_videoram")
371374   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_SHARE("bg_videoram")
r18284r18285
391394   AM_RANGE(0xfa01, 0xfa01) AM_WRITE(ninjakd2_soundreset_w)
392395   AM_RANGE(0xfa02, 0xfa02) AM_WRITE(ninjakd2_bankselect_w)
393396   AM_RANGE(0xfa03, 0xfa03) AM_WRITE(ninjakd2_sprite_overdraw_w)
394   AM_RANGE(0xfa08, 0xfa0c) AM_WRITE(ninjakd2_bg_ctrl_w)   // scroll + enable
397   AM_RANGE(0xfa08, 0xfa0c) AM_WRITE(ninjakd2_bg_ctrl_w)
395398ADDRESS_MAP_END
396399
397400
r18284r18285
403406   AM_RANGE(0xd000, 0xd3ff) AM_READWRITE(robokid_bg2_videoram_r, robokid_bg2_videoram_w)   // banked
404407   AM_RANGE(0xd400, 0xd7ff) AM_READWRITE(robokid_bg1_videoram_r, robokid_bg1_videoram_w)   // banked
405408   AM_RANGE(0xd800, 0xdbff) AM_READWRITE(robokid_bg0_videoram_r, robokid_bg0_videoram_w)   // banked
406   AM_RANGE(0xdc00, 0xdc00) AM_READ_PORT("KEYCOIN")
407   AM_RANGE(0xdc01, 0xdc01) AM_READ_PORT("PAD1")
408   AM_RANGE(0xdc02, 0xdc02) AM_READ_PORT("PAD2")
409   AM_RANGE(0xdc03, 0xdc03) AM_READ_PORT("DIPSW1")
409   AM_RANGE(0xdc00, 0xdc00) AM_READ_PORT("KEYCOIN") AM_WRITE(soundlatch_byte_w)
410   AM_RANGE(0xdc01, 0xdc01) AM_READ_PORT("PAD1") AM_WRITE(ninjakd2_soundreset_w)
411   AM_RANGE(0xdc02, 0xdc02) AM_READ_PORT("PAD2") AM_WRITE(ninjakd2_bankselect_w)
412   AM_RANGE(0xdc03, 0xdc03) AM_READ_PORT("DIPSW1") AM_WRITE(ninjakd2_sprite_overdraw_w)
410413   AM_RANGE(0xdc04, 0xdc04) AM_READ_PORT("DIPSW2")
411   AM_RANGE(0xdc00, 0xdc00) AM_WRITE(soundlatch_byte_w)
412   AM_RANGE(0xdc01, 0xdc01) AM_WRITE(ninjakd2_soundreset_w)   // sound reset + flip screen
413   AM_RANGE(0xdc02, 0xdc02) AM_WRITE(ninjakd2_bankselect_w)
414   AM_RANGE(0xdc03, 0xdc03) AM_WRITE(ninjakd2_sprite_overdraw_w)
415   AM_RANGE(0xdd00, 0xdd04) AM_WRITE(robokid_bg0_ctrl_w)   // scroll + enable
414   AM_RANGE(0xdd00, 0xdd04) AM_WRITE(robokid_bg0_ctrl_w)
416415   AM_RANGE(0xdd05, 0xdd05) AM_WRITE(robokid_bg0_bank_w)
417   AM_RANGE(0xde00, 0xde04) AM_WRITE(robokid_bg1_ctrl_w)   // scroll + enable
416   AM_RANGE(0xde00, 0xde04) AM_WRITE(robokid_bg1_ctrl_w)
418417   AM_RANGE(0xde05, 0xde05) AM_WRITE(robokid_bg1_bank_w)
419   AM_RANGE(0xdf00, 0xdf04) AM_WRITE(robokid_bg2_ctrl_w)   // scroll + enable
418   AM_RANGE(0xdf00, 0xdf04) AM_WRITE(robokid_bg2_ctrl_w)
420419   AM_RANGE(0xdf05, 0xdf05) AM_WRITE(robokid_bg2_bank_w)
421420   AM_RANGE(0xe000, 0xf9ff) AM_RAM
422421   AM_RANGE(0xfa00, 0xffff) AM_RAM AM_SHARE("spriteram")
r18284r18285
426425static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
427426   AM_RANGE(0x0000, 0x7fff) AM_ROM
428427   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
429   AM_RANGE(0xc000, 0xc000) AM_READ_PORT("KEYCOIN")
428   AM_RANGE(0xc000, 0xc000) AM_READ_PORT("KEYCOIN") AM_WRITE(soundlatch_byte_w)
430429   AM_RANGE(0xc001, 0xc003) AM_READ(omegaf_io_protection_r)
431   AM_RANGE(0xc000, 0xc000) AM_WRITE(soundlatch_byte_w)
432   AM_RANGE(0xc001, 0xc001) AM_WRITE(ninjakd2_soundreset_w)   // sound reset + flip screen
430   AM_RANGE(0xc001, 0xc001) AM_WRITE(ninjakd2_soundreset_w)
433431   AM_RANGE(0xc002, 0xc002) AM_WRITE(ninjakd2_bankselect_w)
434432   AM_RANGE(0xc003, 0xc003) AM_WRITE(ninjakd2_sprite_overdraw_w)
435433   AM_RANGE(0xc004, 0xc006) AM_WRITE(omegaf_io_protection_w)
436   AM_RANGE(0xc100, 0xc104) AM_WRITE(robokid_bg0_ctrl_w)   // scroll + enable
434   AM_RANGE(0xc100, 0xc104) AM_WRITE(robokid_bg0_ctrl_w)
437435   AM_RANGE(0xc105, 0xc105) AM_WRITE(robokid_bg0_bank_w)
438   AM_RANGE(0xc1e7, 0xc1e7) AM_READNOP                  // see notes
439   AM_RANGE(0xc200, 0xc204) AM_WRITE(robokid_bg1_ctrl_w)   // scroll + enable
436   AM_RANGE(0xc1e7, 0xc1e7) AM_READNOP // see notes
437   AM_RANGE(0xc200, 0xc204) AM_WRITE(robokid_bg1_ctrl_w)
440438   AM_RANGE(0xc205, 0xc205) AM_WRITE(robokid_bg1_bank_w)
441   AM_RANGE(0xc300, 0xc304) AM_WRITE(robokid_bg2_ctrl_w)   // scroll + enable
439   AM_RANGE(0xc300, 0xc304) AM_WRITE(robokid_bg2_ctrl_w)
442440   AM_RANGE(0xc305, 0xc305) AM_WRITE(robokid_bg2_bank_w)
443441   AM_RANGE(0xc400, 0xc7ff) AM_READWRITE(robokid_bg0_videoram_r, robokid_bg0_videoram_w)   // banked
444442   AM_RANGE(0xc800, 0xcbff) AM_READWRITE(robokid_bg1_videoram_r, robokid_bg1_videoram_w)   // banked
r18284r18285
903901   device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7);   /* RST 10h */
904902}
905903
904void ninjakd2_state::machine_start()
905{
906}
907
906908void ninjakd2_state::machine_reset()
907909{
908910   /* initialize main Z80 bank */
r18284r18285
913915   m_rom_bank_mask = num_banks - 1;
914916}
915917
918MACHINE_START_MEMBER(ninjakd2_state,omegaf)
919{
920   omegaf_io_protection_start();
921   
922   machine_start();
923}
924
916925MACHINE_RESET_MEMBER(ninjakd2_state,omegaf)
917926{
918927   omegaf_io_protection_reset();
r18284r18285
10111020   MCFG_CPU_MODIFY("maincpu")
10121021   MCFG_CPU_PROGRAM_MAP(omegaf_main_cpu)
10131022
1023   MCFG_MACHINE_START_OVERRIDE(ninjakd2_state,omegaf)
10141024   MCFG_MACHINE_RESET_OVERRIDE(ninjakd2_state,omegaf)
10151025
10161026   /* video hardware */
r18284r18285
14941504 *************************************/
14951505
14961506//    YEAR, NAME,      PARENT,   MACHINE,  INPUT,    INIT,                     MONITOR,COMPANY,FULLNAME,FLAGS
1497GAME( 1987, ninjakd2,  0,        ninjakd2, ninjakd2, ninjakd2_state, ninjakd2, ROT0,   "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 1)", 0 )
1498GAME( 1987, ninjakd2a, ninjakd2, ninjakd2, ninjakd2, ninjakd2_state, bootleg,  ROT0,   "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 2, bootleg?)", 0 )
1499GAME( 1987, ninjakd2b, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg,  ROT0,   "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 3, bootleg?)", 0 )
1500GAME( 1987, rdaction,  ninjakd2, ninjakd2, rdaction, ninjakd2_state, ninjakd2, ROT0,   "UPL (World Games license)", "Rad Action / NinjaKun Ashura no Shou", 0 )
1501GAME( 1987, mnight,    0,        mnight,   mnight,   ninjakd2_state, mnight,   ROT0,   "UPL (Kawakus license)", "Mutant Night", 0 )
1502GAME( 1988, arkarea,   0,        arkarea,  arkarea,  ninjakd2_state, mnight,   ROT0,   "UPL", "Ark Area", 0 )
1503GAME( 1988, robokid,   0,        robokid,  robokid,  ninjakd2_state, robokid,  ROT0,   "UPL", "Atomic Robo-kid", 0 )
1504GAME( 1988, robokidj,  robokid,  robokid,  robokidj, ninjakd2_state, robokidj, ROT0,   "UPL", "Atomic Robo-kid (Japan, set 1)", 0 )
1505GAME( 1988, robokidj2, robokid,  robokid,  robokidj, ninjakd2_state, robokidj, ROT0,   "UPL", "Atomic Robo-kid (Japan, set 2)", 0 )
1506GAME( 1989, omegaf,    0,        omegaf,   omegaf,   driver_device,  0,        ROT270, "UPL", "Omega Fighter", 0 )
1507GAME( 1989, omegafs,   omegaf,   omegaf,   omegaf,   driver_device,  0,        ROT270, "UPL", "Omega Fighter Special", 0 )
1507GAME( 1987, ninjakd2,  0,        ninjakd2, ninjakd2, ninjakd2_state, ninjakd2, ROT0,   "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 1)", GAME_SUPPORTS_SAVE )
1508GAME( 1987, ninjakd2a, ninjakd2, ninjakd2, ninjakd2, ninjakd2_state, bootleg,  ROT0,   "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 2, bootleg?)", GAME_SUPPORTS_SAVE )
1509GAME( 1987, ninjakd2b, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg,  ROT0,   "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 3, bootleg?)", GAME_SUPPORTS_SAVE )
1510GAME( 1987, rdaction,  ninjakd2, ninjakd2, rdaction, ninjakd2_state, ninjakd2, ROT0,   "UPL (World Games license)", "Rad Action / NinjaKun Ashura no Shou", GAME_SUPPORTS_SAVE )
1511GAME( 1987, mnight,    0,        mnight,   mnight,   ninjakd2_state, mnight,   ROT0,   "UPL (Kawakus license)", "Mutant Night", GAME_SUPPORTS_SAVE )
1512GAME( 1988, arkarea,   0,        arkarea,  arkarea,  ninjakd2_state, mnight,   ROT0,   "UPL", "Ark Area", GAME_SUPPORTS_SAVE )
1513GAME( 1988, robokid,   0,        robokid,  robokid,  ninjakd2_state, robokid,  ROT0,   "UPL", "Atomic Robo-kid", GAME_SUPPORTS_SAVE )
1514GAME( 1988, robokidj,  robokid,  robokid,  robokidj, ninjakd2_state, robokidj, ROT0,   "UPL", "Atomic Robo-kid (Japan, set 1)", GAME_SUPPORTS_SAVE )
1515GAME( 1988, robokidj2, robokid,  robokid,  robokidj, ninjakd2_state, robokidj, ROT0,   "UPL", "Atomic Robo-kid (Japan, set 2)", GAME_SUPPORTS_SAVE )
1516GAME( 1989, omegaf,    0,        omegaf,   omegaf,   driver_device,  0,        ROT270, "UPL", "Omega Fighter", GAME_SUPPORTS_SAVE )
1517GAME( 1989, omegafs,   omegaf,   omegaf,   omegaf,   driver_device,  0,        ROT270, "UPL", "Omega Fighter Special", GAME_SUPPORTS_SAVE )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team