branches/kale/src/mame/drivers/snowbros.c
| r243836 | r243837 | |
| 185 | 185 | if (ACCESSING_BITS_0_7) soundlatch_byte_w(space,0,data & 0xff); |
| 186 | 186 | } |
| 187 | 187 | |
| 188 | READ16_MEMBER(snowbros_state::toto_read) |
| 189 | { |
| 190 | int pc = space.device().safe_pc(); |
| 191 | if ((pc!= 0x3f010) && (pc!= 0x38008)) printf("toto prot %08x %04x\n", pc, mem_mask); |
| 192 | return 0x0700; |
| 193 | } |
| 194 | |
| 188 | 195 | /* Snow Bros Memory Map */ |
| 189 | 196 | |
| 190 | 197 | static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16, snowbros_state ) |
| r243836 | r243837 | |
| 1955 | 1962 | ROM_LOAD16_BYTE( "wb09.bin", 0x60001, 0x10000, CRC(9be718ca) SHA1(5c195e4f13efbdb229201d2408d018861bf389cc) ) |
| 1956 | 1963 | ROM_END |
| 1957 | 1964 | |
| 1965 | ROM_START( toto ) |
| 1966 | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 1967 | ROM_LOAD16_BYTE( "u60.5j", 0x00000, 0x20000, CRC(39203792) SHA1(4c8d560be02a514cbf91774c7a0b4a95cf573356) ) |
| 1968 | ROM_LOAD16_BYTE( "u51.4j", 0x00001, 0x20000, CRC(7b846cd4) SHA1(04aa0bbaab4303fb08dff52d5515f7e764f1be6d)) |
| 1969 | |
| 1970 | ROM_REGION( 0x10000, "soundcpu", 0 ) /* 64k for z80 sound code */ |
| 1971 | ROM_LOAD( "u46.4c", 0x0000, 0x8000, CRC(77b1ef42) SHA1(75e3c8c2b687669cc56f972dd7375dab5185859c) ) |
| 1972 | |
| 1973 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 1974 | ROM_LOAD( "u107.8k", 0x00000, 0x20000, CRC(4486153b) SHA1(a6dc0c17bf2328ab725bce4aaa0a413a42129fb0) ) |
| 1975 | ROM_LOAD( "u108.8l", 0x20000, 0x20000, CRC(3286cf5f) SHA1(133366b0e10ab86111247cbedf329e8e3a7f2148) ) |
| 1976 | ROM_LOAD( "u109.8m", 0x40000, 0x20000, CRC(464d7251) SHA1(f03ee54e9301ea87de4171cecdbad4a5e17929c4) ) |
| 1977 | ROM_LOAD( "u110.8n", 0x60000, 0x20000, CRC(7dea56df) SHA1(7e7b9238837c6f4221cff416a2de21723d2c9272) ) |
| 1978 | ROM_END |
| 1979 | |
| 1958 | 1980 | /* Barko */ |
| 1959 | 1981 | |
| 1960 | 1982 | ROM_START( honeydol ) |
| r243836 | r243837 | |
| 2866 | 2888 | |
| 2867 | 2889 | |
| 2868 | 2890 | |
| 2891 | DRIVER_INIT_MEMBER(snowbros_state,toto) |
| 2892 | { |
| 2893 | // every single rom has bits 0x10 and 0x08 swapped |
| 2894 | UINT8 *src = memregion("maincpu")->base(); |
| 2895 | int len = memregion("maincpu")->bytes(); |
| 2896 | |
| 2897 | for (int i = 0; i < len; i++) |
| 2898 | { |
| 2899 | src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0); |
| 2900 | } |
| 2901 | |
| 2902 | src = memregion("gfx1")->base(); |
| 2903 | len = memregion("gfx1")->bytes(); |
| 2904 | |
| 2905 | for (int i = 0; i < len; i++) |
| 2906 | { |
| 2907 | src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0); |
| 2908 | } |
| 2909 | |
| 2910 | src = memregion("soundcpu")->base(); |
| 2911 | len = memregion("soundcpu")->bytes(); |
| 2912 | |
| 2913 | for (int i = 0; i < len; i++) |
| 2914 | { |
| 2915 | src[i] = BITSWAP8(src[i], 7, 6, 5, 3, 4, 2, 1, 0); |
| 2916 | } |
| 2917 | |
| 2918 | // protection? (just return 0x07) |
| 2919 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x500006, 0x500007, read16_delegate(FUNC(snowbros_state::toto_read),this)); |
| 2920 | } |
| 2921 | |
| 2922 | |
| 2923 | |
| 2869 | 2924 | GAME( 1990, snowbros, 0, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 1)", 0 ) |
| 2870 | 2925 | GAME( 1990, snowbrosa, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 2)", 0 ) |
| 2871 | 2926 | GAME( 1990, snowbrosb, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 3)", 0 ) |
| r243836 | r243837 | |
| 2875 | 2930 | GAME( 1990, wintbob, snowbros, wintbob, snowbros, driver_device, 0, ROT0, "bootleg (Sakowa Project Korea)", "The Winter Bobble (bootleg of Snow Bros.)", 0 ) |
| 2876 | 2931 | GAME( 1990, snowbroswb,snowbros, wintbob, snowbros, driver_device, 0, ROT0, "bootleg", "Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg)", 0 ) // this was probably unhacked back from the more common Winter Bobble to make it look more original |
| 2877 | 2932 | |
| 2933 | GAME( 1996, toto, 0, snowbros, snowbros, snowbros_state, toto, ROT0, "SoftClub", "Come Back Toto", 0 ) // modified from 'snowbros' code |
| 2934 | |
| 2878 | 2935 | // none of the games below are on genuine SnowBros hardware, but they clone the functionality of it. |
| 2879 | 2936 | |
| 2880 | 2937 | // SemiCom / Jeil titles are protected, a dumb MCU copies code into RAM at startup, some also check for a specific return value from an address on startup. |