Previous 199869 Revisions Next

r20983 Tuesday 12th February, 2013 at 14:48:38 UTC by Oliver Stöneberg
fixed super-verbose logging in src/emu/machine/stvcd.c (nw)
[src/emu/machine]stvcd.c

trunk/src/emu/machine/stvcd.c
r20982r20983
112112   switch ((cr1 >> 8) & 0xff)
113113   {
114114      case 0x00:
115         //CDROM_LOG(("%s:CD: Get Status\n", machine.describe_context()))
115         //CDROM_LOG(("%s:CD: Get Status\n", machine().describe_context()))
116116         hirqreg |= CMOK;
117117         cr_standard_return(cd_stat);
118118         //CDROM_LOG(("   = %04x %04x %04x %04x %04x\n", hirqreg, cr1, cr2, cr3, cr4))
119119         break;
120120
121121      case 0x01:
122         CDROM_LOG(("%s:CD: Get Hardware Info\n", machine.describe_context()))
122         CDROM_LOG(("%s:CD: Get Hardware Info\n", machine().describe_context()))
123123         hirqreg |= CMOK;
124124         cr1 = cd_stat;
125125         cr2 = 0x0201;
r20982r20983
128128         break;
129129
130130      case 0x02:    // Get TOC
131         CDROM_LOG(("%s:CD: Get TOC\n", machine.describe_context()))
131         CDROM_LOG(("%s:CD: Get TOC\n", machine().describe_context()))
132132         cd_readTOC();
133133         cd_stat = CD_STAT_TRANS|CD_STAT_PAUSE;
134134         cr1 = cd_stat;
r20982r20983
143143                  // bios is interested in returns in cr3 and cr4
144144                  // cr3 should be data track #
145145                  // cr4 must be > 1 and < 100 or bios gets angry.
146         CDROM_LOG(("%s:CD: Get Session Info\n", machine.describe_context()))
146         CDROM_LOG(("%s:CD: Get Session Info\n", machine().describe_context()))
147147         cd_readTOC();
148148         switch (cr1 & 0xff)
149149         {
r20982r20983
183183            // CR1 & 8 = retry reading mode 2 sectors
184184            // CR1 & 10 = force single-speed
185185            // CR1 & 80 = no change flag (done by Assault Suit Leynos 2)
186         CDROM_LOG(("%s:CD: Initialize CD system\n", machine.describe_context()))
186         CDROM_LOG(("%s:CD: Initialize CD system\n", machine().describe_context()))
187187         //if((cr1 & 0x81) == 0x00) //guess TODO: nope, Choice Cuts doesn't like it, it crashes if you try to skip the FMV otherwise.
188188         {
189189            if(((cd_stat & 0x0f00) != CD_STAT_NODISC) && ((cd_stat & 0x0f00) != CD_STAT_OPEN))
r20982r20983
227227      case 0x06:    // end data transfer (TODO: needs to be worked on!)
228228            // returns # of bytes transfered (24 bits) in
229229            // low byte of cr1 (MSB) and cr2 (middle byte, LSB)
230         CDROM_LOG(("%s:CD: End data transfer (%d bytes xfer'd)\n", machine.describe_context(), xferdnum))
230         CDROM_LOG(("%s:CD: End data transfer (%d bytes xfer'd)\n", machine().describe_context(), xferdnum))
231231
232232         // clear the "transfer" flag
233233         cd_stat &= ~CD_STAT_TRANS;
r20982r20983
301301         UINT32 start_pos,end_pos;
302302         UINT8 play_mode;
303303
304         CDROM_LOG(("%s:CD: Play Disc\n",   machine.describe_context()))
304         CDROM_LOG(("%s:CD: Play Disc\n",   machine().describe_context()))
305305         cd_stat = CD_STAT_PLAY;
306306
307307         play_mode = (cr3 >> 8) & 0x7f;
r20982r20983
414414         break;
415415
416416      case 0x11: // disc seek
417         CDROM_LOG(("%s:CD: Disc seek\n",   machine.describe_context()))
417         CDROM_LOG(("%s:CD: Disc seek\n",   machine().describe_context()))
418418         //printf("%08x %08x %08x %08x\n",cr1,cr2,cr3,cr4);
419419         if (cr1 & 0x80)
420420         {
r20982r20983
542542            // get operation
543543            parm = cr3>>8;
544544
545            CDROM_LOG(("%s:CD: Set CD Device Connection filter # %x\n",   machine.describe_context(), parm))
545            CDROM_LOG(("%s:CD: Set CD Device Connection filter # %x\n",   machine().describe_context(), parm))
546546
547547            cddevicenum = parm;
548548
r20982r20983
583583         {
584584            UINT8 fnum = (cr3>>8)&0xff;
585585
586            CDROM_LOG(("%s:CD: Set Filter Range\n",   machine.describe_context()))
586            CDROM_LOG(("%s:CD: Set Filter Range\n",   machine().describe_context()))
587587
588588            filters[fnum].fad = ((cr1 & 0xff)<<16) | cr2;
589589            filters[fnum].range = ((cr3 & 0xff)<<16) | cr4;
r20982r20983
604604         {
605605            UINT8 fnum = (cr3>>8)&0xff;
606606
607            CDROM_LOG(("%s:CD: Set Filter Subheader conditions %x => chan %x masks %x fid %x vals %x\n", machine.describe_context(), fnum, cr1&0xff, cr2, cr3&0xff, cr4))
607            CDROM_LOG(("%s:CD: Set Filter Subheader conditions %x => chan %x masks %x fid %x vals %x\n", machine().describe_context(), fnum, cr1&0xff, cr2, cr3&0xff, cr4))
608608
609609            filters[fnum].chan = cr1 & 0xff;
610610            filters[fnum].smmask = (cr2>>8)&0xff;
r20982r20983
622622         {
623623            UINT8 fnum = (cr3>>8)&0xff;
624624
625            CDROM_LOG(("%s:CD: Set Filter Subheader conditions %x => chan %x masks %x fid %x vals %x\n", machine.describe_context(), fnum, cr1&0xff, cr2, cr3&0xff, cr4))
625            CDROM_LOG(("%s:CD: Set Filter Subheader conditions %x => chan %x masks %x fid %x vals %x\n", machine().describe_context(), fnum, cr1&0xff, cr2, cr3&0xff, cr4))
626626
627627            cr1 = cd_stat | (filters[fnum].chan & 0xff);
628628            cr2 = (filters[fnum].smmask << 8) | (filters[fnum].cimask & 0xff);
r20982r20983
648648               filters[fnum].mode = mode;
649649            }
650650
651            CDROM_LOG(("%s:CD: Set Filter Mode filt %x mode %x\n", machine.describe_context(), fnum, mode))
651            CDROM_LOG(("%s:CD: Set Filter Mode filt %x mode %x\n", machine().describe_context(), fnum, mode))
652652            hirqreg |= (CMOK|ESEL);
653653            cr_standard_return(cd_stat);
654654         }
r20982r20983
671671            /* TODO: maybe condition false is cr3 low? */
672672            UINT8 fnum = (cr3>>8)&0xff;
673673
674            CDROM_LOG(("%s:CD: Set Filter Connection %x => mode %x parm %04x\n", machine.describe_context(), fnum, cr1 & 0xf, cr2))
674            CDROM_LOG(("%s:CD: Set Filter Connection %x => mode %x parm %04x\n", machine().describe_context(), fnum, cr1 & 0xf, cr2))
675675
676676            if (cr1 & 1)   // set true condition
677677               filters[fnum].condtrue = (cr2>>8)&0xff;
r20982r20983
688688         {
689689         int i,j;
690690
691         CDROM_LOG(("%s:CD: Reset Selector\n",   machine.describe_context()))
691         CDROM_LOG(("%s:CD: Reset Selector\n",   machine().describe_context()))
692692
693693         if((cr1 & 0xff) == 0x00)
694694         {
r20982r20983
784784         {
785785            UINT32 bufnum = cr3>>8;
786786
787            CDROM_LOG(("%s:CD: Get Sector Number (bufno %d) = %d blocks\n",   machine.describe_context(), bufnum, cr4))
787            CDROM_LOG(("%s:CD: Get Sector Number (bufno %d) = %d blocks\n",   machine().describe_context(), bufnum, cr4))
788788            cr1 = cd_stat;
789789            cr2 = 0;
790790            cr3 = 0;
r20982r20983
809809            UINT32 sectoffs = cr2;
810810            UINT32 numsect = cr4;
811811
812            CDROM_LOG(("%s:CD: Calculate actual size: buf %x offs %x numsect %x\n", machine.describe_context(), bufnum, sectoffs, numsect))
812            CDROM_LOG(("%s:CD: Calculate actual size: buf %x offs %x numsect %x\n", machine().describe_context(), bufnum, sectoffs, numsect))
813813
814814            calcsize = 0;
815815            if (partitions[bufnum].size != -1)
r20982r20983
831831         break;
832832
833833      case 0x53:    // get actual block size
834         CDROM_LOG(("%s:CD: Get actual block size\n", machine.describe_context()))
834         CDROM_LOG(("%s:CD: Get actual block size\n", machine().describe_context()))
835835         hirqreg |= (CMOK|ESEL);
836836         cr1 = cd_stat | ((calcsize>>16)&0xff);
837837         cr2 = (calcsize & 0xffff);
r20982r20983
862862         break;
863863
864864      case 0x60:    // set sector length
865         CDROM_LOG(("%s:CD: Set sector length\n",   machine.describe_context()))
865         CDROM_LOG(("%s:CD: Set sector length\n",   machine().describe_context()))
866866
867867         switch (cr1 & 0xff)
868868         {
r20982r20983
905905            UINT32 sectofs = cr2;
906906            UINT32 bufnum = cr3>>8;
907907
908            CDROM_LOG(("%s:CD: Get sector data (SN %d SO %d BN %d)\n",   machine.describe_context(), sectnum, sectofs, bufnum))
908            CDROM_LOG(("%s:CD: Get sector data (SN %d SO %d BN %d)\n",   machine().describe_context(), sectnum, sectofs, bufnum))
909909
910910            if (bufnum >= MAX_FILTERS)
911911            {
r20982r20983
948948            UINT32 bufnum = cr3>>8;
949949            INT32 i;
950950
951            CDROM_LOG(("%s:CD: Delete sector data (SN %d SO %d BN %d)\n",   machine.describe_context(), sectnum, sectofs, bufnum))
951            CDROM_LOG(("%s:CD: Delete sector data (SN %d SO %d BN %d)\n",   machine().describe_context(), sectnum, sectofs, bufnum))
952952
953953            if (bufnum >= MAX_FILTERS)
954954            {
r20982r20983
999999            UINT32 sectofs = cr2;
10001000            UINT32 bufnum = cr3>>8;
10011001
1002            CDROM_LOG(("%s:CD: Get and delete sector data (SN %d SO %d BN %d)\n",   machine.describe_context(), sectnum, sectofs, bufnum))
1002            CDROM_LOG(("%s:CD: Get and delete sector data (SN %d SO %d BN %d)\n",   machine().describe_context(), sectnum, sectofs, bufnum))
10031003
10041004            if (bufnum >= MAX_FILTERS)
10051005            {
r20982r20983
10671067
10681068
10691069      case 0x67:    // get copy error
1070         CDROM_LOG(("%s:CD: Get copy error\n",   machine.describe_context()))
1070         CDROM_LOG(("%s:CD: Get copy error\n",   machine().describe_context()))
10711071         printf("Get copy error\n");
10721072         cr1 = cd_stat;
10731073         cr2 = 0;
r20982r20983
10771077         break;
10781078
10791079      case 0x70:    // change directory
1080         CDROM_LOG(("%s:CD: Change Directory\n",   machine.describe_context()))
1080         CDROM_LOG(("%s:CD: Change Directory\n",   machine().describe_context()))
10811081         hirqreg |= (CMOK|EFLS);
10821082
10831083         temp = (cr3&0xff)<<16;
r20982r20983
10881088         break;
10891089
10901090      case 0x71:    // Read directory entry
1091         CDROM_LOG(("%s:CD: Read Directory Entry\n",   machine.describe_context()))
1091         CDROM_LOG(("%s:CD: Read Directory Entry\n",   machine().describe_context()))
10921092//          UINT32 read_dir;
10931093
10941094//          read_dir = ((cr3&0xff)<<16)|cr4;
r20982r20983
11161116         break;
11171117
11181118      case 0x73:    // Get File Info
1119         CDROM_LOG(("%s:CD: Get File Info\n",   machine.describe_context()))
1119         CDROM_LOG(("%s:CD: Get File Info\n",   machine().describe_context()))
11201120         cd_stat |= CD_STAT_TRANS;
11211121         cd_stat &= 0xff00;      // clear top byte of return value
11221122         playtype = 0;
r20982r20983
11741174         break;
11751175
11761176      case 0x74:    // Read File
1177         CDROM_LOG(("%s:CD: Read File\n",   machine.describe_context()))
1177         CDROM_LOG(("%s:CD: Read File\n",   machine().describe_context()))
11781178         UINT16 file_offset,file_filter,file_id,file_size;
11791179
11801180         file_offset = ((cr1 & 0xff)<<8)|(cr2 & 0xff); /* correct? */
r20982r20983
12041204         break;
12051205
12061206      case 0x75:
1207         CDROM_LOG(("%s:CD: Abort File\n",   machine.describe_context()))
1207         CDROM_LOG(("%s:CD: Abort File\n",   machine().describe_context()))
12081208         // bios expects "2bc" mask to work against this
12091209         hirqreg |= (CMOK|EFLS);
12101210         sectorstore = 0;
r20982r20983
12161216         break;
12171217
12181218      case 0xe0:    // appears to be copy protection check.  needs only to return OK.
1219         CDROM_LOG(("%s:CD: Verify copy protection\n",   machine.describe_context()))
1219         CDROM_LOG(("%s:CD: Verify copy protection\n",   machine().describe_context()))
12201220         if(((cd_stat & 0x0f00) != CD_STAT_NODISC) && ((cd_stat & 0x0f00) != CD_STAT_OPEN))
12211221            cd_stat = CD_STAT_PAUSE;
12221222//          cr1 = cd_stat;  // necessary to pass
r20982r20983
12281228         break;
12291229
12301230      case 0xe1:    // get disc region
1231         CDROM_LOG(("%s:CD: Get disc region\n",   machine.describe_context()))
1231         CDROM_LOG(("%s:CD: Get disc region\n",   machine().describe_context()))
12321232         if(cd_stat != CD_STAT_NODISC && cd_stat != CD_STAT_OPEN)
12331233            cd_stat = CD_STAT_PAUSE;
12341234         cr1 = cd_stat;  // necessary to pass

Previous 199869 Revisions Next


© 1997-2024 The MAME Team