mirror of
https://github.com/retro100/dosbox-wii.git
synced 2025-01-12 02:09:09 +01:00
force more predictable video mode, use standard libfat init
This commit is contained in:
parent
ede7921e4c
commit
8d25777582
@ -1055,6 +1055,8 @@ static void GUI_StartUp(Section * sec) {
|
||||
if (!sdl.desktop.full.width) {
|
||||
#ifdef WIN32
|
||||
sdl.desktop.full.width=(Bit16u)GetSystemMetrics(SM_CXSCREEN);
|
||||
#elif defined(HW_RVL)
|
||||
sdl.desktop.full.width=640;
|
||||
#else
|
||||
sdl.desktop.full.width=1024;
|
||||
#endif
|
||||
@ -1062,6 +1064,8 @@ static void GUI_StartUp(Section * sec) {
|
||||
if (!sdl.desktop.full.height) {
|
||||
#ifdef WIN32
|
||||
sdl.desktop.full.height=(Bit16u)GetSystemMetrics(SM_CYSCREEN);
|
||||
#elif defined(HW_RVL)
|
||||
sdl.desktop.full.height=480;
|
||||
#else
|
||||
sdl.desktop.full.height=768;
|
||||
#endif
|
||||
@ -1130,7 +1134,11 @@ static void GUI_StartUp(Section * sec) {
|
||||
|
||||
#endif //OPENGL
|
||||
/* Initialize screen for first time */
|
||||
#ifdef HW_RVL
|
||||
sdl.surface=SDL_SetVideoMode(640,480,16,0);
|
||||
#else
|
||||
sdl.surface=SDL_SetVideoMode(640,400,0,0);
|
||||
#endif
|
||||
if (sdl.surface == NULL) E_Exit("Could not initialize video: %s",SDL_GetError());
|
||||
sdl.desktop.bpp=sdl.surface->format->BitsPerPixel;
|
||||
if (sdl.desktop.bpp==24) {
|
||||
@ -1639,7 +1647,7 @@ int main(int argc, char* argv[]) {
|
||||
if (control->cmdline->FindExist("-startmapper")) MAPPER_Run(false);
|
||||
#ifdef HW_RVL
|
||||
MountDOSBoxDir('C', "sd:/DOSBox");
|
||||
#endif
|
||||
#endif
|
||||
/* Start up main machine */
|
||||
control->StartUp();
|
||||
/* Shutdown everything */
|
||||
|
@ -7,126 +7,11 @@
|
||||
#include <sys/stat.h>
|
||||
#include <zlib.h>
|
||||
#include <malloc.h>
|
||||
#include <sdcard/wiisd_io.h>
|
||||
#include <sdcard/gcsd.h>
|
||||
#include <ogc/usbstorage.h>
|
||||
#include <fat.h>
|
||||
#include "wiihardware.h"
|
||||
|
||||
char rootdir[10];
|
||||
|
||||
enum {
|
||||
METHOD_AUTO,
|
||||
METHOD_SD,
|
||||
METHOD_USB,
|
||||
METHOD_DVD,
|
||||
METHOD_SMB,
|
||||
METHOD_MC_SLOTA,
|
||||
METHOD_MC_SLOTB,
|
||||
METHOD_SD_SLOTA,
|
||||
METHOD_SD_SLOTB
|
||||
};
|
||||
|
||||
bool unmountRequired[9] = { false, false, false, false, false, false, false, false, false };
|
||||
bool isMounted[9] = { false, false, false, false, false, false, false, false, false };
|
||||
|
||||
#ifdef HW_RVL
|
||||
const DISC_INTERFACE* sd = &__io_wiisd;
|
||||
const DISC_INTERFACE* usb = &__io_usbstorage;
|
||||
#else
|
||||
const DISC_INTERFACE* carda = &__io_gcsda;
|
||||
const DISC_INTERFACE* cardb = &__io_gcsdb;
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* UnmountAllFAT
|
||||
* Unmounts all FAT devices
|
||||
***************************************************************************/
|
||||
void UnmountAllFAT()
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
fatUnmount("sd:/");
|
||||
fatUnmount("usb:/");
|
||||
#else
|
||||
fatUnmount("carda:/");
|
||||
fatUnmount("cardb:/");
|
||||
#endif
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* MountFAT
|
||||
* Checks if the device needs to be (re)mounted
|
||||
* If so, unmounts the device
|
||||
* Attempts to mount the device specified
|
||||
* Sets libfat to use the device by default
|
||||
***************************************************************************/
|
||||
|
||||
bool MountFAT(int method)
|
||||
{
|
||||
bool mounted = true; // assume our disc is already mounted
|
||||
char name[10];
|
||||
const DISC_INTERFACE* disc = NULL;
|
||||
|
||||
switch(method)
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
case METHOD_SD:
|
||||
sprintf(name, "sd");
|
||||
disc = sd;
|
||||
break;
|
||||
case METHOD_USB:
|
||||
sprintf(name, "usb");
|
||||
disc = usb;
|
||||
break;
|
||||
#else
|
||||
case METHOD_SD_SLOTA:
|
||||
sprintf(name, "carda");
|
||||
disc = carda;
|
||||
break;
|
||||
|
||||
case METHOD_SD_SLOTB:
|
||||
sprintf(name, "cardb");
|
||||
disc = cardb;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return false; // unknown device
|
||||
}
|
||||
|
||||
sprintf(rootdir, "%s:/", name);
|
||||
|
||||
if(unmountRequired[method])
|
||||
{
|
||||
unmountRequired[method] = false;
|
||||
fatUnmount(rootdir);
|
||||
disc->shutdown();
|
||||
isMounted[method] = false;
|
||||
}
|
||||
if(!isMounted[method])
|
||||
{
|
||||
if(!disc->startup())
|
||||
mounted = false;
|
||||
else if(!fatMountSimple(name, disc))
|
||||
mounted = false;
|
||||
}
|
||||
|
||||
isMounted[method] = mounted;
|
||||
return mounted;
|
||||
}
|
||||
|
||||
void MountAllFAT()
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
MountFAT(METHOD_SD);
|
||||
MountFAT(METHOD_USB);
|
||||
#else
|
||||
MountFAT(METHOD_SD_SLOTA);
|
||||
MountFAT(METHOD_SD_SLOTB);
|
||||
#endif
|
||||
}
|
||||
|
||||
void WiiInit() {
|
||||
MountAllFAT();
|
||||
fatInitDefault();
|
||||
}
|
||||
|
||||
bool WiiMessagePause(const char *s) {
|
||||
@ -144,7 +29,6 @@ bool WiiMessagePause(const char *s) {
|
||||
}
|
||||
|
||||
void WiiFinished() {
|
||||
UnmountAllFAT();
|
||||
#ifdef HW_RVL
|
||||
if (WiiMessagePause("Press A to return to homebrew channel.\n")) exit(0);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user