Previous 199869 Revisions Next

r37069 Sunday 5th April, 2015 at 19:10:32 UTC by Zoƫ Blade
Merge branch 'master' of github.com:ZoeB/mame
[src/emu/sound]l7a1045_l6028_dsp_a.c l7a1045_l6028_dsp_a.h
[src/mame]mame.lst
[src/mame/audio]hng64.c
[src/mame/drivers]alpha68k.c
[src/mame/includes]alpha68k.h hng64.h
[src/mame/video]hng64.c

trunk/src/emu/sound/l7a1045_l6028_dsp_a.c
r245580r245581
165165   }
166166}
167167
168
168// TODO: needs proper memory map
169169WRITE16_MEMBER( l7a1045_sound_device::l7a1045_sound_w )
170170{
171171   m_stream->update(); // TODO
172172
173173   if(offset == 0)
174174      sound_select_w(space, offset, data, mem_mask);
175   else if(offset == 8/2)
176      sound_status_w(space, offset, data, mem_mask);
175177   else
176178      sound_data_w(space,offset - 1,data,mem_mask);
177179}
r245580r245581
220222
221223WRITE16_MEMBER(l7a1045_sound_device::sound_data_w)
222224{
223//   if(m_audioregister == 0)
224//      printf("%04x %04x (%04x|%04x %04x)\n",offset,data,offset ^ 2,m_audioregister,m_audiochannel);
225   if(m_audioregister != 0)
226      printf("%04x %04x (%04x|%04x %04x)\n",offset,data,offset ^ 2,m_audioregister,m_audiochannel);
225227
226228   m_audiodat[m_audioregister][m_audiochannel].dat[offset] = data;
227229
228   if(offset == 0)
230   switch (m_audioregister)
229231   {
232      case 0x00:
233         l7a1045_voice *vptr = &m_voice[m_audiochannel];
230234
231   switch (m_audioregister)
235         vptr->start = (m_audiodat[0][m_audiochannel].dat[2] & 0x000f) << (16 + 4);
236         vptr->start |= (m_audiodat[0][m_audiochannel].dat[1] & 0xffff) << (4);
237         vptr->start |= (m_audiodat[0][m_audiochannel].dat[0] & 0xf000) >> (12);
238
239         vptr->start &= m_rom_size - 1;
240
241         //printf("%08x: REGISTER 00 write port 0x0002 chansel %02x data %04x (%04x%04x%04x)\n", space.device().safe_pc(), m_audiochannel, data, m_audiodat[m_audioregister][m_audiochannel].dat[0], m_audiodat[m_audioregister][m_audiochannel].dat[1], m_audiodat[m_audioregister][m_audiochannel].dat[2]);
242         break;
243   }
244}
245
246WRITE16_MEMBER(l7a1045_sound_device::sound_status_w)
247{
248   if(data & 0x100) // keyin
232249   {
233   case 0x00:
234      // hack
235250      l7a1045_voice *vptr = &m_voice[m_audiochannel];
236251
237      m_key |= 1 << m_audiochannel;
238
239252      vptr->frac = 0;
240253      vptr->pos = 0;
241
242      vptr->start = (m_audiodat[0][m_audiochannel].dat[2] & 0x000f) << (16 + 4);
243      vptr->start |= (m_audiodat[0][m_audiochannel].dat[1] & 0xffff) << (4);
244      vptr->start |= (m_audiodat[0][m_audiochannel].dat[0] & 0xf000) >> (12);
245
246      vptr->start &= m_rom_size - 1;
247
248      //printf("%08x: REGISTER 00 write port 0x0002 chansel %02x data %04x (%04x%04x%04x)\n", space.device().safe_pc(), m_audiochannel, data, m_audiodat[m_audioregister][m_audiochannel].dat[0], m_audiodat[m_audioregister][m_audiochannel].dat[1], m_audiodat[m_audioregister][m_audiochannel].dat[2]);
249      break;
254      m_key |= 1 << m_audiochannel;
250255   }
251256}
252}
253257
254
255258READ16_MEMBER(l7a1045_sound_device::l7a1045_sound_port_0004_r)
256259{
257260   // it writes the channel select before reading this.. so either it works on channels, or the command..
trunk/src/emu/sound/l7a1045_l6028_dsp_a.h
r245580r245581
5757
5858   DECLARE_WRITE16_MEMBER(sound_select_w);
5959   DECLARE_WRITE16_MEMBER(sound_data_w);
60   DECLARE_WRITE16_MEMBER(sound_status_w);
6061
6162   DECLARE_READ16_MEMBER(l7a1045_sound_port_0004_r);
6263   DECLARE_READ16_MEMBER(l7a1045_sound_port_0006_r);
trunk/src/mame/audio/hng64.c
r245580r245581
194194//  logerror("hng64_sound_port_0008_w %04x %04x\n", data, mem_mask);
195195   // seems to one or more of the DMARQ on the V53, writes here when it expects DMA channel 3 to transfer ~0x20 bytes just after startup
196196
197   /* TODO: huh? */
197198   m_audiocpu->dreq3_w(data&1);
199   m_dsp->l7a1045_sound_w(space,8/2,data,mem_mask);
198200//  m_audiocpu->hack_w(1);
199201
200202}
r245580r245581
276278            printf("IRQ ACK %02x?\n",data);
277279         return;
278280   }
279   
281
280282   printf("SOUND W %02x %04x\n",offset*2,data);
281283}
282284
r245580r245581
290292         return main_latch[1];
291293   }
292294   printf("SOUND R %02x\n",offset*2);
293   
295
294296   return 0;
295297}
296298
r245580r245581
356358
357359   if(machine().input().code_pressed_once(KEYCODE_X))
358360      i--;
359     
361
360362   if(i < 0)
361363      i = 0;
362364   if(i > 7)
363365      i = 7;
364366
365367   printf("trigger %02x %d\n",i,state);
366     
368
367369   //if(machine().input().code_pressed_once(KEYCODE_C))
368370   {
369371      m_audiocpu->set_input_line(i, state? ASSERT_LINE :CLEAR_LINE);
trunk/src/mame/drivers/alpha68k.c
r245580r245581
110110  - There is no Dip Switch to determine if you are allowed to continue a game
111111    or not, so you ALWAYS have the possibility to continue a game.
112112
113 9)  'sbasebal'
114
115  - IMO, there must exist a Japan version of this game which is currently
116    undumped ! Set the SBASEBAL_HACK to 1 and you'll notice the following
117    differences :
118
119      * different manufacturer (no more SNK license)
120      * different coinage (check code at 0x00035c) and additional COIN2
121      * different game time (check code at 0x001d20)
122      * different table for "Unknown" Dip Switch
123
124
113 
125114Stephh's log (2002.06.19) :
126115
127116  - Create macros for players inputs and "Coinage" Dip Switch
r245580r245581
204193#include "sound/2203intf.h"
205194#include "includes/alpha68k.h"
206195
207#define SBASEBAL_HACK   0
208196
209197
198
210199/******************************************************************************/
211200
212201WRITE16_MEMBER(alpha68k_state::tnextspc_coin_counters_w)
r245580r245581
14571446
14581447   PORT_START("IN2")  /* Coin input to microcontroller */
14591448   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1460#if SBASEBAL_HACK
1461   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1462#else
14631449   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // COIN2 - unused due to code at 0x0002b4
1464#endif
14651450
1451
14661452   PORT_START("IN3")  /* Service + dip */
14671453   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
14681454   PORT_SERVICE_NO_TOGGLE(0x02, IP_ACTIVE_LOW)
r245580r245581
14811467   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
14821468   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
14831469   PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Game_Time ) )
1484#if SBASEBAL_HACK
1485   PORT_DIPSETTING(    0x00, "4:30" )
1486   PORT_DIPSETTING(    0x80, "4:00" )
1487   PORT_DIPSETTING(    0x40, "3:30" )
1488   PORT_DIPSETTING(    0xc0, "3:00" )
1489#else
14901470   PORT_DIPSETTING(    0x00, "3:30" )
14911471   PORT_DIPSETTING(    0x80, "3:00" )
14921472   PORT_DIPSETTING(    0x40, "2:30" )
14931473   PORT_DIPSETTING(    0xc0, "2:00" )
1494#endif
14951474
1475
14961476   PORT_START("IN4") /* A 6 way dip switch */
14971477   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )   // Check code at 0x009d3a
14981478   PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
14991479   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
15001480   PORT_DIPSETTING(    0x01, DEF_STR( Hard ) )
15011481   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1502#if SBASEBAL_HACK
1503   ALPHA68K_COINAGE_BITS_2TO4
1504#else
15051482   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) )
15061483   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
15071484   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_1C ) )
r245580r245581
15101487   PORT_DIPNAME( 0x10, 0x00, "Price to Continue" )
15111488   PORT_DIPSETTING(    0x10, DEF_STR( 1C_1C ) )
15121489   PORT_DIPSETTING(    0x00, "Same as Start" )
1513#endif
1490
15141491   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
15151492   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
15161493   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
15171494   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
15181495INPUT_PORTS_END
15191496
1497
1498
1499static INPUT_PORTS_START( sbasebalj )
1500   PORT_START("IN0")
1501   ALPHA68K_PLAYER_INPUT_LSB( 1, IPT_BUTTON3, IPT_START1, IP_ACTIVE_LOW )
1502
1503   PORT_START("IN1")
1504   ALPHA68K_PLAYER_INPUT_LSB( 2, IPT_BUTTON3, IPT_START2, IP_ACTIVE_LOW )
1505
1506   PORT_START("IN2")  /* Coin input to microcontroller */
1507   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1508   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1509
1510
1511   PORT_START("IN3")  /* Service + dip */
1512   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
1513   PORT_SERVICE_NO_TOGGLE(0x02, IP_ACTIVE_LOW)
1514
1515   /* 2 physical sets of _6_ dip switches */
1516   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
1517   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1518   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1519   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Flip_Screen ) )
1520   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1521   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1522   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
1523   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1524   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1525   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )  // Check code at 0x0089e6
1526   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1527   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1528   PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Game_Time ) )
1529   PORT_DIPSETTING(    0x00, "4:30" )
1530   PORT_DIPSETTING(    0x80, "4:00" )
1531   PORT_DIPSETTING(    0x40, "3:30" )
1532   PORT_DIPSETTING(    0xc0, "3:00" )
1533
1534
1535   PORT_START("IN4") /* A 6 way dip switch */
1536   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )   // Check code at 0x009d3a
1537   PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
1538   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
1539   PORT_DIPSETTING(    0x01, DEF_STR( Hard ) )
1540   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1541   ALPHA68K_COINAGE_BITS_2TO4
1542
1543   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
1544   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1545   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1546   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
1547INPUT_PORTS_END
1548
1549
1550
15201551static INPUT_PORTS_START( tnextspc )
15211552   PORT_START("P1")
15221553   ALPHA68K_PLAYER_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1, IP_ACTIVE_LOW )
r245580r245581
31353166
31363167ROM_START( sbasebal )
31373168   ROM_REGION( 0x40000, "maincpu", 0 )
3138   ROM_LOAD16_BYTE( "snksb1.bin", 0x00000, 0x20000, CRC(304fef2d) SHA1(03154e590807f7fd009068b403e1ea039272029d) )
3139   ROM_LOAD16_BYTE( "snksb2.bin", 0x00001, 0x20000, CRC(35821339) SHA1(2c4303bf799de7cb364cadac44ff28306088e2f4) )
3169   ROM_LOAD16_BYTE( "snksb1.c19", 0x00000, 0x20000, CRC(304fef2d) SHA1(03154e590807f7fd009068b403e1ea039272029d) )
3170   ROM_LOAD16_BYTE( "snksb2.e19", 0x00001, 0x20000, CRC(35821339) SHA1(2c4303bf799de7cb364cadac44ff28306088e2f4) )
31403171
3141   ROM_REGION( 0x90000, "audiocpu", 0 )   /* Sound CPU */
3142   ROM_LOAD( "snksb3.bin",      0x00000, 0x08000, CRC(89e12f25) SHA1(1c569958a7f5a91b54f1316c1d5ee027be8618d6) )
3143   ROM_CONTINUE(                0x18000, 0x08000 )
3144   ROM_LOAD( "snksb4.bin",      0x30000, 0x10000, CRC(cca2555d) SHA1(13c672331e8e5e5dd8fc3aa7829d46de6b8271f3) )
3145   ROM_LOAD( "snksb5.bin",      0x50000, 0x10000, CRC(f45ee36f) SHA1(cdfdf696e9fcd2827ab1dd6adc2a45085911333d) )
3146   ROM_LOAD( "snksb6.bin",      0x70000, 0x10000, CRC(651c9472) SHA1(bcff6679e22143cd6816c441c5a67b4956ee7ee0) )
3172   ROM_REGION( 0x90000, "audiocpu", 0 ) /* Sound CPU */
3173   ROM_LOAD( "sb-3.g9", 0x00000, 0x08000, CRC(89e12f25) SHA1(1c569958a7f5a91b54f1316c1d5ee027be8618d6) )
3174   ROM_CONTINUE( 0x18000, 0x08000 )
3175   ROM_LOAD( "sb-4.g11", 0x30000, 0x10000, CRC(cca2555d) SHA1(13c672331e8e5e5dd8fc3aa7829d46de6b8271f3) )
3176   ROM_LOAD( "sb-5.g13", 0x50000, 0x10000, CRC(f45ee36f) SHA1(cdfdf696e9fcd2827ab1dd6adc2a45085911333d) )
3177   ROM_LOAD( "sb-6.g15", 0x70000, 0x10000, CRC(651c9472) SHA1(bcff6679e22143cd6816c441c5a67b4956ee7ee0) )
31473178
31483179   ROM_REGION( 0x10000, "mcu", 0 )
31493180   ROM_LOAD( "alpha.mcu", 0x000, 0x1000, NO_DUMP )
31503181
3151   ROM_REGION( 0x10000, "gfx1", 0 )  /* chars */
3152   ROM_LOAD( "snksb7.bin",      0x000000, 0x10000, CRC(8f3c2e25) SHA1(a5b3880f3079cce607678fd4ea5971560ce9ed8d) )
3182   ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
3183   ROM_LOAD( "sb-7.l3", 0x000000, 0x10000, CRC(8f3c2e25) SHA1(a5b3880f3079cce607678fd4ea5971560ce9ed8d) )
31533184
3154   ROM_REGION( 0x280000, "gfx2", 0 )  /* sprites */
3155   ROM_LOAD( "kcbchr3.bin",     0x000000, 0x80000, CRC(719071c7) SHA1(47eded73eae25af04cf369f1a8ee657fd06b6480) )
3156   ROM_LOAD( "kcbchr2.bin",     0x0a0000, 0x80000, CRC(014f0f90) SHA1(e80594f06faf303c4034a711fe55dad046ebf9aa) )
3157   ROM_LOAD( "kcbchr1.bin",     0x140000, 0x80000, CRC(a5ce1e10) SHA1(c91cad45a918166155be3f93f4ed299389579f4a) )
3158   ROM_LOAD( "kcbchr0.bin",     0x1e0000, 0x80000, CRC(b8a1a088) SHA1(cb21a04387431b1810130abd86a2ebf78cf09a3b) )
3185   ROM_REGION( 0x280000, "gfx2", 0 ) /* sprites */
3186   ROM_LOAD( "kcb-chr3.h21", 0x000000, 0x80000, CRC(719071c7) SHA1(47eded73eae25af04cf369f1a8ee657fd06b6480) )
3187   ROM_LOAD( "kcb-chr2.h19", 0x0a0000, 0x80000, CRC(014f0f90) SHA1(e80594f06faf303c4034a711fe55dad046ebf9aa) )
3188   ROM_LOAD( "kcb-chr1.h18", 0x140000, 0x80000, CRC(a5ce1e10) SHA1(c91cad45a918166155be3f93f4ed299389579f4a) )
3189   ROM_LOAD( "kcb-chr0.h16", 0x1e0000, 0x80000, CRC(b8a1a088) SHA1(cb21a04387431b1810130abd86a2ebf78cf09a3b) )
31593190ROM_END
31603191
3192ROM_START( sbasebalj )
3193   ROM_REGION( 0x40000, "maincpu", 0 )
3194   ROM_LOAD16_BYTE( "sb-j-1.c19", 0x00000, 0x20000, CRC(c46a3c03) SHA1(51d22f2873e45ae64453f3003940b3871d065c5b) )
3195   ROM_LOAD16_BYTE( "sb-j-2.e19", 0x00001, 0x20000, CRC(a8ec2287) SHA1(9c873f3388a00babc1cd38188ef1fe6e2741fd67) )
3196
3197   ROM_REGION( 0x90000, "audiocpu", 0 ) /* Sound CPU */
3198   ROM_LOAD( "sb-3.g9", 0x00000, 0x08000, CRC(89e12f25) SHA1(1c569958a7f5a91b54f1316c1d5ee027be8618d6) )
3199   ROM_CONTINUE( 0x18000, 0x08000 )
3200   ROM_LOAD( "sb-4.g11", 0x30000, 0x10000, CRC(cca2555d) SHA1(13c672331e8e5e5dd8fc3aa7829d46de6b8271f3) )
3201   ROM_LOAD( "sb-5.g13", 0x50000, 0x10000, CRC(f45ee36f) SHA1(cdfdf696e9fcd2827ab1dd6adc2a45085911333d) )
3202   ROM_LOAD( "sb-6.g15", 0x70000, 0x10000, CRC(651c9472) SHA1(bcff6679e22143cd6816c441c5a67b4956ee7ee0) )
3203
3204   ROM_REGION( 0x10000, "mcu", 0 )
3205   ROM_LOAD( "alpha.mcu", 0x000, 0x1000, NO_DUMP )
3206
3207   ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
3208   ROM_LOAD( "sb-7.l3", 0x000000, 0x10000, CRC(8f3c2e25) SHA1(a5b3880f3079cce607678fd4ea5971560ce9ed8d) )
3209
3210   ROM_REGION( 0x280000, "gfx2", 0 ) /* sprites */
3211   ROM_LOAD( "kcb-chr3.h21", 0x000000, 0x80000, CRC(719071c7) SHA1(47eded73eae25af04cf369f1a8ee657fd06b6480) )
3212   ROM_LOAD( "kcb-chr2.h19", 0x0a0000, 0x80000, CRC(014f0f90) SHA1(e80594f06faf303c4034a711fe55dad046ebf9aa) )
3213   ROM_LOAD( "kcb-chr1.h18", 0x140000, 0x80000, CRC(a5ce1e10) SHA1(c91cad45a918166155be3f93f4ed299389579f4a) )
3214   ROM_LOAD( "kcb-chr0.h16", 0x1e0000, 0x80000, CRC(b8a1a088) SHA1(cb21a04387431b1810130abd86a2ebf78cf09a3b) )
3215ROM_END
3216
31613217ROM_START( tnextspc ) /* MASKROM for gfx */
31623218   ROM_REGION( 0x40000, "maincpu", 0 )
31633219   ROM_LOAD16_BYTE( "ns_4.bin", 0x00000, 0x20000, CRC(4617cba3) SHA1(615a1e67fc1c76d2be004b19a965f423b8daaf5c) )
r245580r245581
33753431   rom[0x458/2] = 0x4e71;
33763432   rom[0x45a/2] = 0x4e71;
33773433
3378#if SBASEBAL_HACK
3379   rom[0x2b4/2] = 0x4e71;
3380   rom[0x2b6/2] = 0x4e71;
3381#endif
3434   m_invert_controls = 0;
3435   m_microcontroller_id = 0x8512;  // Same as 'gangwars' ?
3436   m_coin_id = 0x23 | (0x24 << 8);
3437   m_game_id = 0;
3438}
33823439
3440DRIVER_INIT_MEMBER(alpha68k_state,sbasebalj)
3441{
33833442   m_invert_controls = 0;
33843443   m_microcontroller_id = 0x8512;  // Same as 'gangwars' ?
33853444   m_coin_id = 0x23 | (0x24 << 8);
r245580r245581
34293488GAME( 1989, gangwarsb, gangwars, alpha68k_V,     gangwars, alpha68k_state, gangwars, ROT0,  "bootleg",                                           "Gang Wars (bootleg)", GAME_SUPPORTS_SAVE ) // has (undumped) 68705 MCU in place of Alpha MCU, otherwise the same as 'gangwars'
34303489
34313490GAME( 1989, sbasebal,  0,        alpha68k_V_sb,  sbasebal, alpha68k_state, sbasebal, ROT0,  "Alpha Denshi Co. (SNK of America license)",         "Super Champion Baseball (US)", GAME_SUPPORTS_SAVE | GAME_UNEMULATED_PROTECTION )
3491GAME( 1989, sbasebalj, sbasebal, alpha68k_V_sb,  sbasebalj,alpha68k_state, sbasebalj,ROT0,  "Alpha Denshi Co.",                                  "Super Champion Baseball (Japan)", GAME_SUPPORTS_SAVE | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
34323492
34333493GAME( 1989, tnextspc,  0,        tnextspc,       tnextspc, alpha68k_state, tnextspc, ROT90, "SNK",                                               "The Next Space (set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
34343494GAME( 1989, tnextspc2, tnextspc, tnextspc,       tnextspc, alpha68k_state, tnextspc, ROT90, "SNK",                                               "The Next Space (set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
trunk/src/mame/includes/alpha68k.h
r245580r245581
8383   DECLARE_DRIVER_INIT(tnextspc);
8484   DECLARE_DRIVER_INIT(timesold1);
8585   DECLARE_DRIVER_INIT(sbasebal);
86   DECLARE_DRIVER_INIT(sbasebalj);
8687   DECLARE_DRIVER_INIT(skysoldr);
8788   DECLARE_DRIVER_INIT(skyadvntu);
8889   DECLARE_DRIVER_INIT(btlfieldb);
trunk/src/mame/includes/hng64.h
r245580r245581
104104      : driver_device(mconfig, type, tag),
105105      m_maincpu(*this, "maincpu"),
106106      m_audiocpu(*this, "audiocpu"),
107      m_dsp(*this, "l7a1045"),
107108      m_comm(*this, "network"),
108109      m_rtc(*this, "rtc"),
109110      m_mainram(*this, "mainram"),
r245580r245581
129130
130131   required_device<mips3_device> m_maincpu;
131132   required_device<v53a_device> m_audiocpu;
133   required_device<l7a1045_sound_device> m_dsp;
132134   required_device<cpu_device> m_comm;
133135   required_device<msm6242_device> m_rtc;
136
134137   required_shared_ptr<UINT32> m_mainram;
135138   required_shared_ptr<UINT32> m_cart;
136139   required_shared_ptr<UINT32> m_sysregs;
trunk/src/mame/mame.lst
r245580r245581
78477847gangwarsu       // Alpha-68K96V       (c) 1989 Alpha Denshi Co.
78487848gangwarsb       // bootleg
78497849sbasebal        // Alpha-68K96V       (c) 1989 SNK of America licensed from Alpha
7850sbasebalj      // Alpha-68K96V
78507851tnextspc        // A8003 'NS' (c) 1989 - MASKROM
78517852tnextspc2       // A8003 'NS' (c) 1989 - EPROMs
78527853tnextspcj       // A8003 'NS' (c) 1989 - Japan
trunk/src/mame/video/hng64.c
r245580r245581
44
55#define BLEND_TEST 0
66
7#define HNG64_VIDEO_DEBUG 0
78
89
910
1011
11
1212/* Transition Control Video Registers
1313 * ----------------------------------
1414 *
r245580r245581
623623   if ( (m_additive_tilemap_debug&(1 << tm)))
624624      debug_blend_enabled = 1;
625625
626#if HNG64_VIDEO_DEBUG
626627   if ((global_dimensions != 0) && (global_dimensions != 3))
627628      popmessage("unsupported global_dimensions on tilemaps");
629#endif
628630
629631   if (tm==0)
630632   {
r245580r245581
708710
709711         */
710712
713#if HNG64_VIDEO_DEBUG
711714         popmessage("Unhandled rowscroll %02x", tileregs>>12);
715#endif
712716      }
713717      else // 'simple' mode with linescroll, used in some ss64_2 levels (assumed to be correct, but doesn't do much with it.. so could be wrong)
714718      {
r245580r245581
751755   }
752756   else
753757   {
758#if HNG64_VIDEO_DEBUG
754759      if ((tileregs&0xf000))
755760         popmessage("Tilemap Mosaic? %02x", tileregs>>12);
761#endif
756762      // 0x1000 is set up the buriki 2nd title screen with rotating logo and in fatal fury at various times?
757763
758764      if (global_tileregs&0x04000000) // globally selects alt scroll register layout???
r245580r245581
775781         INT32 ytopleft,ymiddle, yalt;
776782         int xinc, xinc2, yinc, yinc2;
777783
784#if HNG64_VIDEO_DEBUG
778785         if (0)
779786            if (tm==2)
780787               popmessage("X %08x X %08x X %08x Y %08x Y %08x Y %08x",
r245580r245581
787794                  hng64_videoram[(0x40018+(scrollbase<<4))/4],
788795                  hng64_videoram[(0x4000c+(scrollbase<<4))/4]);
789796                  /*hng64_videoram[(0x4001c+(scrollbase<<4))/4]);*/ // unused? (dupe value on fatfurwa, 00 on rest)
797#endif
790798
791799
792
793800         xtopleft  = (hng64_videoram[(0x40000+(scrollbase<<4))/4]);
794801         xalt      = (hng64_videoram[(0x40004+(scrollbase<<4))/4]); // middle screen point
795802         xmiddle   = (hng64_videoram[(0x40010+(scrollbase<<4))/4]);
r245580r245581
868875         INT32 ytopleft,ymiddle;
869876         int xinc,yinc;
870877
878#if HNG64_VIDEO_DEBUG
871879         if (0)
872880            if (tm==2)
873881               popmessage("%08x %08x %08x %08x",
r245580r245581
875883                  hng64_videoram[(0x40014+(scrollbase<<4))/4],
876884                  hng64_videoram[(0x40018+(scrollbase<<4))/4],
877885                  hng64_videoram[(0x4001c+(scrollbase<<4))/4]);
886#endif
878887
879888         if (hng64_videoregs[0x00]&0x00010000) // disable all scrolling / zoom (test screen) (maybe)
880889         {
r245580r245581
10311040      if (!strcmp(machine().system().name, "sams64_2"))
10321041      {
10331042         space.write_byte(0x2f27c8, 0x2);
1034      }
1043      }
10351044      else if (!strcmp(machine().system().name, "roadedge")) // hack to get test mode (useful for sound test)
10361045      {
10371046         space.write_byte(0xcfb53, 0x1);
r245580r245581
10451054#endif
10461055
10471056
1048   
10491057
10501058
1059
10511060   bitmap.fill(hng64_tcram[0x50/4] & 0x10000 ? m_palette->black_pen() : m_palette->pen(0), cliprect); //FIXME: Is the register correct? check with HW tests
10521061   screen.priority().fill(0x00, cliprect);
10531062
r245580r245581
11321141   if(0)
11331142      transition_control(bitmap, cliprect);
11341143
1144#if HNG64_VIDEO_DEBUG
11351145   if (0)
11361146      popmessage("%08x %08x %08x %08x %08x", m_spriteregs[0], m_spriteregs[1], m_spriteregs[2], m_spriteregs[3], m_spriteregs[4]);
11371147
r245580r245581
12091219      m_additive_tilemap_debug ^= 8;
12101220      popmessage("blend changed %02x", m_additive_tilemap_debug);
12111221   }
1222#endif
12121223
12131224   return 0;
12141225}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team