summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/rbisland.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/rbisland.cpp')
-rw-r--r--src/mame/drivers/rbisland.cpp975
1 files changed, 0 insertions, 975 deletions
diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp
deleted file mode 100644
index 137d40f2b62..00000000000
--- a/src/mame/drivers/rbisland.cpp
+++ /dev/null
@@ -1,975 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Mike Coates
-/***************************************************************************
-
-Rainbow Islands (c) Taito 1987 + Jumping
-===============
-
-driver by Mike Coates
-
-c-chip enhanced by Robert Gallagher, with many thanks to Tormod Tjaberg for providing
-his PCB for dumping/collecting the c-chip data from Rainbow Islands Extra.
-
- ***
-
-Rainbow Islands & Rainbow Islands Extra
-Taito, 1987
-
-PCB Layout
-----------
-
-MAIN PCB
-J1100128A
-K1100277A
-|----------------------------------------------------|
-| MB3735 Z80 B22-14.43 16MHz DIP28 DIP28 |
-| YM2151 5563 |
-|VOL PC060HA B22-05.33 B22-01.2 |
-| 4556 TL074 YM3012 |-------| |
-|Y 6116 6116 |TAITO | 43256 |
-| |PC080SN| |
-|J TC0070RGB 2018 |-------| |-------| 43256 |
-|A 2018 |TAITO | |
-|M PC050CM 2018 |PC0900J| B22-02.5 |
-|M 2018 |-------| B22-13.6 |
-|A B22-12.7 |
-| TC0030CMD 12MHz 3771|
-| 26.686MHz B39-02.20 B22-01.19 |
-| 68000 B39-04.22 B39-03.21 |
-| B22-07.56 B22-06.41 B22-04.24 B22-03.23 |
-| DSWB DSWA 8464 8464 |
-|----------------------------------------------------|
-Notes:
- 68000 - clock 8.000MHz [16/2]
- Z80 - clock 4.000MHz [16/4]
- YM2151 - clock 4.000MHz [16/4]
- 6116 - 2kx8 SRAM (color RAM)
- 43256 - 32kx8 SRAM (tile RAM)
- 8464 - 8kx8 SRAM (68000 work RAM)
- 5563 - 8kx8 SRAM (Z80 work RAM)
- 2018 - 2kx8 SRAM (sprite RAM)
- 4556 - NEC uPC4556 dual operational amplifier IC (DIP8)
- TL074 - Texas Instruments TL074 low noise j-fet quad operational amplifier (DIP14)
- YM3012 - Yamaha YM3012 2-channel serial input floating DAC (DIP16)
- MB3735 - Fujitsu MB3735 20 watt BTL audio power amplifier (SIP9)
- PC080SN - Taito custom tilemap generator IC (connected to 43256 SRAM)
- PC0900J - Taito custom sprite generator IC (connected to 2018 SRAM)
- PC060HA - Taito custom IC (sound-related)
- TC0030CMD - Taito custom C-Chip marked 'TC0030CMD, clock input 12.000MHz on pin 20
- - For Rainbow Islands with sticker 'B22-15' at IC53
- - For Rainbow Islands Extra with sticker 'B39-05' at IC53
- TC0070RGB - Taito custom ceramic module RGB mixer IC
- PC050CM - Taito custom ceramic module (input related functions)
- 3771 - Fujitsu MB3771 master reset IC (DIP8)
- Y - 3 pin connector for 2nd speaker output
- DIP28 - unpopulated DIP28 socket(s)
-
- ROMs -
- |----------------------------------------------------------------------|
- | Common to Rainbow Islands and Rainbow Islands Extra |
- |--------------|---------------|---------------|-----------------------|
- | 234000 | 23C1000 | 27C512 | PALs |
- |--------------|---------------|---------------|-----------------------|
- | B22-01.2 | B22-03.23 | B22-12.7 | B22-05.33 (PAL16L8) |
- | B22-02.5 | B22-04.24 | B22-13.6 | B22-06.41 (PAL16L8) |
- | | | B22-14.43 | B22-07.56 (PAL20L8) |
- |--------------|---------------|---------------|-----------------------|
- |---------------------------------------|------------------------------|
- | Used only on Rainbow Islands Extra | Used only on Rainbow Islands |
- |--------------|------------------------|--------------|---------------|
- | 27C512 | C-Chip | 27C512 | C-Chip |
- |--------------|------------------------|--------------|---------------|
- | B39-01.19 | B39-05.53 | B22-10.19 | B22-15.53 |
- | B39-02.20 | | B22-11.20 | |
- | B39-03.21 | | B22-08.21 | |
- | B39-04.22 | | B22-09.22 | |
- |--------------|------------------------|--------------|---------------|
-
- Measurements
- ------------
- XTAL1 - 26.68599MHz
- XTAL2 - 16.00000MHz
- XTAL3 - 12.00000MHz
- VSync - 60.0559Hz
- HSync - 15.6745kHz
-
-Notes on Rainbow Islands romsets by Robert Gallagher
-----------------------------------------------------
-
-There are 3 code segments that differ between Rainbow Islands old and new
-version. They are all related to secret rooms;
-
- The first code segment is entered at the start of a secret room.
-
-
- rbislando rbisland
- $55EE lea $C01308,a0 $55EE lea $C00B08,a0
- move.w #$13,d0 bsr $561C
- $55F8 move.w #$15fa,2(a0) lea $C00D08,a0
- move.w #$15fa,6(a0) bsr $561C
- move.w #$15fa,$102(a0) lea $C00F08,a0
- move.w #$15fa,$106(a0) bsr $561C
- adda.l #8,a0 lea $C01108,a0
- dbf d0,$55F8 bsr $561C
- rts $561C lea $C01308,a0
- move.w #$13,d0
- ...
-
- The next code segment fixes the bonus related to entering ALL 10 Secret rooms.
- In Rainbow Islands, If you enter the last secret room, you receive a 10,000,000
- point bonus. If you have entered all 10 secret rooms, you receive a 50,000,000 point
- bonus. (BUG THAT'S NOT A BUG - the games says 1,000,000 and 5,000,000, but the code gives
- you 10mil and 50mil)
- The counter is in $10D05C.b, the (rbislando) romset never increments this counter, making
- it impossible to achieve.
-
- $56A2 cmpi.w #$31,$11c6(a5) $56CA addi.b #1,$105C(a5) ;increment the secret room count
- bne cmpi.w #$31,$11c6(a5) ;is it round 49 (50)?
- bne
-
- The final change fixes a Secret room bug that was noted by Stefan Jokisch.
- In (rbislando) it is possible to scroll the screen inside a secret room.
- You can walk right off the top of the screen, and scroll the 'next' secret
- room into view. This is fixed in (rbisland) with the following code;
-
- $5F06 move.b #1,d0 $5F34 tst.b $11c4(a5) ; in secret room?
- jsr $1736 bne $600A ; exit this routine, which is getting
- move.b #1,d0 ; the room height from c-chip bank 1
- jsr $1736 ; which we don't need
- ...
- $600A rts
-
- The (jumping) bootleg is based on the (rbislando) roms.
-
-Notes on Rainbow Islands Extra by Robert Gallagher
---------------------------------------------------
- In Rainbow Islands Extra, there are more changes than just the differing enemies/rounds.
-
- In RIE if you end a level with the same 2 digits in your score as xxxx220, you will receive
- items at the "GOAL IN" worth 3000 points each (instead of 500pts) as:
-
- 00 = french fries
- 11 = neopolaton ice cream
- 22 = creme caramel
- 33 = hamburgers
- 44 = cake slice
- 55 = iced bun
- 66 = mug of beer
- 77 = hotdog on a stick
- 88 = vanilla ice cream
- 99 = blue popsicle
-
- There are two other possibilities:
- moneybags - worth 500pts if you don't have double digits, or worth 3000 points if you do (any)
- if you got the 'Money Coin' powerup in a secret room.
- hearts - worth 10,000 each, this is based on a timer in 0x0010DBA4 && 128 == 0, making this a
- 1 in 128 chance.
-
-
- The items received in 'Secret Room' are not the same as Rainbow Islands. They are based on
- the LAST diamond you collect in the round before entering. That is; you must still collect
- the 7 diamonds in order, Red, Orange, Yellow... to enter a secret room, however, AFTER completing
- this, you can still collect diamonds. If you collect (last), you get:
-
- Red - Book of Continues - this allows you to continue after world 7
- Orange - Money Bag - this will make a 100,000pt Money bag fall from the sky on every round.
- it will also make all fruit at 'GOAL IN' into money bags.
- Yellow - Key - when taken, this will show the Secret room code completely for about 8 seconds.
- Green - Protection Fairy, gives you the protection fairy for about 8 seconds at the beginning
- of each round, or after you die. (NOT perm. like RI, code at $C528 in RIE handles this,
- and is distinctly different from the code at $BC8C in RI)
- Blue - Yellow Potion, gives you perm. fast rainbow power
- Indigo - Red Potion, gives you perm. 2X rainbow power
- Violet - Shoes, gives you perm. fast feet.
-
- Unlike the secret rooms in Rainbow Islands, in Rainbow Islands Extra, only 2 letters of the code
- for that room are revealed. The first letter, and the second letter will corespond to the last
- diamond collected before entering the secret room. (You can see this with the coloured hearts
- that remain). The idea is that you must enter the secret room 7X to get the full code, making the
- game harder. Otherwise, collecting a yellow diamond will give you the 'key' to the room, and reveal
- the code for about 5 seconds.
-
- In the secret rooms of RIE there is an added bonus; If you exit the room without collecting the
- power-up item, you will receive a 1,000,000pt bonus. The text in the room in Japanese reads:
- "KYOUKA-SOUBI WO TORAZUNI DERUTO 1000000 TEN HAIRUYO !!"
-
- If you enter all 10 secret rooms in Rainbow Islands Extra, and do NOT collect the powerups in
- _any_ of the rooms, you will receive "SPECIAL BIG BONUS !! 50000000 PTS."
-
- If you enter all 10 secret rooms, and do NOT collect the bubble-rainbow power in secret room 10,
- (though you may collect them in others) you will receive "SPECIAL BIG BONUS !! 10000000 PTS."
-
- If you collect the bubble-rainbow power in secret room 10, you will receive "ALL ROOM CLEAR
- 5000000" bonus instead.
-
- In Rainbow Islands Extra (as in Rainbow Islands), if you collect 2 of any colour 'cane'...
- (canes are collected for collecting 7 of one colour of diamond, WITHOUT 'complete' happening, or
- if 'complete', you must collect 7 of the same colour diamond within one round. (the diamond
- counters are reset to one at the beginning of each round once 'complete' has occurred).
- ...you will receive a 'Potion' (not Rainbow powerup potions)
- of the appropriate colour. Once collected, you will receive a
- 100,000pts. large fruit item at 'GOAL IN' for that round. Although the code for this is present in
- Rainbow Islands, it is rarely seen. This is not a result of poor emulation, but rather poor coding;
- In both RI and RIE, there are tables that indicate which special item is deserved, and what actions
- are required to earn them. (the number of times the event must occur).
- In both RI and RIE, you receive a special item for every 3rd enemy you kill as:
- 1. Shoes
- 2. Red Potion
- 3. Yellow Potion
- 4. Red Potion
- 5. Crystal Ball
- 6. Yellow star
- 7. Red Star
- 8. - Special item - depending on what you deserve.
-
- The Special item table can be found at $ADC0 in RI, and $B5E8 in RIE. This table is checked in
- linear fashion until a special item requirement is met.
- items 24/25/26 are: Blue Ring/Violet Ring/Red Ring.
- To get these items you collect: Red Potion/Yellow Potion/Shoes. (note that each potion collect =+2)
- In Rainbow Islands, this table shows that we need only collect:
- 3 red potions (but each one counts as +2 if you created it, or +1 if you 'found' it in a level),
- 3 yellow potions ""
- 3 red shoes (only count as one)
- The 'canes', and 'potions' occur -after- these entries (cane index 27-33, potion index 34-40)
- So the reason that you (rarely!) see the canes, and hence the potions in RI, is because you will
- almost ALWAYS satisfy at least one of these requirements: 2 RED potions are given before 1 'special'
- In Rainbow Islands Extra however, the canes are more common. This is because the index shows that
- we need to collect 12/12/12 of the above before we can get the rings.
-
- One more condition has been added to RIE regards this;
- if _no_ special item has been earned, you will receive a Potion that is the same colour as the
- LAST diamond you have collected in the round.
-
-
-
-Bugs in Jumping
----------------
-
-The bootleggers didn't defeat the protection completely: Secret
-rooms are broken, some dying enemy sprites have obviously wrong
-graphics, monsters are falling through platforms etc.
-
-
-Secret rooms in Rainbow Islands
--------------------------------
-
-Getting the small diamonds in order (red through to purple) opens
-a secret door in the boss room. The trick is to turn an enemy into
-a diamond of a specific color: It depends on its x position and
-direction. There is a cheat code at the top of each secret room
-that can be entered on the copyright screen:
-
- L -> left
- R -> right
- J -> jump
- B -> rainbow
- S -> start
-
- | regular | extra
- --------------+------------+------------
- Fast Feet | BLRBJSBJ | SLLSRJRR
- Red Potion | RJSBJLBR | JLSSSBRJ
- Yellow Potion | SSSLLRRS | BRSLJSLJ
- Hint A | BJBJBJRS | BJBJBJRS
- Hint B | LJLSLBLS | LJLSLBLS
- Continue | LBSJRLJL | LJLRSJJJ
- Money Bags | RRLLBBJS | LLSBRRJB
- Money + Cont | RRRRSBSJ | RSJRLBRS
- Hint C | SJBLRJSR | SJBLRJSR
- 100M Counter | SRBJSLSB | BBSSJJJJ
- Hint D | N/A | BBJJRLSL
- Hint E | N/A | LRSLRSJR
- Hint F | N/A | SBJLSBRR
-
-
-
-Stephh's notes (based on the game M68000 code and some tests) :
-
-1) 'rbisland*'
-
- - Region stored at 0x02fffe.w
- - Sets :
- * 'rbisland' : region = 0x0000
- * 'rbislando' : region = 0x0000
- * 'rbislande' : region = 0x0000
- - Possible regions :
- * 0x0000 : Japan
- * 0x0001 : US
- * 0x0002 : World
- * 0x0003 : US, licensed to ROMSTAR
- * 0x0004 : licensed to PHOENIX ELECTRONICS CO.
- - Coinage relies on "Coin Mode" Dip Switch (code at 0x0030fc) :
- * "Mode A" uses TAITO_COINAGE_JAPAN_OLD
- * "Mode B" uses TAITO_COINAGE_WORLD
-
-
-2) 'jumping'
-
- - Region stored at 0x02fffe.w
- - Sets :
- * 'jumping' : region = 0x0000
- - If you change the region, you'll notice that the copyright strings
- haven't been correcly erased !
- - Some Dip Switches have no effect due to code at 0x000850;
- this means the following things :
- * always upright cabinet
- * screen never flipped
- * impossible to enter the "test mode"
- * always English language
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/rbisland.h"
-#include "includes/taitoipt.h"
-#include "audio/taitosnd.h"
-
-#include "cpu/m68000/m68000.h"
-#include "cpu/z80/z80.h"
-#include "sound/ym2151.h"
-#include "sound/ym2203.h"
-#include "screen.h"
-#include "speaker.h"
-
-
-void rbisland_state::jumping_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- if (ACCESSING_BITS_0_7)
- {
- m_jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
- m_audiocpu->set_input_line(0, HOLD_LINE);
- }
-}
-
-
-/***************************************************************************
- MEMORY STRUCTURES
-***************************************************************************/
-
-void rbisland_state::rbisland_map(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x10c000, 0x10ffff).ram(); /* main RAM */
- map(0x200000, 0x200fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x201000, 0x203fff).ram(); /* r/w in initial checks */
- map(0x390000, 0x390003).portr("DSWA");
- map(0x3a0000, 0x3a0001).w(m_pc090oj, FUNC(pc090oj_device::sprite_ctrl_w));
- map(0x3b0000, 0x3b0003).portr("DSWB");
- map(0x3c0000, 0x3c0003).nopw(); /* written very often, watchdog? */
- map(0x3e0000, 0x3e0001).nopr();
- map(0x3e0001, 0x3e0001).w("ciu", FUNC(pc060ha_device::master_port_w));
- map(0x3e0003, 0x3e0003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w));
- map(0x800000, 0x8007ff).rw(m_cchip, FUNC(taito_cchip_device::mem68_r), FUNC(taito_cchip_device::mem68_w)).umask16(0x00ff);
- map(0x800800, 0x800fff).rw(m_cchip, FUNC(taito_cchip_device::asic_r), FUNC(taito_cchip_device::asic68_w)).umask16(0x00ff);
- map(0xc00000, 0xc0ffff).rw(m_pc080sn, FUNC(pc080sn_device::word_r), FUNC(pc080sn_device::word_w));
- map(0xc20000, 0xc20003).w(m_pc080sn, FUNC(pc080sn_device::yscroll_word_w));
- map(0xc40000, 0xc40003).w(m_pc080sn, FUNC(pc080sn_device::xscroll_word_w));
- map(0xc50000, 0xc50003).w(m_pc080sn, FUNC(pc080sn_device::ctrl_word_w));
- map(0xd00000, 0xd03fff).rw(m_pc090oj, FUNC(pc090oj_device::word_r), FUNC(pc090oj_device::word_w)); /* sprite ram + other stuff */
-}
-
-
-
-void rbisland_state::jumping_map(address_map &map)
-{
- map(0x000000, 0x09ffff).rom();
- map(0x10c000, 0x10ffff).ram(); /* main RAM */
- map(0x200000, 0x200fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
- map(0x201000, 0x203fff).ram(); /* r/w in initial checks */
- map(0x400000, 0x400001).portr("DSWA");
- map(0x400002, 0x400003).portr("DSWB");
- map(0x401000, 0x401001).portr("401001");
- map(0x401002, 0x401003).portr("401003");
- map(0x3a0000, 0x3a0001).w(FUNC(rbisland_state::jumping_spritectrl_w));
- map(0x3c0000, 0x3c0001).nopw(); /* watchdog? */
- map(0x400006, 0x400007).w(FUNC(rbisland_state::jumping_sound_w));
- map(0x420000, 0x420001).nopr(); /* read, but result not used */
- map(0x430000, 0x430003).w(m_pc080sn, FUNC(pc080sn_device::yscroll_word_w));
- map(0x440000, 0x4407ff).ram().share("spriteram");
- map(0x800000, 0x80ffff).nopw(); /* original c-chip location (not used) */
- map(0xc00000, 0xc0ffff).rw(m_pc080sn, FUNC(pc080sn_device::word_r), FUNC(pc080sn_device::word_w));
- map(0xc20000, 0xc20003).nopw(); /* seems it is a leftover from rbisland: scroll y written here too */
- map(0xc40000, 0xc40003).w(m_pc080sn, FUNC(pc080sn_device::xscroll_word_w));
- map(0xd00000, 0xd01fff).ram(); /* original spriteram location, needed for Attract Mode */
-}
-
-
-/**********************************************************
- SOUND
-
- Rainbow uses a YM2151 and YM3012
- Jumping uses two YM2203's
-***********************************************************/
-
-void rbisland_state::bankswitch_w(uint8_t data)
-{
- membank("bank1")->set_entry(data & 3);
-}
-
-uint8_t rbisland_state::jumping_latch_r()
-{
- return m_jumping_latch;
-}
-
-
-void rbisland_state::rbisland_sound_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom();
- map(0x4000, 0x7fff).bankr("bank1");
- map(0x8000, 0x8fff).ram();
- map(0x9000, 0x9001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
- map(0x9002, 0x9100).nopr();
- map(0xa000, 0xa000).w("ciu", FUNC(pc060ha_device::slave_port_w));
- map(0xa001, 0xa001).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w));
-}
-
-void rbisland_state::jumping_sound_map(address_map &map)
-{
- map(0x0000, 0x7fff).rom();
- map(0x8000, 0x8fff).ram();
- map(0xb000, 0xb001).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
- map(0xb400, 0xb401).rw("ym2", FUNC(ym2203_device::read), FUNC(ym2203_device::write));
- map(0xb800, 0xb800).r(FUNC(rbisland_state::jumping_latch_r));
- map(0xbc00, 0xbc00).nopw(); /* looks like a bankswitch, but sound works with or without it */
- map(0xc000, 0xffff).rom();
-}
-
-/***********************************************************
- INPUT PORTS, DIPs
-***********************************************************/
-
-static INPUT_PORTS_START( rbisland_generic )
- PORT_START("DSWA")
- TAITO_MACHINE_COCKTAIL
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
-
- PORT_START("DSWB")
- TAITO_DIFFICULTY
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
- PORT_DIPSETTING( 0x04, "100k 1000k" )
- PORT_DIPSETTING( 0x00, DEF_STR( None ) )
- PORT_DIPNAME( 0x08, 0x08, "Complete Bonus" )
- PORT_DIPSETTING( 0x08, "1 Up" )
- PORT_DIPSETTING( 0x00, "100k" )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x10, "1" )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x30, "3" )
- PORT_DIPSETTING( 0x20, "4" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Language ) )
- PORT_DIPSETTING( 0x00, DEF_STR( English ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Japanese ) )
- PORT_DIPNAME( 0x80, 0x80, "Coin Mode" )
- PORT_DIPSETTING( 0x80, "Mode A (Japan)" ) /* Mode A is TAITO_COINAGE_JAPAN_OLD */
- PORT_DIPSETTING( 0x00, "Mode B (World)" ) /* Mode B is TAITO_COINAGE_WORLD */
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( rbisland )
- PORT_INCLUDE(rbisland_generic)
-
- /* 0x390000 -> 0x10cfc2 ($fc2,A5) : DSWA */
-
- /* 0x3b0000 -> 0x10cfc4 ($fc4,A5) : DSWB */
-
- PORT_START("800007")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
-
- PORT_START("800009")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("80000B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
-
- PORT_START("80000D")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) // 0x08 and 0x80 are swapped due to read through ADC
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
-INPUT_PORTS_END
-
-static INPUT_PORTS_START( jumping )
- PORT_INCLUDE(rbisland_generic)
-
- /* 0x400000 -> 0x10cfc2 ($fc2,A5) */
- PORT_MODIFY("DSWA")
- PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) /* see notes */
- PORT_DIPUNUSED( 0x02, IP_ACTIVE_LOW ) /* see notes */
- PORT_DIPUNUSED( 0x04, IP_ACTIVE_LOW ) /* see notes */
-
- /* 0x400002 -> 0x10cfc4 ($fc4,A5) */
- PORT_MODIFY("DSWB")
- PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) /* see notes */
-
- PORT_START("401001")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("401003")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
-INPUT_PORTS_END
-
-
-/**************************************************************
- GFX DECODING
-**************************************************************/
-
-static GFXDECODE_START( gfx_rbisland )
- GFXDECODE_ENTRY( "pc080sn", 0, gfx_8x8x4_packed_msb, 0, 0x80 ) /* SCR 8x8 */
-GFXDECODE_END
-
-
-static const gfx_layout jumping_tilelayout =
-{
- 8,8, /* 8*8 tiles */
- RGN_FRAC(1,1), /* 16384 tiles */
- 4, /* 4 bits per pixel */
- { STEP4(0,8) },
- { STEP8(0,1) },
- { STEP8(0,8*4) },
- 8*8*4 /* every tile takes 8 consecutive bytes */
-};
-
-static const gfx_layout jumping_spritelayout =
-{
- 16,16, /* 16*16 sprites */
- RGN_FRAC(1,1), /* 5120 sprites */
- 4, /* 4 bits per pixel */
- { STEP4(0,8) },
- { STEP8(0,1), STEP8(8*4*16,1) },
- { STEP16(0,8*4) },
- 16*16*4 /* every sprite takes 32 consecutive bytes */
-};
-
-static GFXDECODE_START( gfx_jumping )
- GFXDECODE_ENTRY( "sprites", 0, jumping_spritelayout, 0, 0x80 ) /* OBJ 16x16 */
- GFXDECODE_ENTRY( "pc080sn", 0, jumping_tilelayout, 0, 0x80 ) /* SCR 8x8 */
-GFXDECODE_END
-
-
-/***********************************************************
- MACHINE DRIVERS
-***********************************************************/
-
-void rbisland_state::machine_start()
-{
-}
-
-INTERRUPT_GEN_MEMBER(rbisland_state::interrupt)
-{
- m_maincpu->set_input_line(4, HOLD_LINE);
- m_cchip->ext_interrupt(ASSERT_LINE);
- m_cchip_irq_clear->adjust(attotime::zero);
-}
-
-TIMER_DEVICE_CALLBACK_MEMBER(rbisland_state::cchip_irq_clear_cb)
-{
- m_cchip->ext_interrupt(CLEAR_LINE);
-}
-
-void rbisland_state::counters_w(uint8_t data)
-{
- machine().bookkeeping().coin_lockout_w(1, data & 0x80);
- machine().bookkeeping().coin_lockout_w(0, data & 0x40);
- machine().bookkeeping().coin_counter_w(1, data & 0x20);
- machine().bookkeeping().coin_counter_w(0, data & 0x10);
-}
-
-void rbisland_state::rbisland(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_map);
- m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::interrupt));
-
- Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */
- m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_sound_map);
-
- TAITO_CCHIP(config, m_cchip, 12_MHz_XTAL); // 12MHz OSC next to C-Chip
- m_cchip->in_pa_callback().set_ioport("800007");
- m_cchip->in_pb_callback().set_ioport("800009");
- m_cchip->in_pc_callback().set_ioport("80000B");
- m_cchip->in_ad_callback().set_ioport("80000D");
- m_cchip->out_pb_callback().set(FUNC(rbisland_state::counters_w));
-
- TIMER(config, m_cchip_irq_clear).configure_generic(FUNC(rbisland_state::cchip_irq_clear_cb));
-
- config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(40*8, 32*8);
- screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(rbisland_state::screen_update_rainbow));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbisland);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048);
-
- PC080SN(config, m_pc080sn, 0);
- m_pc080sn->set_gfx_region(0);
- m_pc080sn->set_gfxdecode_tag(m_gfxdecode);
-
- PC090OJ(config, m_pc090oj, 0);
- m_pc090oj->set_palette(m_palette);
- m_pc090oj->set_colpri_callback(FUNC(rbisland_state::rbisland_colpri_cb));
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */
- ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
- ymsnd.port_write_handler().set(FUNC(rbisland_state::bankswitch_w));
- ymsnd.add_route(0, "mono", 0.50);
- ymsnd.add_route(1, "mono", 0.50);
-
- pc060ha_device &ciu(PC060HA(config, "ciu", 0));
- ciu.set_master_tag(m_maincpu);
- ciu.set_slave_tag(m_audiocpu);
-}
-
-
-/* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */
-void rbisland_state::jumping(machine_config &config)
-{
- /* basic machine hardware */
- M68000(config, m_maincpu, XTAL(18'432'000)/2); /* verified on pcb */
- m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_map);
- m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::irq4_line_hold));
-
- Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* verified on pcb */
- m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_sound_map);
-
- config.set_maximum_quantum(attotime::from_hz(600)); /* 10 CPU slices per frame - enough unless otherwise */
-
- /* video hardware */
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
- screen.set_size(40*8, 32*8);
- screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
- screen.set_screen_update(FUNC(rbisland_state::screen_update_jumping));
- screen.set_palette(m_palette);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_jumping);
- PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048);
-
- MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping)
-
- PC080SN(config, m_pc080sn, 0);
- m_pc080sn->set_gfx_region(1);
- m_pc080sn->set_yinvert(1);
- m_pc080sn->set_gfxdecode_tag(m_gfxdecode);
-
- /* sound hardware */
- SPEAKER(config, "mono").front_center();
-
- YM2203(config, "ym1", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
-
- YM2203(config, "ym2", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
-}
-
-/* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */
-void rbisland_state::jumpingi(machine_config &config)
-{
- jumping(config);
-
- m_maincpu->set_clock(XTAL(16'000'000)/2); /* verified on pcb */
-}
-
-/***************************************************************************
- DRIVERS
-***************************************************************************/
-
-ROM_START( rbisland )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "b22-10-1.19", 0x00000, 0x10000, CRC(e34a50ca) SHA1(17a92cd7182db1e18000b1ae689758fcfd70fe16) )
- ROM_LOAD16_BYTE( "b22-11-1.20", 0x00001, 0x10000, CRC(6a31a093) SHA1(1e99ae47811c0d3774d138dab02ac50bc1b92173) )
- ROM_LOAD16_BYTE( "b22-08-1.21", 0x20000, 0x10000, CRC(15d6e17a) SHA1(7b0339180239e75adf1437aee276b652a1bfee51) )
- ROM_LOAD16_BYTE( "b22-09-1.22", 0x20001, 0x10000, CRC(454e66bc) SHA1(54d57dee90da04101f4b1473770b38001d63230f) )
- ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
- ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
-
- ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
- ROM_LOAD( "cchip_b22-15.53", 0x0000, 0x2000, CRC(08c588a6) SHA1(7e38342be68d37f7106df069dd2021c509be1244) )
-
- ROM_REGION( 0x1c000, "audiocpu", 0 )
- ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
- ROM_CONTINUE( 0x10000, 0xc000 )
-
- ROM_REGION( 0x80000, "pc080sn", 0 )
- ROM_LOAD16_WORD_SWAP( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
-
- ROM_REGION( 0xa0000, "pc090oj", 0 )
- ROM_LOAD16_WORD_SWAP( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
- ROM_LOAD16_BYTE ( "b22-13.6", 0x80000, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
- ROM_LOAD16_BYTE ( "b22-12.7", 0x80001, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
-ROM_END
-
-ROM_START( rbislando )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "b22-10.19", 0x00000, 0x10000, CRC(3b013495) SHA1(fc89f401a80b9bde174df8a257bb7fad4937c838) )
- ROM_LOAD16_BYTE( "b22-11.20", 0x00001, 0x10000, CRC(80041a3d) SHA1(619d71a2bef5fd898a15d37d8016850f832428c3) )
- ROM_LOAD16_BYTE( "b22-08.21", 0x20000, 0x10000, CRC(962fb845) SHA1(1c5581e697902ee5cde0fb841ef05eade04a901b) )
- ROM_LOAD16_BYTE( "b22-09.22", 0x20001, 0x10000, CRC(f43efa27) SHA1(f92bcdbe9bbc1c200946c10605846bb406d8e963) )
- ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
- ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
-
- ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
- ROM_LOAD( "cchip_b22-15.53", 0x0000, 0x2000, CRC(08c588a6) SHA1(7e38342be68d37f7106df069dd2021c509be1244) )
-
- ROM_REGION( 0x1c000, "audiocpu", 0 )
- ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
- ROM_CONTINUE( 0x10000, 0xc000 )
-
- ROM_REGION( 0x80000, "pc080sn", 0 )
- ROM_LOAD16_WORD_SWAP( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
-
- ROM_REGION( 0xa0000, "pc090oj", 0 )
- ROM_LOAD16_WORD_SWAP( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
- ROM_LOAD16_BYTE ( "b22-13.6", 0x80000, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
- ROM_LOAD16_BYTE ( "b22-12.7", 0x80001, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
-ROM_END
-
-ROM_START( rbislande )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "b39-01.19", 0x00000, 0x10000, CRC(50690880) SHA1(88cd8739eaa6e4e5988be225c31d2a6605173d39) )
- ROM_LOAD16_BYTE( "b39-02.20", 0x00001, 0x10000, CRC(4dead71f) SHA1(03e9df33fc8fc64d6eeb1c3a763acac00b10c071) )
- ROM_LOAD16_BYTE( "b39-03.21", 0x20000, 0x10000, CRC(4a4cb785) SHA1(6ba7de3901a001cbb31713664ccb68b943a5578f) )
- ROM_LOAD16_BYTE( "b39-04.22", 0x20001, 0x10000, CRC(4caa53bd) SHA1(302c668b77de41ffef96a3ca9d94877b4affc466) )
- ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
- ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
-
- ROM_REGION( 0x2000, "cchip:cchip_eprom", 0 )
- ROM_LOAD( "cchip_b39-05.53", 0x0000, 0x2000, CRC(397735e3) SHA1(86e78dbe7930f826dc8fce0ba56f5e79216df852) )
-
- ROM_REGION( 0x1c000, "audiocpu", 0 )
- ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
- ROM_CONTINUE( 0x10000, 0xc000 )
-
- ROM_REGION( 0x80000, "pc080sn", 0 )
- ROM_LOAD16_WORD_SWAP( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
-
- ROM_REGION( 0xa0000, "pc090oj", 0 )
- ROM_LOAD16_WORD_SWAP( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
- ROM_LOAD16_BYTE ( "b22-13.6", 0x80000, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
- ROM_LOAD16_BYTE ( "b22-12.7", 0x80001, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
-ROM_END
-
-ROM_START( jumping )
- ROM_REGION( 0xa0000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "6.h4", 0x00000, 0x10000, CRC(3fab6b31) SHA1(57803478949cb62f7eab2ef9be08b13aa2237dbc) )
- ROM_LOAD16_BYTE( "10.h8", 0x00001, 0x10000, CRC(8c878827) SHA1(4a54a217b7c442305c3ce9298aa36ae225382444) )
- ROM_LOAD16_BYTE( "5.i4", 0x20000, 0x10000, CRC(443492cf) SHA1(fc3809d784d611df4fd446ca2443eebdf4f0bfd7) )
- ROM_LOAD16_BYTE( "9.i8", 0x20001, 0x10000, CRC(ed33bae1) SHA1(24ade29f3fdd45aa772ccf9c046294baa6eae7a2) )
- ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(00bf8a91) SHA1(973868eef99b1bcfa60e1b22a18946aa3edefad3) ) // 4+3 == b22-03.23
- ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x10000, CRC(e3d7a844) SHA1(9559b38f2017de0c93ed82ca7dccfb046fff39f9) ) // 8+7 == b22-04.24
- ROM_LOAD16_BYTE( "3.bin", 0x60000, 0x10000, CRC(a3ab61c6) SHA1(5cf82d1aa1f548fb3c243c625e4ff52c8714bacc) ) // ^
- ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(c1c4c701) SHA1(4dd751418ee0f8ae766e2fe47f752d0758d7d682) ) // ^
- ROM_LOAD16_BYTE( "2.f89", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
-
- ROM_REGION( 0x14000, "audiocpu", 0 )
- ROM_LOAD( "jb1_cd67", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
- ROM_CONTINUE( 0x10000, 0x4000 )
- ROM_CONTINUE( 0x0c000, 0x4000 )
-
- ROM_REGION( 0x80000, "pc080sn", 0 )
- ROM_LOAD32_BYTE( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
- ROM_LOAD32_BYTE( "18.ic7", 0x40000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
- ROM_LOAD32_BYTE( "15.ic10", 0x00001, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
- ROM_LOAD32_BYTE( "16.ic9", 0x40001, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
- ROM_LOAD32_BYTE( "13.ic12", 0x00002, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
- ROM_LOAD32_BYTE( "14.ic11", 0x40002, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
- ROM_LOAD32_BYTE( "11.ic14", 0x00003, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
- ROM_LOAD32_BYTE( "12.ic13", 0x40003, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
-
- ROM_REGION( 0xa0000, "sprites", ROMREGION_INVERT )
- ROM_LOAD32_BYTE( "jb2_ic62", 0x00003, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD32_BYTE( "jb2_ic61", 0x40003, 0x10000, CRC(37c5923b) SHA1(c83ef45564c56ef62d7019aecbd79dccc671deee) )
- ROM_LOAD32_BYTE( "jb2_ic60", 0x80003, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
- ROM_LOAD32_BYTE( "jb2_ic78", 0x00002, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
- ROM_LOAD32_BYTE( "jb2_ic77", 0x40002, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
- ROM_LOAD32_BYTE( "jb2_ic76", 0x80002, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
- ROM_LOAD32_BYTE( "jb2_ic93", 0x00001, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
- ROM_LOAD32_BYTE( "jb2_ic92", 0x40001, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
- ROM_LOAD32_BYTE( "jb2_ic91", 0x80001, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
- ROM_LOAD32_BYTE( "jb2_i121", 0x00000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
- ROM_LOAD32_BYTE( "jb2_i120", 0x40000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
- ROM_LOAD32_BYTE( "jb2_i119", 0x80000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
-
- ROM_REGION( 0x200, "pals", 0 )
- ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
- ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
- ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
-ROM_END
-
-ROM_START( jumpinga )
- ROM_REGION( 0xa0000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "6.h4", 0x00000, 0x10000, CRC(3fab6b31) SHA1(57803478949cb62f7eab2ef9be08b13aa2237dbc) )
- ROM_LOAD16_BYTE( "10.h8", 0x00001, 0x10000, CRC(8c878827) SHA1(4a54a217b7c442305c3ce9298aa36ae225382444) )
- ROM_LOAD16_BYTE( "seyutu_5.i4", 0x20000, 0x10000, CRC(25f19b71) SHA1(538f9a510cf73581b5ec01befdba7dfb02032c66) )
- ROM_LOAD16_BYTE( "seyutu_9.i8", 0x20001, 0x10000, CRC(9c94f260) SHA1(aa963acacbf11480d0ddc3b99fc839414970c043) )
- ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(00bf8a91) SHA1(973868eef99b1bcfa60e1b22a18946aa3edefad3) ) // 4+3 == b22-03.23
- ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x10000, CRC(e3d7a844) SHA1(9559b38f2017de0c93ed82ca7dccfb046fff39f9) ) // 8+7 == b22-04.24
- ROM_LOAD16_BYTE( "3.bin", 0x60000, 0x10000, CRC(a3ab61c6) SHA1(5cf82d1aa1f548fb3c243c625e4ff52c8714bacc) ) // ^
- ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(c1c4c701) SHA1(4dd751418ee0f8ae766e2fe47f752d0758d7d682) ) // ^
- ROM_LOAD16_BYTE( "2.f89", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
-
- ROM_REGION( 0x14000, "audiocpu", 0 )
- ROM_LOAD( "jb1_cd67", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
- ROM_CONTINUE( 0x10000, 0x4000 )
- ROM_CONTINUE( 0x0c000, 0x4000 )
-
- ROM_REGION( 0x80000, "pc080sn", 0 )
- ROM_LOAD32_BYTE( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
- ROM_LOAD32_BYTE( "18.ic7", 0x40000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
- ROM_LOAD32_BYTE( "15.ic10", 0x00001, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
- ROM_LOAD32_BYTE( "16.ic9", 0x40001, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
- ROM_LOAD32_BYTE( "13.ic12", 0x00002, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
- ROM_LOAD32_BYTE( "14.ic11", 0x40002, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
- ROM_LOAD32_BYTE( "11.ic14", 0x00003, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
- ROM_LOAD32_BYTE( "12.ic13", 0x40003, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
-
- ROM_REGION( 0xa0000, "sprites", ROMREGION_INVERT )
- ROM_LOAD32_BYTE( "jb2_ic62", 0x00003, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD32_BYTE( "20.bin", 0x40003, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) ) // dumped multiple times, always the same
- ROM_LOAD32_BYTE( "jb2_ic60", 0x80003, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
- ROM_LOAD32_BYTE( "jb2_ic78", 0x00002, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
- ROM_LOAD32_BYTE( "jb2_ic77", 0x40002, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
- ROM_LOAD32_BYTE( "jb2_ic76", 0x80002, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
- ROM_LOAD32_BYTE( "jb2_ic93", 0x00001, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
- ROM_LOAD32_BYTE( "jb2_ic92", 0x40001, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
- ROM_LOAD32_BYTE( "jb2_ic91", 0x80001, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
- ROM_LOAD32_BYTE( "jb2_i121", 0x00000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
- ROM_LOAD32_BYTE( "jb2_i120", 0x40000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
- ROM_LOAD32_BYTE( "jb2_i119", 0x80000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
-
- ROM_REGION( 0x200, "pals", 0 )
- ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
- ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
- ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
-ROM_END
-
-/* red 'Imnoe' PCB */
-ROM_START( jumpingi )
- ROM_REGION( 0xa0000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "05.ic3", 0x00000, 0x20000, CRC(69ac4af4) SHA1(39055573e412e2591f7a68f9fee5919528529544) )
- ROM_LOAD16_BYTE( "03.ic6", 0x00001, 0x20000, CRC(38975cdc) SHA1(23c02a4574a95904805d5f458c06c77c14d11c14) )
- ROM_LOAD16_BYTE( "06.ic2", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) ) // b22-03.23
- ROM_LOAD16_BYTE( "04.ic5", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) ) // b22-04.24
- ROM_LOAD16_BYTE( "02", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
-
- ROM_REGION( 0x14000, "audiocpu", 0 )
- ROM_LOAD( "01.ic53", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
- ROM_CONTINUE( 0x10000, 0x4000 )
- ROM_CONTINUE( 0x0c000, 0x4000 )
-
- ROM_REGION( 0x80000, "pc080sn", 0 )
- ROM_LOAD32_BYTE( "13.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
- ROM_LOAD32_BYTE( "14.ic7", 0x40000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
- ROM_LOAD32_BYTE( "11.ic10", 0x00001, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
- ROM_LOAD32_BYTE( "12.ic9", 0x40001, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
- ROM_LOAD32_BYTE( "09.ic12", 0x00002, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
- ROM_LOAD32_BYTE( "10.ic11", 0x40002, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
- ROM_LOAD32_BYTE( "07.ic14", 0x00003, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
- ROM_LOAD32_BYTE( "08.ic13", 0x40003, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
-
- ROM_REGION( 0xa0000, "sprites", ROMREGION_INVERT )
- ROM_LOAD32_BYTE( "15.ic62", 0x00003, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD32_BYTE( "19.ic61", 0x40003, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) )
- ROM_LOAD32_BYTE( "23.ic60", 0x80003, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
- ROM_LOAD32_BYTE( "16.ic78", 0x00002, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
- ROM_LOAD32_BYTE( "20.ic77", 0x40002, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
- ROM_LOAD32_BYTE( "24.ic76", 0x80002, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
- ROM_LOAD32_BYTE( "17.ic93", 0x00001, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
- ROM_LOAD32_BYTE( "21.ic92", 0x40001, 0x10000, CRC(16e1b0ff) SHA1(1467a317d07a447d01113e6b6b9f5aca30cb0dcb) )
- ROM_LOAD32_BYTE( "25.ic91", 0x80001, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
- ROM_LOAD32_BYTE( "18.ic121", 0x00000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
- ROM_LOAD32_BYTE( "22.ic120", 0x40000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
- ROM_LOAD32_BYTE( "26.ic119", 0x80000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
-
- ROM_REGION( 0x200, "pals", 0 )
- ROM_LOAD( "jp2.ic56", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) ) // PAL16R6A-2CN
- ROM_LOAD( "jp1.ic13", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) ) // PAL20L8A-2CNS
- ROM_LOAD( "jp3.ic51", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // PAL16L8A-2CN z80 address decoder?
-ROM_END
-
-
-void rbisland_state::init_rbisland()
-{
- uint8_t *ROM = memregion("audiocpu")->base();
- membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
-}
-
-void rbisland_state::init_jumping()
-{
- m_jumping_latch = 0;
- save_item(NAME(m_jumping_latch));
-}
-
-
-GAME( 1987, rbisland, 0, rbisland, rbisland, rbisland_state, init_rbisland, ROT0, "Taito Corporation", "Rainbow Islands (new version)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, rbislando, rbisland, rbisland, rbisland, rbisland_state, init_rbisland, ROT0, "Taito Corporation", "Rainbow Islands (old version)", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1989, jumping, rbisland, jumping, jumping, rbisland_state, init_jumping, ROT0, "bootleg", "Jumping (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, jumpinga, rbisland, jumping, jumping, rbisland_state, init_jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, jumpingi, rbisland, jumpingi, jumping, rbisland_state, init_jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 3, Imnoe PCB)", MACHINE_SUPPORTS_SAVE )
-
-GAME( 1988, rbislande, 0, rbisland, rbisland, rbisland_state, init_rbisland, ROT0, "Taito Corporation", "Rainbow Islands - Extra Version", MACHINE_SUPPORTS_SAVE )
-