Previous 199869 Revisions Next

r35304 Thursday 26th February, 2015 at 17:17:27 UTC by Osso
psychic5.c: added save state support, converted to configured banking (nw)
[src/mame/drivers]psychic5.c
[src/mame/includes]psychic5.h
[src/mame/video]jalblend.c psychic5.c

trunk/src/mame/drivers/psychic5.c
r243815r243816
6969RST 10,the main IRQ,is to be triggered each time the screen is refreshed.
7070RST 08 must be triggered in order to make the game work properly
7171(e.g. demo game),I guess sound has something to do with this IRQ,but I
72don't know whether it is sinchronized with video beam neither I know whether
72don't know whether it is synchronized with video beam neither I know whether
7373it can be disabled.
7474
7575Sound CPU runs in IM1.
r243815r243816
237237Background intensity is encoded in the same way of colors,and
238238affects the intensity of each color component (BGR).
239239The least significant nibble of c5ff is unknown,it assumes value
2400xf occasionaly when the other nibbles are changed.The only
2400xf occasionally when the other nibbles are changed.The only
241241value which is not 0 neither 0xf is 2 and it is assumed by this nibble
242242during the ride on the witches' broom.
243243
r243815r243816
265265Two consecutive bytes identify one tile.
266266
267267        O7 O6 O5 O4 O3 O2 O1 O0         gfx Offset
268        O9 O8 FX FY C3 C2 C1 C0         Attibute
268        O9 O8 FX FY C3 C2 C1 C0         Attribute
269269
270270        O= GFX offset (1024 tiles)
271271        F= Flip X and Y
r243815r243816
315315#include "includes/psychic5.h"
316316
317317
318MACHINE_START_MEMBER(psychic5_state, psychic5)
319{
320   membank("mainbank")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000);
321   
322   save_item(NAME(m_bank_latch));
323}
324
325MACHINE_START_MEMBER(psychic5_state, bombsa)
326{
327   membank("mainbank")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
328   
329   save_item(NAME(m_bank_latch));
330}
331
318332void psychic5_state::machine_reset()
319333{
320334   m_bank_latch = 0xff;
r243815r243816
327341
328342***************************************************************************/
329343
330TIMER_DEVICE_CALLBACK_MEMBER(psychic5_state::psychic5_scanline)
344TIMER_DEVICE_CALLBACK_MEMBER(psychic5_state::scanline)
331345{
332346   int scanline = param;
333347
r243815r243816
346360
347361***************************************************************************/
348362
349READ8_MEMBER(psychic5_state::psychic5_bankselect_r)
363READ8_MEMBER(psychic5_state::bankselect_r)
350364{
351365   return m_bank_latch;
352366}
353367
354368WRITE8_MEMBER(psychic5_state::psychic5_bankselect_w)
355369{
356   UINT8 *RAM = memregion("maincpu")->base();
357   int bankaddress;
358
359370   if (m_bank_latch != data)
360371   {
361372      m_bank_latch = data;
362      bankaddress = 0x10000 + ((data & 3) * 0x4000);
363      membank("bank1")->set_base(&RAM[bankaddress]);   /* Select 4 banks of 16k */
373      membank("mainbank")->set_entry(data & 3);   /* Select 4 banks of 16k */
364374   }
365375}
366376
367377WRITE8_MEMBER(psychic5_state::bombsa_bankselect_w)
368378{
369   UINT8 *RAM = memregion("maincpu")->base();
370   int bankaddress;
371
372379   if (m_bank_latch != data)
373380   {
374381      m_bank_latch = data;
375      bankaddress = 0x10000 + ((data & 7) * 0x4000);
376      membank("bank1")->set_base(&RAM[bankaddress]);   /* Select 8 banks of 16k */
382      membank("mainbank")->set_entry(data & 7);   /* Select 8 banks of 16k */
377383   }
378384}
379385
r243815r243816
407413
408414static ADDRESS_MAP_START( psychic5_main_map, AS_PROGRAM, 8, psychic5_state )
409415   AM_RANGE(0x0000, 0x7fff) AM_ROM
410   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
416   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("mainbank")
411417   AM_RANGE(0xc000, 0xdfff) AM_DEVICE("vrambank", address_map_bank_device, amap8)
412418   AM_RANGE(0xe000, 0xefff) AM_RAM
413419   AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch_byte_w)
414420   AM_RANGE(0xf001, 0xf001) AM_READNOP AM_WRITE(psychic5_coin_counter_w)
415   AM_RANGE(0xf002, 0xf002) AM_READWRITE(psychic5_bankselect_r, psychic5_bankselect_w)
416   AM_RANGE(0xf003, 0xf003) AM_READWRITE(psychic5_vram_page_select_r, psychic5_vram_page_select_w)
421   AM_RANGE(0xf002, 0xf002) AM_READWRITE(bankselect_r, psychic5_bankselect_w)
422   AM_RANGE(0xf003, 0xf003) AM_READWRITE(vram_page_select_r, vram_page_select_w)
417423   AM_RANGE(0xf004, 0xf004) AM_NOP // ???
418424   AM_RANGE(0xf005, 0xf005) AM_READNOP AM_WRITE(psychic5_title_screen_w)
419425   AM_RANGE(0xf006, 0xf1ff) AM_NOP
r243815r243816
458464
459465static ADDRESS_MAP_START( bombsa_main_map, AS_PROGRAM, 8, psychic5_state )
460466   AM_RANGE(0x0000, 0x7fff) AM_ROM
461   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
467   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("mainbank")
462468   AM_RANGE(0xc000, 0xcfff) AM_RAM
463469
464470   /* ports look like the other games */
465471   AM_RANGE(0xd000, 0xd000) AM_WRITE(soundlatch_byte_w) // confirmed
466472   AM_RANGE(0xd001, 0xd001) AM_WRITE(bombsa_flipscreen_w)
467   AM_RANGE(0xd002, 0xd002) AM_READWRITE(psychic5_bankselect_r, bombsa_bankselect_w)
468   AM_RANGE(0xd003, 0xd003) AM_READWRITE(psychic5_vram_page_select_r, psychic5_vram_page_select_w)
473   AM_RANGE(0xd002, 0xd002) AM_READWRITE(bankselect_r, bombsa_bankselect_w)
474   AM_RANGE(0xd003, 0xd003) AM_READWRITE(vram_page_select_r, vram_page_select_w)
469475   AM_RANGE(0xd005, 0xd005) AM_WRITE(bombsa_unknown_w) // ?
470476
471477   AM_RANGE(0xd000, 0xd1ff) AM_RAM
r243815r243816
682688GFXDECODE_END
683689
684690
685
686WRITE_LINE_MEMBER(psychic5_state::irqhandler)
687{
688   m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
689}
690
691691static MACHINE_CONFIG_START( psychic5, psychic5_state )
692692
693693   /* basic machine hardware */
694694   MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2)
695695   MCFG_CPU_PROGRAM_MAP(psychic5_main_map)
696   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, psychic5_scanline, "screen", 0, 1)
696   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, scanline, "screen", 0, 1)
697697
698698   MCFG_DEVICE_ADD("vrambank", ADDRESS_MAP_BANK, 0)
699699   MCFG_DEVICE_PROGRAM_MAP(psychic5_vrambank_map)
r243815r243816
707707   MCFG_CPU_IO_MAP(psychic5_soundport_map)
708708
709709   MCFG_QUANTUM_TIME(attotime::from_hz(600))      /* Allow time for 2nd cpu to interleave */
710   
711   MCFG_MACHINE_START_OVERRIDE(psychic5_state,psychic5)
710712
711713   /* video hardware */
712714   MCFG_SCREEN_ADD("screen", RASTER)
r243815r243816
727729   MCFG_SPEAKER_STANDARD_MONO("mono")
728730
729731   MCFG_SOUND_ADD("ym1", YM2203, XTAL_12MHz/8)
730   MCFG_YM2203_IRQ_HANDLER(WRITELINE(psychic5_state, irqhandler))
732   MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
731733   MCFG_SOUND_ROUTE(0, "mono", 0.15)
732734   MCFG_SOUND_ROUTE(1, "mono", 0.15)
733735   MCFG_SOUND_ROUTE(2, "mono", 0.15)
r243815r243816
745747   /* basic machine hardware */
746748   MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2 ) /* 6 MHz */
747749   MCFG_CPU_PROGRAM_MAP(bombsa_main_map)
748   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, psychic5_scanline, "screen", 0, 1)
750   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, scanline, "screen", 0, 1)
749751
750752   MCFG_DEVICE_ADD("vrambank", ADDRESS_MAP_BANK, 0)
751753   MCFG_DEVICE_PROGRAM_MAP(bombsa_vrambank_map)
r243815r243816
759761   MCFG_CPU_IO_MAP(bombsa_soundport_map)
760762
761763   MCFG_QUANTUM_TIME(attotime::from_hz(600))
764   
765   MCFG_MACHINE_START_OVERRIDE(psychic5_state,bombsa)
762766
763767   /* video hardware */
764768   MCFG_SCREEN_ADD("screen", RASTER)
r243815r243816
778782   MCFG_SPEAKER_STANDARD_MONO("mono")
779783
780784   MCFG_SOUND_ADD("ym1", YM2203, XTAL_12MHz/8)
781   MCFG_YM2203_IRQ_HANDLER(WRITELINE(psychic5_state, irqhandler))
785   MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
782786   MCFG_SOUND_ROUTE(0, "mono", 0.30)
783787   MCFG_SOUND_ROUTE(1, "mono", 0.30)
784788   MCFG_SOUND_ROUTE(2, "mono", 0.30)
r243815r243816
944948ROM_END
945949
946950
947GAME( 1987, psychic5,  0,        psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", 0 ) // "Oversea's version V2.00 CHANGED BY TAMIO NAKASATO" text present in ROM, various modifications (English names, more complete attract demo etc.)
948GAME( 1987, psychic5j, psychic5, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (Japan)", 0 )
949GAME( 1988, bombsa,    0,        bombsa,   bombsa,   driver_device, 0, ROT270, "Jaleco", "Bombs Away", GAME_NOT_WORKING )
951GAME( 1987, psychic5,  0,        psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", GAME_SUPPORTS_SAVE ) // "Oversea's version V2.00 CHANGED BY TAMIO NAKASATO" text present in ROM, various modifications (English names, more complete attract demo etc.)
952GAME( 1987, psychic5j, psychic5, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (Japan)", GAME_SUPPORTS_SAVE )
953GAME( 1988, bombsa,    0,        bombsa,   bombsa,   driver_device, 0, ROT270, "Jaleco", "Bombs Away", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/psychic5.h
r243815r243816
55public:
66   psychic5_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
8      m_spriteram(*this, "spriteram"),
98      m_maincpu(*this, "maincpu"),
109      m_audiocpu(*this, "audiocpu"),
1110      m_gfxdecode(*this, "gfxdecode"),
1211      m_palette(*this, "palette"),
1312      m_vrambank(*this, "vrambank"),
13      m_spriteram(*this, "spriteram"),
1414      m_fg_videoram(*this, "fg_videoram"),
1515      m_bg_videoram(*this, "bg_videoram"),
1616      m_bg_control(*this, "bg_control"),
17
1817      m_ps5_palette_ram_bg(*this, "palette_ram_bg"),
1918      m_ps5_palette_ram_sp(*this, "palette_ram_sp"),
2019      m_ps5_palette_ram_tx(*this, "palette_ram_tx")
2120
2221   { }
22   
23   required_device<cpu_device> m_maincpu;
24   required_device<cpu_device> m_audiocpu;
25   required_device<gfxdecode_device> m_gfxdecode;
26   required_device<palette_device> m_palette;
27   optional_device<address_map_bank_device> m_vrambank;
28   required_shared_ptr<UINT8> m_spriteram;
29   required_shared_ptr<UINT8> m_fg_videoram;
30   required_shared_ptr<UINT8> m_bg_videoram;
31   required_shared_ptr<UINT8> m_bg_control;
32   required_shared_ptr<UINT8> m_ps5_palette_ram_bg;
33   required_shared_ptr<UINT8> m_ps5_palette_ram_sp;
34   required_shared_ptr<UINT8> m_ps5_palette_ram_tx;
2335
2436   UINT8 m_bank_latch;
2537   UINT8 m_ps5_vram_page;
2638   UINT8 m_bg_clip_mode;
2739   UINT8 m_title_screen;
28
2940   tilemap_t *m_bg_tilemap;
3041   tilemap_t *m_fg_tilemap;
3142   UINT16 m_palette_intensity;
r243815r243816
3344   int m_sx1;
3445   int m_sy1;
3546   int m_sy2;
36   required_shared_ptr<UINT8> m_spriteram;
37   DECLARE_READ8_MEMBER(psychic5_bankselect_r);
47
48   DECLARE_READ8_MEMBER(bankselect_r);
49   DECLARE_READ8_MEMBER(vram_page_select_r);
50   DECLARE_WRITE8_MEMBER(vram_page_select_w);
51   DECLARE_WRITE8_MEMBER(fg_videoram_w);
52   DECLARE_WRITE8_MEMBER(bg_videoram_w);
53   DECLARE_WRITE8_MEMBER(sprite_col_w);
54   DECLARE_WRITE8_MEMBER(bg_col_w);
55   DECLARE_WRITE8_MEMBER(tx_col_w);
56
57   /* psychic5 specific */
58   DECLARE_WRITE8_MEMBER(psychic5_coin_counter_w);
3859   DECLARE_WRITE8_MEMBER(psychic5_bankselect_w);
60   DECLARE_WRITE8_MEMBER(psychic5_title_screen_w);
61
62   /* bombsa specific */
3963   DECLARE_WRITE8_MEMBER(bombsa_bankselect_w);
40   DECLARE_WRITE8_MEMBER(psychic5_coin_counter_w);
4164   DECLARE_WRITE8_MEMBER(bombsa_flipscreen_w);
42   DECLARE_READ8_MEMBER(psychic5_vram_page_select_r);
43   DECLARE_WRITE8_MEMBER(psychic5_vram_page_select_w);
44   DECLARE_WRITE8_MEMBER(psychic5_title_screen_w);
4565   DECLARE_WRITE8_MEMBER(bombsa_unknown_w);
66
4667   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4768   TILE_GET_INFO_MEMBER(get_fg_tile_info);
69
4870   virtual void machine_reset();
71   DECLARE_MACHINE_START(psychic5);
72   DECLARE_MACHINE_START(bombsa);
73   virtual void video_start();
4974   DECLARE_VIDEO_START(psychic5);
75   DECLARE_VIDEO_START(bombsa);
5076   DECLARE_VIDEO_RESET(psychic5);
51   DECLARE_VIDEO_START(bombsa);
77   
78   TIMER_DEVICE_CALLBACK_MEMBER(scanline);
79
5280   UINT32 screen_update_psychic5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5381   UINT32 screen_update_bombsa(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
54   TIMER_DEVICE_CALLBACK_MEMBER(psychic5_scanline);
55   void psychic5_change_palette(int offset, UINT8* palram, int palbase);
56   void psychic5_change_bg_palette(int color, int lo_offs, int hi_offs);
82   void change_palette(int offset, UINT8* palram, int palbase);
83   void change_bg_palette(int color, int lo_offs, int hi_offs);
5784   void set_background_palette_intensity();
5885   void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect);
5986   void draw_background(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
60   DECLARE_WRITE_LINE_MEMBER(irqhandler);
61   required_device<cpu_device> m_maincpu;
62   required_device<cpu_device> m_audiocpu;
63   required_device<gfxdecode_device> m_gfxdecode;
64   required_device<palette_device> m_palette;
65   optional_device<address_map_bank_device> m_vrambank;
66   required_shared_ptr<UINT8> m_fg_videoram;
67   required_shared_ptr<UINT8> m_bg_videoram;
68   required_shared_ptr<UINT8> m_bg_control;
69
70   required_shared_ptr<UINT8> m_ps5_palette_ram_bg;
71   required_shared_ptr<UINT8> m_ps5_palette_ram_sp;
72   required_shared_ptr<UINT8> m_ps5_palette_ram_tx;
73
74
75
76   DECLARE_WRITE8_MEMBER(fg_videoram_w);
77   DECLARE_WRITE8_MEMBER(bg_videoram_w);
78   DECLARE_WRITE8_MEMBER(sprite_col_w);
79   DECLARE_WRITE8_MEMBER(bg_col_w);
80   DECLARE_WRITE8_MEMBER(tx_col_w);
81
8287};
trunk/src/mame/video/jalblend.c
r243815r243816
3030   {
3131      jal_blend_table = auto_alloc_array_clear(machine, UINT8, 0xc00);
3232      machine.add_notifier(MACHINE_NOTIFY_RESET, machine_notify_delegate(FUNC(jal_blend_reset), &machine));
33      machine.save().save_pointer(NAME(jal_blend_table), 0xc00);
3334   }
3435   else
3536   {
trunk/src/mame/video/psychic5.c
r243815r243816
1919  Palette color
2020***************************************************************************/
2121
22void psychic5_state::psychic5_change_palette(int offset, UINT8* palram, int palbase)
22void psychic5_state::change_palette(int offset, UINT8* palram, int palbase)
2323{
2424   UINT8 lo = palram[(offset) & ~1];
2525   UINT8 hi = palram[(offset) | 1];
r243815r243816
3030   m_palette->set_pen_color(palbase + color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4));
3131}
3232
33void psychic5_state::psychic5_change_bg_palette(int color, int lo_offs, int hi_offs)
33void psychic5_state::change_bg_palette(int color, int lo_offs, int hi_offs)
3434{
3535   UINT8 r,g,b,lo,hi,ir,ig,ib,ix;
3636   rgb_t irgb;
r243815r243816
7777
7878   /* for all of the background palette */
7979   for (i = 0; i < 0x100; i++)
80      psychic5_change_bg_palette(i+0x100,i*2,i*2+1);
80      change_bg_palette(i+0x100,i*2,i*2+1);
8181}
8282
8383
r243815r243816
8585  Memory handler
8686***************************************************************************/
8787
88READ8_MEMBER(psychic5_state::psychic5_vram_page_select_r)
88READ8_MEMBER(psychic5_state::vram_page_select_r)
8989{
9090   return m_ps5_vram_page;
9191}
9292
93WRITE8_MEMBER(psychic5_state::psychic5_vram_page_select_w)
93WRITE8_MEMBER(psychic5_state::vram_page_select_w)
9494{
9595   m_ps5_vram_page = data & 1;
9696   m_vrambank->set_bank(data);
r243815r243816
106106WRITE8_MEMBER(psychic5_state::sprite_col_w)
107107{
108108   m_ps5_palette_ram_sp[offset] = data;
109   psychic5_change_palette(offset,m_ps5_palette_ram_sp, 0x000);
109   change_palette(offset,m_ps5_palette_ram_sp, 0x000);
110110}
111111
112112WRITE8_MEMBER(psychic5_state::bg_col_w)
113113{
114114   m_ps5_palette_ram_bg[offset] = data;
115   psychic5_change_palette(offset,m_ps5_palette_ram_bg, 0x100);
115   change_palette(offset,m_ps5_palette_ram_bg, 0x100);
116116}
117117
118118WRITE8_MEMBER(psychic5_state::tx_col_w)
119119{
120120   m_ps5_palette_ram_tx[offset] = data;
121   psychic5_change_palette(offset,m_ps5_palette_ram_tx, 0x200);
121   change_palette(offset,m_ps5_palette_ram_tx, 0x200);
122122}
123123
124124
r243815r243816
173173  Initialize and destroy video hardware emulation
174174***************************************************************************/
175175
176void psychic5_state::video_start()
177{
178   save_item(NAME(m_ps5_vram_page));
179   save_item(NAME(m_bg_clip_mode));
180   save_item(NAME(m_palette_intensity));
181   save_item(NAME(m_sx1));
182   save_item(NAME(m_sy1));
183   save_item(NAME(m_sy2));
184}
185
186
176187VIDEO_START_MEMBER(psychic5_state,psychic5)
177188{
189   video_start();
190   
178191   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 64, 32);
179192   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS,  8,  8, 32, 32);
180193   m_fg_tilemap->set_transparent_pen(15);
181194   jal_blend_init(machine(), 1);
195   
196   save_item(NAME(m_title_screen));
182197
183198}
184199
185200VIDEO_START_MEMBER(psychic5_state,bombsa)
186201{
202   video_start();
203   
187204   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 128, 32);
188205   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS,  8,  8,  32, 32);
189206   m_fg_tilemap->set_transparent_pen(15);
190207   jal_blend_init(machine(), 0);
208   
209   save_item(NAME(m_bombsa_unknown));
191210}
192211
193212VIDEO_RESET_MEMBER(psychic5_state,psychic5)
r243815r243816
208227
209228void psychic5_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect)
210229{
211   UINT8 *spriteram = m_spriteram;
212   int offs;
213
214230   /* Draw the sprites */
215   for (offs = 0; offs < m_spriteram.bytes(); offs += 16)
231   for (int offs = 0; offs < m_spriteram.bytes(); offs += 16)
216232   {
217      int attr  = spriteram[offs + 13];
218      int code  = spriteram[offs + 14] | ((attr & 0xc0) << 2);
219      int color = spriteram[offs + 15] & 0x0f;
233      int attr  = m_spriteram[offs + 13];
234      int code  = m_spriteram[offs + 14] | ((attr & 0xc0) << 2);
235      int color = m_spriteram[offs + 15] & 0x0f;
220236      int flipx = attr & 0x10;
221237      int flipy = attr & 0x20;
222      int sx = spriteram[offs + 12];
223      int sy = spriteram[offs + 11];
238      int sx = m_spriteram[offs + 12];
239      int sy = m_spriteram[offs + 11];
224240      int size = (attr & 0x08) ? 32:16;
225241
226242      if (attr & 0x01) sx -= 256;
r243815r243816
261277
262278void psychic5_state::draw_background(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
263279{
264   UINT8 *spriteram = m_spriteram;
265
266280   rectangle clip = cliprect;
267281
268282   set_background_palette_intensity();
r243815r243816
278292      int sx1_old = m_sx1;
279293      int sy2_old = m_sy2;
280294
281      m_sy1 = spriteram[11];       /* sprite 0 */
282      m_sx1 = spriteram[12];
283      m_sy2 = spriteram[11+128];   /* sprite 8 */
295      m_sy1 = m_spriteram[11];       /* sprite 0 */
296      m_sx1 = m_spriteram[12];
297      m_sy2 = m_spriteram[11+128];   /* sprite 8 */
284298
285299      switch (m_bg_clip_mode)
286300      {


Previous 199869 Revisions Next


© 1997-2024 The MAME Team