trunk/src/mame/drivers/armedf.c
| r243440 | r243441 | |
| 35 | 35 | - ship rays on Armed F title screen; |
| 36 | 36 | - gameplay in Armed F abuses of this effect (shots, player ship lights etc.); |
| 37 | 37 | - Terra Force helmet during the intro; |
| 38 | - Invincibility flickering of main character in Kozure Ookami; |
| 38 | 39 | - (1) Kozure Ookami timer over bug: |
| 39 | 40 | 010118: lea $63510.l, A0 |
| 40 | 41 | 01011E: tst.w (A0) ;check time variable, in BCD format |
| r243440 | r243441 | |
| 48 | 49 | 01016E: btst #$7, $60621.l ;check dsw2 ram copy bit 15 (debug feature?) |
| 49 | 50 | 010176: bne $1017e |
| 50 | 51 | 010178: bra $f9f0 ;timer over event occurs |
| 51 | | btanb perhaps? |
| 52 | btanb perhaps? Currently patched to work, might also be that DSW2 bit 7 is actually a MCU bit ready flag, so it |
| 53 | definitely needs PCB tests. |
| 52 | 54 | |
| 53 | 55 | |
| 54 | 56 | Stephh's notes (based on the games M68000 code and some tests) : |
| r243440 | r243441 | |
| 943 | 945 | PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:7") |
| 944 | 946 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 945 | 947 | PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) |
| 946 | | PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) |
| 948 | PORT_DIPNAME( 0x80, 0x80, "Infinite Timer (Cheat)" ) PORT_DIPLOCATION("SW2:8") |
| 949 | PORT_DIPSETTING( 0x80, DEF_STR( No ) ) |
| 950 | PORT_DIPSETTING( 0x00, DEF_STR( Yes ) ) |
| 947 | 951 | INPUT_PORTS_END |
| 948 | 952 | |
| 949 | 953 | static INPUT_PORTS_START( cclimbr2 ) |
| r243440 | r243441 | |
| 2075 | 2079 | |
| 2076 | 2080 | DRIVER_INIT_MEMBER(armedf_state,kozure) |
| 2077 | 2081 | { |
| 2082 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); |
| 2083 | |
| 2084 | /* patch "time over" bug, see notes on top. */ |
| 2085 | ROM[0x1016c/2] = 0x4e71; |
| 2086 | /* ROM check at POST. */ |
| 2087 | ROM[0x04fc6/2] = 0x4e71; |
| 2078 | 2088 | m_scroll_type = 0; |
| 2079 | 2089 | |
| 2080 | 2090 | m_maincpu->space(AS_PROGRAM).install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),this)); |
| r243440 | r243441 | |
| 2086 | 2096 | #if LEGION_HACK |
| 2087 | 2097 | /* This is a hack to allow you to use the extra features |
| 2088 | 2098 | of 3 of the "Unused" Dip Switches (see notes above). */ |
| 2089 | | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); |
| 2099 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); |
| 2090 | 2100 | RAM[0x0001d6 / 2] = 0x0001; |
| 2091 | 2101 | /* To avoid checksum error */ |
| 2092 | 2102 | RAM[0x000488 / 2] = 0x4e71; |
| r243440 | r243441 | |
| 2138 | 2148 | GAME( 1987, terrafj, terraf, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu Japan", "Terra Force (Japan)", GAME_SUPPORTS_SAVE ) |
| 2139 | 2149 | GAME( 1987, terrafjb, terraf, terrafjb, terraf, armedf_state, terrafjb, ROT0, "bootleg", "Terra Force (Japan bootleg with additional Z80)", GAME_SUPPORTS_SAVE ) |
| 2140 | 2150 | GAME( 1987, terrafb, terraf, terraf, terraf, armedf_state, terraf, ROT0, "bootleg", "Terra Force (Japan bootleg set 2)", GAME_SUPPORTS_SAVE ) |
| 2141 | | GAME( 1987, kozure, 0, kozure, kozure, armedf_state, kozure, ROT0, "Nichibutsu", "Kozure Ookami (Japan)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) |
| 2151 | GAME( 1987, kozure, 0, kozure, kozure, armedf_state, kozure, ROT0, "Nichibutsu", "Kozure Ookami (Japan)", GAME_SUPPORTS_SAVE ) |
| 2142 | 2152 | GAME( 1988, cclimbr2, 0, cclimbr2, cclimbr2, armedf_state, cclimbr2, ROT0, "Nichibutsu", "Crazy Climber 2 (Japan)", GAME_SUPPORTS_SAVE ) |
| 2143 | 2153 | GAME( 1988, cclimbr2a,cclimbr2, cclimbr2, cclimbr2, armedf_state, cclimbr2, ROT0, "Nichibutsu", "Crazy Climber 2 (Japan, Harder)", GAME_SUPPORTS_SAVE ) |
| 2144 | 2154 | GAME( 1988, armedf, 0, armedf, armedf, armedf_state, armedf, ROT270, "Nichibutsu", "Armed Formation", GAME_SUPPORTS_SAVE ) |