From b82d8c637471d892844f3bc3943a535e24558a93 Mon Sep 17 00:00:00 2001 From: "Carl.Kenner" Date: Sun, 3 May 2009 14:46:25 +0000 Subject: [PATCH] Runs on Wii now, until it tries to start the shell, then it crashes (although it gives you a chance to exit first if you prefer). Saving the config file is disabled to avoid another crash. But hey, it's better than a black screen, right? --- Makefile.wii | 4 +--- dosbox-wii.pnproj | 2 +- include/paging.h | 2 ++ src/gui/sdlmain.cpp | 5 +++++ src/platform/wii/config.h | 9 ++------- src/shell/shell.cpp | 16 +++++++++++++++- 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/Makefile.wii b/Makefile.wii index 223235f..cee168a 100644 --- a/Makefile.wii +++ b/Makefile.wii @@ -39,9 +39,7 @@ LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map -Wl,--cref #--------------------------------------------------------------------------------- # any extra libraries we wish to link with #--------------------------------------------------------------------------------- -LIBS := -lSDL_ttf -lSDL_gfx -lSDL_mixer -lSDL_image -ljpeg -lpng -lz -lSDL -lfreetype \ - -ldb -ldi -lpngu -lmxml -lmetaphrasis \ - -lfat -lwiiuse -lz -lbte -logc -lasnd -ltremor -lfreetype -ltinysmb +LIBS := -lSDL -lfat -lwiiuse -lbte -logc #--------------------------------------------------------------------------------- # list of directories containing libraries, this must be the top level containing diff --git a/dosbox-wii.pnproj b/dosbox-wii.pnproj index 25cb82a..dacec55 100644 --- a/dosbox-wii.pnproj +++ b/dosbox-wii.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/include/paging.h b/include/paging.h index f6fb81e..8a4346d 100644 --- a/include/paging.h +++ b/include/paging.h @@ -30,7 +30,9 @@ // disable this to reduce the size of the TLB // NOTE: does not work with the dynamic core (dynrec is fine) +#ifndef HW_RVL #define USE_FULL_TLB +#endif class PageDirectory; diff --git a/src/gui/sdlmain.cpp b/src/gui/sdlmain.cpp index 5d1bdc7..e93877e 100644 --- a/src/gui/sdlmain.cpp +++ b/src/gui/sdlmain.cpp @@ -32,6 +32,9 @@ #include #include #endif +#ifdef HW_RVL +#include +#endif #include "SDL.h" @@ -1598,7 +1601,9 @@ int main(int argc, char* argv[]) { if(!parsed_anyconfigfile) { //Try to create the userlevel configfile. config_file.clear(); +#ifndef HW_RVL Cross::CreatePlatformConfigDir(config_path); +#endif Cross::GetPlatformConfigName(config_file); config_path += config_file; if(control->PrintConfig(config_path.c_str())) { diff --git a/src/platform/wii/config.h b/src/platform/wii/config.h index 240a12b..d68f7b6 100644 --- a/src/platform/wii/config.h +++ b/src/platform/wii/config.h @@ -19,8 +19,7 @@ #define C_HEAVY_DEBUG 0 /* The type of cpu this host has */ -//#define C_TARGETCPU X86 -//#define C_TARGETCPU X86_64 +#define C_TARGETCPU POWERPC /* Define to 1 to use x86 dynamic cpu core */ #define C_DYNAMIC_X86 0 @@ -58,10 +57,6 @@ #define INLINE inline //#define DB_FASTCALL __fastcall -#if defined(_MSC_VER) && (_MSC_VER >= 1400) -#pragma warning(disable : 4996) -#endif - typedef double Real64; /* The internal types */ typedef unsigned char Bit8u; @@ -69,7 +64,7 @@ typedef signed char Bit8s; typedef unsigned short Bit16u; typedef signed short Bit16s; typedef unsigned long Bit32u; -typedef signed long Bit32s; +typedef int Bit32s; typedef unsigned long long Bit64u; typedef signed long long Bit64s; typedef unsigned int Bitu; diff --git a/src/shell/shell.cpp b/src/shell/shell.cpp index 10a8210..ba2ff7a 100644 --- a/src/shell/shell.cpp +++ b/src/shell/shell.cpp @@ -21,6 +21,9 @@ #include #include #include +#ifdef HW_RVL +#include +#endif #include "dosbox.h" #include "regs.h" #include "control.h" @@ -628,8 +631,19 @@ void SHELL_Init() { dos.dta(RealMake(psp_seg,0x80)); dos.psp(psp_seg); - + SHELL_ProgramStart(&first_shell); + +#ifdef HW_RVL + printf("Press A to continue to a crash, or Home to exit.\n"); + while (1) { + WPAD_ScanPads(); + u16 buttonsDown = WPAD_ButtonsDown(0); + if( buttonsDown & WPAD_BUTTON_A ) break; + if( buttonsDown & WPAD_BUTTON_HOME ) exit(0); + } +#endif + first_shell->Run(); delete first_shell; first_shell = 0;//Make clear that it shouldn't be used anymore