sharp/x1: fix AY routing to mono

This commit is contained in:
angelosa 2024-05-08 00:25:00 +02:00
parent b50656a9fe
commit c34c2144e1
4 changed files with 59 additions and 36 deletions

View File

@ -19,20 +19,17 @@ Games I haven't managed to start (possibly due to my mistakes):
* gatlabyr: how to start a game? * gatlabyr: how to start a game?
* gambler2: how to pass the first menu? * gambler2: how to pass the first menu?
* crimson, crimsona: which disk combination is expected? * crimson, crimsona: which disk combination is expected?
* blassty: stuck at no animation menu
Games with possible issues (either in emulation or in dump): Games with possible issues (either in emulation or in dump):
* wizardry->4: can't add character name. also how to create a duplicate disk (in pc8801 they were in the disk set)? * wizardry->4: can't add character name. also how to create a duplicate disk (in pc8801 they were in the disk set)?
* profmj: true 400 lines mode not implemented? * profmj: true 400 lines mode not implemented?
* hydlide2b has no saved data, while hydlide2 & hydlide2a have characters in them * hydlide2b has no saved data, while hydlide2 & hydlide2a have characters in them
* hydlide3b: fails to see the user disk + the set contains at least 1 hydlide disk (check crc16) * hydlide3b: fails to see the user disk + the set contains at least 1 hydlide disk (check crc16)
* gruppe: starts loading then errors out as if the disk is not recognized
* frontlin: input issue? * frontlin: input issue?
* dione: does not display text correctly * dione: does not display text correctly
* blckonyx: is it missing a data disk? * blckonyx: is it missing a data disk?
* bastard: does not start. input issue? * bastard: does not start. input issue?
* aokiooka: glitches (chars cut in half) * aokiooka: glitches (chars cut in half)
* advfant: glitches
* ys: character sprite is glitched until you enter a new area * ys: character sprite is glitched until you enter a new area
Games which start loading but never reach the program: Games which start loading but never reach the program:
@ -101,29 +98,30 @@ Plus, some games crash MAME at exit (e.g. some sorcer disks or some arcus disks)
</part> </part>
</software> </software>
<software name="advfant"> <software name="advfant" supported="no">
<description>Advanced Fantasian - Quest for Lost Sanctuary</description> <description>Advanced Fantasian - Quest for Lost Sanctuary</description>
<year>1989</year> <year>1989</year>
<publisher>クリスタルソフト (Xtal Soft)</publisher> <publisher>クリスタルソフト (Xtal Soft)</publisher>
<notes><![CDATA[
Cannot select other options in main menu, including user disk creation [KBD]
]]></notes>
<info name="release" value="198905xx"/> <info name="release" value="198905xx"/>
<info name="alt_title" value="アドヴァンスト ファンタジアン"/> <info name="alt_title" value="アドヴァンスト ファンタジアン"/>
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Main Disk" />
<dataarea name="flop" size="348848"> <dataarea name="flop" size="348848">
<rom name="advfant_main.d88" size="348848" crc="64291b34" sha1="5c5fe39a1dc43d00ab738974988c532df80d3b3b"/> <rom name="advfant_main.d88" size="348848" crc="64291b34" sha1="5c5fe39a1dc43d00ab738974988c532df80d3b3b"/>
</dataarea> </dataarea>
</part> </part>
<part name="flop2" interface="floppy_5_25"> <part name="flop2" interface="floppy_5_25">
<feature name="part_id" value="Scenario Disk" />
<dataarea name="flop" size="348848"> <dataarea name="flop" size="348848">
<rom name="advfant_scenario.d88" size="348848" crc="a4fd9761" sha1="aa91bf27b183a5e24605c06dc63c26e5ec353df9"/> <rom name="advfant_scenario.d88" size="348848" crc="a4fd9761" sha1="aa91bf27b183a5e24605c06dc63c26e5ec353df9"/>
</dataarea> </dataarea>
</part> </part>
</software> <part name="flop3" interface="floppy_5_25">
<feature name="part_id" value="Demo Disk" />
<software name="advfantd" cloneof="advfant">
<description>Advanced Fantasian - Quest for Lost Sanctuary (Demo)</description>
<year>1989</year>
<publisher>クリスタルソフト (Xtal Soft)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="348848"> <dataarea name="flop" size="348848">
<rom name="advfant_demo.d88" size="348848" crc="8493aed0" sha1="a4a7b7dc0b7f884d55ff05b581b587cc6a27e27d"/> <rom name="advfant_demo.d88" size="348848" crc="8493aed0" sha1="a4a7b7dc0b7f884d55ff05b581b587cc6a27e27d"/>
</dataarea> </dataarea>
@ -445,10 +443,14 @@ Black screen after WolfTeam logo
</part> </part>
</software> </software>
<software name="blassty"> <software name="blassty" supported="no">
<description>Cruise Chaser - Blassty</description> <description>Cruise Chaser - Blassty</description>
<year>1986</year> <year>1986</year>
<publisher>スクウェア (Square)</publisher> <publisher>スクウェア (Square)</publisher>
<notes><![CDATA[
Unresponsive [KBD]
]]></notes>
<info name="release" value="198612xx"/> <info name="release" value="198612xx"/>
<info name="alt_title" value="ブラスティ"/> <info name="alt_title" value="ブラスティ"/>
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
@ -938,10 +940,14 @@ IPL loading resolves to a red and corrupt screen, baddump?
</part> </part>
</software> </software>
<software name="gruppe"> <software name="gruppe" supported="no">
<description>Gruppe</description> <description>Gruppe</description>
<year>1985</year> <year>1985</year>
<publisher>SPS</publisher> <publisher>SPS</publisher>
<notes><![CDATA[
Shows a random bitmap graphic then returns "program load error", wants [FDC] write protection enabled (regression)
]]></notes>
<info name="release" value="198506xx"/> <info name="release" value="198506xx"/>
<info name="alt_title" value="ぐるっぺ"/> <info name="alt_title" value="ぐるっぺ"/>
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
@ -2842,10 +2848,14 @@ Broken [kanji]
</part> </part>
</software> </software>
<software name="slaydock"> <software name="slaydock" supported="partial">
<description>Super Laydock - Mission Striker</description> <description>Super Laydock - Mission Striker</description>
<year>1988</year> <year>1988</year>
<publisher>T&amp;E Soft</publisher> <publisher>T&amp;E Soft</publisher>
<notes><![CDATA[
Expects [KBD] name entry presses with shift held
]]></notes>
<info name="release" value="198801xx"/> <info name="release" value="198801xx"/>
<info name="alt_title" value="スーパーレイドック"/> <info name="alt_title" value="スーパーレイドック"/>
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
@ -2860,10 +2870,14 @@ Broken [kanji]
</part> </part>
</software> </software>
<software name="slaydocka" cloneof="slaydock"> <software name="slaydocka" cloneof="slaydock" supported="partial">
<description>Super Laydock - Mission Striker (alt)</description> <description>Super Laydock - Mission Striker (alt)</description>
<year>1988</year> <year>1988</year>
<publisher>T&amp;E Soft</publisher> <publisher>T&amp;E Soft</publisher>
<notes><![CDATA[
Expects [KBD] name entry presses with shift held
]]></notes>
<info name="release" value="198801xx"/> <info name="release" value="198801xx"/>
<info name="alt_title" value="スーパーレイドック"/> <info name="alt_title" value="スーパーレイドック"/>
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
@ -2878,8 +2892,9 @@ Broken [kanji]
</part> </part>
</software> </software>
<software name="slaydocm"> <!-- TODO: pending removal, Muteki -> Invincibility -->
<description>Super Laydock Muteki</description> <software name="slaydocm" cloneof="slaydock" supported="partial">
<description>Super Laydock - Mission Striker (Muteki hack)</description>
<year>19??</year> <year>19??</year>
<publisher>T&amp;E Soft</publisher> <publisher>T&amp;E Soft</publisher>
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
@ -6445,10 +6460,16 @@ HP Osho
</part> </part>
</software> </software>
<software name="dezalis"> <software name="dezalis" supported="no">
<description>Dezalis</description> <description>Dezalis</description>
<year>19??</year> <year>19??</year>
<publisher>&lt;unknown&gt;</publisher> <publisher>&lt;homebrew&gt;</publisher>
<notes><![CDATA[
Has [6845] abuses during gameplay
]]></notes>
<info name="alt_title" value="デザリス"/>
<!-- Same dev as several pc8001_flop games such as flgworld and various2 -->
<part name="flop1" interface="floppy_5_25"> <part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="0x050000"> <dataarea name="flop" size="0x050000">
<rom name="dezalis.2d" size="0x050000" crc="d9ba6eb6" sha1="6a6a564b2eabc35dbc1591abb8efcf6a9e98bd10"/> <rom name="dezalis.2d" size="0x050000" crc="d9ba6eb6" sha1="6a6a564b2eabc35dbc1591abb8efcf6a9e98bd10"/>

View File

@ -5,7 +5,18 @@
Sharp X1 (c) 1983 Sharp Corporation Sharp X1 (c) 1983 Sharp Corporation
References:
- http://www.x1center.org/
- http://ematei.s602.xrea.com/kenkyu/x1syasin.htm
- http://www2s.biglobe.ne.jp/~ITTO/x1/x1menu.html
- https://eaw.app/sharpx1-manuals/
- https://www.leadedsolder.com/tag/sharp-x1-turbo
- http://takeda-toshiya.my.coocan.jp/x1twin/index.html
- https://monochromeeffect.org/JVCC/2019/05/01/sharp-x1-turbo-z/
- https://monochromeeffect.org/JVCC/2019/06/24/sharp-x1-d/
TODO: TODO:
- clean-up QA, is ugly and outdated;
- clean-ups, split components into devices if necessary and maybe separate turbo/turboz features into specific file(s); - clean-ups, split components into devices if necessary and maybe separate turbo/turboz features into specific file(s);
- refactor base video into a true scanline renderer, expect it to break 6845 drawing delegation support badly; - refactor base video into a true scanline renderer, expect it to break 6845 drawing delegation support badly;
- support extended x1turboz video features (need more test cases?); - support extended x1turboz video features (need more test cases?);
@ -56,7 +67,6 @@ Notes:
[0x14 - 0x15] destination address start address [0x14 - 0x15] destination address start address
[0x16 to 0x17] start boot jump vector [0x16 to 0x17] start boot jump vector
[0x1d to 0x1f] start boot data vector [0x1d to 0x1f] start boot data vector
- Gruppe: shows a random bitmap graphic then returns "program load error" ... it wants that the floppy has write protection enabled (!) (btanb)
- Maidum: you need to load BOTH disk with write protection disabled, otherwise it refuses to run. (btanb) - Maidum: you need to load BOTH disk with write protection disabled, otherwise it refuses to run. (btanb)
- Marvelous: needs write protection disabled (btanb) - Marvelous: needs write protection disabled (btanb)
- Chack'n Pop: to load this game, do a files command on the "Jodan Dos" prompt then move the cursor up at the "Chack'n Pop" file. - Chack'n Pop: to load this game, do a files command on the "Jodan Dos" prompt then move the cursor up at the "Chack'n Pop" file.
@ -159,9 +169,6 @@ Notes:
X1turboZIII (CZ-888C) - December, 1988 X1turboZIII (CZ-888C) - December, 1988
* same as turboZII, but no more built-in cassette drive * same as turboZII, but no more built-in cassette drive
Please refer to http://www2s.biglobe.ne.jp/~ITTO/x1/x1menu.html for
more info
BASIC has to be loaded from external media (tape or disk), the BASIC has to be loaded from external media (tape or disk), the
computer only has an Initial Program Loader (IPL) computer only has an Initial Program Loader (IPL)
@ -2245,10 +2252,8 @@ void x1_state::x1(machine_config &config)
ay8910_device &ay(AY8910(config, "ay", MAIN_CLOCK/8)); ay8910_device &ay(AY8910(config, "ay", MAIN_CLOCK/8));
ay.port_a_read_callback().set_ioport("P1"); ay.port_a_read_callback().set_ioport("P1");
ay.port_b_read_callback().set_ioport("P2"); ay.port_b_read_callback().set_ioport("P2");
ay.add_route(0, "lspeaker", 0.25); ay.add_route(ALL_OUTPUTS, "lspeaker", 0.25);
ay.add_route(0, "rspeaker", 0.25); ay.add_route(ALL_OUTPUTS, "rspeaker", 0.25);
ay.add_route(1, "lspeaker", 0.5);
ay.add_route(2, "rspeaker", 0.5);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(x1_cassette_formats); m_cassette->set_formats(x1_cassette_formats);
@ -2391,7 +2396,6 @@ void x1_state::init_x1_kanji()
} }
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1982, x1, 0, 0, x1, x1, x1_state, empty_init, "Sharp", "X1 (CZ-800C)", 0 ) COMP( 1982, x1, 0, 0, x1, x1, x1_state, empty_init, "Sharp", "X1 (CZ-800C)", 0 )
// x1twin in x1twin.cpp // x1twin in x1twin.cpp
COMP( 1984, x1turbo, x1, 0, x1turbo, x1turbo, x1turbo_state, init_x1_kanji, "Sharp", "X1 Turbo (CZ-850C)", MACHINE_NOT_WORKING ) //model 10 COMP( 1984, x1turbo, x1, 0, x1turbo, x1turbo, x1turbo_state, init_x1_kanji, "Sharp", "X1 Turbo (CZ-850C)", MACHINE_NOT_WORKING ) //model 10

View File

@ -505,10 +505,8 @@ void x1twin_state::x1twin(machine_config &config)
ay8910_device &ay(AY8910(config, "ay", MAIN_CLOCK/8)); ay8910_device &ay(AY8910(config, "ay", MAIN_CLOCK/8));
ay.port_a_read_callback().set_ioport("P1"); ay.port_a_read_callback().set_ioport("P1");
ay.port_b_read_callback().set_ioport("P2"); ay.port_b_read_callback().set_ioport("P2");
ay.add_route(0, "x1_l", 0.25); ay.add_route(ALL_OUTPUTS, "x1_l", 0.25);
ay.add_route(0, "x1_r", 0.25); ay.add_route(ALL_OUTPUTS, "x1_r", 0.25);
ay.add_route(1, "x1_l", 0.5);
ay.add_route(2, "x1_r", 0.5);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(x1_cassette_formats); m_cassette->set_formats(x1_cassette_formats);