3232 - Tetris 4D: hangs at BPS FMV (bp 0C0B0C4E)
3333
3434 Notes:
35- - DC US and DC PAL flash ROMs are definitely hacked, they are set to have Chinese instead of Japanese.
3635 - 0x1a002 of flash ROM returns the region type (0x30=Japan, 0x31=USA, 0x32=Europe). Amusingly, if the value
3736 on a non-jp console is different than these ones, the system shows a black swirl (and nothing boots).
3837 - gdi file for DCLP (a Dreamcast tester) doesn't have first two tracks info, they are:
4140 serial i/o also fails on that, work ram addresses that needs to be patched with 0x0009 (nop) are:
4241 0xc0196da
4342 0xc0196ec
43+ Testers may be run in different modes if hold controller buttons while booting (A+B, Right+X, Left+X, Down+A+B+X, Down+X, Up+X and few others),
44+ require emulated Maple DMA "swap endian" mode (SB_MMSEL register = 0).
4445 SH4 TEST:
4546 UBC test (0101):
4647 ok
@@ -592,14 +593,37 @@ static INPUT_PORTS_START( dc )
592593 PORT_CONFSETTING( 0x03 , " S-Video" )
593594INPUT_PORTS_END
594595
596+ static INPUT_PORTS_START( dcfish )
597+ PORT_START(" P1:0" )
598+ PORT_BIT( 0x80 , IP_ACTIVE_LOW , IPT_JOYSTICK_RIGHT )
599+ PORT_BIT( 0x40 , IP_ACTIVE_LOW , IPT_JOYSTICK_LEFT )
600+ PORT_BIT( 0x20 , IP_ACTIVE_LOW , IPT_JOYSTICK_DOWN )
601+ PORT_BIT( 0x10 , IP_ACTIVE_LOW , IPT_JOYSTICK_UP )
602+ PORT_BIT( 0x08 , IP_ACTIVE_LOW , IPT_START1 ) PORT_NAME(" CONFIG" )
603+ PORT_BIT( 0x04 , IP_ACTIVE_LOW , IPT_BUTTON1 ) PORT_NAME(" A" )
604+ PORT_BIT( 0x02 , IP_ACTIVE_LOW , IPT_BUTTON2 ) PORT_NAME(" B" )
605+ PORT_BIT( 0x01 , IP_ACTIVE_LOW , IPT_UNUSED )
606+
607+ PORT_START(" MAMEDEBUG" )
608+ PORT_CONFNAME( 0x01 , 0x00 , " Bilinear Filtering" )
609+ PORT_CONFSETTING( 0x00 , DEF_STR ( Off ) )
610+ PORT_CONFSETTING( 0x01 , DEF_STR ( On ) )
611+
612+ PORT_START(" SCREEN_TYPE" )
613+ PORT_CONFNAME( 0x03 , 0x03 , " Screen Connection Type" )
614+ PORT_CONFSETTING( 0x00 , " VGA" )
615+ PORT_CONFSETTING( 0x02 , " Composite" )
616+ PORT_CONFSETTING( 0x03 , " S-Video" )
617+ INPUT_PORTS_END
618+
595619void dc_cons_state::gdrom_config(device_t *device)
596620{
597621 cdda_device *cdda = device->subdevice <cdda_device>(" cdda" );
598622 cdda->add_route (0 , " ^^aica" , 1.0 );
599623 cdda->add_route (1 , " ^^aica" , 1.0 );
600624}
601625
602- void dc_cons_state::dc (machine_config &config)
626+ void dc_cons_state::dc_base (machine_config &config)
603627{
604628 /* basic machine hardware */
605629 SH4LE (config, m_maincpu, CPU_CLOCK );
@@ -627,14 +651,6 @@ void dc_cons_state::dc(machine_config &config)
627651
628652 MAPLE_DC (config, m_maple, 0 , m_maincpu);
629653 m_maple->irq_callback ().set (FUNC (dc_state::maple_irq));
630- dc_controller_device &dcctrl0 (DC_CONTROLLER (config, " dcctrl0" , 0 , m_maple, 0 ));
631- dcctrl0.set_port_tags (" P1:0" , " P1:1" , " P1:A0" , " P1:A1" , " P1:A2" , " P1:A3" , " P1:A4" , " P1:A5" );
632- dc_controller_device &dcctrl1 (DC_CONTROLLER (config, " dcctrl1" , 0 , m_maple, 1 ));
633- dcctrl1.set_port_tags (" P2:0" , " P2:1" , " P2:A0" , " P2:A1" , " P2:A2" , " P2:A3" , " P2:A4" , " P2:A5" );
634- dc_controller_device &dcctrl2 (DC_CONTROLLER (config, " dcctrl2" , 0 , m_maple, 2 ));
635- dcctrl2.set_port_tags (" P3:0" , " P3:1" , " P3:A0" , " P3:A1" , " P3:A2" , " P3:A3" , " P3:A4" , " P3:A5" );
636- dc_controller_device &dcctrl3 (DC_CONTROLLER (config, " dcctrl3" , 0 , m_maple, 3 ));
637- dcctrl3.set_port_tags (" P4:0" , " P4:1" , " P4:A0" , " P4:A1" , " P4:A2" , " P4:A3" , " P4:A4" , " P4:A5" );
638654
639655 /* video hardware */
640656 screen_device &screen (SCREEN (config, " screen" , SCREEN_TYPE_RASTER ));
@@ -663,10 +679,31 @@ void dc_cons_state::dc(machine_config &config)
663679 ata_0.option_add (" gdrom" , GDROM );
664680 ata_0.set_option_machine_config (" gdrom" , gdrom_config);
665681 ata_0.set_default_option (" gdrom" );
682+ }
683+
684+ void dc_cons_state::dc (machine_config &config)
685+ {
686+ dc_base (config);
687+
688+ dc_controller_device &dcctrl0 (DC_CONTROLLER (config, " dcctrl0" , 0 , m_maple, 0 ));
689+ dcctrl0.set_port_tags (" P1:0" , " P1:1" , " P1:A0" , " P1:A1" , " P1:A2" , " P1:A3" , " P1:A4" , " P1:A5" );
690+ dc_controller_device &dcctrl1 (DC_CONTROLLER (config, " dcctrl1" , 0 , m_maple, 1 ));
691+ dcctrl1.set_port_tags (" P2:0" , " P2:1" , " P2:A0" , " P2:A1" , " P2:A2" , " P2:A3" , " P2:A4" , " P2:A5" );
692+ dc_controller_device &dcctrl2 (DC_CONTROLLER (config, " dcctrl2" , 0 , m_maple, 2 ));
693+ dcctrl2.set_port_tags (" P3:0" , " P3:1" , " P3:A0" , " P3:A1" , " P3:A2" , " P3:A3" , " P3:A4" , " P3:A5" );
694+ dc_controller_device &dcctrl3 (DC_CONTROLLER (config, " dcctrl3" , 0 , m_maple, 3 ));
695+ dcctrl3.set_port_tags (" P4:0" , " P4:1" , " P4:A0" , " P4:A1" , " P4:A2" , " P4:A3" , " P4:A4" , " P4:A5" );
666696
667697 SOFTWARE_LIST (config, " cd_list" ).set_original (" dc" );
668698}
669699
700+ void dc_cons_state::dc_fish (machine_config &config)
701+ {
702+ dc_base (config);
703+
704+ dc_controller_device &dcctrl0 (DC_CONTROLLER (config, " dcctrl0" , 0 , m_maple, 0 ));
705+ dcctrl0.set_port_tag <0 >(" P1:0" );
706+ }
670707
671708#define ROM_LOAD_BIOS (bios,name,offset,length,hash ) \
672709 ROMX_LOAD (name, offset, length, hash, ROM_GROUPWORD | ROM_BIOS (bios))
@@ -688,7 +725,7 @@ void dc_cons_state::dc(machine_config &config)
688725 ROM_LOAD_BIOS(2 , " mpr-21871.ic501" , 0x000000 , 0x200000 , CRC (2f551bc5) SHA1(1ede8d5be49116a4c6f3fe0961175469537a0434) ) \
689726 ROM_SYSTEM_BIOS(3 , " 101dch" , " v1.01d (Chinese hack)" ) \
690727 ROM_LOAD_BIOS(3 , " dc101d_ch.bin" , 0x000000 , 0x200000 , CRC (a2564fad) SHA1(edc5d3d70a93c935703d26119b37731fd317d2bf) )
691- // ^^^ dc101d_eu .bin ^^^ is selfmade chinese translation, doesn't work on real hardware, does it must be here at all ?
728+ // ^^^ dc101d_ch .bin ^^^ is selfmade Chinese translation, doesn't work on real hardware, does it must be here at all ?
692729
693730/* note: Dreamcast Flash ROMs actually 256KB MBM29F002TC (5v/VA0) or MBM29LV002TC (3.3v/VA1) devices, only 2nd 128KB half is used, A17 pin tied to VCC
694731 sector SA5 (1A000 - 1BFFF) is read-only, contain information written during manufacture or repair, fully generated by software tool (except predefined list of creators)
@@ -809,3 +846,58 @@ CONS( 1998, dcjp, 0, 0, dc, dc, dc_cons_state, init_dcjp, "
809846CONS( 1999 , dceu, dcjp, 0 , dc, dc, dc_cons_state, init_dcus, " Sega" , " Dreamcast (Europe, PAL)" , MACHINE_NOT_WORKING )
810847CONS( 200 ?, dctream, dcjp, 0 , dc, dc, dc_cons_state, init_tream," <unknown>" , " Treamcast" , MACHINE_NOT_WORKING )
811848CONS( 1998 , dcdev, 0 , 0 , dc, dc, dc_cons_state, init_dc, " Sega" , " HKT-0120 Sega Dreamcast Development Box" , MACHINE_NOT_WORKING )
849+
850+ /*
851+ Fish Life - interactive aquarium simulator
852+ Consists of HKS-0300 main unit and HKS-0100 LCD with touch screen
853+
854+ HKS-0300
855+ Fish Life
856+ 670-14239A
857+ (c) 2000 Sega
858+ components:
859+ Dreamcast VA1 motherboard
860+ GD-ROM drive
861+ PSU
862+ 173-8100B / 837-14049 IC BD SW FL
863+ backplate with up/down/left/right/A/B/Start buttons
864+ 171-8097B / 837-14046 IC BD FL
865+ main components:
866+ 315-6211-AB - Dreamcast game controller IC
867+ 315-6182 - Dreamcast microphone controller IC
868+ connectors
869+
870+ HKS-0100 touch screen wired to SH-4's SCIF serial port. Communication is one-way, touch packet format is:
871+ 0100000T 00xxxxxx 00XXXXXX 00yyyyyy 00YYYYYY 00--zzzz 00------
872+ T: 1 - touch, 0 - release
873+ x: X value low bits
874+ X: X value high bits
875+ y: Y value low bits
876+ Y: Y value high bits
877+ z: unused
878+ X/Y values range seems 3000x2294
879+
880+ Known software:
881+ HDR-0093 Fish Life Red Sea Playful Edition
882+ *HDR-0094 Fish Life Amazon Playful Edition
883+ HDR-0095 Fish Life Episode 1 Basic Edition
884+ HDR-0096 Fish Life Episode 2 Basic Edition
885+ HDR-0097 Fish Life Episode 2 Basic Edition
886+
887+ Press down+B for Test Mode
888+ */
889+ ROM_START( dcfish )
890+ ROM_REGION64_LE(0x200000 , " maincpu" , 0 )
891+ ROM_LOAD( " mpr-21931.ic501" , 0x000000 , 0x200000 , CRC (89f2b1a1) SHA1(8951d1bb219ab2ff8583033d2119c899cc81f18c) ) // regular v1.0d 3.3v BIOS
892+
893+ // similar Dreamcast flashes, machine_name was changed to "Fish Life", machine_code2 is 0xff (verified by software)
894+ // dumped from used device, should be replaced with cleaned binary when flash programming will be emulated
895+ ROM_REGION64_LE(0x020000 , " dcflash" , 0 )
896+ ROM_LOAD( " fish_flash.bin" , 0x000000 , 0x020000 , BAD_DUMP CRC (73cbc49b) SHA1(c55caf64eb0ac5f8e73a1a385064606ad12947b7) ) // VA1 NTSC-JP
897+
898+ DISK_REGION( " ata:0:gdrom" )
899+ DISK_IMAGE_READONLY( " fish_life_amazon" , 0 , SHA1 (2cbba727b219bbbeddf551d0f3e80c5f8ecbe21f) ) // HDR-0094
900+ ROM_END
901+
902+ /* YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME */
903+ GAME( 2000 , dcfish, 0 , dc_fish, dcfish,dc_cons_state, init_dcjp, ROT0 , " Sega" , " Fish Life Amazon Playful Edition (Japan)" , MACHINE_NOT_WORKING )
0 commit comments