Previous 199869 Revisions Next

r26582 Wednesday 11th December, 2013 at 00:50:01 UTC by Angelo Salese
Added cheap hack for Buriki One coin insertion, game is somehow playable with many gfx bugs
[src/mame/drivers]hng64.c
[src/mame/includes]hng64.h

trunk/src/mame/drivers/hng64.c
r26581r26582
637637/* Fatal Fury Wild Ambition / Buriki One */
638638READ32_MEMBER(hng64_state::fight_io_r)
639639{
640   /*
641   TODO: reads to i/o but coins doesn't work? Let's put a cheap hack for now
642   */
643   if(ioport("SYSTEM")->read() & 0x00030000 && m_mcu_type == BURIKI_MCU)
644   {
645      space.write_byte(0xf3ce4, 1);
646   }
647
640648   switch (offset*4)
641649   {
642      case 0x000: return 0x00000400;
650      case 0x000:   return 0x00000400;
643651      case 0x004: return ioport("SYSTEM")->read();
644652      case 0x008: return ioport("P1_P2")->read();
645653      case 0x600: return m_no_machine_error_code;
r26581r26582
765773
766774   switch (m_mcu_type)
767775   {
768      case FIGHT_MCU:  return fight_io_r(space, offset,0xffffffff);
776      case FIGHT_MCU:
777      case BURIKI_MCU: return fight_io_r(space, offset,0xffffffff);
769778      case SHOOT_MCU:  return shoot_io_r(space, offset,0xffffffff);
770779      case RACING_MCU: return racing_io_r(space, offset,0xffffffff);
771780      case SAMSHO_MCU: return samsho_io_r(space, offset,0xffffffff);
r26581r26582
802811   return m_3d_1[offset];
803812}
804813
805#ifdef UNUSED_FUNCTION
806814WRITE32_MEMBER(hng64_state::hng64_3d_1_w)
807815{
808   fatalerror("WRITE32_HANDLER( hng64_3d_1_w )\n");
816   COMBINE_DATA (&m_3d_1[offset]);
809817}
810#endif
811818
812819READ32_MEMBER(hng64_state::hng64_3d_2_r)
813820{
r26581r26582
816823
817824WRITE32_MEMBER(hng64_state::hng64_3d_2_w)
818825{
819   COMBINE_DATA (&m_3d_1[offset]);
820826   COMBINE_DATA (&m_3d_2[offset]);
821827}
822828
r26581r26582
889895WRITE32_MEMBER(hng64_state::dl_control_w) // This handles framebuffers
890896{
891897   if(data & 2) // clear current buffer
898   {
892899      clear3d();
900   }
893901
894902//   if(data & 1) // swap buffers
895903
r26581r26582
944952}
945953
946954/* Some games (namely sams64 after the title screen) tests bit 15 of this to be high,
947   unknown purpose (vblank? related to the display list?). */
955   unknown purpose (vblank? related to the display list?).
956
957   bit 1 needs to be off, otherwise Fatal Fury WA locks up (FIFO full?)
958   */
948959READ32_MEMBER(hng64_state::unk_vreg_r)
949960{
950961   return ++m_unk_vreg_toggle;
r26581r26582
11611172   AM_RANGE(0x20200000, 0x20203fff) AM_RAM_WRITE(hng64_pal_w) AM_SHARE("paletteram")
11621173   AM_RANGE(0x20208000, 0x2020805f) AM_READWRITE(tcram_r, tcram_w) AM_SHARE("tcram")   // Transition Control
11631174   AM_RANGE(0x20300000, 0x203001ff) AM_RAM_WRITE(dl_w) AM_SHARE("dl")  // 3d Display List
1164   AM_RANGE(0x20300200, 0x20300213) AM_WRITE(dl_upload_w)  // 3d Display List Upload
1175   AM_RANGE(0x20300200, 0x20300203) AM_WRITE(dl_upload_w)  // 3d Display List Upload
11651176   AM_RANGE(0x20300214, 0x20300217) AM_WRITE(dl_control_w)
11661177   AM_RANGE(0x20300218, 0x2030021b) AM_READ(unk_vreg_r)
11671178
11681179   // 3d?
11691180   AM_RANGE(0x30000000, 0x3000002f) AM_RAM AM_SHARE("3dregs")
1170   AM_RANGE(0x30100000, 0x3015ffff) AM_READWRITE(hng64_3d_1_r, hng64_3d_2_w) AM_SHARE("3d_1")  // 3D Display Buffer A
1181   AM_RANGE(0x30100000, 0x3015ffff) AM_READWRITE(hng64_3d_1_r, hng64_3d_1_w) AM_SHARE("3d_1")  // 3D Display Buffer A
11711182   AM_RANGE(0x30200000, 0x3025ffff) AM_READWRITE(hng64_3d_2_r, hng64_3d_2_w) AM_SHARE("3d_2")  // 3D Display Buffer B
11721183
11731184   // Sound
r26581r26582
16311642   m_mcu_type = FIGHT_MCU;
16321643}
16331644
1645DRIVER_INIT_MEMBER(hng64_state,buriki)
1646{
1647   DRIVER_INIT_CALL(hng64_fght);
1648   m_mcu_type = BURIKI_MCU;
1649}
1650
16341651DRIVER_INIT_MEMBER(hng64_state,ss64)
16351652{
16361653   DRIVER_INIT_CALL(hng64_fght);
r26581r26582
22632280GAME( 1998, bbust2,   hng64,  hng64, bbust2, hng64_state, hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare",            GAME_NOT_WORKING|GAME_NO_SOUND )  /* 004 */
22642281GAME( 1998, sams64_2, hng64,  hng64, hng64, hng64_state,  ss64,        ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 005 */
22652282GAME( 1998, fatfurwa, hng64,  hng64, hng64, hng64_state,  fatfurwa,    ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)",          GAME_NOT_WORKING|GAME_NO_SOUND )  /* 006 */
2266GAME( 1999, buriki,   hng64,  hng64, hng64, hng64_state,  fatfurwa,    ROT0, "SNK", "Buriki One (rev.B)",                     GAME_NOT_WORKING|GAME_NO_SOUND )  /* 007 */
2283GAME( 1999, buriki,   hng64,  hng64, hng64, hng64_state,  buriki,      ROT0, "SNK", "Buriki One (rev.B)",                     GAME_NOT_WORKING|GAME_NO_SOUND )  /* 007 */
trunk/src/mame/includes/hng64.h
r26581r26582
11#include "machine/msm6242.h"
22
3#define FIGHT_MCU  1
4#define SHOOT_MCU  2
5#define RACING_MCU 3
6#define SAMSHO_MCU 4
3enum
4{
5   FIGHT_MCU = 1,
6   SHOOT_MCU,
7   RACING_MCU,
8   SAMSHO_MCU,
9   BURIKI_MCU
10};
711
12
13
814class hng64_state : public driver_device
915{
1016public:
r26581r26582
140146   DECLARE_WRITE32_MEMBER(hng64_dualport_w);
141147   DECLARE_READ32_MEMBER(hng64_3d_1_r);
142148   DECLARE_READ32_MEMBER(hng64_3d_2_r);
149   DECLARE_WRITE32_MEMBER(hng64_3d_1_w);
143150   DECLARE_WRITE32_MEMBER(hng64_3d_2_w);
144151   DECLARE_WRITE32_MEMBER(dl_w);
145152   DECLARE_READ32_MEMBER(dl_r);
r26581r26582
160167   DECLARE_WRITE32_MEMBER(hng64_sprite_clear_even_w);
161168   DECLARE_WRITE32_MEMBER(hng64_sprite_clear_odd_w);
162169   DECLARE_WRITE32_MEMBER(trap_write);
163   DECLARE_WRITE32_MEMBER(hng64_3d_1_w);
164170   DECLARE_WRITE32_MEMBER(activate_3d_buffer);
165171   DECLARE_READ8_MEMBER(hng64_comm_shared_r);
166172   DECLARE_WRITE8_MEMBER(hng64_comm_shared_w);
r26581r26582
171177   DECLARE_WRITE8_MEMBER(hng64_comm_mmu_w);
172178   DECLARE_DRIVER_INIT(hng64_race);
173179   DECLARE_DRIVER_INIT(fatfurwa);
180   DECLARE_DRIVER_INIT(buriki);
174181   DECLARE_DRIVER_INIT(hng64);
175182   DECLARE_DRIVER_INIT(hng64_shoot);
176183   DECLARE_DRIVER_INIT(ss64);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team