mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
Preliminary ADPCM hook-up to Jantotsu,it plays something but it's not yet right. [Angelo Salese]
This commit is contained in:
parent
0fd71e350a
commit
0335419d51
@ -5,25 +5,26 @@
|
|||||||
driver by David Haywood and Angelo Salese
|
driver by David Haywood and Angelo Salese
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
-The 1-2 Player tiles on hand are actually shown on different screen sides.The Service Mode
|
-The 1st/2nd Player tiles on hand are actually shown on different screen sides.The Service
|
||||||
is for adjusting these screens (to not let the human opponent to read your tiles).
|
Mode is for adjusting these screens (to not let the human opponent to read your tiles).
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
-MSM5205 samples are wrongly played i.e. plays chi when it's clearly a pon.ADPCM index issue;
|
||||||
|
-MSM5205 sample stop is wrong;
|
||||||
-Video buffering? If you coin up,you can see the "credit 1" msg that gets build into the
|
-Video buffering? If you coin up,you can see the "credit 1" msg that gets build into the
|
||||||
video bitmaps...
|
video bitmaps...
|
||||||
-According to the flyer,color bitplanes might be wrong on the A-N mahjong charset,might be a
|
-According to the flyer,color bitplanes might be wrong on the A-N mahjong charset,might be a
|
||||||
BTANB however...
|
BTANB however...
|
||||||
-I need schematics / pcb photos (component + solder sides) to understand if the background
|
-I need schematics / pcb photos (component + solder sides) to understand if the background
|
||||||
color is hard-wired to the DIP-Switches or there's something else wrong.
|
color is hard-wired to the DIP-Switches or there's something else wrong.
|
||||||
-Missing MSM5205 samples;
|
|
||||||
|
|
||||||
============================================================================================
|
============================================================================================
|
||||||
Debug cheats:
|
Debug cheats:
|
||||||
|
|
||||||
c01b-c028 player-1 tiles
|
c01b-c028 player-1 tiles
|
||||||
c02b-c038 right computer tiles
|
c02b-c038 "right" computer tiles
|
||||||
c03b-c048 up computer tiles / player-2 tiles
|
c03b-c048 "up" computer tiles / player-2 tiles
|
||||||
c04b-c058 left computer tiles
|
c04b-c058 "left" computer tiles
|
||||||
|
|
||||||
============================================================================================
|
============================================================================================
|
||||||
|
|
||||||
@ -64,6 +65,7 @@ dumped by sayu
|
|||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "sound/sn76496.h"
|
#include "sound/sn76496.h"
|
||||||
|
#include "sound/msm5205.h"
|
||||||
|
|
||||||
static UINT8 *jan_bitmap_1,*jan_bitmap_2,*jan_bitmap_3,*jan_bitmap_4;
|
static UINT8 *jan_bitmap_1,*jan_bitmap_2,*jan_bitmap_3,*jan_bitmap_4;
|
||||||
static UINT8 vram_bank,col_bank;
|
static UINT8 vram_bank,col_bank;
|
||||||
@ -210,6 +212,56 @@ static READ8_HANDLER( jantotsu_dsw2_r )
|
|||||||
return (input_port_read(space->machine, "DSW2") & 0x3f) | 0x80;
|
return (input_port_read(space->machine, "DSW2") & 0x3f) | 0x80;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static UINT32 adpcm_pos;
|
||||||
|
static UINT8 adpcm_idle;
|
||||||
|
static int adpcm_data;
|
||||||
|
|
||||||
|
static WRITE8_HANDLER( jan_adpcm_w )
|
||||||
|
{
|
||||||
|
switch (offset)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
adpcm_pos = (data & 0xff) * 0x80;
|
||||||
|
adpcm_idle = 0;
|
||||||
|
msm5205_reset_w(0,0);
|
||||||
|
// printf("%02x 0\n",data);
|
||||||
|
break;
|
||||||
|
/*same write as port 2?*/
|
||||||
|
case 1:
|
||||||
|
// adpcm_idle = 1;
|
||||||
|
// msm5205_reset_w(0,1);
|
||||||
|
// printf("%02x 1\n",data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void jan_adpcm_int(const device_config *device)
|
||||||
|
{
|
||||||
|
static UINT8 trigger;
|
||||||
|
|
||||||
|
if (adpcm_pos >= 0x8000 || adpcm_idle)
|
||||||
|
{
|
||||||
|
//adpcm_idle = 1;
|
||||||
|
msm5205_reset_w(0,1);
|
||||||
|
trigger = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UINT8 *ROM = memory_region(device->machine, "adpcm");
|
||||||
|
|
||||||
|
adpcm_data = ((trigger ? (ROM[adpcm_pos] & 0x0f) : (ROM[adpcm_pos] & 0xf0)>>4) );
|
||||||
|
msm5205_data_w(0,adpcm_data & 0xf);
|
||||||
|
trigger^=1;
|
||||||
|
if(trigger == 0)
|
||||||
|
{
|
||||||
|
adpcm_pos++;
|
||||||
|
if((ROM[adpcm_pos] & 0xff) == 0xff)
|
||||||
|
adpcm_idle = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static ADDRESS_MAP_START( jantotsu_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( jantotsu_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||||
@ -220,7 +272,7 @@ static ADDRESS_MAP_START( jantotsu_io, ADDRESS_SPACE_IO, 8 )
|
|||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE(sn76496_0_w)
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE(sn76496_0_w)
|
||||||
AM_RANGE(0x01, 0x01) AM_READ(jantotsu_dsw2_r) AM_WRITE(sn76496_1_w)
|
AM_RANGE(0x01, 0x01) AM_READ(jantotsu_dsw2_r) AM_WRITE(sn76496_1_w)
|
||||||
//02-03 MSM samples
|
AM_RANGE(0x02, 0x03) AM_WRITE(jan_adpcm_w)
|
||||||
AM_RANGE(0x04, 0x04) AM_READWRITE(jantotsu_mux_r,jantotsu_mux_w)
|
AM_RANGE(0x04, 0x04) AM_READWRITE(jantotsu_mux_r,jantotsu_mux_w)
|
||||||
AM_RANGE(0x07, 0x07) AM_WRITE(bankaddr_w)
|
AM_RANGE(0x07, 0x07) AM_WRITE(bankaddr_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -336,8 +388,16 @@ static MACHINE_RESET( jantotsu )
|
|||||||
mux_data = 0;
|
mux_data = 0;
|
||||||
/*Load hard-wired background color.*/
|
/*Load hard-wired background color.*/
|
||||||
col_bank = (input_port_read(machine, "DSW2") & 0xc0)>>3;
|
col_bank = (input_port_read(machine, "DSW2") & 0xc0)>>3;
|
||||||
|
adpcm_pos = 0;
|
||||||
|
adpcm_idle = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const msm5205_interface msm5205_config =
|
||||||
|
{
|
||||||
|
jan_adpcm_int, /* interrupt function */
|
||||||
|
MSM5205_S48_4B /* 8kHz */
|
||||||
|
};
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( jantotsu )
|
static MACHINE_DRIVER_START( jantotsu )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("main", Z80,18432000/4)
|
MDRV_CPU_ADD("main", Z80,18432000/4)
|
||||||
@ -368,6 +428,10 @@ static MACHINE_DRIVER_START( jantotsu )
|
|||||||
|
|
||||||
MDRV_SOUND_ADD("sn2", SN76489A, 18432000/4)
|
MDRV_SOUND_ADD("sn2", SN76489A, 18432000/4)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||||
|
|
||||||
|
MDRV_SOUND_ADD("adpcm", MSM5205, 288000)
|
||||||
|
MDRV_SOUND_CONFIG(msm5205_config)
|
||||||
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
@ -381,7 +445,7 @@ ROM_START( jantotsu )
|
|||||||
ROM_LOAD( "jat-04.3e", 0x08000, 0x02000, CRC(734e029f) SHA1(75aa13397847b4db32c41aaa6ff2ac82f16bd7a2) )
|
ROM_LOAD( "jat-04.3e", 0x08000, 0x02000, CRC(734e029f) SHA1(75aa13397847b4db32c41aaa6ff2ac82f16bd7a2) )
|
||||||
ROM_LOAD( "jat-05.4e", 0x0a000, 0x02000, CRC(1a725e1a) SHA1(1d39d607850f47b9389f41147d4570da8814f639) )
|
ROM_LOAD( "jat-05.4e", 0x0a000, 0x02000, CRC(1a725e1a) SHA1(1d39d607850f47b9389f41147d4570da8814f639) )
|
||||||
|
|
||||||
ROM_REGION( 0x8000, "gfx1", 0 )
|
ROM_REGION( 0x8000, "adpcm", 0 )
|
||||||
ROM_LOAD( "jat-40.6b", 0x00000, 0x02000, CRC(2275253e) SHA1(64e9415faf2775c6b9ab497dce7fda8c4775192e) )
|
ROM_LOAD( "jat-40.6b", 0x00000, 0x02000, CRC(2275253e) SHA1(64e9415faf2775c6b9ab497dce7fda8c4775192e) )
|
||||||
ROM_LOAD( "jat-41.7b", 0x02000, 0x02000, CRC(ce08ed71) SHA1(8554e5e7ec178f57bed5fbdd5937e3a35f72c454) )
|
ROM_LOAD( "jat-41.7b", 0x02000, 0x02000, CRC(ce08ed71) SHA1(8554e5e7ec178f57bed5fbdd5937e3a35f72c454) )
|
||||||
ROM_LOAD( "jat-42.8b", 0x04000, 0x02000, CRC(3ac3efbf) SHA1(846faea7c7c01fb7500aa33a70d4b54e878c0e41) )
|
ROM_LOAD( "jat-42.8b", 0x04000, 0x02000, CRC(3ac3efbf) SHA1(846faea7c7c01fb7500aa33a70d4b54e878c0e41) )
|
||||||
|
Loading…
Reference in New Issue
Block a user