mirror of
https://github.com/libretro/mame2003-plus-libretro.git
synced 2026-11-07 04:16:07 -10:00
Sega Mega Drive bootlegs in their own driver (drivers/megadriv_acbl.c), as in current MAME (#2175)
Phase 2.3/5 of the Sega VDP / segac2.c clean-up: the coin-op bootlegs of Mega Drive games move from drivers/segac2.c to drivers/megadriv_acbl.c, with the board variants of current MAME, and the nine new sets we have the ROMs for are added. The Mega Drive part stays shared with the other Mega Drive based boards (includes/segac2.h). - Moved: aladmdb, barek2ch, barek3mb, jparkmb, sonic2mb, sonic3mb, twinktmb (titles as in current MAME). Same code paths as before: frames and audio identical to the previous build. - New: barekch, barek2mb, barek3mba, biohzdmb, bk3ssrmb, mk3mdb, srmdb, srssf2mb, ssf2mdb. - The board variants of MAME: the version register, 6 button pads (MAME's TH counter with the 1.5ms timeout), the 3rd I/O port coins, the DIP switches at 0x770070 of the scrambled boards (and the coins at 0x770078 of biohzdmb), the 6MB linear map of ssf2mdb, the PIC16C57 of barek2mb (emulated, with its latches; the 68000 byte writes reach both halves of the bus as on the real CPU; T0 is not connected), the simulated PIC of barek3mba. - The new sets take V-INT / H-INT through the VDP interrupt enables, as on the real hardware (mk3mdb took a V-INT before its RAM vector was set and crashed); the moved sets keep the old mode. - Big-endian hosts: the descrambling of the bootlegs uses BYTE_XOR_LE, and the PIC program of barek2mb is put in the host order the PIC core fetches its opcodes in. - Mega Drive VDP: in H32 mode the sprite table base uses bit 0 of register 5 (AT9), as on the real VDP and in MAME; it was always masked as in H40 (ssf2mdb sets 0x6d in H32: the fighters were missing; the sprites of mt_bbros were garbled). - PIC16C5x core: the PC wraps at the end of the program memory (the 2K parts start at 0x7ff and ran past the ROM), and the save states no longer register the ports and STATUS through R.picRAM before it is set (a NULL pointer: saving a game with a PIC crashed). They are in the data RAM, saved with the CPU memory. - Save states: the pad, frame counter and PIC latch state. - Metadata: mame2003-plus.xml (the bootleg entries regenerated), CHANGELOG.md. Claude-Session: https://claude.ai/code/session_01N3fzdsnzkQVtgYtYzqepjX Co-authored-by: Claude <[email protected]>
This commit is contained in:
1 parent
0e919473ca
commit
9649c81834
9 files changed
+2463
-704
No files matched your search
@@ -27,11 +27,14 @@ The list of direct contributors to the MAME 2003-Plus github repository can be f
|
||||
* Backfire!
|
||||
* Back Fire (Tecmo)
|
||||
* Bang Bang Busters
|
||||
* Bare Knuckle (scrambled bootleg of Mega Drive version) - Romset `barekch` - 6 button pads
|
||||
* Bare Knuckle II (bootleg of Mega Drive version) - Romset `barek2mb` - its PIC16C57 emulated
|
||||
* Bare Knuckle II (chinese bootleg of Megadrive version)
|
||||
* Bare Knuckle III (bootleg of Megadrive version)
|
||||
* Baryon: Future Assault
|
||||
* Beastie Feastie (Epos Tristar 9000) - Romset `beastf`; the Pac-Man conversion is now `beastfp`, as in current MAME
|
||||
* Big Fight - Big Trouble In The Atlantic Ocean
|
||||
* Bio-Hazard Battle (scrambled bootleg of Mega Drive version) - Romset `biohzdmb`
|
||||
* Bomb Kick
|
||||
* Boogie Wings
|
||||
* Born To Fight
|
||||
@@ -161,6 +164,7 @@ The list of direct contributors to the MAME 2003-Plus github repository can be f
|
||||
* Monsters World (Bootleg Of Super Pang)
|
||||
* Monster Maulers
|
||||
* More More
|
||||
* Mortal Kombat 3 (scrambled bootleg of Mega Drive version) - Romset `mk3mdb` - 6 button pads
|
||||
* Mortal Race
|
||||
* Mouse Shooter GoGo
|
||||
* Ms. Pacman Twin
|
||||
@@ -250,8 +254,10 @@ The list of direct contributors to the MAME 2003-Plus github repository can be f
|
||||
* Super Bishi Bashi Championship (ver JAA, 2 Players)
|
||||
* Super Bubble Bobble (Sun Mixing, Megadrive clone hardware)
|
||||
* Super Doubles Tennis (Deco Cassette)
|
||||
* Sunset Riders (scrambled bootleg of Mega Drive version) - Romset `srmdb`
|
||||
* Super Monaco GP
|
||||
* Super Rider
|
||||
* Super Street Fighter II - The New Challengers (scrambled bootleg of Mega Drive version) - Romset `ssf2mdb` - 6 button pads
|
||||
* Super Trio
|
||||
* SWAT Police
|
||||
* Tang Tang
|
||||
@@ -304,6 +310,9 @@ The list of direct contributors to the MAME 2003-Plus github repository can be f
|
||||
* 800 Fathoms (older), Knock Out!! (bootleg, set 2 and set 3), Triple Punch (set 2) - Romsets `800fatha`, `knockoutb`, `knockoutc`, `triplepa`
|
||||
* Alien Storm (bootlegs of the 3 players and Japan sets) - Romsets `astorm3d`, `astormud`, `astormjd`
|
||||
* Asura Buster - Eternal Warriors (USA), (Japan, set 2) and (Japan) (ARCADIA review build) - Romsets `asurabus`, `asurabusja`, `asurabusjr`; the Japan set 1 is now `asurabusj`, as in current MAME
|
||||
* Bare Knuckle III (bootleg of Mega Drive version, alt set, the PIC simulated) - Romset `barek3mba` - not working, as in current MAME
|
||||
* Bare Knuckle III / Sunset Riders (scrambled bootleg of Mega Drive versions) - Romset `bk3ssrmb` - not working, as in current MAME (only Bare Knuckle III boots)
|
||||
* Sunset Riders / Super Street Fighter II - The New Challengers (scrambled bootleg of Mega Drive versions) - Romset `srssf2mb` - not working, as in current MAME (the order of the ROMs is not known)
|
||||
* Battle Shark (Japan, Joystick)
|
||||
* Bloxeed (bootleg) - Romset `bloxeedd`
|
||||
* Botanic (French version)
|
||||
@@ -835,6 +844,9 @@ Notes on this option:
|
||||
* Sega Mega Play: its own driver (`drivers/megaplay.c`, as in current MAME), the Mega Drive part shared with the other Mega Drive based boards; Tecmo World Cup is now `mp_twcup` and the BIOS version 2 ROM `epr-a15294.ic2`, as in current MAME
|
||||
* Sega Mega-Tech: its own driver (`drivers/megatech.c`, as in current MAME), sets, ROMs and names as in current MAME (good dumps of `mt_bbros`, `mt_ggolf`, `mt_gng`, `mt_tetri`, the instruction ROMs in the cart at 0x300000); the Master System carts now run, on the Mega Drive in Mark III mode as in current MAME (the VDP in mode 4, the Z80 with the Sega mapper); the BIOS cart slots as in current MAME (the menu lists the one cart in slot 1, the slot RAM, the window into the cart), the BIOS display in its 224 line mode (the MENU title was cut) and drawn line by line; the Mega Drive VDP line timing and partial updates now count its own lines below the BIOS screen (they used the scanlines of the double screen); the 68000 writes to 0xa02000 of the boards without the Mega Play BIOS no longer go through a NULL pointer (Great Golf and Great Soccer crashed)
|
||||
* Sega Mega Play: the BIOS overlay is transparent on colour 0 of both its palettes and covers its borders, as in current MAME (the boot logo screen was hidden behind a green background)
|
||||
* Sega Mega Drive based bootlegs: their own driver (`drivers/megadriv_acbl.c`, as in current MAME), with the board variants of current MAME (the 6 button pads, the DIP switches at 0x770070 of the scrambled boards, the 3rd I/O port coins, the PIC16C57 of `barek2mb`); the new sets take their V-INT / H-INT through the VDP interrupt enables as on the real hardware (Mortal Kombat 3 crashed at boot), the descrambling of the bootlegs and the PIC of `barek2mb` now also work on big-endian hosts
|
||||
* Sega Mega Drive VDP: in H32 mode the sprite table base uses bit 0 of register 5, as on the real VDP (the fighters of Super Street Fighter II were missing, the sprites of Bonanza Bros. on Mega-Tech were garbled)
|
||||
* PIC16C5x CPU core: the program counter wraps at the end of the program memory (the 2K parts start at 0x7ff and ran past the ROM), and the save states no longer register the ports and STATUS through a NULL pointer (the save of a game with a PIC crashed); these are in the data RAM, saved with the CPU memory
|
||||
* Save states (netplay, RunAhead with a second instance) of the Mega Drive based boards: the Z80 RAM and bus state and the Mega-Tech / Mega Play BIOS registers and RAM are saved (Gunstar Heroes and Mazin Wars Mega Play went out of sync after loading a state in a new instance); the SN76496 PSG is saved, and the YM2612 DAC enable is restored from its own register (0x2b, it was read from 0x2d)
|
||||
* Sega System 18 (also Moonwalker): the VDP palette writes no longer overflow the System 16 palette RAM (they corrupted the memory after it, e.g. garbled graphics in Shadow Dancer), and the sprite shadows over the VDP layer no longer index past the palette
|
||||
* Save states (RunAhead, netplay) of the Sega System 18 hardware: the RF5C68 PCM, the YM2612/YM3438 envelope, LFO, frequency and timer state, the VDP layer, the sound ROM bank
|
||||
|
||||
+1
-1
@@ -529,7 +529,7 @@ SOURCES_C += \
|
||||
$(CORE_DIR)/drivers/system24.c $(CORE_DIR)/machine/system24_machine.c $(CORE_DIR)/vidhrdw/system24_vidhrdw.c \
|
||||
$(CORE_DIR)/vidhrdw/segaic24.c $(CORE_DIR)/vidhrdw/segas18.c \
|
||||
$(CORE_DIR)/drivers/segas32.c $(CORE_DIR)/machine/segas32.c $(CORE_DIR)/vidhrdw/segas32.c \
|
||||
$(CORE_DIR)/vidhrdw/segavdp.c $(CORE_DIR)/vidhrdw/segac2_vidhrdw.c $(CORE_DIR)/drivers/segac2.c $(CORE_DIR)/drivers/megaplay.c $(CORE_DIR)/drivers/megatech.c \
|
||||
$(CORE_DIR)/vidhrdw/segavdp.c $(CORE_DIR)/vidhrdw/segac2_vidhrdw.c $(CORE_DIR)/drivers/segac2.c $(CORE_DIR)/drivers/megaplay.c $(CORE_DIR)/drivers/megatech.c $(CORE_DIR)/drivers/megadriv_acbl.c \
|
||||
$(CORE_DIR)/drivers/stv.c $(CORE_DIR)/drivers/stvhacks.c $(CORE_DIR)/machine/stvcd.c \
|
||||
$(CORE_DIR)/machine/scudsp.c \
|
||||
$(CORE_DIR)/vidhrdw/stvvdp1_vidhrdw.c $(CORE_DIR)/vidhrdw/stvvdp2_vidhrdw.c \
|
||||
|
||||
+687
-15
@@ -212719,8 +212719,8 @@
|
||||
<input players="2" control="joy8way" buttons="2" coins="1"/>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="barek3mb" sourcefile="segac2.c">
|
||||
<description>Bare Knuckle III (bootleg of Megadrive version)</description>
|
||||
<game name="barek3mb" sourcefile="megadriv_acbl.c">
|
||||
<description>Bare Knuckle III (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="6.u19" size="524288" crc="2de19519" sha1="f5fcef1da8b5370e399f0451382e3c6e7754c9c8" region="cpu1" offset="0"/>
|
||||
@@ -212761,8 +212761,8 @@
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="aladmdb" sourcefile="segac2.c">
|
||||
<description>Aladdin (bootleg of Japanese Megadrive version)</description>
|
||||
<game name="aladmdb" sourcefile="megadriv_acbl.c">
|
||||
<description>Aladdin (bootleg of Mega Drive version)</description>
|
||||
<year>1993</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="m1.bin" size="524288" crc="5e2671e4" sha1="54705c7614fc7b5a1065478fa41f51dd1d8045b7" region="cpu1" offset="1"/>
|
||||
@@ -212792,10 +212792,10 @@
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="barek2ch" sourcefile="segac2.c">
|
||||
<description>Bare Knuckle II (Chinese bootleg of Megadrive version)</description>
|
||||
<game name="barek2ch" sourcefile="megadriv_acbl.c">
|
||||
<description>Bare Knuckle II (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<manufacturer>bootleg</manufacturer>
|
||||
<rom name="u14" size="524288" crc="b0ee177f" sha1="d63e6ee30fe7f4aaab098d3920eabc456730b2c5" region="cpu1" offset="1"/>
|
||||
<rom name="u15" size="524288" crc="09264195" sha1="c5439731d932c90a57d68c4d82c9ebed8a01bd53" region="cpu1" offset="0"/>
|
||||
<rom name="u16" size="524288" crc="6c814fc4" sha1="edaf5117b19d3fb40218c5f7c4b5099c9189f1be" region="cpu1" offset="100001"/>
|
||||
@@ -212899,8 +212899,8 @@
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="sonic2mb" sourcefile="segac2.c">
|
||||
<description>Sonic The Hedgehog 2 (bootleg of Megadrive version)</description>
|
||||
<game name="sonic2mb" sourcefile="megadriv_acbl.c">
|
||||
<description>Sonic The Hedgehog 2 (bootleg of Mega Drive version)</description>
|
||||
<year>1993</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="m1" size="524288" crc="7b40aa24" sha1="247882cd1f412366d61aeb4d85bbeefd5f108e1d" region="cpu1" offset="1"/>
|
||||
@@ -212946,8 +212946,8 @@
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="sonic3mb" sourcefile="segac2.c">
|
||||
<description>Sonic The Hedgehog 3 (bootleg of Megadrive version)</description>
|
||||
<game name="sonic3mb" sourcefile="megadriv_acbl.c">
|
||||
<description>Sonic The Hedgehog 3 (bootleg of Mega Drive version)</description>
|
||||
<year>1993</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="sonic3-4.bin" size="524288" crc="b7318bb8" sha1="1707b563794c3ab4a1f04cb449efdd6f817317fb" region="cpu1" offset="0"/>
|
||||
@@ -212975,8 +212975,98 @@
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="imperfect" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="jparkmb" sourcefile="segac2.c">
|
||||
<description>Jurassic Park (bootleg of Megadrive version)</description>
|
||||
<game name="barek2mb" sourcefile="megadriv_acbl.c">
|
||||
<description>Bare Knuckle II (bootleg of Mega Drive version)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="m1.bin" size="524288" crc="1c1fa718" sha1="393488f7747478728eb4f20c10b0cfce3b188719" region="cpu1" offset="1"/>
|
||||
<rom name="m2.bin" size="524288" crc="59ee0905" sha1="0e9f1f6e17aae2dd99bf9d7f640568b48ba699c7" region="cpu1" offset="0"/>
|
||||
<rom name="m3.bin" size="524288" crc="6ec5af5d" sha1="9088a2d4cff5e7eb439ebaa91ad3bfff11366127" region="cpu1" offset="100001"/>
|
||||
<rom name="m4.bin" size="524288" crc="d8c61e0d" sha1="3d06e656f6621bb0741211f80c1ecff1669475ee" region="cpu1" offset="100000"/>
|
||||
<rom name="bk_pic16c57rcp.bin" size="4096" crc="434ad1b7" sha1="9241554793c7375cf58239e762481a4b80a51df6" region="cpu3" offset="1000"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="cpu" name="PIC16C57" clock="1000000"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="3" coins="1"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="6 Coins/1 Credit"/>
|
||||
<dipvalue name="5 Coins/1 Credit"/>
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="8 Coins/3 Credits"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="5 Coins/3 Credits"/>
|
||||
<dipvalue name="3 Coins/2 Credits"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="2 Coins/3 Credits"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
<dipvalue name="1 Coin/5 Credits"/>
|
||||
<dipvalue name="1 Coin/6 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Lives">
|
||||
<dipvalue name="1" default="yes"/>
|
||||
<dipvalue name="2"/>
|
||||
<dipvalue name="3"/>
|
||||
<dipvalue name="4"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="Easy" default="yes"/>
|
||||
<dipvalue name="Medium"/>
|
||||
<dipvalue name="Hard"/>
|
||||
<dipvalue name="Hardest"/>
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="barek3mba" sourcefile="megadriv_acbl.c" cloneof="barek3mb" romof="barek3mb">
|
||||
<description>Bare Knuckle III (bootleg of Mega Drive version)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="u4" size="524288" crc="6b116813" sha1="df9811c5da9f58f2bba462447b792f3067b10411" region="cpu1" offset="0"/>
|
||||
<rom name="u3" size="524288" crc="8c891e5a" sha1="aa1fb1aa2c68b1ae24e1ac30a82bc4e454b952b5" region="cpu1" offset="1"/>
|
||||
<rom name="u6" size="524288" crc="a2ec29e2" sha1="8e8eee64554396070455a737f4009d33d2ffa535" region="cpu1" offset="100000"/>
|
||||
<rom name="u5" size="524288" crc="f79e0028" sha1="54022eadc6e345c049b7357b17b636b31d2af914" region="cpu1" offset="100001"/>
|
||||
<rom name="u8" size="524288" crc="55be9542" sha1="f78c273858f3ae77b36f1229797e80a4ab102a03" region="cpu1" offset="200000"/>
|
||||
<rom name="u7" merge="2.u16" size="524288" crc="bba4a585" sha1="32c59729943d7b4c1a39f2a2b0dae9ce16991e9c" region="cpu1" offset="200001"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="3" coins="1"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
<dipvalue name="1 Coin/5 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Lives">
|
||||
<dipvalue name="1" default="yes"/>
|
||||
<dipvalue name="2"/>
|
||||
<dipvalue name="3"/>
|
||||
<dipvalue name="4"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="Very Easy"/>
|
||||
<dipvalue name="Easy"/>
|
||||
<dipvalue name="Normal" default="yes"/>
|
||||
<dipvalue name="Hard"/>
|
||||
<dipvalue name="Very Hard"/>
|
||||
</dipswitch>
|
||||
<driver status="preliminary" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="jparkmb" sourcefile="megadriv_acbl.c">
|
||||
<description>Jurassic Park (bootleg of Mega Drive version)</description>
|
||||
<year>1993</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="f24.bin" size="524288" crc="bdd851d2" sha1="1a75922e848fd5c7cd4ab102c99effcfcf382097" region="cpu1" offset="0"/>
|
||||
@@ -213024,8 +213114,590 @@
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="twinktmb" sourcefile="segac2.c">
|
||||
<description>Twinkle Tale (bootleg of Megadrive version)</description>
|
||||
<game name="barekch" sourcefile="megadriv_acbl.c">
|
||||
<description>Bare Knuckle (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg</manufacturer>
|
||||
<rom name="1.u1" size="131072" crc="a119b5ef" sha1="710ef6dc340a2c3741af69cd9a3d16e5fdd73be6" region="cpu1" offset="1"/>
|
||||
<rom name="2.u2" size="131072" crc="7d4ad276" sha1="9ab2a28356cc5c36eee8dba40c04a64cf5d2cfde" region="cpu1" offset="0"/>
|
||||
<rom name="3.u3" size="131072" crc="af6a9122" sha1="0f2bac1ad20f5918b04dd5a503121445029e4c84" region="cpu1" offset="40001"/>
|
||||
<rom name="4.u4" size="131072" crc="98245384" sha1="f4f96f369764a7d204ec414f053b25da662ff401" region="cpu1" offset="40000"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="6" coins="2"/>
|
||||
<dipswitch name="SW1:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW1:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW2:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW3:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW3:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW3:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW3:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW3:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="SW3:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Lives">
|
||||
<dipvalue name="3" default="yes"/>
|
||||
<dipvalue name="4"/>
|
||||
<dipvalue name="5"/>
|
||||
<dipvalue name="6"/>
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="bk3ssrmb" sourcefile="megadriv_acbl.c">
|
||||
<description>Bare Knuckle III / Sunset Riders (scrambled bootleg of Mega Drive versions)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="1.u15" size="524288" crc="120a4b64" sha1="7084fde0d08143f48f83d2afef30522d75c7889c" region="cpu1" offset="0"/>
|
||||
<rom name="5.u14" size="524288" crc="1eb625d3" sha1="8f67ab874643b3eafe91768df84ea4a3b8a5fa82" region="cpu1" offset="1"/>
|
||||
<rom name="2.u13" size="524288" crc="af439685" sha1="5cc55608355e11096c9fadb8d2460cf66704deec" region="cpu1" offset="100000"/>
|
||||
<rom name="6.u12" size="524288" crc="24d31e12" sha1="64c1b968e1ee5d0355d902e280f33e4466f27b07" region="cpu1" offset="100001"/>
|
||||
<rom name="3.u11" size="524288" crc="dfa5c478" sha1="079a9cad5c2252b2d65aa3c4dc9cba331078eeb9" region="cpu1" offset="200000"/>
|
||||
<rom name="7.u10" size="524288" crc="bba4a585" sha1="32c59729943d7b4c1a39f2a2b0dae9ce16991e9c" region="cpu1" offset="200001"/>
|
||||
<rom name="4.u9" size="262144" crc="e5f1ab97" sha1="0f4c527043f1272e75a996f4f7270c6ea4ed3c4d" region="cpu1" offset="300000"/>
|
||||
<rom name="8.u8" size="262144" crc="32ee1048" sha1="1b135c200b4440e95a7d1766b4b404ddd238872d" region="cpu1" offset="300001"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="3" coins="2"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
<dipvalue name="1 Coin/5 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Lives">
|
||||
<dipvalue name="1" default="yes"/>
|
||||
<dipvalue name="2"/>
|
||||
<dipvalue name="3"/>
|
||||
<dipvalue name="4"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="Very Easy"/>
|
||||
<dipvalue name="Easy"/>
|
||||
<dipvalue name="Normal" default="yes"/>
|
||||
<dipvalue name="Hard"/>
|
||||
<dipvalue name="Very Hard"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<driver status="preliminary" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="srssf2mb" sourcefile="megadriv_acbl.c">
|
||||
<description>Sunset Riders / Super Street Fighter II - The New Challengers (scrambled bootleg of Mega Drive versions)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="1.u15" size="262144" crc="b40982ca" sha1="fa7b266d346e2a79936984b2b989f3e8b6a90223" region="cpu1" offset="0"/>
|
||||
<rom name="3.u14" size="262144" crc="81ac9700" sha1="cdc7d49d75b8d4a5ff41181a063e1917483afd75" region="cpu1" offset="1"/>
|
||||
<rom name="2.u13" size="262144" crc="e5f1ab97" sha1="0f4c527043f1272e75a996f4f7270c6ea4ed3c4d" region="cpu1" offset="80000"/>
|
||||
<rom name="4.u12" size="262144" crc="32ee1048" sha1="1b135c200b4440e95a7d1766b4b404ddd238872d" region="cpu1" offset="80001"/>
|
||||
<rom name="ys104-01.u5" size="2097152" crc="055dea8b" sha1="663005c6c87046e955c6295bf25379d258dd4066" region="cpu1" offset="100000"/>
|
||||
<rom name="ys104-02.u6" size="2097152" crc="6fcf8db5" sha1="319f320110966058ccec8da640877e8a82c3e4b4" region="cpu1" offset="300000"/>
|
||||
<rom name="ys104-03.u7" size="2097152" crc="0771d570" sha1="6bb93a1fd8f0f2a1a12e9cd3eec762ac46912632" region="cpu1" offset="500000"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="3" coins="2"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
<dipvalue name="1 Coin/5 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Lives">
|
||||
<dipvalue name="1" default="yes"/>
|
||||
<dipvalue name="2"/>
|
||||
<dipvalue name="3"/>
|
||||
<dipvalue name="4"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="Very Easy"/>
|
||||
<dipvalue name="Easy"/>
|
||||
<dipvalue name="Normal" default="yes"/>
|
||||
<dipvalue name="Hard"/>
|
||||
<dipvalue name="Very Hard"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<driver status="preliminary" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="biohzdmb" sourcefile="megadriv_acbl.c">
|
||||
<description>Bio-Hazard Battle (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1995</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="u14" size="524288" crc="b96cf28c" sha1="0a49cf2fc0a2712b423b4e1f95a4befe3bf5c746" region="cpu1" offset="1"/>
|
||||
<rom name="u15" size="524288" crc="41a8eae8" sha1="a9db565f4ca4d71c81fbb44fd429221951887bab" region="cpu1" offset="0"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="3" coins="2"/>
|
||||
<dipswitch name="DSWA:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWA:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWB:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:1">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:2">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:3">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:4">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:5">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:6">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:7">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="DSWC:8">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="mk3mdb" sourcefile="megadriv_acbl.c">
|
||||
<description>Mortal Kombat 3 (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1996</year>
|
||||
<manufacturer>bootleg / Midway</manufacturer>
|
||||
<rom name="1.u1" size="524288" crc="0dc01b23" sha1="f1aa7ac88c8e3deb5a0a065862722e9d27b87b4c" region="cpu1" offset="80001"/>
|
||||
<rom name="2.u3" size="524288" crc="50250235" sha1="9f9e06f26163b92c76397fde43b38b3536bcb637" region="cpu1" offset="180001"/>
|
||||
<rom name="3.u9" size="524288" crc="493404c1" sha1="73f4bd1eeeee3f175f4378ab406a97f94f88880b" region="cpu1" offset="280001"/>
|
||||
<rom name="4.u11" size="524288" crc="a52156b8" sha1="0990ef1fb3427a5d3c262e264feb25c1db75ed33" region="cpu1" offset="380001"/>
|
||||
<rom name="6.u2" size="524288" crc="9852fd6f" sha1="348befeca5129c5ea2c142760ec93511f98f23cc" region="cpu1" offset="80000"/>
|
||||
<rom name="5.u4" size="524288" crc="ed6a6d13" sha1="eaab912ee035ece03f7cfceb1b546004399daad5" region="cpu1" offset="180000"/>
|
||||
<rom name="7.u10" size="524288" crc="a124d8d1" sha1="d391b130992701d0fae7e827ba314b8368d809de" region="cpu1" offset="280000"/>
|
||||
<rom name="8.u12" size="524288" crc="8176f7cc" sha1="375e1e982b97ba709fb160b04f56f6aa2d580104" region="cpu1" offset="380000"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="6" coins="2"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="Easiest" default="yes"/>
|
||||
<dipvalue name="Easy"/>
|
||||
<dipvalue name="Medium"/>
|
||||
<dipvalue name="Hard"/>
|
||||
<dipvalue name="Hardest"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Unused">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Unused">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Unused">
|
||||
<dipvalue name="Off" default="yes"/>
|
||||
<dipvalue name="On"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Demo Sounds">
|
||||
<dipvalue name="Off"/>
|
||||
<dipvalue name="On" default="yes"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Blood">
|
||||
<dipvalue name="Off"/>
|
||||
<dipvalue name="On" default="yes"/>
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="ssf2mdb" sourcefile="megadriv_acbl.c">
|
||||
<description>Super Street Fighter II - The New Challengers (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1994</year>
|
||||
<manufacturer>bootleg / Capcom</manufacturer>
|
||||
<rom name="rom_a" size="2097152" crc="59726521" sha1="3120bac17f56c01ffb9d3f9e31efa0263e3774af" region="cpu1" offset="0"/>
|
||||
<rom name="rom_b" size="2097152" crc="7dad5540" sha1="9279068b2218d239fdd557dd959ac70e74853178" region="cpu1" offset="1"/>
|
||||
<rom name="rom_c" size="524288" crc="deb48624" sha1="39ffa7de7b808e0b95cb039bb381705d77420933" region="cpu1" offset="400000"/>
|
||||
<rom name="rom_d" size="524288" crc="b99f6a5b" sha1="adbe28a7522024bc66328ac86fecf9ded3310e8e" region="cpu1" offset="400001"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="6" coins="2"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="0 (Easiest)"/>
|
||||
<dipvalue name="1"/>
|
||||
<dipvalue name="2"/>
|
||||
<dipvalue name="3"/>
|
||||
<dipvalue name="4" default="yes"/>
|
||||
<dipvalue name="5"/>
|
||||
<dipvalue name="6"/>
|
||||
<dipvalue name="7 (Hardest)"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Speed">
|
||||
<dipvalue name="0 (Slowest)"/>
|
||||
<dipvalue name="1"/>
|
||||
<dipvalue name="2"/>
|
||||
<dipvalue name="3"/>
|
||||
<dipvalue name="4" default="yes"/>
|
||||
<dipvalue name="5"/>
|
||||
<dipvalue name="6"/>
|
||||
<dipvalue name="7"/>
|
||||
<dipvalue name="8"/>
|
||||
<dipvalue name="9"/>
|
||||
<dipvalue name="10 (Fastest)"/>
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="srmdb" sourcefile="megadriv_acbl.c">
|
||||
<description>Sunset Riders (scrambled bootleg of Mega Drive version)</description>
|
||||
<year>1993</year>
|
||||
<manufacturer>bootleg / Konami</manufacturer>
|
||||
<rom name="u1" size="131072" crc="c59f33bd" sha1="bd5bce7698a70ea005b79ab34bcdb056872ef980" region="cpu1" offset="1"/>
|
||||
<rom name="u2" size="131072" crc="9125c054" sha1="c73bdeb6b11c59d2b5f5968959b02697957ca894" region="cpu1" offset="0"/>
|
||||
<rom name="u3" size="131072" crc="0fee0fbe" sha1="001e0fda12707512aad537e533acf28e726e6107" region="cpu1" offset="40001"/>
|
||||
<rom name="u4" size="131072" crc="fc2aed41" sha1="27eb3957f5ed26ee5276523b1df46fa7eb298e1f" region="cpu1" offset="40000"/>
|
||||
<chip type="cpu" name="68000" clock="7670442"/>
|
||||
<chip type="cpu" name="Z80" clock="3579540"/>
|
||||
<chip type="audio" name="YM2612" clock="7670442"/>
|
||||
<chip type="audio" name="SN76496" clock="3579540"/>
|
||||
<video screen="raster" orientation="horizontal" width="320" height="224" aspectx="4" aspecty="3" refresh="60.000000"/>
|
||||
<sound channels="1"/>
|
||||
<input players="2" control="joy8way" buttons="2" coins="2"/>
|
||||
<dipswitch name="Coinage">
|
||||
<dipvalue name="4 Coins/1 Credit"/>
|
||||
<dipvalue name="3 Coins/1 Credit"/>
|
||||
<dipvalue name="2 Coins/1 Credit"/>
|
||||
<dipvalue name="1 Coin/1 Credit" default="yes"/>
|
||||
<dipvalue name="1 Coin/2 Credits"/>
|
||||
<dipvalue name="1 Coin/3 Credits"/>
|
||||
<dipvalue name="1 Coin/4 Credits"/>
|
||||
<dipvalue name="1 Coin/5 Credits"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Difficulty">
|
||||
<dipvalue name="Easy" default="yes"/>
|
||||
<dipvalue name="Medium"/>
|
||||
<dipvalue name="Hard"/>
|
||||
<dipvalue name="Hardest"/>
|
||||
</dipswitch>
|
||||
<dipswitch name="Lives">
|
||||
<dipvalue name="3" default="yes"/>
|
||||
<dipvalue name="4"/>
|
||||
<dipvalue name="5"/>
|
||||
<dipvalue name="6"/>
|
||||
</dipswitch>
|
||||
<driver status="good" color="good" sound="good" graphic="good" palettesize="2048"/>
|
||||
</game>
|
||||
<game name="twinktmb" sourcefile="megadriv_acbl.c">
|
||||
<description>Twinkle Tale (bootleg of Mega Drive version)</description>
|
||||
<year>1993</year>
|
||||
<manufacturer>bootleg / Sega</manufacturer>
|
||||
<rom name="m2.bin" size="524288" crc="44424f8f" sha1="e16318bfdf869765c821c264cf9a7e6c728f7073" region="cpu1" offset="0"/>
|
||||
|
||||
@@ -704,11 +704,9 @@ void pic16C5x_init(void)
|
||||
state_save_register_UINT8("pic16C5x", cpu, "TRISA", &R.TRISA, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "TRISB", &R.TRISB, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "TRISC", &R.TRISC, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "PORTA", &R.PORTA, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "PORTB", &R.PORTB, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "PORTC", &R.PORTC, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "Old_T0", &old_T0, 1);
|
||||
state_save_register_UINT8("pic16C5x", cpu, "STR", &R.STATUS, 1);
|
||||
/* STATUS and the ports are in the data RAM (picRAM), saved with the memory
|
||||
of the CPU: R.picRAM is not set yet here */
|
||||
state_save_register_UINT8("pic16C5x", cpu, "RAM_mask", &picRAMmask, 1);
|
||||
state_save_register_UINT16("pic16C5x", cpu, "WDT", &R.WDT, 1);
|
||||
state_save_register_UINT16("pic16C5x", cpu, "Prescaler", &R.prescaler, 1);
|
||||
@@ -858,7 +856,7 @@ int pic16C5x_execute(int cycles)
|
||||
CALL_MAME_DEBUG;
|
||||
|
||||
R.opcode.d = M_RDOP(R.PC);
|
||||
R.PC++;
|
||||
R.PC = (R.PC + 1) & ADDR_MASK; /* wraps to 0 after the reset vector 0x7ff of the 2K parts */
|
||||
R.PCL++;
|
||||
|
||||
if ((R.opcode.w.l & 0xff0) != 0x000) { /* Do all opcodes except the 00? ones */
|
||||
|
||||
+18
-7
@@ -3652,13 +3652,24 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
|
||||
DRIVER( songjang ) /* (c) 2000 WAH LAB */
|
||||
DRIVER( shuifeng ) /* (c) 1999 WAH LAB */
|
||||
DRIVER( sbubsm ) /* (c) 1996 Sun Mixing */
|
||||
DRIVER( barek3mb ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( aladmdb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( barek2ch ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( sonic2mb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( sonic3mb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( jparkmb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( twinktmb ) /* (c) 1993 bootleg / Sega */
|
||||
|
||||
/* Mega Drive based bootlegs (drivers/megadriv_acbl.c) */
|
||||
DRIVER( aladmdb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( sonic2mb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( sonic3mb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( barek2mb ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( barek3mba ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( twinktmb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( jparkmb ) /* (c) 1993 bootleg / Sega */
|
||||
DRIVER( barekch ) /* (c) 1994 bootleg */
|
||||
DRIVER( bk3ssrmb ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( srssf2mb ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( biohzdmb ) /* (c) 1995 bootleg / Sega */
|
||||
DRIVER( mk3mdb ) /* (c) 1996 bootleg / Midway */
|
||||
DRIVER( ssf2mdb ) /* (c) 1994 bootleg / Capcom */
|
||||
DRIVER( srmdb ) /* (c) 1993 bootleg / Konami */
|
||||
DRIVER( barek3mb ) /* (c) 1994 bootleg / Sega */
|
||||
DRIVER( barek2ch ) /* (c) 1994 bootleg */
|
||||
|
||||
/* Sega MegaTech, the number shown ia on the label of the instruction rom */
|
||||
DRIVER( mt_beast ) /* 01 */
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
+4
-674
@@ -1734,32 +1734,7 @@ static MEMORY_WRITE16_START( sbubsm_writemem )
|
||||
{ 0xff0000, 0xffffff, MWA16_RAM, &genesis_68k_ram }, /* Main Ram */
|
||||
MEMORY_END
|
||||
|
||||
static MEMORY_READ16_START( barek2ch_readmem )
|
||||
{ 0x000000, 0x1fffff, MRA16_ROM }, /* Cartridge Program Rom */
|
||||
{ 0x202000, 0x2023ff, MRA16_RAM },
|
||||
{ 0xa10000, 0xa1001f, genesis_68000_io_r }, /* Genesis Input */
|
||||
{ 0xa11000, 0xa11203, genesis_ctrl_r },
|
||||
{ 0xa00000, 0xa0ffff, genesis_68k_to_z80_r },
|
||||
{ 0xc00000, 0xc0001f, segavdp_r }, /* VDP Access */
|
||||
{ 0xe00000, 0xe1ffff, MRA16_BANK3 },
|
||||
{ 0xfe0000, 0xfeffff, MRA16_BANK4 },
|
||||
{ 0xff0000, 0xffffff, MRA16_RAM }, /* Main Ram */
|
||||
MEMORY_END
|
||||
|
||||
static MEMORY_WRITE16_START( barek2ch_writemem )
|
||||
{ 0x000000, 0x1fffff, MWA16_ROM }, /* Cartridge Program Rom */
|
||||
/* { 0x200000, 0x20007f, MWA16_RAM }, */
|
||||
{ 0x200000, 0x2023ff, MWA16_RAM }, /* tested */
|
||||
{ 0xa10000, 0xa1001f, genesis_68000_io_w, &genesis_io_ram }, /* Genesis Input */
|
||||
{ 0xa11000, 0xa11203, genesis_ctrl_w },
|
||||
{ 0xa00000, 0xa0ffff, genesis_68k_to_z80_w },
|
||||
{ 0xc00000, 0xc0000f, segavdp_w }, /* VDP Access */
|
||||
{ 0xc00010, 0xc00017, sn76489_w }, /* SN76489 Access */
|
||||
{ 0xfe0000, 0xfeffff, MWA16_BANK4 },
|
||||
{ 0xff0000, 0xffffff, MWA16_RAM, &genesis_68k_ram }, /* Main Ram */
|
||||
MEMORY_END
|
||||
|
||||
static MEMORY_READ16_START( barek3_readmem )
|
||||
static MEMORY_READ16_START( genesis_cart_readmem )
|
||||
{ 0x000000, 0x3fffff, MRA16_ROM }, /* Cartridge Program Rom */
|
||||
{ 0xa10000, 0xa1001f, genesis_68000_io_r }, /* Genesis Input */
|
||||
{ 0xa11000, 0xa11203, genesis_ctrl_r },
|
||||
@@ -1769,7 +1744,7 @@ static MEMORY_READ16_START( barek3_readmem )
|
||||
{ 0xff0000, 0xffffff, MRA16_RAM }, /* Main Ram */
|
||||
MEMORY_END
|
||||
|
||||
static MEMORY_WRITE16_START( barek3_writemem )
|
||||
static MEMORY_WRITE16_START( genesis_cart_writemem )
|
||||
{ 0x000000, 0x3fffff, MWA16_ROM }, /* Cartridge Program Rom */
|
||||
{ 0xa10000, 0xa1001f, genesis_68000_io_w, &genesis_io_ram }, /* Genesis Input */
|
||||
{ 0xa11000, 0xa11203, genesis_ctrl_w },
|
||||
@@ -3223,344 +3198,6 @@ GENESIS_PORTS
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
INPUT_PORTS_START( aladbl )
|
||||
PORT_START /* Joypad 1 (3 button + start) NOT READ DIRECTLY */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT_NAME( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1, "P1 Throw" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT_NAME( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1, "P1 Sword" )
|
||||
PORT_BIT_NAME( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1, "P1 Jump" )
|
||||
|
||||
|
||||
PORT_START /* Joypad 2 (3 button + start) Not used */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START /* 3rd I/O port */
|
||||
|
||||
/* As I don't know how it is on real hardware, this is more a guess than anything */
|
||||
PORT_START /* MCU hooked up via readinputport (3) */
|
||||
PORT_DIPNAME( 0x07, 0x01, DEF_STR( Coinage ) ) /* code at 0x1b2a50 - unsure if there are so many settings */
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 1C_7C ) )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* to avoid it being changed and corrupting Coinage settings */
|
||||
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) /* code at 0x1b2680 */
|
||||
PORT_DIPSETTING( 0x10, "Easy" ) /* "PRACTICE" */
|
||||
PORT_DIPSETTING( 0x00, "Normal" ) /* "NORMAL" */
|
||||
PORT_DIPSETTING( 0x20, "Hard" ) /* "DIFFICULT" */
|
||||
PORT_BIT_IMPULSE( 0x100, IP_ACTIVE_HIGH, IPT_COIN1, 1 ) /* needed to avoid credits getting mad */
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( barek2ch )
|
||||
PORT_START /* IN0 player 1 controller */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
|
||||
|
||||
PORT_START /* IN1 player 2 controller */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
|
||||
|
||||
PORT_START
|
||||
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) /* apparently no use for these */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
|
||||
PORT_START
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, "SW1:4" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "SW1:5" )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "SW1:6" )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "SW1:7" )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "SW1:8" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START
|
||||
PORT_DIPNAME( 0x01, 0x01, "SW2:1" ) /* at least some of the first 3 seem to control difficulty (enemies attack later / less frequently by switching these) */
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "SW2:2" )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, "SW2:3" )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x08, "3" )
|
||||
PORT_DIPSETTING( 0x00, "4" )
|
||||
PORT_DIPNAME( 0xe0, 0xe0, "Starting Level" )
|
||||
PORT_DIPSETTING( 0xe0, "1" )
|
||||
PORT_DIPSETTING( 0xc0, "2" )
|
||||
PORT_DIPSETTING( 0xa0, "3" )
|
||||
PORT_DIPSETTING( 0x80, "4" )
|
||||
PORT_DIPSETTING( 0x60, "5" )
|
||||
PORT_DIPSETTING( 0x40, "6" )
|
||||
PORT_DIPSETTING( 0x20, "7" )
|
||||
PORT_DIPSETTING( 0x00, "8" )
|
||||
|
||||
PORT_START /* present on PCB but there doesn't seem to be any read for them */
|
||||
PORT_DIPNAME( 0x01, 0x01, "SW3:1" )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "SW3:2" )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, "SW3:3" )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, "SW3:4" )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "SW3:5" )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "SW3:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "SW3:7" )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "SW3:8" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( barek3 )
|
||||
PORT_START /* IN0 player 1 controller */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT_NAME( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1, "P1 Button A" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT_NAME( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1, "P1 Button B" )
|
||||
PORT_BIT_NAME( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1, "P1 Button C" )
|
||||
|
||||
PORT_START /* IN1 player 2 controller */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
|
||||
PORT_BIT_NAME( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2, "P2 Button A" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT_NAME( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2, "P2 Button B" )
|
||||
PORT_BIT_NAME( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2, "P2 Button C" )
|
||||
|
||||
PORT_START
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
|
||||
PORT_START
|
||||
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
|
||||
PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPSETTING( 0x03, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x18, "1" )
|
||||
PORT_DIPSETTING( 0x10, "2" )
|
||||
PORT_DIPSETTING( 0x08, "3" )
|
||||
PORT_DIPSETTING( 0x00, "4" )
|
||||
PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Difficulty ) )
|
||||
PORT_DIPSETTING( 0x60, "Very_Easy" )
|
||||
PORT_DIPSETTING( 0x40, "Easy" )
|
||||
PORT_DIPSETTING( 0xe0, "Normal" )
|
||||
PORT_DIPSETTING( 0x20, "Hard" )
|
||||
PORT_DIPSETTING( 0x00, "Very_Hard" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( sonic2mb )
|
||||
PORT_START /* IN0 player 1 controller */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
|
||||
|
||||
PORT_START /* Joypad 2 (3 button + start) Not used */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START /* 3rd I/O port */
|
||||
|
||||
PORT_START /* DSW via readinputport 3 */
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x00fc, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x0300, 0x0200, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x0000, "1" )
|
||||
PORT_DIPSETTING( 0x0100, "2" )
|
||||
PORT_DIPSETTING( 0x0200, "3" )
|
||||
PORT_DIPSETTING( 0x0300, "4" )
|
||||
PORT_DIPNAME( 0x3c00, 0x2000, "Timer Speed" )
|
||||
PORT_DIPSETTING( 0x3c00, "0 (Slowest)" )
|
||||
PORT_DIPSETTING( 0x3800, "1" )
|
||||
PORT_DIPSETTING( 0x3400, "2" )
|
||||
PORT_DIPSETTING( 0x3000, "3" )
|
||||
PORT_DIPSETTING( 0x2c00, "4" )
|
||||
PORT_DIPSETTING( 0x2800, "5" )
|
||||
PORT_DIPSETTING( 0x2400, "6" )
|
||||
PORT_DIPSETTING( 0x2000, "7" )
|
||||
PORT_DIPSETTING( 0x1c00, "8" )
|
||||
PORT_DIPSETTING( 0x1800, "9" )
|
||||
PORT_DIPSETTING( 0x1400, "10" )
|
||||
PORT_DIPSETTING( 0x1000, "11" )
|
||||
PORT_DIPSETTING( 0x0c00, "12" )
|
||||
PORT_DIPSETTING( 0x0800, "13" )
|
||||
PORT_DIPSETTING( 0x0400, "14" )
|
||||
PORT_DIPSETTING( 0x0000, "15 (Fastest)" )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, "SW1:7" )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, "SW1:8" )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( sonic3mb )
|
||||
PORT_START /* Joypad 1 (3 button + start) NOT READ DIRECTLY */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT_NAME( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1, "P1 Throw" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT_NAME( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1, "P1 Sword" )
|
||||
PORT_BIT_NAME( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1, "P1 Jump" )
|
||||
|
||||
|
||||
PORT_START /* Joypad 2 (3 button + start) Not used */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START /* 3rd I/O port */
|
||||
|
||||
/* As I don't know how it is on real hardware, this is more a guess than anything */
|
||||
PORT_START /* MCU hooked up via readinputport (3) */
|
||||
/* TODO: actual diplocations */
|
||||
/* lower 4 bits is for coinage? Not read by 68k */
|
||||
PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_DIPNAME( 0x30, 0x10, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x30, "1" )
|
||||
PORT_DIPSETTING( 0x20, "2" )
|
||||
PORT_DIPSETTING( 0x10, "3" )
|
||||
PORT_DIPSETTING( 0x00, "4" )
|
||||
PORT_DIPNAME( 0xc0, 0x00, "Time Limit" )
|
||||
PORT_DIPSETTING( 0xc0, "1:00" )
|
||||
PORT_DIPSETTING( 0x80, "2:00" )
|
||||
PORT_DIPSETTING( 0x40, "3:00" )
|
||||
PORT_DIPSETTING( 0x00, "4:00" )
|
||||
|
||||
PORT_START /* coins hooked up via readinputport (4) */
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_COIN2 )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( jparkmb )
|
||||
PORT_START /* Joypad 1 (3 button + start) NOT READ DIRECTLY */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1)
|
||||
PORT_BIT_NAME( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1, "P1 Throw" )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT_NAME( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1, "P1 Sword" )
|
||||
PORT_BIT_NAME( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1, "P1 Jump" )
|
||||
|
||||
|
||||
PORT_START /* Joypad 2 (3 button + start) Not used */
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START /* 3rd I/O port */
|
||||
|
||||
/* As I don't know how it is on real hardware, this is more a guess than anything */
|
||||
PORT_START
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START /* coins hooked up via readinputport (4) */
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_COIN2 )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
/******************************************************************************
|
||||
Sound interfaces
|
||||
******************************************************************************/
|
||||
@@ -3726,7 +3363,7 @@ MACHINE_DRIVER_END
|
||||
MACHINE_DRIVER_START( genesis_base )
|
||||
/*basic machine hardware */
|
||||
MDRV_CPU_ADD_TAG("main", M68000, 53693100 / 7)
|
||||
MDRV_CPU_MEMORY(barek3_readmem, barek3_writemem) /* each board sets its own map */
|
||||
MDRV_CPU_MEMORY(genesis_cart_readmem, genesis_cart_writemem) /* each board sets its own map */
|
||||
MDRV_CPU_VBLANK_INT(genesis_vblank_interrupt,1)
|
||||
|
||||
MDRV_CPU_ADD_TAG("sound", Z80, 53693100 / 15)
|
||||
@@ -3755,7 +3392,7 @@ MACHINE_DRIVER_START( genesis_base )
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( genesis )
|
||||
MACHINE_DRIVER_START( genesis )
|
||||
|
||||
MDRV_IMPORT_FROM( genesis_base )
|
||||
MDRV_SOUND_ADD(SN76496, sn76489_intf)
|
||||
@@ -3771,20 +3408,6 @@ static MACHINE_DRIVER_START( sbubsm )
|
||||
MDRV_VISIBLE_AREA(0, 319, 0, 223)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( barek2ch )
|
||||
|
||||
MDRV_IMPORT_FROM( genesis )
|
||||
MDRV_CPU_MODIFY("main")
|
||||
MDRV_CPU_MEMORY(barek2ch_readmem,barek2ch_writemem)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( barek3 )
|
||||
|
||||
MDRV_IMPORT_FROM( genesis )
|
||||
MDRV_CPU_MODIFY("main")
|
||||
MDRV_CPU_MEMORY(barek3_readmem,barek3_writemem)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/******************************************************************************
|
||||
Rom Definitions
|
||||
*******************************************************************************
|
||||
@@ -4243,69 +3866,6 @@ ROM_START( sbubsm )
|
||||
/* ROM_LOAD( "89c51.bin", 0x0000, 0x1000, NO_DUMP ) */
|
||||
ROM_END
|
||||
|
||||
ROM_START( aladmdb )
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(5e2671e4) SHA1(54705c7614fc7b5a1065478fa41f51dd1d8045b7) )
|
||||
ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(142a0366) SHA1(6c94aa9936cd11ccda503b52019a6721e64a32f0) )
|
||||
ROM_LOAD16_BYTE( "m3.bin", 0x100001, 0x080000, CRC(0feeeb19) SHA1(bd567a33077ab9997871d21736066140d50e3d70) )
|
||||
ROM_LOAD16_BYTE( "m4.bin", 0x100000, 0x080000, CRC(bc712661) SHA1(dfd554d000399e17b4ddc69761e572195ed4e1f0))
|
||||
ROM_END
|
||||
|
||||
ROM_START( barek2ch ) /* all 27c4001 */
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 )
|
||||
ROM_LOAD16_BYTE( "u14", 0x000001, 0x080000, CRC(b0ee177f) SHA1(d63e6ee30fe7f4aaab098d3920eabc456730b2c5) )
|
||||
ROM_LOAD16_BYTE( "u15", 0x000000, 0x080000, CRC(09264195) SHA1(c5439731d932c90a57d68c4d82c9ebed8a01bd53) )
|
||||
ROM_LOAD16_BYTE( "u16", 0x100001, 0x080000, CRC(6c814fc4) SHA1(edaf5117b19d3fb40218c5f7c4b5099c9189f1be) )
|
||||
ROM_LOAD16_BYTE( "u17", 0x100000, 0x080000, CRC(cae1922e) SHA1(811c2164b6c467a49af4b0d22f151cd13c9efbc9) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( barek3mb )
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "6.u19", 0x000000, 0x080000, CRC(2de19519) SHA1(f5fcef1da8b5370e399f0451382e3c6e7754c9c8) )
|
||||
ROM_LOAD16_BYTE( "3.u18", 0x000001, 0x080000, CRC(db900e82) SHA1(172a4fe01a0ffd1ea3aed74f2c58234fd55b876d) )
|
||||
ROM_LOAD16_BYTE( "4.u15", 0x100000, 0x080000, CRC(6353b4b1) SHA1(9f89a2f02170496ca798b89e37e1f2bae0e9155d) )
|
||||
ROM_LOAD16_BYTE( "1.u14", 0x100001, 0x080000, CRC(24d31e12) SHA1(64c1b968e1ee5d0355d902e280f33e4466f27b07) )
|
||||
ROM_LOAD16_BYTE( "5.u17", 0x200000, 0x080000, CRC(0feb974f) SHA1(ed1a25b6f1669dc6061d519985b6373fa89176c7) )
|
||||
ROM_LOAD16_BYTE( "2.u16", 0x200001, 0x080000, CRC(bba4a585) SHA1(32c59729943d7b4c1a39f2a2b0dae9ce16991e9c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( sonic2mb )
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "m1", 0x000001, 0x080000, CRC(7b40aa24) SHA1(247882cd1f412366d61aeb4d85bbeefd5f108e1d) )
|
||||
ROM_LOAD16_BYTE( "m2", 0x000000, 0x080000, CRC(84b3f758) SHA1(19846b9d951db6f78f3e155d33f1b6349fb87f1a) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( sonic3mb )
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 ) // 68000 Code
|
||||
ROM_LOAD16_BYTE( "sonic3-4.bin", 0x000000, 0x080000, CRC(b7318bb8) SHA1(1707b563794c3ab4a1f04cb449efdd6f817317fb) )
|
||||
ROM_LOAD16_BYTE( "sonic3-3.bin", 0x000001, 0x080000, CRC(1898479f) SHA1(5f1c581157959e11979882d2180ae4b98c6a89d5) )
|
||||
ROM_LOAD16_BYTE( "sonic3-2.bin", 0x100000, 0x080000, CRC(02232f45) SHA1(8cdcb156603108ac9d3ef888f75adb5327abce1a) )
|
||||
ROM_LOAD16_BYTE( "sonic3-1.bin", 0x100001, 0x080000, CRC(cee2f679) SHA1(4cc7a8a228f7fc4f7a38c69a65585765751a49e5) )
|
||||
|
||||
ROM_REGION( 0x1000, REGION_CPU2, ROMREGION_ERASE00 )
|
||||
/* ROM_LOAD( "pic16c57xtp", 0x0000, 0x1000, NO_DUMP ) */
|
||||
ROM_END
|
||||
|
||||
ROM_START( jparkmb ) /* same PCB as twinktmb, JPA-028 label */
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "f24.bin", 0x000000, 0x080000, CRC(bdd851d2) SHA1(1a75922e848fd5c7cd4ab102c99effcfcf382097) )
|
||||
ROM_LOAD16_BYTE( "f23.bin", 0x000001, 0x080000, CRC(8dc66c71) SHA1(a2741ffa583a4b779b7be3e3ae628e97f792ee3d) )
|
||||
ROM_LOAD16_BYTE( "f22.bin", 0x100000, 0x080000, CRC(36337d06) SHA1(d537cff2c8ed58da146faf390c09252be359ccd1) )
|
||||
ROM_LOAD16_BYTE( "f21.bin", 0x100001, 0x080000, CRC(6ede6b6b) SHA1(cf29300d9278ea03f54cf54ea582bdd8b9bbdbbd) )
|
||||
|
||||
ROM_REGION( 0x2000, REGION_CPU2, ROMREGION_ERASE00 )
|
||||
// ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
ROM_START( twinktmb ) /* same PCB as sonic2mb, but in this one the PIC is populated */
|
||||
ROM_REGION( 0x400000, REGION_CPU1, 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "m2.bin", 0x000000, 0x080000, CRC(44424f8f) SHA1(e16318bfdf869765c821c264cf9a7e6c728f7073) )
|
||||
ROM_LOAD16_BYTE( "m1.bin", 0x000001, 0x080000, CRC(69aa916e) SHA1(7ea6b571fd0b6494051d5846ee9b4564b7692766) )
|
||||
|
||||
ROM_REGION( 0x2000, REGION_CPU2, ROMREGION_ERASE00 )
|
||||
/* ROM_LOAD( "pic16c57xtp", 0x0000, 0x2000, NO_DUMP ) */
|
||||
ROM_END
|
||||
|
||||
ROM_START( pclubj ) /* Print Club (c)1995 Atlus */
|
||||
ROM_REGION( 0x200000, REGION_CPU1, 0 )
|
||||
ROM_LOAD16_BYTE( "epr18171.32", 0x000000, 0x080000, CRC(6c8eb8e2) SHA1(bbd885a83269524215c1d8470544086e3e82c05c) )
|
||||
@@ -4808,228 +4368,6 @@ DRIVER_INIT( sbubsm )
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( aladbl_w )
|
||||
{
|
||||
/*
|
||||
Values returned from the log file :
|
||||
- aladbl_w : 1b2a6c - data = 6600 (each time a coin is inserted)
|
||||
- aladbl_w : 1b2a82 - data = 0000 (each time a coin is inserted)
|
||||
- aladbl_w : 1b2d18 - data = aa00 (only once on reset)
|
||||
- aladbl_w : 1b2d42 - data = 0000 (only once on reset)
|
||||
*/
|
||||
log_cb(RETRO_LOG_DEBUG, LOGPRE "aladbl_w : %06x - data = %04x\n",activecpu_get_pc(),data);
|
||||
}
|
||||
|
||||
|
||||
READ16_HANDLER( aladbl_r )
|
||||
{
|
||||
if (activecpu_get_pc()==0x1b2a56)
|
||||
{
|
||||
static UINT16 mcu_port;
|
||||
|
||||
mcu_port = readinputport(3);
|
||||
|
||||
if(mcu_port & 0x100)
|
||||
return ((mcu_port & 0x0f) | 0x100); /* coin inserted, calculate the number of coins */
|
||||
else
|
||||
return (0x100); /* MCU status, needed if you fall into a pitfall */
|
||||
}
|
||||
if (activecpu_get_pc()==0x1b2a72) return 0x0000;
|
||||
if (activecpu_get_pc()==0x1b2d24) return (readinputport(3) & 0x00f0) | 0x1200; /* difficulty */
|
||||
if (activecpu_get_pc()==0x1b2d4e) return 0x0000;
|
||||
|
||||
log_cb(RETRO_LOG_DEBUG, LOGPRE "aladbl_r : %06x\n",activecpu_get_pc());
|
||||
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
#define ENERGY_CONSOLE_MODE 1
|
||||
|
||||
DRIVER_INIT( aladbl )
|
||||
{
|
||||
/*
|
||||
Game does a check @ 1afc00 with work ram fff57c that makes it play like it was intended
|
||||
(i.e. 8 energy hits instead of 2) enabled for MAME2003 as it makes the game sweeter to play.
|
||||
*/
|
||||
#if ENERGY_CONSOLE_MODE
|
||||
UINT16 *rom = (UINT16 *)memory_region(REGION_CPU1);
|
||||
rom[0x1afc08/2] = 0x6600;
|
||||
#endif
|
||||
|
||||
/* 220000 = writes to mcu? 330000 = reads? */
|
||||
install_mem_write16_handler(0, 0x220000, 0x220001, aladbl_w);
|
||||
install_mem_read16_handler(0, 0x330000, 0x330001, aladbl_r);
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
DRIVER_INIT( barek2ch )
|
||||
{
|
||||
UINT16 *src = (UINT16 *)memory_region(REGION_CPU1);
|
||||
int i;
|
||||
|
||||
for (i = 0x000000; i < 0x200000 / 2; i++)
|
||||
src[i] = BITSWAP16(src[i], 8, 11, 10, 13, 12, 14, 15, 9, 7, 6, 5, 4, 3, 2, 1, 0);
|
||||
|
||||
src[0x06 / 2] = 0x0210; /* TODO: why is this needed? */
|
||||
|
||||
install_mem_read16_handler(0, 0x380070, 0x380071, input_port_2_word_r );
|
||||
install_mem_read16_handler(0, 0x380078, 0x380079, input_port_3_word_r );
|
||||
install_mem_read16_handler(0, 0x38007a, 0x38007b, input_port_4_word_r );
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
cpu_setbank(3, memory_region(REGION_CPU1) );
|
||||
cpu_setbank(4, &genesis_68k_ram[0]);
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
DRIVER_INIT( barek3 )
|
||||
{
|
||||
data8_t *rom = memory_region(REGION_CPU1);
|
||||
int x;
|
||||
|
||||
for (x = 0x00001; x < 0x300000; x += 2)
|
||||
{
|
||||
rom[x] = BITSWAP8(rom[x], 6,2,4,0,7,1,3,5);
|
||||
}
|
||||
|
||||
install_mem_read16_handler(0, 0x380070, 0x380071, input_port_2_word_r );
|
||||
install_mem_read16_handler(0, 0x380078, 0x380079, input_port_3_word_r );
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
DRIVER_INIT( sonic2mb )
|
||||
{
|
||||
/* 100000 = writes to unpopulated MCU? */
|
||||
install_mem_write16_handler(0, 0x100000, 0x100001, aladbl_w);
|
||||
install_mem_read16_handler(0, 0x300000, 0x300001, input_port_3_word_r);
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
cpu_setbank(3, memory_region(REGION_CPU1) );
|
||||
cpu_setbank(4, &genesis_68k_ram[0]);
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
UINT8 prot_cmd;
|
||||
WRITE16_HANDLER( sonic3mb_prot_w )
|
||||
{
|
||||
prot_cmd = data >> 8;
|
||||
}
|
||||
|
||||
READ16_HANDLER( sonic3mb_prot_r )
|
||||
{
|
||||
UINT16 res = 0;
|
||||
switch (prot_cmd)
|
||||
{
|
||||
/*
|
||||
POST, upper 8-bits part is fixed and needed for booting game,
|
||||
lower is DSW, cfr. PC=0x16c0/0x16c6 subroutines, lower 4 bits not actually handled by 68k side
|
||||
*/
|
||||
case 0x33: res = 0x0300 | (readinputport(3) & 0xff); break;
|
||||
case 0x00:
|
||||
/*
|
||||
TODO: coinage
|
||||
lower 8-bits is adder for coins (i.e. with 0x202 will add 2 credits to the counter),
|
||||
bit 9 is coin state, active high
|
||||
*/
|
||||
res = readinputport(4) & 0x88 ? 0x201 : 0;
|
||||
break;
|
||||
case 0x66:
|
||||
/*
|
||||
handshake or coin status after reading from commands 0x33 or 0x00,
|
||||
if bit 0 is high will tight loop until it's low
|
||||
we currently go the coin status route to not bother handling coin off manually.
|
||||
*/
|
||||
res = readinputport(4) ? 1 : 0;
|
||||
break;
|
||||
default:
|
||||
log_cb(RETRO_LOG_DEBUG, LOGPRE "Unhandled %04x prot command\n", prot_cmd);
|
||||
break;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
DRIVER_INIT( sonic3mb )
|
||||
{
|
||||
/* 100000 = writes to unpopulated MCU? */
|
||||
install_mem_write16_handler(0, 0x200000, 0x200000, sonic3mb_prot_w);
|
||||
install_mem_read16_handler (0, 0x300000, 0x300001, sonic3mb_prot_r);
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
cpu_setbank(3, memory_region(REGION_CPU1) );
|
||||
cpu_setbank(4, &genesis_68k_ram[0]);
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
READ16_HANDLER( jparkmb_r )
|
||||
{
|
||||
if (activecpu_get_pc()==0x1e327a)
|
||||
return (readinputport(4)) ? 0x88 : 0; /* coin hack - should be using PIC instead */
|
||||
if (activecpu_get_pc()==0x1e3254) return 0x0000; /* what's this? dips? */
|
||||
/* logerror("jparkmb_r : %06x\n",m_maincpu->pc()); */
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
DRIVER_INIT( jparkmb )
|
||||
{
|
||||
/* 100000 = writes to unpopulated MCU? */
|
||||
install_mem_write16_handler(0, 0x100000, 0x100001, aladbl_w);
|
||||
install_mem_read16_handler(0, 0x300000, 0x300001, jparkmb_r);
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
cpu_setbank(3, memory_region(REGION_CPU1) );
|
||||
cpu_setbank(4, &genesis_68k_ram[0]);
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
READ16_HANDLER( twinktmb_r )
|
||||
{
|
||||
if (activecpu_get_pc()==0x02f81e)
|
||||
return (readinputport(4)) ? 0x88 : 0; /* coin hack - should be using PIC instead */
|
||||
|
||||
if (activecpu_get_pc()==0x02f84e) return 0x0000; /* what's this? dips? */
|
||||
|
||||
/* logerror("twinktmb_r : %06x\n",m_maincpu->pc()); */
|
||||
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
DRIVER_INIT( twinktmb )
|
||||
{
|
||||
/* boot vectors don't seem to be valid, so they are patched... */
|
||||
data8_t *rom = memory_region(REGION_CPU1);
|
||||
rom[0x01] = 0x00;
|
||||
|
||||
rom[0x04] = 0x00;
|
||||
rom[0x07] = 0x46;
|
||||
rom[0x06] = 0xcc;
|
||||
|
||||
/* 100000 = writes to unpopulated MCU? */
|
||||
install_mem_write16_handler(0, 0x100000, 0x100001, aladbl_w);
|
||||
install_mem_read16_handler(0, 0x300000, 0x300001, twinktmb_r);
|
||||
|
||||
genesis_region = 0x00; /* read via io */
|
||||
|
||||
cpu_setbank(3, memory_region(REGION_CPU1) );
|
||||
cpu_setbank(4, &genesis_68k_ram[0]);
|
||||
|
||||
init_segac2();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
Game Drivers
|
||||
*******************************************************************************
|
||||
@@ -5086,13 +4424,6 @@ GAMEX( 2000, songjang, 0, songjang, songjang, puckpkmn, ROT0, "WAH LAP",
|
||||
GAMEX( 1999, shuifeng, 0, songjang, jzth, puckpkmn, ROT0, "WAH LAP", "Shuihu Feng Yun Zhuan", GAME_IMPERFECT_GRAPHICS )
|
||||
|
||||
/* Bootlegs Using Genesis Hardware */
|
||||
GAME ( 1993, aladmdb, 0, barek3, aladbl, aladbl, ROT0, "bootleg / Sega", "Aladdin (bootleg of Japanese Megadrive version)" )
|
||||
GAME ( 1993, sonic2mb, 0, barek2ch, sonic2mb, sonic2mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Megadrive version)" )
|
||||
GAMEX( 1993, sonic3mb, 0, barek2ch, sonic3mb, sonic3mb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 3 (bootleg of Megadrive version)", GAME_IMPERFECT_GRAPHICS )
|
||||
GAME ( 1993, jparkmb, 0, barek2ch, jparkmb, jparkmb, ROT0, "bootleg / Sega", "Jurassic Park (bootleg of Megadrive version)" )
|
||||
GAME ( 1993, twinktmb, 0, barek2ch, jparkmb, twinktmb, ROT0, "bootleg / Sega", "Twinkle Tale (bootleg of Megadrive version)" )
|
||||
GAME ( 1994, barek2ch, 0, barek2ch, barek2ch, barek2ch, ROT0, "bootleg / Sega", "Bare Knuckle II (Chinese bootleg of Megadrive version)" )
|
||||
GAME ( 1994, barek3mb, 0, barek3, barek3, barek3, ROT0, "bootleg / Sega", "Bare Knuckle III (bootleg of Megadrive version)" )
|
||||
GAME ( 1996, sbubsm, 0, sbubsm, sbubsm, sbubsm, ROT0, "Sun Mixing", "Super Bubble Bobble (Sun Mixing, Megadrive clone hardware)" )
|
||||
|
||||
/* Atlus Print Club 'Games' (C-2 Hardware, might not be possible to support them because they use camera + printer, really just put here for reference) */
|
||||
@@ -5123,7 +4454,6 @@ static void genesis_state_register(void)
|
||||
state_save_register_int ("genesis", 0, "protcount", &protcount);
|
||||
state_save_register_int ("genesis", 0, "protval", &protval);
|
||||
state_save_register_int ("genesis", 0, "cam_data", &cam_data);
|
||||
state_save_register_UINT8 ("genesis", 0, "prot_cmd", &prot_cmd, 1);
|
||||
|
||||
/* Mega-Tech / Mega Play BIOS: the Master System VDP interrupts */
|
||||
state_save_register_UINT8 ("megatech", 0, "hintcount", &hintcount, 1);
|
||||
|
||||
@@ -17,11 +17,14 @@ extern unsigned char *genesis_z80_ram;
|
||||
extern data16_t *genesis_io_ram;
|
||||
|
||||
MACHINE_DRIVER_EXTERN( genesis_base );
|
||||
MACHINE_DRIVER_EXTERN( genesis ); /* genesis_base and the PSG */
|
||||
MACHINE_INIT( genesis );
|
||||
INTERRUPT_GEN( genesis_vblank_interrupt );
|
||||
INTERRUPT_GEN( megatech_irq );
|
||||
void genesis_enable_iack(void);
|
||||
READ16_HANDLER( genesis_68k_to_z80_r );
|
||||
READ16_HANDLER( genesis_68000_io_r );
|
||||
WRITE16_HANDLER( genesis_68000_io_w );
|
||||
|
||||
READ16_HANDLER( genesis_ctrl_r );
|
||||
WRITE16_HANDLER( genesis_ctrl_w );
|
||||
|
||||
@@ -666,8 +666,8 @@ static void vdp_register_w(int data)
|
||||
vdp.scrollbbase = (regdat & 0x07) << 13;
|
||||
break;
|
||||
|
||||
case 0x05: /* Sprite Table Base */
|
||||
vdp.spritebase = (regdat & 0x7e) << 9;
|
||||
case 0x05: /* Sprite Table Base: bit 0 (AT9) is used in H32 mode only */
|
||||
vdp.spritebase = (regdat & ((vdp.regs[12] & 0x01) ? 0x7e : 0x7f)) << 9;
|
||||
break;
|
||||
|
||||
case 0x07: /* BG Colour */
|
||||
@@ -709,6 +709,8 @@ static void vdp_register_w(int data)
|
||||
set_visible_area(0, scrwidth*8-1,
|
||||
Machine->visible_area.min_y,
|
||||
Machine->visible_area.max_y);
|
||||
/* the sprite table base depends on the H40 / H32 mode */
|
||||
vdp.spritebase = (vdp.regs[5] & ((regdat & 0x01) ? 0x7e : 0x7f)) << 9;
|
||||
break;
|
||||
|
||||
case 0x0d: /* HScroll Base */
|
||||
|
||||
Reference in new issue
Block a user