bus/gameboy: Added comments about the "new" NT/Makon memory controller.

New working software items (gbcolor)
------------------------------------
Dragon Ball Z III 2002 Fighting [taizou]
This commit is contained in:
Vas Crabb 2022-11-11 01:59:22 +11:00
parent 87663f23b2
commit 4278ce8014
2 changed files with 31 additions and 5 deletions

View File

@ -26511,7 +26511,7 @@ license:CC0
<part name="cart" interface="gameboy_cart">
<feature name="slot" value="rom_sintax" />
<dataarea name="rom" size="0x200000">
<rom name="2003 ha li bo te 2 - xiao shi de mi shi (unlicensed, chinese) [raw dump].bin" size="0x200000" crc="1b3e1243" sha1="0829cbcab3ef5d03c94d5efe769f4f4a93ac47fa"/>
<rom name="2003 ha li bo te 2 - xiao shi de mi shi (unlicensed, chinese) [raw dump].bin" size="0x200000" crc="1b3e1243" sha1="0829cbcab3ef5d03c94d5efe769f4f4a93ac47fa" />
</dataarea>
<dataarea name="nvram" size="8192" />
</part>
@ -26525,10 +26525,23 @@ license:CC0
<part name="cart" interface="gameboy_cart">
<feature name="slot" value="rom_sintax" />
<dataarea name="rom" size="0x200000">
<rom name="2003 ha li xiao zi iv (unlicensed, chinese) [raw dump].bin" size="0x200000" crc="db3c8b95" sha1="0d230b20388f4396d6345b8eb59f54fc169ad8ee"/>
<rom name="2003 ha li xiao zi iv (unlicensed, chinese) [raw dump].bin" size="0x200000" crc="db3c8b95" sha1="0d230b20388f4396d6345b8eb59f54fc169ad8ee" />
</dataarea>
<dataarea name="nvram" size="8192">
<dataarea name="nvram" size="0x2000" />
</part>
</software>
<!-- white screen when it should display dialogue before fights -->
<software name="dbz32002" supported="partial">
<description>Dragon Ball Z III 2002 Fighting</description>
<year>200?</year>
<publisher>Sintax</publisher>
<part name="cart" interface="gameboy_cart">
<feature name="slot" value="rom_sintax" />
<dataarea name="rom" size="0x200000">
<rom name="dragon ball z iii 2002 fighting.gbc" size="0x200000" crc="dbe0f44e" sha1="baea9e5ee1411988039d563ece97d8d7f765396a" />
</dataarea>
<dataarea name="nvram" size="0x2000" />
</part>
</software>

View File

@ -4,6 +4,19 @@
Memory controller used for newer NT/Makon games
Appears to start in a mode similar to Nintendo MBC3, with a fixed 16 KiB
ROM bank at 0x0000 and a switchable 16 KiB ROM bank at 0x4000, but allows
switching to a mode with selectable 8 KiB ROM banks at 0x4000 and 0x6000.
It isn't clear how many static RAM pages are actually supported. Many
cartridges included 32K*8 static RAMs despite the headers declaring smaller
sizes and the games using no more than 8 KiB. The maximum supported ROM
size is also unknown.
Pretty much everything here is guessed based on the games' behaviour. The
exact address ranges the memory controller responds to are unknown. There
may be additional features that are not emulated.
***************************************************************************/
#include "emu.h"
@ -105,7 +118,7 @@ void ntnew_device::device_reset()
void ntnew_device::enable_ram(offs_t offset, u8 data)
{
// TODO: what range actually triggers this, and does it still trigger RAM enable?
if (((offset & 0xff00) == 0x1400) & (0x55 == data))
if (((offset & 0x1f00) == 0x1400) & (0x55 == data))
{
LOG("%s: 8K ROM banking enabled\n", machine().describe_context());
m_bank_8k = 1U;
@ -129,7 +142,7 @@ void ntnew_device::bank_switch_rom(offs_t offset, u8 data)
if (m_bank_8k)
{
// TODO: what ranges does the controller actually respond to?
switch (offset & 0xff00)
switch (offset & 0x0f00)
{
case 0x0000:
if (!(data & 0xfe))