View unanswered posts | View active topics It is currently Sat May 25, 2013 6:43 am



Reply to topic  [ 3 posts ] 
 DVD support broken on Gamecube 
Author Message

Joined: Mon Mar 12, 2012 4:00 pm
Posts: 1
FCEUGX and SNES9XGX are currently broken on Gamecube (and have been since they were at version 4.1.1) - both hang at the "Loading DVD" screen.

The maintainer of these projects, dborth, has marked these issues as "won't fix" claiming it is an upstream problem with libogc:
http://code.google.com/p/snes9x-gx/issues/detail?id=601
http://code.google.com/p/snes9x-gx/issues/detail?id=659

Since they've been outstanding issues for years now, I'm going to finally tackle the bugs and make the emulators functional again, so I can get my GC back out of storage. Consider this thread a WIP discussion about the bug.

First, a segment of code from SNES9XGX where the problem manifests:
Code:
/****************************************************************************
 * MountDVD()
 *
 * Tests if a ISO9660 DVD is inserted and available, and mounts it
 ***************************************************************************/
bool MountDVD(bool silent)
{
   bool mounted = false;
   int retry = 1;

   if(unmountRequired[DEVICE_DVD])
   {
      unmountRequired[DEVICE_DVD] = false;
      ISO9660_Unmount("dvd:");
   }

   while(retry)
   {
      ShowAction("Loading DVD...");

      if(!dvd->isInserted())
      {
         if(silent)
            break;

         retry = ErrorPromptRetry("No disc inserted!");
      }
      else if(!ISO9660_Mount("dvd", dvd))
      {
         if(silent)
            break;

         retry = ErrorPromptRetry("Unrecognized DVD format.");
      }
      else
      {
         mounted = true;
         break;
      }
   }
   CancelAction();
   isMounted[DEVICE_DVD] = mounted;
   return mounted;
}


Mon Mar 12, 2012 4:07 pm
Profile

Joined: Sat Mar 06, 2010 1:11 pm
Posts: 14
In all likelihood, the reason for this being an issue for so long is probably because no one bothered to use it after the change (the change being the revamped I/O), and probably not prior to it either. Even I just used an SD Gecko to access files; a disc offered no benefits.

Nevertheless, I'd start my search at the revision that this revamped I/O code appeared.


Thu Mar 15, 2012 3:21 pm
Profile

Joined: Wed May 20, 2009 10:37 pm
Posts: 4
The DVD handling code in Snes9x GX here - http://code.google.com/p/snes9x-gx/sour ... gc/dvd.cpp

Was removed, and replaced by calls to the existing libogc GC DVD code here - http://devkitpro.svn.sourceforge.net/vi ... threv=4146

It's not a matter of going through the Snes9x GX and making changes there - it's a matter of going into libogc and figuring out why that code isn't working for you.

Your other option of course is to use 4.1.1 or older, which have the old code.


Thu Mar 15, 2012 4:10 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.
Get devkitPro at SourceForge.net. Fast, secure and Free Open Source software downloads