summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ville Linde <villedevs@gmail.com>2021-06-24 19:06:21 +0300
committer Ville Linde <villedevs@gmail.com>2021-06-24 19:06:21 +0300
commit8fef949f1ee759abc9c489f6d4bfdcd88c3c26bb (patch)
tree49c6a6e4502360bff300b9c815ba468e678ad885
parentc13dd1446be251f6dc278dbd537a6783da9db43d (diff)
fix Solar Assault title screen
-rw-r--r--src/mame/drivers/gticlub.cpp5
-rw-r--r--src/mame/machine/konppc.cpp13
-rw-r--r--src/mame/machine/konppc.h3
3 files changed, 20 insertions, 1 deletions
diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp
index 83bc7908d0a..3747b7084d4 100644
--- a/src/mame/drivers/gticlub.cpp
+++ b/src/mame/drivers/gticlub.cpp
@@ -764,7 +764,10 @@ uint32_t gticlub_state::screen_update_gticlub(screen_device &screen, bitmap_rgb3
{
m_k001604[0]->draw_back_layer(screen, bitmap, cliprect);
- m_k001005->draw(bitmap, cliprect);
+ if (m_konppc[0].output_3d_enabled())
+ {
+ m_k001005->draw(bitmap, cliprect);
+ }
m_k001604[0]->draw_front_layer(screen, bitmap, cliprect);
diff --git a/src/mame/machine/konppc.cpp b/src/mame/machine/konppc.cpp
index 49454224c98..ed76db1fed6 100644
--- a/src/mame/machine/konppc.cpp
+++ b/src/mame/machine/konppc.cpp
@@ -106,6 +106,14 @@ void konppc_device::set_cgboard_texture_bank(int board, const char *bank, uint8_
machine().root_device().membank(bank)->configure_entries(0, 2, rom, 0x800000);
}
+bool konppc_device::output_3d_enabled()
+{
+ if (cgboard_id < MAX_CG_BOARDS)
+ return enable_3d[cgboard_id];
+ else
+ return false;
+}
+
/*****************************************************************************/
/* CG Board DSP interface for PowerPC */
@@ -155,6 +163,11 @@ void konppc_device::cgboard_dsp_comm_w_ppc(offs_t offset, uint32_t data, uint32_
dsp.set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
}
+ if (ACCESSING_BITS_16_23)
+ {
+ enable_3d[cgboard_id] = (data & 0x400000) ? true : false;
+ }
+
if (ACCESSING_BITS_0_7)
dsp_comm_ppc[cgboard_id][offset] = data & 0xff;
}
diff --git a/src/mame/machine/konppc.h b/src/mame/machine/konppc.h
index f905057c503..c397a02bbd1 100644
--- a/src/mame/machine/konppc.h
+++ b/src/mame/machine/konppc.h
@@ -30,6 +30,7 @@ public:
int get_cgboard_id(void);
void set_cgboard_texture_bank(int board, const char *bank, uint8_t *rom);
+ bool output_3d_enabled();
// read/write
uint32_t cgboard_dsp_comm_r_ppc(offs_t offset, uint32_t mem_mask = ~0);
@@ -94,6 +95,8 @@ private:
int nwk_fifo_full;
int nwk_fifo_mask;
+ bool enable_3d[MAX_CG_BOARDS];
+
std::unique_ptr<uint32_t[]> nwk_fifo[MAX_CG_BOARDS];
int32_t nwk_fifo_read_ptr[MAX_CG_BOARDS];
int32_t nwk_fifo_write_ptr[MAX_CG_BOARDS];