bus/nes: Fixed Kaiser Metroid, promoted games to working. (#8204)

* metroidk: Corrected fixed bank address that caused game to crash after title screen.
* metroidk: Corrected the nametable page mis-ordering that then becomes apparent when game is running.
* crimebst uses standard zapper on ctrl2 - works fine.

Software list items promoted to working
-----------------------
Crime Busters
Metroid - Jin Ji Zhi Ling (Asia, FDS conversion)
This commit is contained in:
0kmg 2021-07-08 17:45:55 -08:00 committed by GitHub
parent 482e61ae44
commit 5421709031
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 17 deletions

View File

@ -51386,7 +51386,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<!-- ORIGINAL & HACK PIRATE CARTS -->
<software name="crimebst" supported="no">
<software name="crimebst">
<description>Crime Busters</description>
<year>1989</year>
<publisher>Gradiente ~ Bit Corp.</publisher>
@ -51395,6 +51395,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx
<feature name="slot" value="bitcorp_dis" />
<feature name="pcb" value="BIT-CORP-74*161/138" />
<feature name="mirroring" value="vertical" />
<feature name="peripheral" value="zapper" />
<dataarea name="prg" size="131072">
<rom name="0.prg" size="131072" crc="1a8b558e" sha1="e881a8df5352cb21d49a5ab154ba59da2ffc0534" offset="00000" />
</dataarea>
@ -66787,10 +66788,11 @@ Also notice that VRAM & WRAM are probably incorrect for some of these sets, at t
</part>
</software>
<software name="metroidk" supported="partial">
<software name="metroidk">
<description>Metroid - Jin Ji Zhi Ling (Asia, FDS conversion)</description>
<year>19??</year>
<publisher>Kaiser</publisher>
<info name="alt_title" value="緊急指令"/>
<part name="cart" interface="nes_cart">
<feature name="slot" value="ks7037" />
<feature name="pcb" value="UNL-KS7037" />

View File

@ -12,9 +12,6 @@
* PCB with IC 74x377 [mapper 11]
* PCB with IC 74x161x138 [mapper 38]
TODO:
- Investigating missing inputs in Crime Busters
***********************************************************************************************************/

View File

@ -309,12 +309,12 @@ void nes_ks7037_device::device_start()
void nes_ks7037_device::pcb_reset()
{
prg8_89(0);
prg8_ab(0x1e);
prg8_ab(0x0e);
prg8_cd(0);
prg8_ef(0x1f);
prg8_ef(0x0f);
chr8(0, CHRRAM);
memset(m_reg, 0, sizeof(m_reg));
std::fill(std::begin(m_reg), std::end(m_reg), 0x00);
m_latch = 0;
}
@ -836,21 +836,19 @@ void nes_ks7016_device::write_h(offs_t offset, uint8_t data)
but with WRAM split between 0x6000-0x6fff
and 0xb000-0xbfff.
iNES:
NES 2.0: mapper 307
In MESS: Unsupported.
In MAME: Supported.
-------------------------------------------------*/
void nes_ks7037_device::update_prg()
{
prg8_89(m_reg[6]);
prg8_ab(0xfe);
prg8_cd(m_reg[7]);
prg8_ef(0xff);
set_nt_page(0, CIRAM, m_reg[2] & 1, 1);
set_nt_page(1, CIRAM, m_reg[3] & 1, 1);
set_nt_page(2, CIRAM, m_reg[4] & 1, 1);
set_nt_page(2, CIRAM, m_reg[3] & 1, 1);
set_nt_page(1, CIRAM, m_reg[4] & 1, 1);
set_nt_page(3, CIRAM, m_reg[5] & 1, 1);
}
@ -858,16 +856,16 @@ uint8_t nes_ks7037_device::read_m(offs_t offset)
{
// LOG_MMC(("ks7037 read_m, offset: %04x\n", offset));
if (offset < 0x1000)
return m_prgram[offset & 0x0fff];
return m_prgram[offset];
else
return m_prg[(0x1e * 0x1000) + (offset & 0x0fff)];
return m_prg[0x0f * 0x1000 + (offset & 0x0fff)]; // 4k PRG bank 15 is fixed
}
void nes_ks7037_device::write_m(offs_t offset, uint8_t data)
{
LOG_MMC(("ks7037 write_m, offset: %04x, data: %02x\n", offset, data));
if (offset < 0x1000)
m_prgram[offset & 0x0fff] = data;
m_prgram[offset] = data;
}
uint8_t nes_ks7037_device::read_h(offs_t offset)