Change "get current position" to HSG. Fixes a few broken cdrom games
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2219
This commit is contained in:
parent
f6cdebf40d
commit
6e2a8288d0
1 changed files with 9 additions and 5 deletions
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: dos_mscdex.cpp,v 1.28 2005-03-25 09:14:48 qbix79 Exp $ */
|
||||
/* $Id: dos_mscdex.cpp,v 1.29 2005-06-16 18:28:36 qbix79 Exp $ */
|
||||
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
@ -630,8 +630,8 @@ bool CMscdex::GetDirectoryEntry(Bit16u drive, bool copyFlag, PhysPt pathname, Ph
|
|||
return true;
|
||||
}
|
||||
// directory wechseln
|
||||
dirEntrySector = mem_readd(defBuffer+index+2);
|
||||
dirSize = mem_readd(defBuffer+index+10);
|
||||
dirEntrySector = mem_readd(defBuffer+index+2);
|
||||
dirSize = mem_readd(defBuffer+index+10);
|
||||
} else {
|
||||
// continue search in next sector
|
||||
dirSize -= 2048;
|
||||
|
@ -765,11 +765,15 @@ static Bitu MSCDEX_Interrupt_Handler(void)
|
|||
case 0x01 :{/* Get current position */
|
||||
TMSF pos;
|
||||
mscdex->GetCurrentPos(subUnit,pos);
|
||||
mem_writeb(buffer+1,0x01); // Red book
|
||||
/*mem_writeb(buffer+1,0x01); // Red book
|
||||
mem_writeb(buffer+2,pos.fr);
|
||||
mem_writeb(buffer+3,pos.sec);
|
||||
mem_writeb(buffer+4,pos.min);
|
||||
mem_writeb(buffer+5,0x00);
|
||||
mem_writeb(buffer+5,0x00);*/
|
||||
//Changed to HSG as default
|
||||
//(Seems to fix a few broken games which don't test for it)
|
||||
mem_writeb(buffer+1,0x00); //HSG
|
||||
mem_writed(buffer+2,MSF_TO_FRAMES (pos.min, pos.sec, pos.fr));
|
||||
}break;
|
||||
case 0x06 : /* Get Device status */
|
||||
mem_writed(buffer+1,mscdex->GetDeviceStatus(subUnit));
|
||||
|
|
Loading…
Add table
Reference in a new issue