324
326
AM_RANGE(0x8c0130, 0x8c013f) AM_WRITE(SMH_RAM) AM_BASE(&darkhors_tmapscroll2)
329
static UINT32* jclub2_tileram;
330
static int jclub2_gfx_index;
332
static WRITE32_HANDLER( jclub2_tileram_w )
334
COMBINE_DATA(&jclub2_tileram[offset]);
335
gfx_element_mark_dirty(space->machine->gfx[jclub2_gfx_index], offset/(256/4));
339
static ADDRESS_MAP_START( jclub2_map, ADDRESS_SPACE_PROGRAM, 32 )
340
AM_RANGE(0x000000, 0x1fffff) AM_ROM
341
AM_RANGE(0x400000, 0x41ffff) AM_RAM
343
AM_RANGE(0x490040, 0x490043) AM_WRITE(darkhors_eeprom_w)
344
AM_RANGE(0x4e0080, 0x4e0083) AM_READ_PORT("4e0080") AM_WRITE(darkhors_unk1_w)
346
AM_RANGE(0x580000, 0x580003) AM_READ_PORT("580000")
347
AM_RANGE(0x580004, 0x580007) AM_READ_PORT("580004")
348
AM_RANGE(0x580008, 0x58000b) AM_READ(darkhors_input_sel_r)
349
AM_RANGE(0x58000c, 0x58000f) AM_WRITE(darkhors_input_sel_w)
350
AM_RANGE(0x580200, 0x580203) AM_READ(SMH_NOP)
351
AM_RANGE(0x580400, 0x580403) AM_READ_PORT("580400")
352
AM_RANGE(0x580420, 0x580423) AM_READ_PORT("580420")
354
AM_RANGE(0x800000, 0x87ffff) AM_RAM AM_BASE(&spriteram32)
356
AM_RANGE(0x880000, 0x89ffff) AM_WRITE(paletteram32_xBBBBBGGGGGRRRRR_dword_w) AM_BASE(&paletteram32)
357
AM_RANGE(0x8a0000, 0x8bffff) AM_WRITE(SMH_RAM) // this should still be palette ram!
359
AM_RANGE(0x8C0000, 0x8C01ff) AM_RAM
360
AM_RANGE(0x8E0000, 0x8E01ff) AM_RAM
362
AM_RANGE(0x900000, 0x90ffff) AM_RAM_WRITE(jclub2_tileram_w) AM_BASE(&jclub2_tileram) // tile data gets decompressed here by main cpu?
366
static ADDRESS_MAP_START( jclub2o_map, ADDRESS_SPACE_PROGRAM, 32 )
367
AM_RANGE(0x000000, 0x1fffff) AM_ROM
368
AM_RANGE(0x400000, 0x41ffff) AM_RAM
328
373
/***************************************************************************
559
604
GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8, 0, 0x10000/64 ) // color codes should be doubled
608
static const gfx_layout layout_16x16x8_jclub2 =
614
{ 24,16,8,0, 56,48,40,32, 88,80,72,64, 120, 112, 104, 96},
615
{ 0*128,1*128,2*128,3*128,4*128,5*128,6*128,7*128,8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 },
619
static GFXDECODE_START( jclub2 )
620
//GFXDECODE_ENTRY( "maincpu", 0, layout_16x16x8_jclub2, 0, 0x10000/64 ) // color codes should be doubled
562
624
/***************************************************************************
606
668
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
607
669
MACHINE_DRIVER_END
673
static VIDEO_START(jclub2)
675
/* find first empty slot to decode gfx */
676
for (jclub2_gfx_index = 0; jclub2_gfx_index < MAX_GFX_ELEMENTS; jclub2_gfx_index++)
677
if (machine->gfx[jclub2_gfx_index] == 0)
680
assert(jclub2_gfx_index != MAX_GFX_ELEMENTS);
682
/* create the char set (gfx will then be updated dynamically from RAM) */
683
machine->gfx[jclub2_gfx_index] = gfx_element_alloc(machine, &layout_16x16x8_jclub2, (UINT8 *)jclub2_tileram, machine->config->total_colors / 16, 0);
688
static VIDEO_UPDATE(jclub2)
693
static MACHINE_DRIVER_START( jclub2 )
694
MDRV_CPU_ADD("maincpu", M68EC020, 12000000)
695
MDRV_CPU_PROGRAM_MAP(jclub2_map)
696
MDRV_CPU_VBLANK_INT_HACK(darkhors,3)
698
MDRV_NVRAM_HANDLER(darkhors)
701
MDRV_SCREEN_ADD("screen", RASTER)
702
MDRV_SCREEN_REFRESH_RATE(60)
703
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
704
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
705
MDRV_SCREEN_SIZE(0x190, 0x100)
706
MDRV_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
708
MDRV_GFXDECODE(jclub2)
709
MDRV_PALETTE_LENGTH(0x10000)
711
MDRV_VIDEO_START(jclub2)
712
MDRV_VIDEO_UPDATE(jclub2)
715
static ADDRESS_MAP_START( st0016_mem, ADDRESS_SPACE_PROGRAM, 8 )
716
AM_RANGE(0x0000, 0x7fff) AM_ROM
717
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
718
AM_RANGE(0xe900, 0xe9ff) AM_DEVREADWRITE("st", st0016_snd_r, st0016_snd_w)
719
AM_RANGE(0xec00, 0xec1f) AM_READ(st0016_character_ram_r) AM_WRITE(st0016_character_ram_w)
720
AM_RANGE(0xf000, 0xffff) AM_RAM
723
static ADDRESS_MAP_START( st0016_io, ADDRESS_SPACE_IO, 8 )
724
ADDRESS_MAP_GLOBAL_MASK(0xff)
725
AM_RANGE(0x00, 0xbf) AM_READ(st0016_vregs_r) AM_WRITE(st0016_vregs_w)
726
//AM_RANGE(0xc0, 0xc0) AM_READ(cmd1_r)
727
//AM_RANGE(0xc1, 0xc1) AM_READ(cmd2_r)
728
//AM_RANGE(0xc2, 0xc2) AM_READ(cmd_stat8_r)
729
AM_RANGE(0xe1, 0xe1) AM_WRITE(st0016_rom_bank_w)
730
AM_RANGE(0xe7, 0xe7) AM_WRITE(st0016_rom_bank_w)
731
//AM_RANGE(0xf0, 0xf0) AM_READ(st0016_dma_r)
734
static const st0016_interface st0016_config =
739
static VIDEO_START(jclub2o)
744
static VIDEO_UPDATE(jclub2o)
749
static MACHINE_DRIVER_START( jclub2o )
750
MDRV_CPU_ADD("st0016",Z80,8000000)
751
MDRV_CPU_PROGRAM_MAP(st0016_mem)
752
MDRV_CPU_IO_MAP(st0016_io)
753
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
755
MDRV_CPU_ADD("maincpu", M68EC020, 12000000)
756
MDRV_CPU_PROGRAM_MAP(jclub2o_map)
757
//MDRV_CPU_VBLANK_INT_HACK(darkhors,3)
759
MDRV_NVRAM_HANDLER(darkhors)
762
MDRV_SCREEN_ADD("screen", RASTER)
763
MDRV_SCREEN_REFRESH_RATE(60)
764
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
765
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
766
MDRV_SCREEN_SIZE(0x190, 0x100)
767
MDRV_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
769
MDRV_GFXDECODE(jclub2)
770
MDRV_PALETTE_LENGTH(0x10000)
772
MDRV_VIDEO_START(jclub2o)
773
MDRV_VIDEO_UPDATE(jclub2o)
775
MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
777
MDRV_SOUND_ADD("st", ST0016, 0)
778
MDRV_SOUND_CONFIG(st0016_config)
779
MDRV_SOUND_ROUTE(0, "lspeaker", 1.0)
780
MDRV_SOUND_ROUTE(1, "rspeaker", 1.0)
609
784
/***************************************************************************
637
812
ROM_LOAD( "eeprom", 0x00000, 0x80000, CRC(45314fdb) SHA1(c4bd5508e5b51a6e0356c049f1ccf2b5d94caee9) )
817
Jockey Club II Original sets
819
-- unlike the bootleg these appear to have the graphics compressed in the main program roms. (CPS3 / SRMP6 -like) (I think CPS3 is a SETA design)
820
-- the older hardware uses an st-0016 for sound (see st0016.c)
821
-- the program can be upgraded by placing a ROM in the socket next to the main program ROM.
828
Jockey Club II by SETA 1996
830
PCB E79-001 rev 01a (Newer)
832
Main CPU : SETA ST-0032 70C600JF505
834
Others : MC68EC020FG16
838
Xtal : 42.9545 MHz, 60.0000 MHz, 33.3333 MHz
841
Rams : Toshiba : TC5118160CJ-60 (x3)
842
NKK N341256SJ-15 (x2)
843
NEC D43001GU-70LL (x4)
845
Gals : gal16V8B(x2) ref : M88-03 M88-04
849
Eproms : M88-01.u38,M88-023.u6 (read as 578200) (1st set)
850
M88-01A.u38,M88-02.u6 (2nd set)
851
M88-01B.u38,M88-02.u6 (3rd set)
852
M88-01.u38,M88-02.u6,Z201x.u39 (4th set)
853
M88-01A.u38,M88-02.u6 M88-03D.u39 (5th set)
854
M88-01B.u38,M88-02.u6,M88-03D.u39 (6th set)
856
Provided to you by Belgium Dump Team Gerald (COY) on 18/01/2007.
860
// ToDo: check for other similarities with CPS3 hardware, there are more than a few things which look the same.
862
// this contains mutliple sets, although splitting them as listed above makes no sense.. especially not the 'subcpu' roms
864
ROM_REGION( 0x200000, "maincpu", 0 ) // 68EC020 code + compressed GFX
865
// main program (similar to main program of bootleg
866
ROM_LOAD16_WORD_SWAP( "m88-01b.u38",0x00000, 0x200000, CRC(f1054c69) SHA1(be6d92653f0d3cc0a36a2ff0798043f4a95439bc) )
867
ROM_LOAD16_WORD_SWAP( "m88-01a.u38",0x00000, 0x200000, CRC(c1243e1c) SHA1(2a5857738b8950daf77ddaa8304b765f809f8241) ) // alt revision?
868
ROM_LOAD16_WORD_SWAP( "m88-01.u38", 0x00000, 0x200000, CRC(84476b68) SHA1(1014d23d3cebbfa9aa3bfb90505529989a8eedfa) ) // alt revision?
870
ROM_REGION( 0x200000, "patch", 0 ) // 68EC020 code
871
// it appears that the operator could place a ROM in the socket next to the main CPU rom to update the main program rom by
872
// overriding the initial 0x80000 bytes of the program rom.
873
ROM_LOAD16_WORD_SWAP( "m88-03d.u39",0x00000, 0x080000, CRC(723dd22b) SHA1(0ca622e0dd315f29e72dd9b82fb419d306ec5df8) )
874
ROM_LOAD16_WORD_SWAP( "z201x.u39",0x00000, 0x080000, CRC(1fb79c16) SHA1(c8914f7dfc17c412f6ca756f8eb6d6a35e3b6214) )
876
ROM_REGION( 0x100000, "oki", 0 ) // Samples? (not oki probably one of the ST-xx customs, no idea if the dump is good)
877
// data distribution would indicate this is a sound rom
878
ROM_LOAD( "m88-02.u6", 0x00000, 0x100000, CRC(0dd3436a) SHA1(809d3b7a26d36f71da04036fd8ab5d0c5089392a) )
880
ROM_REGION( 0x80000, "user1", ROMREGION_ERASEFF | ROMREGION_BE ) // EEPROM
882
ROM_REGION( 0x80000, "misc", ROMREGION_ERASEFF )
883
ROM_LOAD( "gal16v8b-m88-03.bin", 0x000, 0x117, CRC(6d9c882e) SHA1(84cb95ab540290c2f8b740668360e9c643a67dcf) )
884
ROM_LOAD( "gal16v8b-m88-04.bin", 0x000, 0x117, CRC(5e79f292) SHA1(5e44c234e2b15d486a1af71fee986892aa245b4d) )
888
Jockey Club II by SETA 1994-1995
890
Other hardware version (older):
893
Sub PCb : E06-00407 (I/O nothing else)
895
Main CPU : SETA ST-0020
897
Many XTAL : 48.0000 MHz,33.3333 MHz,4.91520 MHz,42.9545 MHz(x2),105.0000 MHz (this 105.0000 Xtal is sometimes replaced by a tiny pcb silscreened 108.0000 MHz(!), with ICS ICS1494N, MB3771 and 14.3181 MHz Xtal)
899
Others : MC68EC020FG16
901
SETA ST-0016 <-- z80 core + simple gfx + sound, see st0016.c
904
Rams : Toshiba TC514800AJ-70
905
Toshiba TC514000ASJ-70 (x8)
908
Eproms : SX006A-01.u26 read as 5716200,JC2-110x.u27,SX006-04.u87 (sound)
909
SX006B-01.u26,JC2-110x.u27,SX006-04.u87 (sound)
910
SX006A-01.u26,JC2-112x.u27,SX006-04.u87 (sound)
911
SX006B-01.u26,JC2-112x.u27,SX006-04.u87 (sound)
913
Provided to you by Belgium Dump Team Gerald (COY) on 18/01/2007.
917
// this contains mutliple sets
919
ROM_REGION( 0x200000, "maincpu", 0 ) // 68EC020 code + compressed gfx
920
ROM_LOAD16_WORD_SWAP( "sx006a-01.106",0x00000, 0x200000, CRC(55e249bc) SHA1(ed0f066ed17f047760b712cbbfba1a62d4b452ba) )
921
ROM_LOAD16_WORD_SWAP( "sx006b-01.u26",0x00000, 0x200000, CRC(f730dded) SHA1(efb966dcb98440a072d4825ef2788c85acdfd103) ) // alt revision?
923
ROM_REGION( 0x200000, "patch", 0 ) // 68EC020 code
924
// it appears that the operator could place a ROM in the socket next to the main CPU rom to update the main program rom by
925
// overriding the initial 0x80000 bytes of the program rom.
926
ROM_LOAD16_WORD_SWAP( "jc2-110x.u27",0x00000, 0x080000, CRC(03aa6882) SHA1(e0343bc77a19994ddafa614891663b40e1476332) )
927
ROM_LOAD16_WORD_SWAP( "jc2-112x.u27",0x00000, 0x080000, CRC(e1ab93bd) SHA1(78b618b3f7819bd5351ebf949f328fec7795cec9) ) // alt revision?
929
ROM_REGION( 0x90000, "st0016", 0 ) // z80 core (used for sound?)
930
ROM_LOAD( "sx006-04.u87", 0x10000, 0x80000, CRC(a87adedd) SHA1(1cd5af2d03738fff2230b46241659179467c828c) )
931
ROM_COPY( "st0016", 0x10000, 0x00000, 0x08000 )
933
ROM_REGION( 0x80000, "user1", ROMREGION_ERASEFF | ROMREGION_BE ) // EEPROM
640
936
/***************************************************************************
664
960
eeprom[i] = eeprom[i*2];
667
GAME( 2001, darkhors, 0, darkhors, darkhors, darkhors, ROT0, "bootleg", "Dark Horse", GAME_IMPERFECT_GRAPHICS )
963
GAME( 199?, jclub2, 0, jclub2, darkhors, 0, ROT0, "Seta", "Jockey Club II (newer hardware)", GAME_NOT_WORKING | GAME_NO_SOUND )
964
GAME( 199?, jclub2o, jclub2, jclub2o, darkhors, 0, ROT0, "Seta", "Jockey Club II (older hardware)", GAME_NOT_WORKING | GAME_NO_SOUND )
965
GAME( 2001, darkhors, jclub2, darkhors, darkhors, darkhors, ROT0, "bootleg", "Dark Horse (bootleg of Jockey Club II)", GAME_IMPERFECT_GRAPHICS )