diff --git a/gameDetector.cpp b/gameDetector.cpp index 04c02fb2dbc..58c1afd6b72 100644 --- a/gameDetector.cpp +++ b/gameDetector.cpp @@ -355,7 +355,12 @@ int GameDetector::detectMain(int argc, char **argv) _midi_driver = MD_AUTO; +#ifdef __DC__ + extern int dc_setup(GameDetector &detector); + dc_setup(*this); +#else parseCommandLine(argc, argv); +#endif if (_exe_name == NULL) { //launcherLoop(); @@ -392,6 +397,10 @@ OSystem *GameDetector::createSystem() { #endif /* auto is to use SDL */ switch(_gfx_driver) { +#ifdef __DC__ + case GD_AUTO: + return OSystem_Dreamcast_create(); +#else case GD_SDL: case GD_AUTO: #if !defined(__MORPHOS__) @@ -413,6 +422,7 @@ OSystem *GameDetector::createSystem() { case GD_NULL: return OSystem_NULL_create(); +#endif } error("Invalid graphics driver"); diff --git a/system.h b/system.h index 95bb0026e92..00a72a00f2b 100644 --- a/system.h +++ b/system.h @@ -120,6 +120,7 @@ public: OSystem *OSystem_SDL_create(int gfx_driver, bool full_screen); OSystem *OSystem_NULL_create(); OSystem *OSystem_MorphOS_create(int game_id, int gfx_driver, bool full_screen); +OSystem *OSystem_Dreamcast_create(); enum { GFX_NORMAL = 0,