mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
srcclean and cleanup
Some checks failed
CI (Linux) / build-linux (-U_FORTIFY_SOURCE, gcc, gcc, g++, mametiny, tiny) (push) Waiting to run
CI (Linux) / build-linux (clang, clang, clang++, mame, mame) (push) Waiting to run
CI (macOS) / build-macos (push) Waiting to run
CI (Windows) / build-windows (clang, clang, clang++, mametiny, tiny) (push) Waiting to run
CI (Windows) / build-windows (gcc, gcc, g++, mame, mame) (push) Waiting to run
XML/JSON validation / validate (push) Has been cancelled
Some checks failed
CI (Linux) / build-linux (-U_FORTIFY_SOURCE, gcc, gcc, g++, mametiny, tiny) (push) Waiting to run
CI (Linux) / build-linux (clang, clang, clang++, mame, mame) (push) Waiting to run
CI (macOS) / build-macos (push) Waiting to run
CI (Windows) / build-windows (clang, clang, clang++, mametiny, tiny) (push) Waiting to run
CI (Windows) / build-windows (gcc, gcc, g++, mame, mame) (push) Waiting to run
XML/JSON validation / validate (push) Has been cancelled
This commit is contained in:
parent
79c2365979
commit
0f64064d47
24 changed files with 129 additions and 132 deletions
|
@ -124,7 +124,7 @@ license:CC0-1.0
|
|||
<rom name="usercart_5_1.u1" size="0x100000" crc="a2761c33" sha1="957b95983037bedb42759502e0111fd9008cb26f"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
</software>
|
||||
|
||||
<!-- this one has some songs programmed into it:
|
||||
雫 スキマスイッチ Shizuku Sukima Switch
|
||||
|
@ -147,7 +147,7 @@ license:CC0-1.0
|
|||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- this one has some songs programmed into it:
|
||||
陽は、また昇る アラジン Hi wa, Mata Noboru Aladdin
|
||||
ポリリズム Perfume Polyrhythm Perfume
|
||||
|
@ -167,7 +167,7 @@ license:CC0-1.0
|
|||
<rom name="usercart_10.u1" size="0x200000" crc="51e64d8e" sha1="90e5592446101807f47772b0868ce3de5d78b9f9"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
</software>
|
||||
|
||||
<!-- this one has some songs programmed into it:
|
||||
一番綺麗な私を 中島美嘉 Ichiban Kireina Watashi o Nakajima Mika
|
||||
|
@ -200,7 +200,7 @@ license:CC0-1.0
|
|||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- this one has some songs programmed into it:
|
||||
もうすぐクリスマス 里田まい with 合田兄妹 Mōsugu Christmas Satoda Mai with Gōda Kyōdai
|
||||
ブルーバード いきねのがかり Blue Bird Ikimonogakari
|
||||
|
@ -231,7 +231,7 @@ license:CC0-1.0
|
|||
<rom name="usercart_20.u1" size="0x200000" crc="e047d928" sha1="a75ca2035d74bf4292562576872389e012ceb1ad"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
</software>
|
||||
|
||||
<software name="bh1jpop1" supported="no">
|
||||
<description>Best Hit Collection Volume 1: J-Pop 1 (Japan)</description>
|
||||
|
|
|
@ -7354,7 +7354,7 @@ Wave Studio v3.12
|
|||
</diskarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="ultrasnd" supported="partial">
|
||||
<!-- includes Gravis UltraSound (GUS) Installation - V4.11 -->
|
||||
<description>The UltraSound CD</description>
|
||||
|
|
|
@ -112,7 +112,7 @@ license:CC0-1.0
|
|||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- for the Super Computer / Learn Computer version of the Mega Duck, has custom banking -->
|
||||
<software name="bildrlex" supported="no" >
|
||||
<description>Bilder Lexikon</description>
|
||||
|
@ -124,7 +124,7 @@ license:CC0-1.0
|
|||
<rom name="bilder_lexikon.bin" size="0x80000" crc="7c277223" sha1="c91f0141a06c2dbf0883303779c3b7cba09722a8" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
</software>
|
||||
|
||||
<software name="captkk">
|
||||
<description>Captain Knick Knack</description>
|
||||
|
|
|
@ -164427,7 +164427,7 @@ Side B - Game 1: Cauldron II: The Pumpkin Strikes Back (Palace Software)
|
|||
Side B - Game 2: Quazatron (Hewson Consultants)
|
||||
Side B - Game 3: Strike Force Cobra (Piranha)
|
||||
]]></notes>
|
||||
|
||||
|
||||
<part name="cass1" interface="spectrum_cass">
|
||||
<dataarea name="cass" size="134771">
|
||||
<rom name="five star games 2 - side a.tzx" size="134771" crc="fcaef142" sha1="45941de1ad9817ae2b59621d89a824a5d2d0bfd9"/>
|
||||
|
|
|
@ -235,20 +235,6 @@ if (SOUNDS["ES1373"]~=null) then
|
|||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
-- Data East custom sound chips
|
||||
--@src/devices/sound/bsmt2000.h,SOUNDS["BSMT2000"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (SOUNDS["BSMT2000"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/sound/bsmt2000.cpp",
|
||||
MAME_DIR .. "src/devices/sound/bsmt2000.h",
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
-- Ensoniq 5503 (Apple IIgs)
|
||||
--@src/devices/sound/es5503.h,SOUNDS["ES5503"] = true
|
||||
|
@ -262,7 +248,6 @@ if (SOUNDS["ES5503"]~=null) then
|
|||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
-- Ensoniq 5505/5506
|
||||
--@src/devices/sound/es5506.h,SOUNDS["ES5505"] = true
|
||||
|
@ -289,6 +274,20 @@ if (SOUNDS["ESQPUMP"]~=null) then
|
|||
end
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
-- Data East custom sound chips
|
||||
--@src/devices/sound/bsmt2000.h,SOUNDS["BSMT2000"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (SOUNDS["BSMT2000"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/sound/bsmt2000.cpp",
|
||||
MAME_DIR .. "src/devices/sound/bsmt2000.h",
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
-- Excellent Systems ADPCM sound chip
|
||||
--@src/devices/sound/es8712.h,SOUNDS["ES8712"] = true
|
||||
|
@ -1623,18 +1622,6 @@ if (SOUNDS["XT446"]~=null) then
|
|||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
-- Roland LP-based sample players
|
||||
--@src/devices/sound/roland_lp.h,SOUNDS["ROLANDLP"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (SOUNDS["ROLANDLP"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/sound/roland_lp.cpp",
|
||||
MAME_DIR .. "src/devices/sound/roland_lp.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
-- Roland GP-based sample players
|
||||
--@src/devices/sound/roland_gp.h,SOUNDS["ROLANDGP"] = true
|
||||
|
@ -1647,6 +1634,18 @@ if (SOUNDS["ROLANDGP"]~=null) then
|
|||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
-- Roland LP-based sample players
|
||||
--@src/devices/sound/roland_lp.h,SOUNDS["ROLANDLP"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (SOUNDS["ROLANDLP"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/sound/roland_lp.cpp",
|
||||
MAME_DIR .. "src/devices/sound/roland_lp.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/sound/vgm_visualizer.h,SOUNDS["VGMVIZ"] = true
|
||||
|
|
|
@ -439,8 +439,9 @@ bool dio16_98620_device::dma_transfer(int channel)
|
|||
if (!m_dmar[channel])
|
||||
return false;
|
||||
|
||||
LOG("dma_transfer %s: tc %d/%d\n", m_regs[channel].dma_out ? "out" : "in",
|
||||
m_regs[channel].tc, m_regs[channel].subcount);
|
||||
LOG("dma_transfer %s: tc %d/%d\n",
|
||||
m_regs[channel].dma_out ? "out" : "in",
|
||||
m_regs[channel].tc, m_regs[channel].subcount);
|
||||
|
||||
if (m_regs[channel].dma_out) {
|
||||
dmack_w_out(channel, program_space().read_byte(m_regs[channel].address++));
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
namespace {
|
||||
|
||||
class hp9133_device : public device_t,
|
||||
public device_ieee488_interface
|
||||
public device_ieee488_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -534,11 +534,11 @@ void hp9133_device::io1_w(uint8_t data)
|
|||
// 0 - Fault LED#
|
||||
m_head = (data >> 2) & 7;
|
||||
LOG("%s: %02x Head %d %s%s%s%s\n", __func__,
|
||||
data, m_head,
|
||||
(data & IO1_W_BRDY) ? "BRDY " : "",
|
||||
(data & IO1_W_WDRESET_N) ? "" : "HDCRESET ",
|
||||
(data & IO1_W_DS1) ? "ACTIVE " : "",
|
||||
(data & IO1_W_FLT_N) ? "" : "FAULT ");
|
||||
data, m_head,
|
||||
(data & IO1_W_BRDY) ? "BRDY " : "",
|
||||
(data & IO1_W_WDRESET_N) ? "" : "HDCRESET ",
|
||||
(data & IO1_W_DS1) ? "ACTIVE " : "",
|
||||
(data & IO1_W_FLT_N) ? "" : "FAULT ");
|
||||
if (!(data & IO1_W_WDRESET_N))
|
||||
m_hdc->reset();
|
||||
m_hdc->buffer_ready(data & IO1_W_BRDY);
|
||||
|
@ -590,8 +590,8 @@ void hp9133_device::io3_w(uint8_t data)
|
|||
m_intsel = data & IO3_W_INTSEL_MASK;
|
||||
|
||||
LOG("%s: %02x = INTSEL %d, INT %d DMA %d DMA start %d DMA ACK %s\n", __func__,
|
||||
data, m_intsel, m_intenable, m_dmaenable, BIT(data, 4),
|
||||
m_dmaack_switch ? "GPIB" : "FDC");
|
||||
data, m_intsel, m_intenable, m_dmaenable, BIT(data, 4),
|
||||
m_dmaack_switch ? "GPIB" : "FDC");
|
||||
update_intsel();
|
||||
if (m_fast)
|
||||
m_fast_timer->adjust(attotime::from_usec(1000));
|
||||
|
@ -713,7 +713,7 @@ void hp9133_device::hdc_readwrite_sector(bool write)
|
|||
const auto &info = m_harddisk->get_info();
|
||||
lba = (m_hdc_cylinder * info.heads + m_head) * info.sectors + sector;
|
||||
LOG("%s: %s cyl %4d, head %d, sector %2d lba %8d\n", __func__,
|
||||
write ? "WRITE" : "READ ", m_hdc_cylinder, m_head, sector, lba);
|
||||
write ? "WRITE" : "READ ", m_hdc_cylinder, m_head, sector, lba);
|
||||
if (write) {
|
||||
m_harddisk->write(lba, m_dma_ram);
|
||||
} else {
|
||||
|
|
|
@ -53,7 +53,7 @@ ROM_START(mcx128)
|
|||
ROMX_LOAD("mcx128bas.rom", 0x0000, 0x4000, CRC(11202e4b) SHA1(36c30d0f198a1bffee88ef29d92f2401447a91f4), ROM_BIOS(0))
|
||||
|
||||
ROM_SYSTEM_BIOS(1, "alice", "Darren Atkinson's MCX-128 cartridge for Alice")
|
||||
ROMX_LOAD("alice128bas.rom", 0x0000, 0x4000, CRC(a737544a) SHA1(c8fd92705fc42deb6a0ffac6274e27fd61ecd4cc), ROM_BIOS(1))
|
||||
ROMX_LOAD("alice128bas.rom", 0x0000, 0x4000, CRC(a737544a) SHA1(c8fd92705fc42deb6a0ffac6274e27fd61ecd4cc), ROM_BIOS(1))
|
||||
ROM_END
|
||||
|
||||
//**************************************************************************
|
||||
|
|
|
@ -48,9 +48,9 @@ DEFINE_DEVICE_TYPE(R800, r800_device, "r800", "ASCII R800")
|
|||
r800_device::r800_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: z80_device(mconfig, R800, tag, owner, clock)
|
||||
{
|
||||
z80_set_m1_cycles(1);
|
||||
z80_set_memrq_cycles(1);
|
||||
z80_set_iorq_cycles(1);
|
||||
z80_set_m1_cycles(1);
|
||||
z80_set_memrq_cycles(1);
|
||||
z80_set_iorq_cycles(1);
|
||||
}
|
||||
|
||||
std::unique_ptr<util::disasm_interface> r800_device::create_disassembler()
|
||||
|
|
|
@ -116,7 +116,7 @@ void ima_adpcm_state::compute_tables()
|
|||
// compute the step value
|
||||
int stepval = std::min(floor(16.0 * pow(11.0 / 10.0, (double)step)), 32767.);
|
||||
|
||||
// manual correction of some early values
|
||||
// manual correction of some early values
|
||||
if (step == -5 || step == -4)
|
||||
stepval++;
|
||||
|
||||
|
|
|
@ -830,7 +830,7 @@ void eclipse_state::via2_out_b_q900(u8 data)
|
|||
|
||||
SOFTWARE_LIST(config, "hdd_list").set_original("mac_hdd");
|
||||
SOFTWARE_LIST(config, "cd_list").set_original("mac_cdrom").set_filter("MC68040");
|
||||
// SOFTWARE_LIST(config, "cd_apple_dev").set_original("apple_devcd");
|
||||
//SOFTWARE_LIST(config, "cd_apple_dev").set_original("apple_devcd");
|
||||
SOFTWARE_LIST(config, "flop_mac35_orig").set_original("mac_flop_orig");
|
||||
SOFTWARE_LIST(config, "flop_mac35_clean").set_original("mac_flop_clcracked");
|
||||
SOFTWARE_LIST(config, "flop35_list").set_original("mac_flop");
|
||||
|
|
|
@ -490,8 +490,9 @@ void pv1000_state::pv1000(machine_config &config)
|
|||
|
||||
// Note that this value is overridden by the user's pv1000.cfg, if present.
|
||||
// 206px x 48/35(PAR) / 4/3(DAR) = 212sl
|
||||
m_screen->set_default_position(216/206.0,0, //216 px in storage aspect; cropped to 206 px
|
||||
244/212.0,0); //244 sl in storage aspect; cropped to 212 sl
|
||||
m_screen->set_default_position(
|
||||
216/206.0, 0, //216 px in storage aspect; cropped to 206 px
|
||||
244/212.0, 0); //244 sl in storage aspect; cropped to 212 sl
|
||||
m_screen->set_screen_update(FUNC(pv1000_state::screen_update_pv1000));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
Magnolia Microsystems 77316 DD soft-sectored floppy controller
|
||||
|
||||
Supported upto 8 floppy drives
|
||||
- 4 8" drives
|
||||
- 4 5.25" drives
|
||||
Supported upto 8 floppy drives
|
||||
- 4 8" drives
|
||||
- 4 5.25" drives
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ void z29_state::keyin_w(int state)
|
|||
|
||||
/**
|
||||
* Port 1 (based on ROM listing)
|
||||
*
|
||||
*
|
||||
* bit 0 - KB output line
|
||||
* bit 1 - KB input line
|
||||
* bit 2 - 0 = normal video 1 = suppressed
|
||||
|
@ -93,7 +93,7 @@ u8 z29_state::p1_r()
|
|||
|
||||
/**
|
||||
* Port 3 (based on ROM listing)
|
||||
*
|
||||
*
|
||||
* bit 1 - predefined serial port transmit pin
|
||||
* bit 4 - 0 = clear memory 1 = DMA CRTC
|
||||
* bit 5 - Clear to Send
|
||||
|
|
|
@ -200,13 +200,13 @@ INPUT_CHANGED_MEMBER(brikett_state::change_cpu_freq)
|
|||
if (newval & 8)
|
||||
{
|
||||
/*
|
||||
3rd hardware model has 2 XTALs, it will increase CPU voltage (and speed)
|
||||
when running on mains power, the 3.579545MHz XTAL is still used for IRQ.
|
||||
3rd hardware model has 2 XTALs, it will increase CPU voltage (and speed)
|
||||
when running on mains power, the 3.579545MHz XTAL is still used for IRQ.
|
||||
|
||||
Mephisto III could be fitted with a 12MHz XTAL instead of 6.144MHz and
|
||||
a newer CDP1805CE CPU by Hobby Computer Centrale on request. (It is
|
||||
unexpected that the 1805 accepts such a high overclock, but tests show
|
||||
that it is indeed twice faster)
|
||||
Mephisto III could be fitted with a 12MHz XTAL instead of 6.144MHz and
|
||||
a newer CDP1805CE CPU by Hobby Computer Centrale on request. (It is
|
||||
unexpected that the 1805 accepts such a high overclock, but tests show
|
||||
that it is indeed twice faster)
|
||||
*/
|
||||
static const XTAL freq[3] = { 3.579545_MHz_XTAL, 6.144_MHz_XTAL, 12_MHz_XTAL };
|
||||
m_maincpu->set_unscaled_clock(freq[(newval & 3) % 3]);
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
\- sscopex/sogeki desyncs during gameplay intro, leaves heavy trails in gameplay;
|
||||
- ppp2nd: hangs when selecting game mode from service (manages to save);
|
||||
- wcombatj: gets stuck on network check;
|
||||
- thrild2c: bad CF dump (blue screens because of it);
|
||||
- thrild2c: bad CF dump (blue screens because of it);
|
||||
- all games needs to be verified against factory settings
|
||||
(game options, coin options & sound options often don't match "green colored" defaults)
|
||||
|
||||
|
|
|
@ -643,16 +643,15 @@ uint32_t cclimber_state::screen_update_cclimber(screen_device &screen, bitmap_in
|
|||
bitmap.fill(0, cliprect);
|
||||
draw_playfield(screen, bitmap, cliprect);
|
||||
|
||||
// draw the "big sprite" under the regular sprites
|
||||
if ((m_bigsprite_control[0] & 0x01))
|
||||
if (m_bigsprite_control[0] & 0x01)
|
||||
{
|
||||
// draw the "big sprite" under the regular sprites
|
||||
cclimber_draw_bigsprite(screen, bitmap, cliprect);
|
||||
cclimber_draw_sprites(bitmap, cliprect, m_gfxdecode->gfx(1));
|
||||
}
|
||||
|
||||
// draw the "big sprite" over the regular sprites
|
||||
else
|
||||
{
|
||||
// draw the "big sprite" over the regular sprites
|
||||
cclimber_draw_sprites(bitmap, cliprect, m_gfxdecode->gfx(1));
|
||||
cclimber_draw_bigsprite(screen, bitmap, cliprect);
|
||||
}
|
||||
|
@ -675,16 +674,15 @@ uint32_t yamato_state::screen_update_yamato(screen_device &screen, bitmap_ind16
|
|||
|
||||
draw_playfield(screen, bitmap, cliprect);
|
||||
|
||||
// draw the "big sprite" under the regular sprites
|
||||
if ((m_bigsprite_control[0] & 0x01))
|
||||
if (m_bigsprite_control[0] & 0x01)
|
||||
{
|
||||
// draw the "big sprite" under the regular sprites
|
||||
cclimber_draw_bigsprite(screen, bitmap, cliprect);
|
||||
toprollr_draw_sprites(bitmap, cliprect, m_gfxdecode->gfx(1));
|
||||
}
|
||||
|
||||
// draw the "big sprite" over the regular sprites
|
||||
else
|
||||
{
|
||||
// draw the "big sprite" over the regular sprites
|
||||
toprollr_draw_sprites(bitmap, cliprect, m_gfxdecode->gfx(1));
|
||||
cclimber_draw_bigsprite(screen, bitmap, cliprect);
|
||||
}
|
||||
|
@ -728,16 +726,15 @@ uint32_t swimmer_state::screen_update_swimmer(screen_device &screen, bitmap_ind1
|
|||
|
||||
draw_playfield(screen, bitmap, cliprect);
|
||||
|
||||
// draw the "big sprite" under the regular sprites
|
||||
if ((m_bigsprite_control[0] & 0x01))
|
||||
if (m_bigsprite_control[0] & 0x01)
|
||||
{
|
||||
// draw the "big sprite" under the regular sprites
|
||||
cclimber_draw_bigsprite(screen, bitmap, cliprect);
|
||||
swimmer_draw_sprites(bitmap, cliprect, m_gfxdecode->gfx(1));
|
||||
}
|
||||
|
||||
// draw the "big sprite" over the regular sprites
|
||||
else
|
||||
{
|
||||
// draw the "big sprite" over the regular sprites
|
||||
swimmer_draw_sprites(bitmap, cliprect, m_gfxdecode->gfx(1));
|
||||
cclimber_draw_bigsprite(screen, bitmap, cliprect);
|
||||
}
|
||||
|
@ -760,16 +757,15 @@ uint32_t toprollr_state::screen_update_toprollr(screen_device &screen, bitmap_in
|
|||
m_bg_tilemap->mark_all_dirty();
|
||||
m_bg_tilemap->draw(screen, bitmap, scroll_area_clip, 0, 0);
|
||||
|
||||
// draw the "big sprite" over the regular sprites
|
||||
if ((m_bigsprite_control[1] & 0x20))
|
||||
if (m_bigsprite_control[1] & 0x20)
|
||||
{
|
||||
// draw the "big sprite" over the regular sprites
|
||||
toprollr_draw_sprites(bitmap, scroll_area_clip, m_gfxdecode->gfx(1));
|
||||
toprollr_draw_bigsprite(screen, bitmap, scroll_area_clip);
|
||||
}
|
||||
|
||||
// draw the "big sprite" under the regular sprites
|
||||
else
|
||||
{
|
||||
// draw the "big sprite" under the regular sprites
|
||||
toprollr_draw_bigsprite(screen, bitmap, scroll_area_clip);
|
||||
toprollr_draw_sprites(bitmap, scroll_area_clip, m_gfxdecode->gfx(1));
|
||||
}
|
||||
|
|
|
@ -3994,22 +3994,22 @@ void nmk16_state::machine_reset()
|
|||
This hardware relies on two counters and the contents of two PROMs for the timing signals generation.
|
||||
The counters are implemented inside NMK902 custom chip (except tharrier) for all "low-res" games and are used to
|
||||
address the entries on each PROM in a sequential way. On "mid-res" and "hi-res" games, one of the counters is
|
||||
implemented outside the custom chip, due to they decided to boost up the horizontal resolution, and the initial
|
||||
implemented outside the custom chip, due to they decided to boost up the horizontal resolution, and the initial
|
||||
configuration is hardwired inside the chip.
|
||||
|
||||
- "Horizontal" signals, such as HBlank, HSync... are generated using one of the counters and a 256x4bit PROM, and
|
||||
each step on the counter takes 2 pixel clock cycles:
|
||||
- For "low-res" games the counter starts on 0x40 and goes to 0xFF having 192 steps. As each step is 2 px, the total
|
||||
H-size is 384px wide. PROM entries from 0x00 to 0x39 address are never used.
|
||||
H-size is 384px wide. PROM entries from 0x00 to 0x39 address are never used.
|
||||
- For "mid-res" games the counter starts on 0x20 and goes to 0xFF having 224 steps. As each step is 2 px, the total
|
||||
H-size is 448px wide. PROM entries from 0x00 to 0x19 address are never used.
|
||||
H-size is 448px wide. PROM entries from 0x00 to 0x19 address are never used.
|
||||
- For "hi-res" games the counter starts on 0x00 and goes to 0xFF having 256 steps. As each step is 2 px, the total
|
||||
H-size is 512px wide. All PROM entries are used.
|
||||
H-size is 512px wide. All PROM entries are used.
|
||||
|
||||
- "Vertical" signals, such as VBlank, Interrupt requests... are generated using the other counter and a 256x8bit PROM,
|
||||
and each step on the counter takes 2 scanlines.
|
||||
- In this case, for all games the counter starts on 0x75 and goes to 0xFF having 139 steps. As each step is 2 lines,
|
||||
the total V-size is 278 lines high. PROM entries from 0x00 address to 0x74 are never used.
|
||||
the total V-size is 278 lines high. PROM entries from 0x00 address to 0x74 are never used.
|
||||
|
||||
Going into more detail:
|
||||
|
||||
|
@ -4022,7 +4022,7 @@ void nmk16_state::machine_reset()
|
|||
1 --x- HSYNC (active low)
|
||||
2 -x-- HBLANK (active low)
|
||||
3 x--- unused on almost all games (only used in gunnail and raphero, purpose unknown)
|
||||
|
||||
|
||||
Considering that and looking at the contents of the PROMs, the horizontal timings are below:
|
||||
|
||||
- For "low-res" (6MHz pixel clock):
|
||||
|
@ -4034,8 +4034,8 @@ void nmk16_state::machine_reset()
|
|||
|
|
||||
'start of line' (pixel 0)
|
||||
Each line: ( 6MHz / 384 pixels per line ) = 15625Hz = 64 usec
|
||||
|
||||
|
||||
|
||||
|
||||
- For "mid-res" (7MHz pixel clock):
|
||||
0........59..........................................................................380...400...416....447
|
||||
/LINE-END (2 px): ----------------------------------------------------------------------------------------------------------X
|
||||
|
@ -4054,7 +4054,7 @@ void nmk16_state::machine_reset()
|
|||
HBLANK (28 + 100 px): XXXXXX-------------------------------------------384-wide-------------------------XXXXXXXXXXXXXXXXXXXXXXXXX // HBlank ends 28 pixels after 'start of line'
|
||||
^
|
||||
|
|
||||
'start of line' (pixel 0)
|
||||
'start of line' (pixel 0)
|
||||
Each line: ( 8MHz / 512 pixels per line ) = 15625Hz = 64 usec
|
||||
|
||||
|
||||
|
@ -4149,16 +4149,16 @@ void nmk16_state::set_screen_hires(machine_config &config)
|
|||
|
||||
- IRQ1:
|
||||
- At 68 and 196 scanlines on most games
|
||||
- 'tharrier' only at 146 scanline
|
||||
- 'vandyke', 'bioship' and 'blkheart' only at 102 scanline (also 'ddealer' outside this driver).
|
||||
'vandyke' permanently inhibits it by software.
|
||||
- 'powerins' only at 16 scanline (looks like it's always inhibited by software)
|
||||
- 'tharrier' only at 146 scanline
|
||||
- 'vandyke', 'bioship' and 'blkheart' only at 102 scanline (also 'ddealer' outside this driver).
|
||||
'vandyke' permanently inhibits it by software.
|
||||
- 'powerins' only at 16 scanline (looks like it's always inhibited by software)
|
||||
|
||||
- IRQ2:
|
||||
- At 16 scanline on most games (VBIN = end of VBLANK = start of active video)
|
||||
- 'tdragon', 'macross2', 'tdragon2' and 'raphero' lack it
|
||||
- 'tharrier' at 54 scanline
|
||||
- 'powerins' at 128 scanline (looks like it's always inhibited by software)
|
||||
- 'tdragon', 'macross2', 'tdragon2' and 'raphero' lack it
|
||||
- 'tharrier' at 54 scanline
|
||||
- 'powerins' at 128 scanline (looks like it's always inhibited by software)
|
||||
|
||||
- IRQ3:
|
||||
- Only triggered by 'powerins' at 90 and 166 scanlines (looks like it's always inhibited by software)
|
||||
|
@ -4168,10 +4168,10 @@ void nmk16_state::set_screen_hires(machine_config &config)
|
|||
*/
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::nmk16_scanline)
|
||||
{
|
||||
// constexpr int SPRDMA_INDEX = 0; // not used in emulation TODO: check if it could be used to trigger the sprite DMA instead of setting it 4 lines after VBOUT
|
||||
// constexpr int VSYNC_INDEX = 1; // not used in emulation
|
||||
// constexpr int VBLANK_INDEX = 2; // not used in emulation
|
||||
// constexpr int NOT_USED = 3; // not used in emulation
|
||||
// constexpr int SPRDMA_INDEX = 0; // not used in emulation TODO: check if it could be used to trigger the sprite DMA instead of setting it 4 lines after VBOUT
|
||||
// constexpr int VSYNC_INDEX = 1; // not used in emulation
|
||||
// constexpr int VBLANK_INDEX = 2; // not used in emulation
|
||||
// constexpr int NOT_USED = 3; // not used in emulation
|
||||
constexpr int IPL0_INDEX = 4;
|
||||
constexpr int IPL1_INDEX = 5;
|
||||
constexpr int IPL2_INDEX = 6;
|
||||
|
@ -4252,7 +4252,7 @@ LV4 LV2 LV1 LV1
|
|||
- VBlank = 54 lines * 64 usec = 3456 usec
|
||||
- Active = 224 lines * 64 usec = 14336 usec
|
||||
- IRQ1 gap = 128 lines * 64 usec = 8192 usec
|
||||
|
||||
|
||||
The following code is used for bootleg, Afega, Comad and NMK games that PROMs are still undumped, on which the
|
||||
interrupt triggering cannot be relied on the PROMs contents.
|
||||
*/
|
||||
|
|
|
@ -33,14 +33,14 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
|
||||
TODO:
|
||||
|
||||
- DMA
|
||||
- floppy
|
||||
- SASI
|
||||
- video
|
||||
- keyboard
|
||||
TODO:
|
||||
|
||||
- DMA
|
||||
- floppy
|
||||
- SASI
|
||||
- video
|
||||
- keyboard
|
||||
|
||||
*/
|
||||
|
||||
|
@ -79,7 +79,7 @@ uint8_t mm2_state::status_r(offs_t offset)
|
|||
uint8_t data = 0x80;
|
||||
|
||||
data |= !m_rs232a->dsr_r() << 4;
|
||||
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -169,8 +169,8 @@ uint8_t mm2_state::dmac_mem_r(offs_t offset)
|
|||
if (WORD_ALIGNED(offset))
|
||||
{
|
||||
return mem[offset >> 1] & 0xff;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
return mem[offset >> 1] >> 8;
|
||||
}
|
||||
|
@ -180,11 +180,11 @@ void mm2_state::dmac_mem_w(offs_t offset, uint8_t data)
|
|||
{
|
||||
uint16_t *mem = (uint16_t *)m_maincpu->space(AS_PROGRAM).get_write_ptr(m_dma_hi << 15);
|
||||
uint16_t value = mem[offset >> 1];
|
||||
|
||||
if (WORD_ALIGNED(offset))
|
||||
|
||||
if (WORD_ALIGNED(offset))
|
||||
{
|
||||
mem[offset >> 1] = (value & 0xff00) | data;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mem[offset >> 1] = data << 8 | (value & 0xff);
|
||||
|
@ -376,12 +376,12 @@ void mm2_state::mm2(machine_config &config)
|
|||
m_mpsc->out_txdb_callback().set(m_rs232b, FUNC(rs232_port_device::write_txd));
|
||||
m_mpsc->out_rtsb_callback().set(m_rs232b, FUNC(rs232_port_device::write_rts));
|
||||
m_mpsc->out_int_callback().set(m_pic, FUNC(pic8259_device::ir1_w));
|
||||
|
||||
|
||||
RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr);
|
||||
m_rs232a->rxd_handler().set(m_mpsc, FUNC(z80dart_device::rxa_w));
|
||||
m_rs232a->dcd_handler().set(m_mpsc, FUNC(z80dart_device::dcda_w));
|
||||
m_rs232a->cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsa_w));
|
||||
|
||||
|
||||
RS232_PORT(config, m_rs232b, default_rs232_devices, "terminal");
|
||||
m_rs232b->rxd_handler().set(m_mpsc, FUNC(z80dart_device::rxb_w));
|
||||
m_rs232b->cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsb_w));
|
||||
|
|
|
@ -103,7 +103,7 @@ private:
|
|||
void update_pic_ir0() { m_pic->ir0_w(m_ir0); }
|
||||
void ir0_w(int state) { if (state) { m_ir0 = ASSERT_LINE; update_pic_ir0(); } }
|
||||
void tcl_w(offs_t offset, uint8_t data) { m_ir0 = CLEAR_LINE; update_pic_ir0(); }
|
||||
|
||||
|
||||
void update_pic_ir5() { m_pic->ir5_w(m_vpac_int || m_sio_rxrdy || m_sio_txrdy); }
|
||||
void vpac_int_w(int state) { m_vpac_int = state; update_pic_ir5(); }
|
||||
void sio_rxrdy_w(int state) { m_sio_rxrdy = state; update_pic_ir5(); }
|
||||
|
|
|
@ -338,7 +338,7 @@ void goal92_state::sound_map(address_map &map)
|
|||
}
|
||||
|
||||
static INPUT_PORTS_START( goal92 )
|
||||
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x0007, 0x0007, "Coin 1 (3)" ) PORT_DIPLOCATION("SW1:1,2,3")
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( 4C_1C ) )
|
||||
|
@ -363,7 +363,7 @@ static INPUT_PORTS_START( goal92 )
|
|||
PORT_DIPSETTING( 0x0000, "x2" )
|
||||
|
||||
// NOTE: It should be the screen flip DIP, but isn't working
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
| | | |74HC4053||74HC4053| |__| |
|
||||
| |____________| ___ _______ |
|
||||
| _______ 34119->| | |MC3403| |
|
||||
| 74AHCT574 |__| |
|
||||
| 74AHCT574 |__| |
|
||||
| ____________ ____________ |
|
||||
| |KM416S4030CT| |KM416S4030CT| |
|
||||
| |____________| |____________| |
|
||||
|
@ -35,7 +35,7 @@
|
|||
| Xtal | | |74HCT541 | |
|
||||
| 32.768 MHz | | |_________| |
|
||||
| |____________| |
|
||||
| |
|
||||
| |
|
||||
| _______ |
|
||||
| 3BN62121AAAF KAZZA 01 |ST 324| |
|
||||
|___________________________________________________________________|
|
||||
|
|
|
@ -240,13 +240,13 @@ void buggychl_state::sprite_lookup_w(offs_t offset, uint8_t data)
|
|||
|
||||
void buggychl_state::ctrl_w(uint8_t data)
|
||||
{
|
||||
// bit0 = VINV
|
||||
// bit1 = HINV
|
||||
// bit2 = /SN3OFF
|
||||
// bit3 = SKY OFF
|
||||
// bit4 = OJMODE
|
||||
// bit6 = lockout
|
||||
// bit7 = lamp
|
||||
// bit0 = VINV
|
||||
// bit1 = HINV
|
||||
// bit2 = /SN3OFF
|
||||
// bit3 = SKY OFF
|
||||
// bit4 = OJMODE
|
||||
// bit6 = lockout
|
||||
// bit7 = lamp
|
||||
|
||||
flip_screen_y_set(data & 0x01);
|
||||
flip_screen_x_set(data & 0x02);
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
|
||||
POP*STAR PILOT: Timer is synchronized with scanlines.
|
||||
|
||||
Cloud Kingdoms: 512K bank switch on scanline.
|
||||
Cloud Kingdoms: 512K bank switch on scanline.
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
|
|
Loading…
Reference in a new issue