summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2020-11-29 13:30:06 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2020-11-29 13:30:06 +0100
commit477d199f55b8e63f900f75423d40c73ae857894d (patch)
tree3deada746d57c9490c0afb89e3f2f66391b6778f /src
parentf9b9773d00c2038974e999f99ceaf96dad4010d4 (diff)
namcos21.cpp: decapped TMS320C25 for winrungp [Caps0ff, Nathan Gilbert, Guru]
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/namcos21.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/mame/drivers/namcos21.cpp b/src/mame/drivers/namcos21.cpp
index 359c646a822..79ce1e2a4d5 100644
--- a/src/mame/drivers/namcos21.cpp
+++ b/src/mame/drivers/namcos21.cpp
@@ -291,6 +291,9 @@ Filter Board
#include "sound/c140.h"
#include "sound/ym2151.h"
+
+namespace {
+
#define ENABLE_LOGGING 0
class namcos21_state : public driver_device
@@ -321,6 +324,10 @@ public:
void init_winrun();
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
private:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
@@ -374,9 +381,6 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(screen_scanline);
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void winrun_bitmap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -481,12 +485,12 @@ uint32_t namcos21_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
-uint16_t namcos21_state::video_enable_r()
+[[maybe_unused]] uint16_t namcos21_state::video_enable_r()
{
return m_video_enable;
}
-void namcos21_state::video_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask)
+[[maybe_unused]] void namcos21_state::video_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA( &m_video_enable ); /* 0x40 = enable */
if( m_video_enable!=0 && m_video_enable!=0x40 )
@@ -991,6 +995,9 @@ ROM_START( winrungp )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound */
ROM_LOAD( "sg1-snd0.7c", 0x000000, 0x020000, CRC(de04b794) SHA1(191f4d79ac2375d7060f3d83ec753185e92f28ea) )
+ ROM_REGION16_BE( 0x2000, "tms", 0 )
+ ROM_LOAD( "tms320c25fnl_wybux8j1_japan", 0x0000, 0x2000, CRC(01f3fd3a) SHA1(1fa5185fa60c8c4097ed0e51a5e0fe1fa49b4b75) ) // decapped. TODO: verify, hook up and check if same for all games
+
ROM_REGION( 0x8000, "c65mcu:external", ROMREGION_ERASE00 ) /* I/O MCU */
ROM_LOAD( "sys2c65c.bin", 0x000000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
@@ -1079,9 +1086,12 @@ void namcos21_state::init_winrun()
m_gpu_maskram = std::make_unique<uint8_t[]>(0x80000);
}
+} // Anonymous namespace
+
+
/* YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS */
-// Original 'Namco System 21' with C65 I/O MCU, uses TMS320C25 DSP with no custom part number (no internal ROM?)
+// Original 'Namco System 21' with C65 I/O MCU, uses TMS320C25 DSP with no custom part number
GAME( 1988, winrun, 0, winrun, winrun, namcos21_state, init_winrun, ROT0, "Namco", "Winning Run (World) (89/06/06, Ver.09)", MACHINE_IMPERFECT_GRAPHICS ) // Sub Ver.09, 1989, Graphic Ver .06, 89/01/14, Sound Ver.2.00
GAME( 1989, winrungp, 0, winrun, winrungp, namcos21_state, init_winrun, ROT0, "Namco", "Winning Run Suzuka Grand Prix (Japan) (89/12/03, Ver.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // Sub Ver.02, 1989, Graphic Ver.02 89/12/03, Sound Ver.0000
// Available on a size/cost reduced 2 PCB set with 'Namco System 21B' printed on each board, still C65 I/O MCU, appears to be functionally identical to original NS21