mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
General CoCo Cartridge Fixes (#4050)
* Fixed 16k cartridge banking for all CoCos. Fixed 32k external ROM mode for CoCo 3 * Turned off some logging
This commit is contained in:
parent
f0f23e29a1
commit
6cd6b3a2c1
@ -199,7 +199,7 @@ uint8_t *coco_pak_banked_device::get_cart_base()
|
|||||||
|
|
||||||
uint32_t coco_pak_banked_device::get_cart_size()
|
uint32_t coco_pak_banked_device::get_cart_size()
|
||||||
{
|
{
|
||||||
return 0x4000;
|
return 0x20000;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -156,6 +156,9 @@ void sam6883_device::configure_bank(int bank, uint8_t *memory, uint32_t memory_s
|
|||||||
/* if we're configuring a bank that never changes, update it now */
|
/* if we're configuring a bank that never changes, update it now */
|
||||||
switch(bank)
|
switch(bank)
|
||||||
{
|
{
|
||||||
|
case 3:
|
||||||
|
m_space_C000.point(m_banks[3], m_banks[3].m_memory_offset);
|
||||||
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
m_space_FF00.point(m_banks[4], 0x0000);
|
m_space_FF00.point(m_banks[4], 0x0000);
|
||||||
break;
|
break;
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
CONSTANTS
|
CONSTANTS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#define VERBOSE 1
|
#define VERBOSE 0
|
||||||
|
|
||||||
#define VHDSTATUS_OK 0x00
|
#define VHDSTATUS_OK 0x00
|
||||||
#define VHDSTATUS_NO_VHD_ATTACHED 0x02
|
#define VHDSTATUS_NO_VHD_ATTACHED 0x02
|
||||||
|
@ -86,6 +86,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// CONSTANTS
|
// CONSTANTS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -97,6 +98,7 @@
|
|||||||
#define LOG_INT_MASKING 0
|
#define LOG_INT_MASKING 0
|
||||||
#define LOG_GIME 0
|
#define LOG_GIME 0
|
||||||
#define LOG_TIMER 0
|
#define LOG_TIMER 0
|
||||||
|
#define LOG_PALETTE 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -552,12 +554,15 @@ void gime_device::update_memory(int bank)
|
|||||||
// we're in ROM
|
// we're in ROM
|
||||||
static const uint8_t rom_map[4][4] =
|
static const uint8_t rom_map[4][4] =
|
||||||
{
|
{
|
||||||
{ 0, 1, 6, 7 },
|
{ 0, 1, 4, 5 },
|
||||||
{ 0, 1, 6, 7 },
|
{ 0, 1, 4, 5 },
|
||||||
{ 0, 1, 2, 3 },
|
{ 0, 1, 2, 3 },
|
||||||
{ 4, 5, 6, 7 }
|
{ 6, 7, 4, 5 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Pin ROM page to MMU slot
|
||||||
|
block = (block & 0xfc) | (bank & 0x03);
|
||||||
|
|
||||||
// look up the block in the ROM map
|
// look up the block in the ROM map
|
||||||
block = rom_map[m_gime_registers[0] & 3][(block & 0x3F) - 0x3C];
|
block = rom_map[m_gime_registers[0] & 3][(block & 0x3F) - 0x3C];
|
||||||
|
|
||||||
@ -1005,6 +1010,10 @@ inline void gime_device::write_palette_register(offs_t offset, uint8_t data)
|
|||||||
{
|
{
|
||||||
offset &= 0x0F;
|
offset &= 0x0F;
|
||||||
|
|
||||||
|
// perform logging
|
||||||
|
if (LOG_PALETTE)
|
||||||
|
logerror("%s: CoCo3 Palette: $%04x <== $%02x\n", describe_context(), offset + 0xffB0, data);
|
||||||
|
|
||||||
/* has this entry changed? */
|
/* has this entry changed? */
|
||||||
if (m_palette_rotated[m_palette_rotated_position][offset] != data)
|
if (m_palette_rotated[m_palette_rotated_position][offset] != data)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user