mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
hwchamp: Use ADC device
This commit is contained in:
parent
fbdee38492
commit
45db59a77c
@ -1277,7 +1277,6 @@ void segas16b_state::machine_start()
|
|||||||
void segas16b_state::machine_reset()
|
void segas16b_state::machine_reset()
|
||||||
{
|
{
|
||||||
m_atomicp_sound_count = 0;
|
m_atomicp_sound_count = 0;
|
||||||
m_hwc_input_value = 0;
|
|
||||||
m_mj_input_num = 0;
|
m_mj_input_num = 0;
|
||||||
m_mj_last_val = 0;
|
m_mj_last_val = 0;
|
||||||
|
|
||||||
@ -1490,10 +1489,8 @@ uint16_t segas16b_state::hwchamp_custom_io_r(address_space &space, offs_t offset
|
|||||||
switch (offset & 0x30/2)
|
switch (offset & 0x30/2)
|
||||||
{
|
{
|
||||||
case 0x20/2:
|
case 0x20/2:
|
||||||
result = (m_hwc_input_value & 0x80) >> 7;
|
return m_adc->d0_r(space);
|
||||||
if (!machine().side_effects_disabled())
|
|
||||||
m_hwc_input_value <<= 1;
|
|
||||||
return result;
|
|
||||||
case 0x30/2: // c43035
|
case 0x30/2: // c43035
|
||||||
/*
|
/*
|
||||||
Signals, affects blocking and stance (both fists down, both fists up, up/down or down/up)
|
Signals, affects blocking and stance (both fists down, both fists up, up/down or down/up)
|
||||||
@ -1535,25 +1532,7 @@ void segas16b_state::hwchamp_custom_io_w(address_space &space, offs_t offset, ui
|
|||||||
switch (offset & 0x30/2)
|
switch (offset & 0x30/2)
|
||||||
{
|
{
|
||||||
case 0x20/2:
|
case 0x20/2:
|
||||||
switch (offset & 3)
|
m_adc->address_w(offset & 3, 0);
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
m_hwc_input_value = m_hwc_monitor->read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
// TODO: order of these two flipped when returning a status of 0xf0 instead of open bus in r 0x30?
|
|
||||||
case 1:
|
|
||||||
m_hwc_input_value = m_hwc_right->read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
m_hwc_input_value = m_hwc_left->read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
m_hwc_input_value = 0xff;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x30/2:
|
case 0x30/2:
|
||||||
@ -4157,6 +4136,26 @@ void segas16b_state::aceattacb_fd1094(machine_config &config)
|
|||||||
m_cxdio->in_portb_cb().set_ioport("HANDX2");
|
m_cxdio->in_portb_cb().set_ioport("HANDX2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void segas16b_state::hwchamp(machine_config &config)
|
||||||
|
{
|
||||||
|
system16b(config);
|
||||||
|
MSM6253(config, m_adc, 0);
|
||||||
|
m_adc->set_input_tag<0>("MONITOR");
|
||||||
|
// TODO: order of these two flipped when returning a status of 0xf0 instead of open bus in r 0x30?
|
||||||
|
m_adc->set_input_tag<1>("RIGHT");
|
||||||
|
m_adc->set_input_tag<2>("LEFT");
|
||||||
|
}
|
||||||
|
|
||||||
|
void segas16b_state::hwchamp_fd1094(machine_config &config)
|
||||||
|
{
|
||||||
|
system16b_fd1094(config);
|
||||||
|
MSM6253(config, m_adc, 0);
|
||||||
|
m_adc->set_input_tag<0>("MONITOR");
|
||||||
|
// TODO: order of these two flipped when returning a status of 0xf0 instead of open bus in r 0x30?
|
||||||
|
m_adc->set_input_tag<1>("RIGHT");
|
||||||
|
m_adc->set_input_tag<2>("LEFT");
|
||||||
|
}
|
||||||
|
|
||||||
void segas16b_state::system16b_i8751(machine_config &config)
|
void segas16b_state::system16b_i8751(machine_config &config)
|
||||||
{
|
{
|
||||||
system16b(config);
|
system16b(config);
|
||||||
@ -9861,7 +9860,6 @@ void segas16b_state::init_generic(segas16b_rom_board rom_board)
|
|||||||
|
|
||||||
// save state
|
// save state
|
||||||
save_item(NAME(m_atomicp_sound_count));
|
save_item(NAME(m_atomicp_sound_count));
|
||||||
save_item(NAME(m_hwc_input_value));
|
|
||||||
save_item(NAME(m_mj_input_num));
|
save_item(NAME(m_mj_input_num));
|
||||||
save_item(NAME(m_mj_last_val));
|
save_item(NAME(m_mj_last_val));
|
||||||
}
|
}
|
||||||
@ -10110,9 +10108,9 @@ GAME( 1989, goldnaxe3, goldnaxe, system16b_fd1094, goldnaxe, segas16b_stat
|
|||||||
GAME( 1989, goldnaxe2, goldnaxe, system16b_i8751, goldnaxe, segas16b_state, init_generic_5704, ROT0, "Sega", "Golden Axe (set 2, US) (8751 317-0112)", 0 )
|
GAME( 1989, goldnaxe2, goldnaxe, system16b_i8751, goldnaxe, segas16b_state, init_generic_5704, ROT0, "Sega", "Golden Axe (set 2, US) (8751 317-0112)", 0 )
|
||||||
GAME( 1989, goldnaxe1, goldnaxe, system16b_fd1094_5797, goldnaxe, segas16b_state, init_generic_5797, ROT0, "Sega", "Golden Axe (set 1, World) (FD1094 317-0110)", 0 )
|
GAME( 1989, goldnaxe1, goldnaxe, system16b_fd1094_5797, goldnaxe, segas16b_state, init_generic_5797, ROT0, "Sega", "Golden Axe (set 1, World) (FD1094 317-0110)", 0 )
|
||||||
|
|
||||||
GAME( 1987, hwchamp, 0, system16b, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (set 1)", 0 )
|
GAME( 1987, hwchamp, 0, hwchamp, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (set 1)", 0 )
|
||||||
GAME( 1987, hwchampa, hwchamp, system16b, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (set 2)", 0 )
|
GAME( 1987, hwchampa, hwchamp, hwchamp, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (set 2)", 0 )
|
||||||
GAME( 1987, hwchampj, hwchamp, system16b_fd1094, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (Japan) (FD1094 317-0046)", 0 )
|
GAME( 1987, hwchampj, hwchamp, hwchamp_fd1094, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (Japan) (FD1094 317-0046)", 0 )
|
||||||
|
|
||||||
GAME( 1989, mvp, 0, system16b_fd1094_5797, mvp, segas16b_state, init_generic_5797, ROT0, "Sega", "MVP (set 2, US) (FD1094 317-0143)", 0 )
|
GAME( 1989, mvp, 0, system16b_fd1094_5797, mvp, segas16b_state, init_generic_5797, ROT0, "Sega", "MVP (set 2, US) (FD1094 317-0143)", 0 )
|
||||||
GAME( 1989, mvpj, mvp, system16b_fd1094, mvp, segas16b_state, init_generic_5704, ROT0, "Sega", "MVP (set 1, Japan) (FD1094 317-0142)", 0 )
|
GAME( 1989, mvpj, mvp, system16b_fd1094, mvp, segas16b_state, init_generic_5704, ROT0, "Sega", "MVP (set 1, Japan) (FD1094 317-0142)", 0 )
|
||||||
@ -10217,7 +10215,7 @@ GAME( 1987, sonicbomd, sonicbom, system16b, sonicbom, segas16b_stat
|
|||||||
|
|
||||||
GAME( 1990, ryukyud, ryukyu, system16b, ryukyu, segas16b_state, init_generic_5704, ROT0, "bootleg", "RyuKyu (Japan) (bootleg of FD1094 317-5023 set)", 0 )
|
GAME( 1990, ryukyud, ryukyu, system16b, ryukyu, segas16b_state, init_generic_5704, ROT0, "bootleg", "RyuKyu (Japan) (bootleg of FD1094 317-5023 set)", 0 )
|
||||||
|
|
||||||
GAME( 1987, hwchampjd, hwchamp, system16b, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "bootleg", "Heavyweight Champ (Japan) (bootleg of FD1094 317-0046 set)", 0 )
|
GAME( 1987, hwchampjd, hwchamp, hwchamp, hwchamp, segas16b_state, init_hwchamp_5521, ROT0, "bootleg", "Heavyweight Champ (Japan) (bootleg of FD1094 317-0046 set)", 0 )
|
||||||
|
|
||||||
GAME( 1987, bulletd, bullet, system16b, bullet, segas16b_state, init_generic_5358_small, ROT0, "bootleg", "Bullet (bootleg of FD1094 317-0041 set)", 0 )
|
GAME( 1987, bulletd, bullet, system16b, bullet, segas16b_state, init_generic_5358_small, ROT0, "bootleg", "Bullet (bootleg of FD1094 317-0041 set)", 0 )
|
||||||
|
|
||||||
|
@ -10,21 +10,24 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "315_5195.h"
|
||||||
|
#include "segaic16_m.h"
|
||||||
|
#include "segaic16.h"
|
||||||
|
#include "sega16sp.h"
|
||||||
|
|
||||||
#include "cpu/m68000/m68000.h"
|
#include "cpu/m68000/m68000.h"
|
||||||
#include "cpu/mcs51/mcs51.h"
|
#include "cpu/mcs51/mcs51.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "315_5195.h"
|
|
||||||
#include "machine/cxd1095.h"
|
#include "machine/cxd1095.h"
|
||||||
#include "machine/gen_latch.h"
|
#include "machine/gen_latch.h"
|
||||||
|
#include "machine/msm6253.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "segaic16_m.h"
|
|
||||||
#include "machine/upd4701.h"
|
#include "machine/upd4701.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
#include "sound/upd7759.h"
|
#include "sound/upd7759.h"
|
||||||
#include "sound/ymopm.h"
|
#include "sound/ymopm.h"
|
||||||
#include "sound/ymopl.h"
|
#include "sound/ymopl.h"
|
||||||
#include "segaic16.h"
|
|
||||||
#include "sega16sp.h"
|
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
||||||
INPUT_PORTS_EXTERN( system16b_generic );
|
INPUT_PORTS_EXTERN( system16b_generic );
|
||||||
@ -54,6 +57,7 @@ public:
|
|||||||
, m_soundlatch(*this, "soundlatch")
|
, m_soundlatch(*this, "soundlatch")
|
||||||
, m_cxdio(*this, "cxdio")
|
, m_cxdio(*this, "cxdio")
|
||||||
, m_upd4701a(*this, "upd4701a%u", 1U)
|
, m_upd4701a(*this, "upd4701a%u", 1U)
|
||||||
|
, m_adc(*this, "adc")
|
||||||
, m_workram(*this, "workram")
|
, m_workram(*this, "workram")
|
||||||
, m_i8751_sync_timer(nullptr)
|
, m_i8751_sync_timer(nullptr)
|
||||||
, m_romboard(ROM_BOARD_INVALID)
|
, m_romboard(ROM_BOARD_INVALID)
|
||||||
@ -64,10 +68,6 @@ public:
|
|||||||
, m_i8751_initial_config(nullptr)
|
, m_i8751_initial_config(nullptr)
|
||||||
, m_atomicp_sound_divisor(0)
|
, m_atomicp_sound_divisor(0)
|
||||||
, m_atomicp_sound_count(0)
|
, m_atomicp_sound_count(0)
|
||||||
, m_hwc_input_value(0)
|
|
||||||
, m_hwc_monitor(*this, "MONITOR")
|
|
||||||
, m_hwc_left(*this, "LEFT")
|
|
||||||
, m_hwc_right(*this, "RIGHT")
|
|
||||||
, m_hwc_left_limit(*this, "LEFT_LIMIT")
|
, m_hwc_left_limit(*this, "LEFT_LIMIT")
|
||||||
, m_hwc_right_limit(*this, "RIGHT_LIMIT")
|
, m_hwc_right_limit(*this, "RIGHT_LIMIT")
|
||||||
, m_mj_input_num(0)
|
, m_mj_input_num(0)
|
||||||
@ -87,6 +87,8 @@ public:
|
|||||||
void fpointbla(machine_config &config);
|
void fpointbla(machine_config &config);
|
||||||
void atomicp(machine_config &config);
|
void atomicp(machine_config &config);
|
||||||
void aceattacb_fd1094(machine_config &config);
|
void aceattacb_fd1094(machine_config &config);
|
||||||
|
void hwchamp(machine_config &config);
|
||||||
|
void hwchamp_fd1094(machine_config &config);
|
||||||
void system16b_i8751(machine_config &config);
|
void system16b_i8751(machine_config &config);
|
||||||
void system16c(machine_config &config);
|
void system16c(machine_config &config);
|
||||||
void system16b_mc8123(machine_config &config);
|
void system16b_mc8123(machine_config &config);
|
||||||
@ -248,6 +250,7 @@ protected:
|
|||||||
optional_device<generic_latch_8_device> m_soundlatch; // not for atomicp
|
optional_device<generic_latch_8_device> m_soundlatch; // not for atomicp
|
||||||
optional_device<cxd1095_device> m_cxdio; // for aceattac
|
optional_device<cxd1095_device> m_cxdio; // for aceattac
|
||||||
optional_device_array<upd4701_device, 2> m_upd4701a; // for aceattac
|
optional_device_array<upd4701_device, 2> m_upd4701a; // for aceattac
|
||||||
|
optional_device<msm6253_device> m_adc; // for hwchamp
|
||||||
|
|
||||||
// memory pointers
|
// memory pointers
|
||||||
required_shared_ptr<uint16_t> m_workram;
|
required_shared_ptr<uint16_t> m_workram;
|
||||||
@ -267,10 +270,6 @@ protected:
|
|||||||
|
|
||||||
// game-specific state
|
// game-specific state
|
||||||
uint8_t m_atomicp_sound_count;
|
uint8_t m_atomicp_sound_count;
|
||||||
uint8_t m_hwc_input_value;
|
|
||||||
optional_ioport m_hwc_monitor;
|
|
||||||
optional_ioport m_hwc_left;
|
|
||||||
optional_ioport m_hwc_right;
|
|
||||||
optional_ioport m_hwc_left_limit;
|
optional_ioport m_hwc_left_limit;
|
||||||
optional_ioport m_hwc_right_limit;
|
optional_ioport m_hwc_right_limit;
|
||||||
uint8_t m_mj_input_num;
|
uint8_t m_mj_input_num;
|
||||||
|
Loading…
Reference in New Issue
Block a user