trunk/src/mess/machine/sms.c
| r20241 | r20242 | |
| 1927 | 1927 | |
| 1928 | 1928 | /* Check if lightgun has been chosen as input: if so, enable crosshair */ |
| 1929 | 1929 | machine().scheduler().timer_set(attotime::zero, timer_expired_delegate(FUNC(sms_state::lightgun_tick),this)); |
| 1930 | |
| 1931 | // alibaba and blockhol are ports of games for the MSX system. The |
| 1932 | // MSX bios usually initializes callback "vectors" at the top of RAM. |
| 1933 | // The code in alibaba does not do this so the IRQ vector only contains |
| 1934 | // the "call $4010" without a following RET statement. That is basically |
| 1935 | // a bug in the program code. The only way this cartridge could have run |
| 1936 | // successfully on a real unit is if the RAM would be initialized with |
| 1937 | // a F0 pattern on power up; F0 = RET P. |
| 1938 | // |
| 1939 | // alibaba and blockhol SMS cartridges rely on uninitialized RAM, |
| 1940 | // then fill it with a F0 pattern ("RET P"), but only for consoles |
| 1941 | // in Japan region (including KR), until confirmed on other consoles. |
| 1942 | if (m_is_region_japan) |
| 1943 | { |
| 1944 | memset((UINT8*)m_space->get_write_ptr(0xc000), 0xf0, 0x1FF0); |
| 1945 | } |
| 1930 | 1946 | } |
| 1931 | 1947 | |
| 1932 | 1948 | MACHINE_RESET_MEMBER(sms_state,sms) |