trunk/src/mess/drivers/gb.c
| r30930 | r30931 | |
| 738 | 738 | |
| 739 | 739 | |
| 740 | 740 | static MACHINE_CONFIG_START( gameboy, gb_state ) |
| 741 | |
| 741 | 742 | /* basic machine hardware */ |
| 742 | | MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */ |
| 743 | MCFG_CPU_ADD("maincpu", LR35902, XTAL_4_194304Mhz) |
| 743 | 744 | MCFG_CPU_PROGRAM_MAP(gameboy_map) |
| 744 | 745 | MCFG_LR35902_TIMER_CB( WRITE8( gb_state, gb_timer_callback ) ) |
| 745 | 746 | MCFG_LR35902_HALT_BUG |
| 746 | 747 | |
| 747 | | MCFG_MACHINE_START_OVERRIDE(gb_state, gb ) |
| 748 | | MCFG_MACHINE_RESET_OVERRIDE(gb_state, gb ) |
| 749 | | |
| 748 | /* video hardware */ |
| 750 | 749 | MCFG_SCREEN_ADD("screen", LCD) |
| 751 | 750 | MCFG_SCREEN_REFRESH_RATE(DMG_FRAMES_PER_SECOND) |
| 752 | 751 | MCFG_SCREEN_VBLANK_TIME(0) |
| r30930 | r30931 | |
| 762 | 761 | MCFG_PALETTE_ADD("palette", 4) |
| 763 | 762 | MCFG_PALETTE_INIT_OWNER(gb_state,gb) |
| 764 | 763 | |
| 765 | | MCFG_GB_LCD_DMG_ADD( "lcd" ) |
| 764 | MCFG_GB_LCD_DMG_ADD("lcd") |
| 766 | 765 | |
| 767 | 766 | /* sound hardware */ |
| 768 | 767 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r30930 | r30931 | |
| 778 | 777 | MACHINE_CONFIG_END |
| 779 | 778 | |
| 780 | 779 | static MACHINE_CONFIG_DERIVED( supergb, gameboy ) |
| 781 | | MCFG_CPU_REPLACE("maincpu", LR35902, 4295454) /* 4.295454 MHz */ |
| 780 | |
| 781 | /* basic machine hardware */ |
| 782 | MCFG_CPU_REPLACE("maincpu", LR35902, 4295454) /* 4.295454 MHz */ |
| 782 | 783 | MCFG_CPU_PROGRAM_MAP(sgb_map) |
| 783 | 784 | |
| 784 | 785 | MCFG_CPU_MODIFY("maincpu") |
| 785 | 786 | MCFG_LR35902_TIMER_CB( WRITE8( gb_state, gb_timer_callback ) ) |
| 786 | 787 | MCFG_LR35902_HALT_BUG |
| 787 | 788 | |
| 788 | | MCFG_MACHINE_START_OVERRIDE(gb_state, sgb ) |
| 789 | | MCFG_MACHINE_RESET_OVERRIDE(gb_state, sgb ) |
| 789 | MCFG_MACHINE_START_OVERRIDE(gb_state, sgb) |
| 790 | MCFG_MACHINE_RESET_OVERRIDE(gb_state, sgb) |
| 790 | 791 | |
| 791 | | MCFG_DEFAULT_LAYOUT(layout_horizont) /* runs on a TV, not an LCD */ |
| 792 | /* video hardware */ |
| 793 | MCFG_DEFAULT_LAYOUT(layout_horizont) /* runs on a TV, not an LCD */ |
| 792 | 794 | |
| 793 | 795 | MCFG_SCREEN_MODIFY("screen") |
| 794 | 796 | MCFG_SCREEN_SIZE(32*8, 28*8) |
| r30930 | r30931 | |
| 799 | 801 | MCFG_PALETTE_INIT_OWNER(gb_state,sgb) |
| 800 | 802 | |
| 801 | 803 | MCFG_DEVICE_REMOVE("lcd") |
| 802 | | MCFG_GB_LCD_SGB_ADD( "lcd" ) |
| 804 | MCFG_GB_LCD_SGB_ADD("lcd") |
| 803 | 805 | MACHINE_CONFIG_END |
| 804 | 806 | |
| 805 | 807 | static MACHINE_CONFIG_DERIVED( gbpocket, gameboy ) |
| 808 | |
| 809 | /* basic machine hardware */ |
| 806 | 810 | MCFG_CPU_MODIFY("maincpu") |
| 807 | 811 | MCFG_LR35902_TIMER_CB( WRITE8( gb_state, gb_timer_callback ) ) |
| 808 | 812 | MCFG_LR35902_HALT_BUG |
| r30930 | r30931 | |
| 810 | 814 | MCFG_MACHINE_START_OVERRIDE(gb_state, gbpocket) |
| 811 | 815 | MCFG_MACHINE_RESET_OVERRIDE(gb_state, gbpocket) |
| 812 | 816 | |
| 817 | /* video hardware */ |
| 813 | 818 | MCFG_PALETTE_MODIFY("palette") |
| 814 | 819 | MCFG_PALETTE_INIT_OWNER(gb_state,gbp) |
| 815 | 820 | |
| 816 | 821 | MCFG_DEVICE_REMOVE("lcd") |
| 817 | | MCFG_GB_LCD_MGB_ADD( "lcd" ) |
| 822 | MCFG_GB_LCD_MGB_ADD("lcd") |
| 818 | 823 | MACHINE_CONFIG_END |
| 819 | 824 | |
| 820 | 825 | static MACHINE_CONFIG_DERIVED( gbcolor, gameboy ) |
| 826 | |
| 827 | /* basic machine hardware */ |
| 821 | 828 | MCFG_CPU_MODIFY("maincpu") |
| 822 | 829 | MCFG_CPU_PROGRAM_MAP( gbc_map) |
| 823 | 830 | MCFG_LR35902_TIMER_CB( WRITE8( gb_state, gb_timer_callback ) ) |
| r30930 | r30931 | |
| 825 | 832 | MCFG_MACHINE_START_OVERRIDE(gb_state,gbc) |
| 826 | 833 | MCFG_MACHINE_RESET_OVERRIDE(gb_state,gbc) |
| 827 | 834 | |
| 835 | /* video hardware */ |
| 828 | 836 | MCFG_PALETTE_MODIFY("palette") |
| 829 | 837 | MCFG_PALETTE_ENTRIES(32768) |
| 830 | 838 | MCFG_PALETTE_INIT_OWNER(gb_state,gbc) |
| 831 | 839 | |
| 832 | 840 | MCFG_DEVICE_REMOVE("lcd") |
| 833 | | MCFG_GB_LCD_CGB_ADD( "lcd" ) |
| 841 | MCFG_GB_LCD_CGB_ADD("lcd") |
| 834 | 842 | |
| 835 | 843 | /* internal ram */ |
| 836 | 844 | MCFG_RAM_ADD(RAM_TAG) |
| r30930 | r30931 | |
| 843 | 851 | MACHINE_CONFIG_END |
| 844 | 852 | |
| 845 | 853 | static MACHINE_CONFIG_START( megaduck, megaduck_state ) |
| 854 | |
| 846 | 855 | /* basic machine hardware */ |
| 847 | | MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */ |
| 856 | MCFG_CPU_ADD("maincpu", LR35902, 4194304) /* 4.194304 MHz */ |
| 848 | 857 | MCFG_CPU_PROGRAM_MAP( megaduck_map) |
| 849 | 858 | MCFG_LR35902_TIMER_CB( WRITE8( gb_state, gb_timer_callback ) ) |
| 850 | 859 | MCFG_LR35902_HALT_BUG |
| 851 | 860 | MCFG_LR35902_RESET_VALUES(megaduck_cpu_regs) |
| 852 | 861 | |
| 862 | /* video hardware */ |
| 853 | 863 | MCFG_SCREEN_ADD("screen", LCD) |
| 854 | 864 | MCFG_SCREEN_REFRESH_RATE(DMG_FRAMES_PER_SECOND) |
| 855 | 865 | MCFG_SCREEN_VBLANK_TIME(0) |
| 856 | 866 | MCFG_SCREEN_PALETTE("palette") |
| 857 | 867 | |
| 858 | | MCFG_MACHINE_START_OVERRIDE(megaduck_state, megaduck ) |
| 859 | | MCFG_MACHINE_RESET_OVERRIDE(megaduck_state, megaduck ) |
| 868 | MCFG_MACHINE_START_OVERRIDE(megaduck_state, megaduck) |
| 869 | MCFG_MACHINE_RESET_OVERRIDE(megaduck_state, megaduck) |
| 860 | 870 | |
| 861 | 871 | MCFG_SCREEN_UPDATE_DEVICE("lcd", gb_lcd_device, screen_update) |
| 862 | 872 | MCFG_SCREEN_SIZE(20*8, 18*8) |
| r30930 | r30931 | |
| 868 | 878 | MCFG_PALETTE_ADD("palette", 4) |
| 869 | 879 | MCFG_PALETTE_INIT_OWNER(megaduck_state,megaduck) |
| 870 | 880 | |
| 871 | | MCFG_GB_LCD_DMG_ADD( "lcd" ) |
| 881 | MCFG_GB_LCD_DMG_ADD("lcd") |
| 872 | 882 | |
| 883 | /* sound hardware */ |
| 873 | 884 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 874 | 885 | MCFG_SOUND_ADD("custom", GAMEBOY, 0) |
| 875 | 886 | MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) |
| 876 | 887 | MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) |
| 877 | 888 | |
| 889 | /* cartslot */ |
| 878 | 890 | MCFG_MEGADUCK_CARTRIDGE_ADD("duckslot", megaduck_cart, NULL) |
| 879 | 891 | MCFG_SOFTWARE_LIST_ADD("cart_list", "megaduck") |
| 880 | 892 | MACHINE_CONFIG_END |
| r30930 | r30931 | |
| 907 | 919 | |
| 908 | 920 | ROM_START( gbcolor ) |
| 909 | 921 | ROM_REGION( 0x800, "maincpu", 0 ) |
| 910 | | ROM_LOAD( "gbc_boot.1", 0x0000, 0x0100, CRC(779ea374) SHA1(e4b40c9fd593a97a1618cfb2696f290cf9596a62) ) /* Bootstrap code part 1 */ |
| 922 | ROM_LOAD( "gbc_boot.1", 0x0000, 0x0100, CRC(779ea374) SHA1(e4b40c9fd593a97a1618cfb2696f290cf9596a62) ) /* Bootstrap code part 1 */ |
| 911 | 923 | ROM_LOAD( "gbc_boot.2", 0x0100, 0x0700, CRC(f741807d) SHA1(f943b1e0b640cf1d371e1d8f0ada69af03ebb396) ) /* Bootstrap code part 2 */ |
| 912 | 924 | ROM_END |
| 913 | 925 | |