31
31
penky: we need to delay the irqs at startup or it won't boot. Either one of
32
32
ports 0x2003.r or 0x2005.w starts up the irq timer (confirmed via trojan)
34
Alternate dipswitch settings for Penky as found in scanned Pins & Dip manual:
37
--------------------------------------------------------------------
38
DipSwitch Title | Function | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
39
--------------------------------------------------------------------
41
Game Time | 60 Sec |on |off| |
44
--------------------------------------------------------------------
45
Strip-Tease | On | |off| |*
47
--------------------------------------------------------------------
49
Difficulty | Normal | |on |off| |*
51
| Very Hard | |on |on | |
52
--------------------------------------------------------------------
54
Minimum Percetage to | 90% | |on |off| |
55
Complete for Win or | 80% | |off|on | |
56
majority @ end of time| 70% | |on |on | |
57
--------------------------------------------------------------------
59
--------------------------------------------------------------------
62
--------------------------------------------------------------------
63
DipSwitch Title | Function | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
64
--------------------------------------------------------------------
65
| 1cn / 1pl |off|off| |*
66
Coinage | 1cn / 2pl |on |off| |
67
| 1cn / 3pl |off|on | |
68
| 2cn / 3pl |on |on | |
69
--------------------------------------------------------------------
70
Not Used |off|off|off| |*
71
--------------------------------------------------------------------
72
Competition Mode | 1Bout 1Win | |off| |*
73
|3Bouts 2Wins| |on | |
74
--------------------------------------------------------------------
75
Demo Sounds | Yes | |off| |*
77
--------------------------------------------------------------------
78
TV Test | Game | |off|*
79
(Slide Show) | Test | |on |
80
--------------------------------------------------------------------
34
82
***************************************************************************/
66
114
downcast<okim6295_device *>(device)->set_bank_base((data & 0x02) ? 0x40000 : 0);
69
static WRITE8_HANDLER( torus_coin_counter_w )
117
WRITE8_MEMBER(paradise_state::torus_coin_counter_w)
71
coin_counter_w(space->machine(), 0, data ^ 0xff);
119
coin_counter_w(machine(), 0, data ^ 0xff);
74
122
#define STANDARD_MAP \
75
123
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */ \
76
124
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* ROM (banked) */ \
77
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(paradise_vram_2_w) AM_BASE_MEMBER(paradise_state, m_vram_2) /* Background */ \
78
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(paradise_vram_1_w) AM_BASE_MEMBER(paradise_state, m_vram_1) /* Midground */ \
79
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paradise_vram_0_w) AM_BASE_MEMBER(paradise_state, m_vram_0) /* Foreground */ \
82
static ADDRESS_MAP_START( paradise_map, AS_PROGRAM, 8 )
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 */ \
130
static ADDRESS_MAP_START( paradise_map, AS_PROGRAM, 8, paradise_state )
84
132
AM_RANGE(0xd800, 0xd8ff) AM_RAM // RAM
85
AM_RANGE(0xd900, 0xe0ff) AM_RAM AM_BASE_SIZE_MEMBER(paradise_state, m_spriteram, m_spriteram_size) // Sprites
133
AM_RANGE(0xd900, 0xe0ff) AM_RAM AM_SHARE("spriteram") // Sprites
86
134
AM_RANGE(0xe100, 0xffff) AM_RAM // RAM
89
static ADDRESS_MAP_START( tgtball_map, AS_PROGRAM, 8 )
137
static ADDRESS_MAP_START( tgtball_map, AS_PROGRAM, 8, paradise_state )
91
139
AM_RANGE(0xd800, 0xd8ff) AM_RAM // RAM
92
AM_RANGE(0xd900, 0xd9ff) AM_RAM AM_BASE_SIZE_MEMBER(paradise_state, m_spriteram, m_spriteram_size) // Sprites
140
AM_RANGE(0xd900, 0xd9ff) AM_RAM AM_SHARE("spriteram") // Sprites
93
141
AM_RANGE(0xda00, 0xffff) AM_RAM // RAM
96
static ADDRESS_MAP_START( torus_map, AS_PROGRAM, 8 )
144
static ADDRESS_MAP_START( torus_map, AS_PROGRAM, 8, paradise_state )
98
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE_SIZE_MEMBER(paradise_state, m_spriteram, m_spriteram_size) // Sprites
146
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("spriteram") // Sprites
99
147
AM_RANGE(0xe000, 0xffff) AM_RAM // RAM
102
static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8 )
103
AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_BASE_MEMBER(paradise_state, m_paletteram) // Palette
150
static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8, paradise_state )
151
AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_SHARE("paletteram") // Palette
104
152
AM_RANGE(0x1800, 0x1800) AM_WRITE(paradise_priority_w) // Layers priority
105
153
AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w) // Flip Screen
106
154
AM_RANGE(0x2004, 0x2004) AM_WRITE(paradise_palbank_w) // Layers palette bank
107
155
AM_RANGE(0x2006, 0x2006) AM_WRITE(paradise_rombank_w) // ROM bank
108
AM_RANGE(0x2007, 0x2007) AM_DEVWRITE("oki2", paradise_okibank_w) // OKI 1 samples bank
109
AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write) // OKI 0
156
AM_RANGE(0x2007, 0x2007) AM_DEVWRITE_LEGACY("oki2", paradise_okibank_w) // OKI 1 samples bank
157
AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE("oki1", okim6295_device, read, write) // OKI 0
110
158
AM_RANGE(0x2020, 0x2020) AM_READ_PORT("DSW1")
111
159
AM_RANGE(0x2021, 0x2021) AM_READ_PORT("DSW2")
112
160
AM_RANGE(0x2022, 0x2022) AM_READ_PORT("P1")
113
161
AM_RANGE(0x2023, 0x2023) AM_READ_PORT("P2")
114
162
AM_RANGE(0x2024, 0x2024) AM_READ_PORT("SYSTEM")
115
AM_RANGE(0x2030, 0x2030) AM_DEVREADWRITE_MODERN("oki2", okim6295_device, read, write) // OKI 1
116
AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_BASE_MEMBER(paradise_state, m_videoram) // Pixmap
163
AM_RANGE(0x2030, 0x2030) AM_DEVREADWRITE("oki2", okim6295_device, read, write) // OKI 1
164
AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_SHARE("videoram") // Pixmap
119
static ADDRESS_MAP_START( torus_io_map, AS_IO, 8 )
120
AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_BASE_MEMBER(paradise_state, m_paletteram) // Palette
167
static ADDRESS_MAP_START( torus_io_map, AS_IO, 8, paradise_state )
168
AM_RANGE(0x0000, 0x17ff) AM_RAM_WRITE(paradise_palette_w) AM_SHARE("paletteram") // Palette
121
169
AM_RANGE(0x1800, 0x1800) AM_WRITE(paradise_priority_w) // Layers priority
122
170
AM_RANGE(0x2001, 0x2001) AM_WRITE(paradise_flipscreen_w) // Flip Screen
123
171
AM_RANGE(0x2004, 0x2004) AM_WRITE(paradise_palbank_w) // Layers palette bank
124
172
AM_RANGE(0x2006, 0x2006) AM_WRITE(paradise_rombank_w) // ROM bank
125
AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE_MODERN("oki1", okim6295_device, read, write) // OKI 0
173
AM_RANGE(0x2010, 0x2010) AM_DEVREADWRITE("oki1", okim6295_device, read, write) // OKI 0
126
174
AM_RANGE(0x2020, 0x2020) AM_READ_PORT("DSW1")
127
175
AM_RANGE(0x2021, 0x2021) AM_READ_PORT("DSW2")
128
176
AM_RANGE(0x2022, 0x2022) AM_READ_PORT("P1")
129
177
AM_RANGE(0x2023, 0x2023) AM_READ_PORT("P2")
130
178
AM_RANGE(0x2024, 0x2024) AM_READ_PORT("SYSTEM")
131
AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_BASE_MEMBER(paradise_state, m_videoram) // Pixmap
179
AM_RANGE(0x8000, 0xffff) AM_RAM_WRITE(paradise_pixmap_w) AM_SHARE("videoram") // Pixmap
311
359
PORT_DIPSETTING( 0x01, "0:50" )
312
360
PORT_DIPSETTING( 0x02, "1:00" )
313
361
PORT_DIPSETTING( 0x03, "1:10" )
314
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") /* One of these sets/pairs should be diffculty or timer speed */
315
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
316
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
317
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
318
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
319
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
362
PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:3,4")
363
PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
364
PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
365
PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
366
PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) )
320
367
PORT_DIPNAME( 0x30, 0x30, "Fill % to Win" ) PORT_DIPLOCATION("SW1:5,6")
321
368
PORT_DIPSETTING( 0x30, "Majority at Time or 99.9%" )
322
369
PORT_DIPSETTING( 0x20, "Majority at Time or 90%" )
323
370
PORT_DIPSETTING( 0x10, "Majority at Time or 85%" )
324
371
PORT_DIPSETTING( 0x00, "Majority at Time or 80%" )
325
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
372
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7") /* One of these likely disables the nude pics */
326
373
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
327
374
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
328
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
375
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8") /* One of these likely disables the nude pics */
329
376
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
330
377
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
335
382
PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
336
383
PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
337
384
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
338
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
339
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
340
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
341
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
342
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
343
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
385
PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW2:3" ) /* Listed as "Unused" */
386
PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW2:4" ) /* Listed as "Unused" */
344
387
PORT_DIPNAME( 0x10, 0x10, "Vs. Matches" ) PORT_DIPLOCATION("SW2:5")
345
388
PORT_DIPSETTING( 0x00, "2" )
346
389
PORT_DIPSETTING( 0x10, "3" )