Previous 199869 Revisions Next

r36395 Thursday 12th March, 2015 at 17:06:34 UTC by Osso
paradise.c: cleanups (nw)
this seems to be another driver where the oki behaves differently during staggered -autosave runs
[src/mame/drivers]paradise.c
[src/mame/includes]paradise.h
[src/mame/video]paradise.c

trunk/src/mame/drivers/paradise.c
r244906r244907
5151                      | Very Hard  |           |on |on |           |
5252--------------------------------------------------------------------
5353                      |    99%     |                   |off|off|   |*
54 Minimum Percetage to |    90%     |                   |on |off|   |
54 Minimum Percentage to|    90%     |                   |on |off|   |
5555 Complete for Win or  |    80%     |                   |off|on |   |
5656majority @ end of time|    70%     |                   |on |on |   |
5757--------------------------------------------------------------------
r244906r244907
8484#include "emu.h"
8585#include "cpu/z80/z80.h"
8686#include "includes/paradise.h"
87#include "sound/okim6295.h"
8887
8988/***************************************************************************
9089
r244906r244907
9291
9392***************************************************************************/
9493
95WRITE8_MEMBER(paradise_state::paradise_rombank_w)
94WRITE8_MEMBER(paradise_state::rombank_w)
9695{
9796   int bank = data;
98   int bank_n = memregion("maincpu")->bytes() / 0x4000 - 1;
97   int bank_n = memregion("maincpu")->bytes() / 0x4000;
9998
10099   if (bank >= bank_n)
101100   {
r244906r244907
103102      bank %= bank_n;
104103   }
105104
106   membank("bank1")->set_entry(bank);
105   membank("prgbank")->set_entry(bank);
107106}
108107
109108WRITE8_MEMBER(paradise_state::paradise_okibank_w)
r244906r244907
119118   coin_counter_w(machine(), 0, data ^ 0xff);
120119}
121120
122#define STANDARD_MAP    \
123   AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */   \
124   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")    /* ROM (banked) */ \
125   AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paradise_vram_2_w) AM_SHARE("vram_2") /* Background */ \
126   AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paradise_vram_1_w) AM_SHARE("vram_1") /* Midground */ \
127   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paradise_vram_0_w) AM_SHARE("vram_0") /* Foreground */
121static ADDRESS_MAP_START( base_map, AS_PROGRAM, 8, paradise_state )
122   AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
123   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("prgbank")    /* ROM (banked) */
124   AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(vram_2_w) AM_SHARE("vram_2") /* Background */
125   AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram_1") /* Midground */
126   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram_0") /* Foreground */
127ADDRESS_MAP_END
128128
129129static ADDRESS_MAP_START( paradise_map, AS_PROGRAM, 8, paradise_state )
130   STANDARD_MAP
131130   AM_RANGE(0xd800, 0xd8ff) AM_RAM // RAM
132131   AM_RANGE(0xd900, 0xe0ff) AM_RAM AM_SHARE("spriteram")   // Sprites
133132   AM_RANGE(0xe100, 0xffff) AM_RAM // RAM
133   AM_IMPORT_FROM(base_map)
134134ADDRESS_MAP_END
135135
136136static ADDRESS_MAP_START( tgtball_map, AS_PROGRAM, 8, paradise_state )
137   STANDARD_MAP
138137   AM_RANGE(0xd800, 0xd8ff) AM_RAM // RAM
139138   AM_RANGE(0xd900, 0xd9ff) AM_RAM AM_SHARE("spriteram")   // Sprites
140139   AM_RANGE(0xda00, 0xffff) AM_RAM // RAM
140   AM_IMPORT_FROM(base_map)
141141ADDRESS_MAP_END
142142
143143static ADDRESS_MAP_START( torus_map, AS_PROGRAM, 8, paradise_state )
144   STANDARD_MAP
145144   AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("spriteram")   // Sprites
146145   AM_RANGE(0xe000, 0xffff) AM_RAM // RAM
146   AM_IMPORT_FROM(base_map)
147147ADDRESS_MAP_END
148148
149static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8, paradise_state )
150   AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_SHARE("paletteram")    // Palette
151   AM_RANGE(0x1800, 0x1800) AM_WRITE(paradise_priority_w)  // Layers priority
152   AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w)    // Flip Screen
153   AM_RANGE(0x2004, 0x2004) AM_WRITE(paradise_palbank_w)   // Layers palette bank
154   AM_RANGE(0x2006, 0x2006) AM_WRITE(paradise_rombank_w)   // ROM bank
155   AM_RANGE(0x2007, 0x2007) AM_WRITE(paradise_okibank_w)   // OKI 1 samples bank
149static ADDRESS_MAP_START( torus_io_map, AS_IO, 8, paradise_state )
150   AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(palette_w) AM_SHARE("paletteram")    // Palette
151   AM_RANGE(0x1800, 0x1800) AM_WRITE(priority_w)  // Layers priority
152   AM_RANGE(0x2001, 0x2001) AM_WRITE(flipscreen_w)    // Flip Screen
153   AM_RANGE(0x2004, 0x2004) AM_WRITE(palbank_w)   // Layers palette bank
154   AM_RANGE(0x2006, 0x2006) AM_WRITE(rombank_w)   // ROM bank
156155   AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE("oki1", okim6295_device, read, write)  // OKI 0
157156   AM_RANGE(0x2020, 0x2020) AM_READ_PORT("DSW1")
158157   AM_RANGE(0x2021, 0x2021) AM_READ_PORT("DSW2")
159158   AM_RANGE(0x2022, 0x2022) AM_READ_PORT("P1")
160159   AM_RANGE(0x2023, 0x2023) AM_READ_PORT("P2")
161160   AM_RANGE(0x2024, 0x2024) AM_READ_PORT("SYSTEM")
162   AM_RANGE(0x2030, 0x2030) AM_DEVREADWRITE("oki2", okim6295_device, read, write)  // OKI 1
163   AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_SHARE("videoram")   // Pixmap
161   AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(pixmap_w) AM_SHARE("videoram")   // Pixmap
164162ADDRESS_MAP_END
165163
166static ADDRESS_MAP_START( torus_io_map, AS_IO, 8, paradise_state )
167   AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_SHARE("paletteram")    // Palette
168   AM_RANGE(0x1800, 0x1800) AM_WRITE(paradise_priority_w)  // Layers priority
169   AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w)    // Flip Screen
170   AM_RANGE(0x2004, 0x2004) AM_WRITE(paradise_palbank_w)   // Layers palette bank
171   AM_RANGE(0x2006, 0x2006) AM_WRITE(paradise_rombank_w)   // ROM bank
172   AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE("oki1", okim6295_device, read, write)  // OKI 0
173   AM_RANGE(0x2020, 0x2020) AM_READ_PORT("DSW1")
174   AM_RANGE(0x2021, 0x2021) AM_READ_PORT("DSW2")
175   AM_RANGE(0x2022, 0x2022) AM_READ_PORT("P1")
176   AM_RANGE(0x2023, 0x2023) AM_READ_PORT("P2")
177   AM_RANGE(0x2024, 0x2024) AM_READ_PORT("SYSTEM")
178   AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_SHARE("videoram")   // Pixmap
164static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8, paradise_state )
165   AM_RANGE(0x2007, 0x2007) AM_WRITE(paradise_okibank_w)   // OKI 1 samples bank
166   AM_RANGE(0x2030, 0x2030) AM_DEVREADWRITE("oki2", okim6295_device, read, write)  // OKI 1
167   AM_IMPORT_FROM(torus_io_map)
179168ADDRESS_MAP_END
180169
181170
r244906r244907
670659
671660void paradise_state::machine_start()
672661{
673   int bank_n = memregion("maincpu")->bytes() / 0x4000 - 1;
674   UINT8 *ROM = memregion("maincpu")->base();
662   int bank_n = memregion("maincpu")->bytes() / 0x4000;
663   
664   membank("prgbank")->configure_entries(0, bank_n, memregion("maincpu")->base(), 0x4000);
675665
676   membank("bank1")->configure_entries(0, 3, &ROM[0x00000], 0x4000);
677   membank("bank1")->configure_entries(3, bank_n - 3, &ROM[0x10000], 0x4000);
678
679666   save_item(NAME(m_palbank));
680667   save_item(NAME(m_priority));
681668   save_item(NAME(m_irq_count));
r244906r244907
685672{
686673   m_palbank = 0;
687674   m_priority = 0;
688
689675   m_irq_count = 0;
690
691676}
692677
693INTERRUPT_GEN_MEMBER(paradise_state::paradise_irq)
678INTERRUPT_GEN_MEMBER(paradise_state::irq)
694679{
695680   if (m_irq_count<300)
696681      m_irq_count++;
r244906r244907
704689   MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2)          /* Z8400B - 6mhz Verified */
705690   MCFG_CPU_PROGRAM_MAP(paradise_map)
706691   MCFG_CPU_IO_MAP(paradise_io_map)
707   MCFG_CPU_PERIODIC_INT_DRIVER(paradise_state, paradise_irq, 4*54)    /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
692   MCFG_CPU_PERIODIC_INT_DRIVER(paradise_state, irq, 4*54)    /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
708693
709694
710695   /* video hardware */
r244906r244907
751736   MCFG_DEVICE_REMOVE("oki2")
752737MACHINE_CONFIG_END
753738
754static MACHINE_CONFIG_DERIVED( madball, paradise )
739static MACHINE_CONFIG_DERIVED( madball, torus )
755740
756   /* basic machine hardware */
757   MCFG_CPU_MODIFY("maincpu")
758   MCFG_CPU_PROGRAM_MAP(torus_map)
759   MCFG_CPU_IO_MAP(torus_io_map)
760
761741   MCFG_GFXDECODE_MODIFY("gfxdecode", madball)
762742
763743   MCFG_SCREEN_MODIFY("screen")
764744   MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_madball)
765
766   MCFG_DEVICE_REMOVE("oki2")
767745MACHINE_CONFIG_END
768746
769747static MACHINE_CONFIG_DERIVED( penky, paradise )
r244906r244907
771749   /* basic machine hardware */
772750   MCFG_CPU_MODIFY("maincpu")
773751   MCFG_CPU_PROGRAM_MAP(torus_map)
774   MCFG_CPU_IO_MAP(paradise_io_map)
775752MACHINE_CONFIG_END
776753
777754
r244906r244907
829806***************************************************************************/
830807
831808ROM_START( paradise )
832   ROM_REGION( 0x44000, "maincpu", 0 )     /* Z80 Code */
833   ROM_LOAD( "u128", 0x00000, 0x0c000, CRC(8e5b5a24) SHA1(a4e559d9329f8a7a9d12cd90d98d0525958085d8) )
834   ROM_CONTINUE(     0x10000, 0x34000    )
809   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
810   ROM_LOAD( "u128", 0x00000, 0x40000, CRC(8e5b5a24) SHA1(a4e559d9329f8a7a9d12cd90d98d0525958085d8) )
835811
836812   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
837813   ROM_LOAD( "u114", 0x00000, 0x40000, CRC(c748ba3b) SHA1(ad23bda4e001ca539f849c1ca256de5daf7c233b) )
r244906r244907
856832ROM_END
857833
858834ROM_START( paradlx )
859   ROM_REGION( 0x44000, "maincpu", 0 )     /* Z80 Code */
860   ROM_LOAD( "8.u128", 0x00000, 0x0c000, CRC(3a45ac9e) SHA1(24e1b508ef582c8429e09929fea387f3a137f0e3) )
861   ROM_CONTINUE(     0x10000, 0x34000    )
835   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
836   ROM_LOAD( "8.u128", 0x00000, 0x40000, CRC(3a45ac9e) SHA1(24e1b508ef582c8429e09929fea387f3a137f0e3) )
862837
863838   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
864839   ROM_LOAD( "6.u114", 0x00000, 0x40000, CRC(d0341838) SHA1(fa400486968bd6b5a805fb79a970bb280ee24662) )
r244906r244907
885860
886861
887862ROM_START( para2dx )
888   ROM_REGION( 0x44000, "maincpu", 0 )     /* Z80 Code */
889   ROM_LOAD( "pdx2_u128.bin", 0x00000, 0x0c000, CRC(4cbd22e1) SHA1(ad69663109d3127f6472797ec8763097da94b7d4) )
890   ROM_CONTINUE(     0x10000, 0x34000    )
863   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
864   ROM_LOAD( "pdx2_u128.bin", 0x00000, 0x40000, CRC(4cbd22e1) SHA1(ad69663109d3127f6472797ec8763097da94b7d4) )
891865
892866   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
893867   ROM_LOAD( "pdx2_u114.bin", 0x00000, 0x40000, CRC(3634b086) SHA1(6d079efb7be4fbe51d95d1f6b2c44dafdacb6016) )
r244906r244907
956930***************************************************************************/
957931
958932ROM_START( tgtball )
959   ROM_REGION( 0x44000, "maincpu", 0 )     /* Z80 Code */
960   ROM_LOAD( "rom7.u128", 0x00000, 0x0c000, CRC(8dbeab12) SHA1(7181c23459990aecbe2d13377aaf19f65108eac6) )
961   ROM_CONTINUE(          0x10000, 0x34000 )
933   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
934   ROM_LOAD( "rom7.u128", 0x00000, 0x40000, CRC(8dbeab12) SHA1(7181c23459990aecbe2d13377aaf19f65108eac6) )
962935
963936   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
964937   ROM_LOAD( "yunsung.u114", 0x00000, 0x40000, CRC(3dbe1872) SHA1(754f90123a3944ca548fc66ee65a93615155bf30) )
r244906r244907
983956ROM_END
984957
985958ROM_START( tgtballa )
986   ROM_REGION( 0x44000, "maincpu", 0 )     /* Z80 Code */
987   ROM_LOAD( "yunsung.u128", 0x00000, 0x0c000, CRC(cb0f3d46) SHA1(b56c4abbd4248074c1559a0f1902d2ea11cb01a8) )
988   ROM_CONTINUE(             0x10000, 0x34000 )
959   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
960   ROM_LOAD( "yunsung.u128", 0x00000, 0x40000, CRC(cb0f3d46) SHA1(b56c4abbd4248074c1559a0f1902d2ea11cb01a8) )
989961
990962   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
991963   ROM_LOAD( "yunsung.u114", 0x00000, 0x40000, CRC(3dbe1872) SHA1(754f90123a3944ca548fc66ee65a93615155bf30) )
r244906r244907
10491021***************************************************************************/
10501022
10511023ROM_START( penky )
1052   ROM_REGION( 0x44000, "maincpu", 0 )     /* Z80 Code */
1053   ROM_LOAD( "yunsung.u128", 0x00000, 0x0c000, CRC(57baeada) SHA1(360fd2d352b201e57436ed9c9f0510a052452738) )
1054   ROM_CONTINUE(             0x10000, 0x34000 )
1024   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
1025   ROM_LOAD( "yunsung.u128", 0x00000, 0x40000, CRC(57baeada) SHA1(360fd2d352b201e57436ed9c9f0510a052452738) )
10551026
10561027   ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT) /* 16x16x8 Sprites */
10571028   ROM_LOAD( "yunsung.u114", 0x00000, 0x80000, CRC(cb6b1cfd) SHA1(22406f70fc2ad839d5ca4d00d503a2857b295cf5) )
r244906r244907
11231094*/
11241095
11251096ROM_START( torus )
1126   ROM_REGION( 0x14000, "maincpu", 0 )     /* Z80 Code */
1127   ROM_LOAD( "yunsung.u1", 0x00000, 0xc000, CRC(55d3ef3e) SHA1(195463271fdb3f9f5c19068efd1c99105f761fe9) )
1128   ROM_CONTINUE(           0x10000, 0x4000 )
1097   ROM_REGION( 0x40000, "maincpu", 0 )     /* Z80 Code */
1098   ROM_LOAD( "yunsung.u1", 0x00000, 0x40000, CRC(55d3ef3e) SHA1(195463271fdb3f9f5c19068efd1c99105f761fe9) )
11291099
11301100   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
11311101   ROM_LOAD( "yunsung.u67", 0x00000, 0x40000, CRC(5b60ce9f) SHA1(d5c091145e0bae7cd776e642ea17895d086ed2b0) )
r244906r244907
12011171*/
12021172
12031173ROM_START( madball ) /* Models in swimsuits only, no nudity */
1204   ROM_REGION( 0x24000, "maincpu", 0 )     /* Z80 Code */
1205   ROM_LOAD( "p.u1", 0x00000, 0xc000, CRC(73008425) SHA1(6eded60fd5c637a63783247c858d999d5974d378) )
1206   ROM_CONTINUE(     0x10000, 0x14000 )
1174   ROM_REGION( 0x20000, "maincpu", 0 )     /* Z80 Code */
1175   ROM_LOAD( "p.u1", 0x00000, 0x20000, CRC(73008425) SHA1(6eded60fd5c637a63783247c858d999d5974d378) )
12071176
12081177   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
12091178   ROM_LOAD( "2.u67", 0x00000, 0x40000, CRC(1f3a6cd5) SHA1(7a17549f2fff003605d91703c84a398488b2f74c) )
r244906r244907
12251194ROM_END
12261195
12271196ROM_START( madballn ) /* Even numbered stages show topless models.  Is nudity controlled by a dipswitch? */
1228   ROM_REGION( 0x24000, "maincpu", 0 )     /* Z80 Code */
1229   ROM_LOAD( "u1.bin", 0x00000, 0xc000, CRC(531fa919) SHA1(0eafc663b9ad50d0dfc5491fe96c9bcf30483991) )
1230   ROM_CONTINUE(       0x10000, 0x14000 )
1197   ROM_REGION( 0x20000, "maincpu", 0 )     /* Z80 Code */
1198   ROM_LOAD( "u1.bin", 0x00000, 0x20000, CRC(531fa919) SHA1(0eafc663b9ad50d0dfc5491fe96c9bcf30483991) )
12311199
12321200   ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT)  /* 16x16x8 Sprites */
12331201   ROM_LOAD( "2.u67", 0x00000, 0x40000, CRC(1f3a6cd5) SHA1(7a17549f2fff003605d91703c84a398488b2f74c) )
trunk/src/mame/includes/paradise.h
r244906r244907
4444   int m_sprite_inc;
4545   int m_irq_count;
4646
47   DECLARE_WRITE8_MEMBER(paradise_rombank_w);
47   // common
48   DECLARE_WRITE8_MEMBER(rombank_w);
49   DECLARE_WRITE8_MEMBER(flipscreen_w);
50   DECLARE_WRITE8_MEMBER(palette_w);
51   DECLARE_WRITE8_MEMBER(palbank_w);
52   DECLARE_WRITE8_MEMBER(vram_0_w);
53   DECLARE_WRITE8_MEMBER(vram_1_w);
54   DECLARE_WRITE8_MEMBER(vram_2_w);
55   DECLARE_WRITE8_MEMBER(pixmap_w);
56   DECLARE_WRITE8_MEMBER(priority_w);
57   
58   // paradise specific
59   DECLARE_WRITE8_MEMBER(paradise_okibank_w);
60   
61   // torus specific
4862   DECLARE_WRITE8_MEMBER(torus_coin_counter_w);
49   DECLARE_WRITE8_MEMBER(paradise_flipscreen_w);
63
64   // tgtball specific
5065   DECLARE_WRITE8_MEMBER(tgtball_flipscreen_w);
51   DECLARE_WRITE8_MEMBER(paradise_palette_w);
52   DECLARE_WRITE8_MEMBER(paradise_vram_0_w);
53   DECLARE_WRITE8_MEMBER(paradise_palbank_w);
54   DECLARE_WRITE8_MEMBER(paradise_vram_1_w);
55   DECLARE_WRITE8_MEMBER(paradise_vram_2_w);
56   DECLARE_WRITE8_MEMBER(paradise_pixmap_w);
57   DECLARE_WRITE8_MEMBER(paradise_priority_w);
58   DECLARE_WRITE8_MEMBER(paradise_okibank_w);
5966
6067   DECLARE_DRIVER_INIT(torus);
6168   DECLARE_DRIVER_INIT(paradise);
r244906r244907
7380   UINT32 screen_update_torus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7481   UINT32 screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7582
76   INTERRUPT_GEN_MEMBER(paradise_irq);
83   INTERRUPT_GEN_MEMBER(irq);
7784
7885   void update_pix_palbank();
7986   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
trunk/src/mame/video/paradise.c
r244906r244907
2828#include "emu.h"
2929#include "includes/paradise.h"
3030
31WRITE8_MEMBER(paradise_state::paradise_flipscreen_w)
31WRITE8_MEMBER(paradise_state::flipscreen_w)
3232{
3333   flip_screen_set(data ? 0 : 1);
3434}
r244906r244907
4141/* Note: Penky updates pixel palette bank register BEFORE actually writing to the paletteram. */
4242void paradise_state::update_pix_palbank()
4343{
44   int i;
45
46   for (i = 0; i < 15; i++)
44   for (int i = 0; i < 15; i++)
4745      m_palette->set_pen_color(0x800 + i, m_paletteram[0x200 + m_pixbank + i + 0x800 * 0], m_paletteram[0x200 + m_pixbank + i + 0x800 * 1],
4846                        m_paletteram[0x200 + m_pixbank + i + 0x800 * 2]);
4947}
5048
5149/* 800 bytes for red, followed by 800 bytes for green & 800 bytes for blue */
52WRITE8_MEMBER(paradise_state::paradise_palette_w)
50WRITE8_MEMBER(paradise_state::palette_w)
5351{
5452   m_paletteram[offset] = data;
5553   offset %= 0x800;
r244906r244907
7169***************************************************************************/
7270
7371/* Background */
74WRITE8_MEMBER(paradise_state::paradise_vram_0_w)
72WRITE8_MEMBER(paradise_state::vram_0_w)
7573{
7674   m_vram_0[offset] = data;
7775   m_tilemap_0->mark_tile_dirty(offset % 0x400);
7876}
7977
8078/* 16 color tiles with paradise_palbank as color code */
81WRITE8_MEMBER(paradise_state::paradise_palbank_w)
79WRITE8_MEMBER(paradise_state::palbank_w)
8280{
8381   int bank1 = (data & 0x0e) | 1;
8482   int bank2 = (data & 0xf0);
r244906r244907
102100
103101
104102/* Midground */
105WRITE8_MEMBER(paradise_state::paradise_vram_1_w)
103WRITE8_MEMBER(paradise_state::vram_1_w)
106104{
107105   m_vram_1[offset] = data;
108106   m_tilemap_1->mark_tile_dirty(offset % 0x400);
r244906r244907
116114
117115
118116/* Foreground */
119WRITE8_MEMBER(paradise_state::paradise_vram_2_w)
117WRITE8_MEMBER(paradise_state::vram_2_w)
120118{
121119   m_vram_2[offset] = data;
122120   m_tilemap_2->mark_tile_dirty(offset % 0x400);
r244906r244907
130128
131129/* 256 x 256 bitmap. 4 bits per pixel so every byte encodes 2 pixels */
132130
133WRITE8_MEMBER(paradise_state::paradise_pixmap_w)
131WRITE8_MEMBER(paradise_state::pixmap_w)
134132{
135133   int x, y;
136134
r244906r244907
175173***************************************************************************/
176174
177175/* Sprites / Layers priority */
178WRITE8_MEMBER(paradise_state::paradise_priority_w)
176WRITE8_MEMBER(paradise_state::priority_w)
179177{
180178   m_priority = data;
181179}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team