summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2025-10-29 10:17:09 +0100
committer angelosa <lordkale4@gmail.com>2025-10-29 10:18:00 +0100
commit8df6a1878230bb72ff100228a9e5666196068337 (patch)
tree951b1a5fe756a3aa6943ce5b235a011f68580a8e
parentd4da8ffff0179f1a739078128f6906d1c075b355 (diff)
bus/nscsi/pc8801_30.cpp: fix set audio start position mode 0x80
Software list items promoted to working --------------------------------------- pc8801_cdrom: CD Takarabako, Mirrors [Angelo Salese]
-rw-r--r--hash/pc8801_cdrom.xml20
-rw-r--r--src/devices/bus/nscsi/pc8801_30.cpp6
2 files changed, 18 insertions, 8 deletions
diff --git a/hash/pc8801_cdrom.xml b/hash/pc8801_cdrom.xml
index 55d3722f0bc..24cc5f8f9c5 100644
--- a/hash/pc8801_cdrom.xml
+++ b/hash/pc8801_cdrom.xml
@@ -14,14 +14,15 @@ TODO:
-->
- <software name="takabako" supported="no">
+ <software name="takabako" supported="partial">
<description>CD Takarabako</description>
<year>1989</year>
<publisher>NEC</publisher>
<notes><![CDATA[
-Several items quickly returns back to main menu
+Game transfers not extensively tested
]]></notes>
<info name="alt_title" value="CDたから箱"/>
+ <info name="usage" value="Insert empty 2D images for game disk to save (i.e. 2HD won't work)"/>
<sharedfeat name="mouseport_default" value="mouse" />
<part name="cdrom" interface="cdrom">
@@ -32,14 +33,15 @@ Several items quickly returns back to main menu
</part>
</software>
- <software name="takabakoa" cloneof="takabako" supported="no">
+ <software name="takabakoa" cloneof="takabako" supported="partial">
<description>CD Takarabako (alt)</description>
<year>1989</year>
<publisher>NEC</publisher>
<notes><![CDATA[
-Several items quickly returns back to main menu
+Game transfers not extensively tested
]]></notes>
<info name="alt_title" value="CDたから箱"/>
+ <info name="usage" value="Insert empty 2D images for game disk to save (i.e. 2HD won't work)"/>
<sharedfeat name="mouseport_default" value="mouse" />
<part name="cdrom" interface="cdrom">
@@ -77,17 +79,18 @@ Known to have [FDC] copy protection for user disk creation (the .d88 dump won't
</part>
</software>
- <software name="mirrors" supported="no">
+ <software name="mirrors" supported="partial">
<description>Mirrors</description>
<year>1990</year>
<publisher>ソフトスタジオWING (Soft Studio Wing)</publisher>
<notes><![CDATA[
Not extensively tested
Bogus [redbook] during intro with track 5 while fade-out without waiting enough (btanb?)
+[redbook] 2 seconds offset on title screen
]]></notes>
<info name="release" value="19901210"/>
<info name="alt_title" value="ミラーズ"/>
- <info name="usage" value="Works on PC8801MC only (needs CD-ROM support) or in MA+ with specific EXP i/f"/>
+ <info name="usage" value="Select second option, insert Save Disk first then Main and Game Disks to quickly test (no save)"/>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Main Disk" />
@@ -117,16 +120,17 @@ Bogus [redbook] during intro with track 5 while fade-out without waiting enough
</part>
</software>
- <software name="mirrorsa" cloneof="mirrors" supported="no">
+ <software name="mirrorsa" cloneof="mirrors" supported="partial">
<description>Mirrors (alt)</description>
<year>1990</year>
<publisher>ソフトスタジオWING (Soft Studio Wing)</publisher>
<notes><![CDATA[
Not extensively tested
+Same as mirrors set
]]></notes>
<info name="release" value="19901210"/>
<info name="alt_title" value="ミラーズ"/>
- <info name="usage" value="Works on PC8801MC only (needs CD-ROM support) or in MA+ with specific EXP i/f"/>
+ <info name="usage" value="Select second option, insert Save Disk first then Main and Game Disks to quickly test (no save)"/>
<!--combined image-->
<!--rom name="mirrors.d88" size="1250128" crc="6534e06f" sha1="d704a29480c476b50638e7c7ac28fcd5f91fa376"/-->
diff --git a/src/devices/bus/nscsi/pc8801_30.cpp b/src/devices/bus/nscsi/pc8801_30.cpp
index c4930597f1d..4ae6f3a29c4 100644
--- a/src/devices/bus/nscsi/pc8801_30.cpp
+++ b/src/devices/bus/nscsi/pc8801_30.cpp
@@ -135,6 +135,12 @@ void nscsi_cdrom_pc8801_30_device::nec_set_audio_start_position()
const u32 pregap = toc.tracks[image->get_track(track_number - 1)].pregap;
LOGCMD("TRACK=%d (pregap = %d)\n", track_number, pregap);
frame = toc.tracks[ track_number - 1 ].logframeofs;
+
+ // tested in takabako item #2 (no end position command issued)
+ const u8 last_track = image->get_last_track() - 1;
+ m_last_frame = image->get_track_start(last_track);
+ m_last_frame += toc.tracks[last_track].frames;
+ m_end_frame = m_last_frame;
// Not right for emeraldd, breaks intro lip sync
//frame -= std::max(pregap, (u32)150);
break;