Core: Support retrieving disk info before full init

This commit is contained in:
Ender's Games 2018-08-26 07:39:32 -04:00
parent 757d1f7559
commit 31fb575165
9 changed files with 53 additions and 20 deletions

View File

@ -129,7 +129,13 @@ void* webui_th(void* p)
cThread webui_thd(&webui_th,0);
#endif
#if defined(_ANDROID)
int reios_init_value;
void reios_init(int argc,wchar* argv[])
#else
int dc_init(int argc,wchar* argv[])
#endif
{
setbuf(stdin,0);
setbuf(stdout,0);
@ -137,7 +143,12 @@ int dc_init(int argc,wchar* argv[])
if (!_vmem_reserve())
{
printf("Failed to alloc mem\n");
#if defined(_ANDROID)
reios_init_value = -1;
return;
#else
return -1;
#endif
}
#if !defined(TARGET_NO_WEBUI)
@ -146,19 +157,29 @@ int dc_init(int argc,wchar* argv[])
if(ParseCommandLine(argc,argv))
{
return 69;
#if defined(_ANDROID)
reios_init_value = 69;
return;
#else
return 69;
#endif
}
if(!cfgOpen())
{
msgboxf("Unable to open config file",MBX_ICONERROR);
#if defined(_ANDROID)
reios_init_value = -4;
return;
#else
return -4;
#endif
}
LoadSettings();
#ifndef _ANDROID
os_CreateWindow();
#endif
int rv= 0;
int rv = 0;
#if HOST_OS != OS_DARWIN
#define DATA_PATH "/data/"
@ -169,11 +190,34 @@ int dc_init(int argc,wchar* argv[])
if (settings.bios.UseReios || !LoadRomFiles(get_readonly_data_path(DATA_PATH)))
{
if (!LoadHle(get_readonly_data_path(DATA_PATH)))
{
#if defined(_ANDROID)
reios_init_value = -4;
return;
#else
return -3;
#endif
}
else
{
printf("Did not load bios, using reios\n");
}
}
plugins_Init();
#if defined(_ANDROID)
}
int dc_init()
{
int rv = 0;
if (reios_init_value != 0)
return reios_init_value;
#else
LoadCustom();
#endif
#if FEAT_SHREC != DYNAREC_NONE
if(settings.dynarec.Enable)
{
@ -192,8 +236,6 @@ int dc_init(int argc,wchar* argv[])
sh4_cpu.Init();
mem_Init();
plugins_Init();
mem_map_default();
#if DC_PLATFORM == DC_PLATFORM_DREAMCAST
@ -206,10 +248,6 @@ int dc_init(int argc,wchar* argv[])
mem_Reset(false);
sh4_cpu.Reset(false);
#ifndef _ANDROID
LoadCustom();
#endif
return rv;
}

View File

@ -9,7 +9,6 @@ import android.net.Uri;
import android.os.Environment;
import android.preference.PreferenceManager;
import com.reicast.emulator.MainActivity;
import com.reicast.emulator.config.Config;
import java.io.File;

View File

@ -33,9 +33,9 @@ import android.view.WindowManager;
import android.widget.TextView;
import com.reicast.emulator.config.Config;
import com.reicast.emulator.config.PGConfigFragment;
import com.reicast.emulator.config.InputFragment;
import com.reicast.emulator.config.OptionsFragment;
import com.reicast.emulator.config.PGConfigFragment;
import com.reicast.emulator.debug.GenerateLogs;
import com.reicast.emulator.emu.JNIdc;
import com.reicast.emulator.periph.Gamepad;

View File

@ -6,7 +6,6 @@ import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PorterDuff;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;

View File

@ -3,8 +3,8 @@ package com.reicast.emulator.debug;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.support.constraint.ConstraintLayout;
@ -13,7 +13,6 @@ import android.support.graphics.drawable.VectorDrawableCompat;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.reicast.emulator.R;
import com.reicast.emulator.config.Config;

View File

@ -156,7 +156,6 @@ public class GL2JNIView extends GLSurfaceView
if (GL2JNIActivity.syms != null)
JNIdc.data(1, GL2JNIActivity.syms);
}
JNIdc.init(fileName);
JNIdc.query(ethd);

View File

@ -6,7 +6,6 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Environment;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
@ -25,7 +24,6 @@ import com.reicast.emulator.R;
import com.reicast.emulator.config.Config;
import com.reicast.emulator.periph.VmuLcd;
import java.io.File;
import java.util.Vector;
public class OnScreenMenu {

View File

@ -5,7 +5,6 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.os.Build;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.view.KeyEvent;

View File

@ -10,7 +10,6 @@
#include <GLES2/gl2.h>
#include <types.h>
#include "types.h"
#include "hw/maple/maple_cfg.h"
#include "profiler/profiler.h"
#include "rend/TexCache.h"
@ -182,7 +181,8 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_dreamtime(JNIEnv *env
void egl_stealcntx();
void SetApplicationPath(wchar *path);
int dc_init(int argc,wchar* argv[]);
void reios_init(int argc,wchar* argv[]);
int dc_init();
void dc_run();
void dc_pause();
void dc_term();
@ -239,7 +239,7 @@ static void *ThreadHandler(void *UserData)
}
// Run nullDC emulator
dc_init(Args[2]? 3:1,Args);
reios_init(Args[2]? 3:1,Args);
return 0;
}
@ -380,6 +380,8 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_query(JNIEnv *env,job
jstring reios_name = env->NewStringUTF(name);
env->CallVoidMethod(emu_thread, reiosInfoMid, reios_id, reios_name);
dc_init();
}
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_run(JNIEnv *env,jobject obj,jobject emu_thread)