namcos21.cpp: decapped TMS320C25 for winrungp [Caps0ff, Nathan Gilbert, Guru]

This commit is contained in:
Ivan Vangelista 2020-11-29 13:30:06 +01:00
parent f9b9773d00
commit 477d199f55

View File

@ -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