driver
driver ddragon.c
source ddragon.c (ddragon.c on mamedev.org)
games Dangerous Dungeons
Dark Tower
Double Dragon (bootleg with 3xM6809, set 1)
Double Dragon (bootleg with 3xM6809, set 2)
Double Dragon (bootleg with HD6309)
Double Dragon (bootleg with M6803)
Double Dragon (bootleg)
Double Dragon (Japan)
Double Dragon (US Set 1)
Double Dragon (US Set 2)
Double Dragon (World Set 1)
Double Dragon (World Set 2)
Double Dragon II - The Revenge (US)
Double Dragon II - The Revenge (World)
Super Toffy
Thunder Strike (Newer)
Thunder Strike (Older)
Toffy
information 0.33b3 [Carlos A. Lozano, Rob Rosenbrock, Chris Moore, Phil Stroffolino, Ernesto Corvi]


TODO:

- Banking in Toffy / Super Toffy

- DIPS etc. in Toffy / Super Toffy


NOTES:

- Double Dragon has a crash which sometimes occurs at the very end of the game (right before the final animation sequence). It occurs because of a jump look up table: BAD3: LDY #$BADD and BAD7: JSR [A,Y]. At the point of the crash A is 0x3e which causes a jump to 0x3401 (background tile ram) which obviously doesn't contain proper code and causes a crash. The jump table has 32 entries, and only the last contains an invalid jump vector. A is set to 0x3e as a result of code at 0x625f - it reads from the shared spriteram (0x2049 in main cpu memory space), copies the value to 0x523 (main ram) where it is later fetched and shifted to make 0x3e. So... it's not clear where the error is - the 0x1f value is actually written to shared RAM by the main CPU - perhaps the MCU should modify it before the main CPU reads it back? Perhaps 0x1f should never be written at all? If you want to trace this further please submit a proper fix! In the meantime I have patched the error by making sure the invalid jump is never taken - this fixes the crash (see ddragon_spriteram_r).

- Does this make Super Toffy the sequel to a rip-off / bootleg of a conversion kit which could be applied to a bootleg double dragon :-p?


WIP:

- 0.122u7: Major cleanup to the ddragon driver [Aaron Giles]: Improved video and interrupt timing. Consolidated common memory maps and input ports. Added save state support. Correct clocks.

- 0.113u2: Changed VSync to 57.444853 Hz.

- 0.105u4: More dipswitch improvements to the Double Dragon driver [Twisty].

- 0.103: David Haywood added partial updates and boosted the interleave in the Double Dragon driver.

- 0.84u5: Fixed MSM5205 and MSM6295 balance.

- 0.77: Bryan McPhail fixed video & interrupt timing derived from Xain schematics and confirmed on real DD board, corrected interrupt handling, epecially to MCU (but one semi-hack remains), Thunder Strike now boots but sprites don't appear (I had them working at one point, can't remember what broke them again), fixed Dangerous Dungeons, added World version of Double Dragon (actually same roms as the bootleg, but confirmed from real board) and removed stereo audio flag (still on Toffy - does it have it?).

- 9th July 2001: Kevin Eshbach submitted an update for the Double Dragon and Double Dragon II drivers, fixing some dipswitch settings and sound frequency.

- 2nd September 2000: Nicola Salmoria fixed a 6309 bug which affected Double Dragon.

- 12th July 2000: Nicola Salmoria fixed the ADPCM sound frequency in Double Dragon and did some general cleanup in the driver.

- 0.33b3: Added ddragon.c driver and vidhrdwddragon.c.

PCB information
ddungeon Dangerous Dungeons
[May/07/2000]
 
 Dangerous Dungeons (running on bootleg Double Dragon H/W)
 
 This romset taken from a bootleg Double Dragon boardset.
 It had a 63701 located on the main pcb and on a plug-in 
 daughterboard was a 68705 !
 The 68705 was located where rom 5 would have normally been.
 The 63701 and 68705 are not dumped, but i have them in my
 possession in case someone can dump them, contact me!
 
 -
darktowr Dark Tower
[Apr/24/2003]
 
 Dark Tower (C) 19?? The Game Room, Anaheim, CA
 
 Conversion for Technos Double Dragon PCB (TA-0021-P1-4)
 
 Appears to use original Double Dragon ROMs at
 locations 95, 94, 30, 25, 114, 110, 108 and 77 and
 PROMs at 16 and 101.
 Also appears to use original 637B01 MCU at location 38.
 
 Has custom daughterboard plugged into 27256 socket at location 23.
 Daughterboard contains a 68705 MCU, a 74LS374, a 74LS245,
 a 74LS138 and a crystal marked "Nymph C016018).
 The part number was scratched off off the 68705, but there
 was another part number on the underside of the chip that
 they overlooked.
 
 The 68705 was not protected.
 The code is in the file called 68705prt.mcu
 
 -
ddragon Double Dragon (Japan)
[Apr/18/98]
 
 Double Dragon (bootleg)
 Technos 
 
 CPU: HD63C09EP
 SND: HD68A09P + YM2151 + YM3012 + 2xOki M5205
 
 The special cpu (HD63701YOP) is replaced by a small board with the
 following compenant on it :
 
    One PAL : PAL168ACN
    A RAM : TMM2016BP-10
    A CPU : HD68A09P
    A ROM : TMM24128AP -> IC38
 
 Other roms :
 
 IC20 -> IC26 : program roms
 IC30         : sound program
 IC98 -> IC99 : adpcm sounds
 other roms are sprites/tiles.
 
 
 [Apr/10/98]
 -------------------------------
 Double Dragon by TECHNOS (1987)
 -------------------------------
 
 Location       Type     File ID     Checksum
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 P1 IC30       27256      21J-0        E819
 P1 IC26       27256      21J-1        A46A
 P1 IC25       27256      21J-2        FE01
 P1 IC24       27256      21J-3        0926
 P1 IC23       27256      21J-4        75D5
 P1 IC20       27256      21J-5        A851
 P1 IC96       27512      21J-6        03B2
 P1 IC94       27512      21J-7        DBE7
 P2 IC78       27512      21J-8        34E0
 P2 IC77       27512      21J-9        E904
 P2 IC117      27512      21J-A        5DA8
 P2 IC116      27512      21J-B        C5CA
 P2 IC115      27512      21J-C        394C
 P2 IC114      27512      21J-D        1267
 P2 IC113      27512      21J-E        F07C
 P2 IC112      27512      21J-F        EF6B
 P2 IC111      27512      21J-G        FE2F
 P2 IC110      27512      21J-H        2BEF
 P2 IC119      27512      21J-I        1571
 P2 IC118      27512      21J-J        B69B
 P2 IC16       N82S131    21JL-0       1229
 P1 IC100      N82S129    21JK-0       01D0
 
 
 Note:  P1 - Top PCB      (TA-0021-P1-4)
        P2 - Lower PCB    (TA-0021-P2-4)
 
 
 
 
 [May/07/2000]
 
 Double Dragon MCU Image (Taken from a bootleg DD PCB)
 
 This rom was located on a daughterboard that
 was plugged into a 63701 socket. On the board was several
 TTL chips and one rom containing the included image.
 When the PCB boots up, it proclaims that the 63701 is OK.
 
 I don't know if this image is useful to fix the needed MCU image
 of Double Dragon. 
 
 -
 
 
 
 [Nov/26/2001]
 
 Double Dragon (bootleg)
 1985 (Taito)
 
 Most of the common bootlegs run on a twin board, but this game runs on a single board. 
 The sound hardware is also slightly different.
 
 CPU: 6809
 SND: 6809, YM2203 x2, oki 5205 x2, ym3014 x2, upc324 x2
 XTAL: 20.0MHz, 24.0MHz, resonator csb480E connected to OKI 5205's
 RAM: 2064 x2, 6116 x5, 2148 x3
 DIPs: 8 position x2
 PALs: PAL-G (near gfx ROMs), PAL-P (near program ROMs)
 PROMs: PR1, PR2, PR3, PR4 (types 82s123 and 82s129)
 Other: EL1200 (label on PCB says EL1200, chip markings are scratched off)
 
 Board Layout:
 
                                  CSB380E
            20.0MHz  2203          5205   324 
                     2203   6116   5205   324 
 DD21        2148     DD1                 3014
 DD20        2148     DD2                 3014
 DD19                 DD3
 DD18        6116     6809   PR1
 DD17                 2064   PR2
 DD16         PR3     DD5
 DD15                 DD6
 DD14         2064    DD7
 DD13   PAL-G  DD4    DD8   6116
 DD12        6116     DD9   PR4
    DD11              6809  PAL-P         2148
    DD10              EL1200     24.0MHz  6116
                    
 
 -
 
 [Feb/12/2005]
 
 Double Dragon (bootleg)  
 N.revisione 15-30  
 CPU:
 1x Hitachi HD637B01Y0P 
 1x Hitachi HD63C09EP 
 1x Motorola MC68B09P  
 
 ROMs:
 14x M27512ZB (1-2-9-10-11-12-13-14-15-16-17-18-19-20) 
 6x M27PC256NL (3-4-5-6-7-8)  
 
 Note:
 JAMMA - Not Working  
 Dumped 12/02/2005 
 
 -
ddragon2 Double Dragon II - The Revenge (World)
[Apr/18/98]
 
 Double Dragon II: The Revenge ©1988 Technos Japan Corp.
 
 CPUs: 63C09 (not 6809), Z80 (x2)
 Sound: YM2151, OKI ADPCM chip.
 
 X1 = 3.579545 MHz
 X2 = 12.000 MHz
 
 No encryption junk evident.
 
 -
stoffy Super Toffy
[Aug/26/2000]
 
 Super Toffy - Unico 1994
 
 Main cpu: 	MC6809EP
 Sound cpu: 	MC6809P
 Sound: 		YM2151
 Clocks:		12 MHz, 3.579MHz
 
 Graphics custom: MDE-2001
 
 -
tstrike Thunder Strike (Newer)
[Apr/24/2003]
 
 Thunder Strike (C) 19XX The Game Room, Anaheim, CA
 
 Conversion for Technos Double Dragon PCB (TA-0021-P1-4)
 
 Has custom daughterboard plugged into 27256 socket at location 23.
 Daughterboard contains a 68705 MCU, a 74LS374, a 74LS245, a 74LS138
 and a crystal marked "Nymph C016018). The part number was scratchedoff
 off the 68705, but there was another part number on the underside
 of the chip that they overlooked.
 
 The 68705 was not protected.
 The code is in the file called 68705prt.mcu
 
 -
toffy Toffy
[Jan/17/2002]
 
 Dumped by ...
2004-2008 MAWS all copyrights belong to their respective owners