mirror of
https://github.com/retro100/dosbox-wii.git
synced 2025-01-12 10:19:11 +01:00
add home button to exit, change defaults, remove press A requirement for startup/shutdown.
This commit is contained in:
parent
bd8e629a05
commit
232d8849a5
@ -84,7 +84,7 @@ void MPU401_Init(Section*);
|
||||
void PCSPEAKER_Init(Section*);
|
||||
void TANDYSOUND_Init(Section*);
|
||||
void DISNEY_Init(Section*);
|
||||
void SERIAL_Init(Section*);
|
||||
void SERIAL_Init(Section*);
|
||||
|
||||
|
||||
#if C_IPX
|
||||
@ -179,9 +179,9 @@ increaseticks:
|
||||
if (ratioremoved < 1.0) {
|
||||
ratio = (Bit32s)((double)ratio * (1 - ratioremoved));
|
||||
Bit64s cmax_scaled = (Bit64s)CPU_CycleMax * (Bit64s)ratio;
|
||||
if (ratio <= 1024)
|
||||
if (ratio <= 1024)
|
||||
new_cmax = (Bit32s)(cmax_scaled / (Bit64s)1024);
|
||||
else
|
||||
else
|
||||
new_cmax = (Bit32s)(1 + (CPU_CycleMax >> 1) + cmax_scaled / (Bit64s)2048);
|
||||
}
|
||||
}
|
||||
@ -250,7 +250,7 @@ static void DOSBOX_UnlockSpeed( bool pressed ) {
|
||||
CPU_CycleMax /= 3;
|
||||
if (CPU_CycleMax<1000) CPU_CycleMax=1000;
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
ticksLocked = false;
|
||||
if (autoadjust) {
|
||||
autoadjust = false;
|
||||
@ -277,7 +277,7 @@ static void DOSBOX_RealInit(Section * sec) {
|
||||
}
|
||||
|
||||
std::string mtype(section->Get_string("machine"));
|
||||
svgaCard = SVGA_None;
|
||||
svgaCard = SVGA_None;
|
||||
machine = MCH_VGA;
|
||||
int10.vesa_nolfb = false;
|
||||
int10.vesa_oldvbe = false;
|
||||
@ -338,10 +338,10 @@ void DOSBOX_Init(void) {
|
||||
Pstring = secprop->Add_path("captures",Property::Changeable::Always,"capture");
|
||||
Pstring->Set_help("Directory where things like wave, midi, screenshot get captured.");
|
||||
|
||||
#if C_DEBUG
|
||||
#if C_DEBUG
|
||||
LOG_StartUp();
|
||||
#endif
|
||||
|
||||
|
||||
secprop->AddInitFunction(&IO_Init);//done
|
||||
secprop->AddInitFunction(&PAGING_Init);//done
|
||||
secprop->AddInitFunction(&MEM_Init);//done
|
||||
@ -372,7 +372,7 @@ void DOSBOX_Init(void) {
|
||||
Pmulti->Set_help("Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,the scaler will be used even if the result might not be desired.");
|
||||
Pstring = Pmulti->GetSection()->Add_string("type",Property::Changeable::Always,"normal2x");
|
||||
|
||||
const char *scalers[] = {
|
||||
const char *scalers[] = {
|
||||
"none", "normal2x", "normal3x",
|
||||
#if RENDER_USE_ADVANCED_SCALERS>2
|
||||
"advmame2x", "advmame3x", "advinterp2x", "advinterp3x", "hq2x", "hq3x", "2xsai", "super2xsai", "supereagle",
|
||||
@ -418,7 +418,7 @@ void DOSBOX_Init(void) {
|
||||
Pstring->Set_values(cyclest);
|
||||
|
||||
Pstring = Pmulti_remain->GetSection()->Add_string("parameters",Property::Changeable::Always,"");
|
||||
|
||||
|
||||
Pint = secprop->Add_int("cycleup",Property::Changeable::Always,500);
|
||||
Pint->SetMinMax(1,1000000);
|
||||
Pint->Set_help("Amount of cycles to increase/decrease with keycombo.");
|
||||
@ -426,7 +426,7 @@ void DOSBOX_Init(void) {
|
||||
Pint = secprop->Add_int("cycledown",Property::Changeable::Always,20);
|
||||
Pint->SetMinMax(1,1000000);
|
||||
Pint->Set_help("Setting it lower than 100 will be a percentage.");
|
||||
|
||||
|
||||
#if C_FPU
|
||||
secprop->AddInitFunction(&FPU_Init);
|
||||
#endif
|
||||
@ -438,7 +438,7 @@ void DOSBOX_Init(void) {
|
||||
Pbool = secprop->Add_bool("nosound",Property::Changeable::OnlyAtStart,false);
|
||||
Pbool->Set_help("Enable silent mode, sound is still emulated though.");
|
||||
|
||||
Pint = secprop->Add_int("rate",Property::Changeable::OnlyAtStart,22050);
|
||||
Pint = secprop->Add_int("rate",Property::Changeable::OnlyAtStart,48000);
|
||||
Pint->Set_values(rates);
|
||||
Pint->Set_help("Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.");
|
||||
|
||||
@ -451,10 +451,10 @@ void DOSBOX_Init(void) {
|
||||
Pint = secprop->Add_int("prebuffer",Property::Changeable::OnlyAtStart,10);
|
||||
Pint->SetMinMax(0,100);
|
||||
Pint->Set_help("How many milliseconds of data to keep on top of the blocksize.");
|
||||
|
||||
|
||||
secprop=control->AddSection_prop("midi",&MIDI_Init,true);//done
|
||||
secprop->AddInitFunction(&MPU401_Init,true);//done
|
||||
|
||||
|
||||
const char* mputypes[] = { "intelligent", "uart", "none",0};
|
||||
// FIXME: add some way to offer the actually available choices.
|
||||
const char *devices[] = { "default", "win32", "alsa", "oss", "coreaudio", "coremidi","none", 0};
|
||||
@ -474,7 +474,7 @@ void DOSBOX_Init(void) {
|
||||
#endif
|
||||
|
||||
secprop=control->AddSection_prop("sblaster",&SBLASTER_Init,true);//done
|
||||
|
||||
|
||||
const char* sbtypes[] = { "sb1", "sb2", "sbpro1", "sbpro2", "sb16", "none", 0 };
|
||||
Pstring = secprop->Add_string("sbtype",Property::Changeable::WhenIdle,"sb16");
|
||||
Pstring->Set_values(sbtypes);
|
||||
@ -509,16 +509,16 @@ void DOSBOX_Init(void) {
|
||||
Pstring->Set_values(oplemus);
|
||||
Pstring->Set_help("Provider for the OPL emulation. compat or old might provide better quality (see oplrate as well).");
|
||||
|
||||
Pint = secprop->Add_int("oplrate",Property::Changeable::WhenIdle,22050);
|
||||
Pint = secprop->Add_int("oplrate",Property::Changeable::WhenIdle,48000);
|
||||
Pint->Set_values(oplrates);
|
||||
Pint->Set_help("Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).");
|
||||
|
||||
|
||||
secprop=control->AddSection_prop("gus",&GUS_Init,true); //done
|
||||
Pbool = secprop->Add_bool("gus",Property::Changeable::WhenIdle,false);
|
||||
Pbool = secprop->Add_bool("gus",Property::Changeable::WhenIdle,false);
|
||||
Pbool->Set_help("Enable the Gravis Ultrasound emulation.");
|
||||
|
||||
Pint = secprop->Add_int("gusrate",Property::Changeable::WhenIdle,22050);
|
||||
Pint = secprop->Add_int("gusrate",Property::Changeable::WhenIdle,48000);
|
||||
Pint->Set_values(rates);
|
||||
Pint->Set_help("Sample rate of Ultrasound emulation.");
|
||||
|
||||
@ -545,7 +545,7 @@ void DOSBOX_Init(void) {
|
||||
Pbool = secprop->Add_bool("pcspeaker",Property::Changeable::WhenIdle,true);
|
||||
Pbool->Set_help("Enable PC-Speaker emulation.");
|
||||
|
||||
Pint = secprop->Add_int("pcrate",Property::Changeable::WhenIdle,22050);
|
||||
Pint = secprop->Add_int("pcrate",Property::Changeable::WhenIdle,48000);
|
||||
Pint->Set_values(rates);
|
||||
Pint->Set_help("Sample rate of the PC-Speaker sound generation.");
|
||||
|
||||
@ -554,13 +554,13 @@ void DOSBOX_Init(void) {
|
||||
Pstring = secprop->Add_string("tandy",Property::Changeable::WhenIdle,"auto");
|
||||
Pstring->Set_values(tandys);
|
||||
Pstring->Set_help("Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.");
|
||||
|
||||
Pint = secprop->Add_int("tandyrate",Property::Changeable::WhenIdle,22050);
|
||||
|
||||
Pint = secprop->Add_int("tandyrate",Property::Changeable::WhenIdle,48000);
|
||||
Pint->Set_values(rates);
|
||||
Pint->Set_help("Sample rate of the Tandy 3-Voice generation.");
|
||||
|
||||
secprop->AddInitFunction(&DISNEY_Init,true);//done
|
||||
|
||||
|
||||
Pbool = secprop->Add_bool("disney",Property::Changeable::WhenIdle,true);
|
||||
Pbool->Set_help("Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).");
|
||||
|
||||
@ -585,7 +585,7 @@ void DOSBOX_Init(void) {
|
||||
|
||||
Pbool = secprop->Add_bool("autofire",Property::Changeable::WhenIdle,false);
|
||||
Pbool->Set_help("continuously fires as long as you keep the button pressed.");
|
||||
|
||||
|
||||
Pbool = secprop->Add_bool("swap34",Property::Changeable::WhenIdle,false);
|
||||
Pbool->Set_help("swap the 3rd and the 4th axis. can be useful for certain joysticks.");
|
||||
|
||||
@ -595,7 +595,7 @@ void DOSBOX_Init(void) {
|
||||
secprop=control->AddSection_prop("serial",&SERIAL_Init,true);
|
||||
const char* serials[] = { "dummy", "disabled", "modem", "nullmodem",
|
||||
"directserial",0 };
|
||||
|
||||
|
||||
Pmulti_remain = secprop->Add_multiremain("serial1",Property::Changeable::WhenIdle," ");
|
||||
Pstring = Pmulti_remain->GetSection()->Add_string("type",Property::Changeable::WhenIdle,"dummy");
|
||||
Pmulti_remain->SetValue("dummy");
|
||||
|
@ -1225,6 +1225,15 @@ void GFX_LosingFocus(void) {
|
||||
}
|
||||
|
||||
void GFX_Events() {
|
||||
// check for home button
|
||||
u32 btns;
|
||||
for(int i=0; i<4; i++)
|
||||
{
|
||||
btns = WPAD_ButtonsHeld(i);
|
||||
if((btns & WPAD_BUTTON_HOME) || (btns & WPAD_CLASSIC_BUTTON_HOME))
|
||||
throw(0);
|
||||
}
|
||||
|
||||
SDL_Event event;
|
||||
#if defined (REDUCE_JOYSTICK_POLLING)
|
||||
static int poll_delay=0;
|
||||
@ -1380,10 +1389,10 @@ void Config_Add_SDL() {
|
||||
Prop_int* Pint;
|
||||
Prop_multival* Pmulti;
|
||||
|
||||
Pbool = sdl_sec->Add_bool("fullscreen",Property::Changeable::Always,false);
|
||||
Pbool = sdl_sec->Add_bool("fullscreen",Property::Changeable::Always,true);
|
||||
Pbool->Set_help("Start dosbox directly in fullscreen.");
|
||||
|
||||
Pbool = sdl_sec->Add_bool("fulldouble",Property::Changeable::Always,false);
|
||||
Pbool = sdl_sec->Add_bool("fulldouble",Property::Changeable::Always,true);
|
||||
Pbool->Set_help("Use double buffering in fullscreen.");
|
||||
|
||||
Pstring = sdl_sec->Add_string("fullresolution",Property::Changeable::Always,"original");
|
||||
|
@ -29,7 +29,5 @@ bool WiiMessagePause(const char *s) {
|
||||
}
|
||||
|
||||
void WiiFinished() {
|
||||
#ifdef HW_RVL
|
||||
if (WiiMessagePause("Press A to return to homebrew channel.\n")) exit(0);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#ifdef HW_RVL
|
||||
#include <wiihardware.h>
|
||||
#include <wiihardware.h>
|
||||
#endif
|
||||
#include "dosbox.h"
|
||||
#include "regs.h"
|
||||
@ -35,7 +35,7 @@
|
||||
Bitu call_shellstop;
|
||||
/* Larger scope so shell_del autoexec can use it to
|
||||
* remove things from the environment */
|
||||
Program * first_shell = 0;
|
||||
Program * first_shell = 0;
|
||||
|
||||
static Bitu shellstop_handler(void) {
|
||||
return CBRET_STOP;
|
||||
@ -166,9 +166,9 @@ Bitu DOS_Shell::GetRedirection(char *s, char **ifn, char **ofn,bool * append) {
|
||||
while (*lr && *lr!=' ') lr++;
|
||||
//if it ends on a : => remove it.
|
||||
if((*ofn != lr) && (lr[-1] == ':')) lr[-1] = 0;
|
||||
if(*lr && *(lr+1))
|
||||
*lr++=0;
|
||||
else
|
||||
if(*lr && *(lr+1))
|
||||
*lr++=0;
|
||||
else
|
||||
*lr=0;
|
||||
*ofn=strdup(*ofn);
|
||||
continue;
|
||||
@ -178,9 +178,9 @@ Bitu DOS_Shell::GetRedirection(char *s, char **ifn, char **ofn,bool * append) {
|
||||
*ifn=lr;
|
||||
while (*lr && *lr!=' ') lr++;
|
||||
if((*ifn != lr) && (lr[-1] == ':')) lr[-1] = 0;
|
||||
if(*lr && *(lr+1))
|
||||
*lr++=0;
|
||||
else
|
||||
if(*lr && *(lr+1))
|
||||
*lr++=0;
|
||||
else
|
||||
*lr=0;
|
||||
*ifn=strdup(*ifn);
|
||||
continue;
|
||||
@ -192,7 +192,7 @@ Bitu DOS_Shell::GetRedirection(char *s, char **ifn, char **ofn,bool * append) {
|
||||
}
|
||||
*lw=0;
|
||||
return num;
|
||||
}
|
||||
}
|
||||
|
||||
void DOS_Shell::ParseLine(char * line) {
|
||||
LOG(LOG_EXEC,LOG_ERROR)("Parsing command line: %s",line);
|
||||
@ -201,7 +201,7 @@ void DOS_Shell::ParseLine(char * line) {
|
||||
line = trim(line);
|
||||
|
||||
/* Do redirection and pipe checks */
|
||||
|
||||
|
||||
char * in = 0;
|
||||
char * out = 0;
|
||||
|
||||
@ -211,12 +211,12 @@ void DOS_Shell::ParseLine(char * line) {
|
||||
bool append;
|
||||
bool normalstdin = false; /* wether stdin/out are open on start. */
|
||||
bool normalstdout = false; /* Bug: Assumed is they are "con" */
|
||||
|
||||
|
||||
num = GetRedirection(line,&in, &out,&append);
|
||||
if (num>1) LOG_MSG("SHELL:Multiple command on 1 line not supported");
|
||||
if (in || out) {
|
||||
normalstdin = (psp->GetFileHandle(0) != 0xff);
|
||||
normalstdout = (psp->GetFileHandle(1) != 0xff);
|
||||
normalstdin = (psp->GetFileHandle(0) != 0xff);
|
||||
normalstdout = (psp->GetFileHandle(1) != 0xff);
|
||||
}
|
||||
if (in) {
|
||||
if(DOS_OpenFile(in,OPEN_READ,&dummy)) { //Test if file exists
|
||||
@ -241,7 +241,7 @@ void DOS_Shell::ParseLine(char * line) {
|
||||
} else {
|
||||
status = DOS_OpenFileExtended(out,OPEN_READWRITE,DOS_ATTR_ARCHIVE,0x12,&dummy,&dummy2);
|
||||
}
|
||||
|
||||
|
||||
if(!status && normalstdout) DOS_OpenFile("con",OPEN_READWRITE,&dummy); //Read only file, open con again
|
||||
if(!normalstdin && !in) DOS_CloseFile(0);
|
||||
}
|
||||
@ -267,7 +267,7 @@ void DOS_Shell::ParseLine(char * line) {
|
||||
void DOS_Shell::RunInternal(void)
|
||||
{
|
||||
char input_line[CMD_MAXLINE] = {0};
|
||||
while(bf && bf->ReadLine(input_line))
|
||||
while(bf && bf->ReadLine(input_line))
|
||||
{
|
||||
if (echo) {
|
||||
if (input_line[0] != '@') {
|
||||
@ -375,8 +375,8 @@ public:
|
||||
/* Check for first command being a directory or file */
|
||||
char buffer[CROSS_LEN];
|
||||
char cross_filesplit[2] = {CROSS_FILESPLIT , 0};
|
||||
/* Combining -securemode and no parameter leaves you with a lovely Z:\. */
|
||||
if ( !control->cmdline->FindCommand(1,line) ) {
|
||||
/* Combining -securemode and no parameter leaves you with a lovely Z:\. */
|
||||
if ( !control->cmdline->FindCommand(1,line) ) {
|
||||
if ( secure ) autoexec[12].Install("z:\\config.com -securemode");
|
||||
} else {
|
||||
struct stat test;
|
||||
@ -387,13 +387,13 @@ public:
|
||||
strcat(buffer,line.c_str());
|
||||
if (stat(buffer,&test)) goto nomount;
|
||||
}
|
||||
if (test.st_mode & S_IFDIR) {
|
||||
if (test.st_mode & S_IFDIR) {
|
||||
autoexec[12].Install(std::string("MOUNT C \"") + buffer + "\"");
|
||||
autoexec[13].Install("C:");
|
||||
if(secure) autoexec[14].Install("z:\\config.com -securemode");
|
||||
} else {
|
||||
char* name = strrchr(buffer,CROSS_FILESPLIT);
|
||||
if (!name) { //Only a filename
|
||||
if (!name) { //Only a filename
|
||||
line = buffer;
|
||||
getcwd(buffer,CROSS_LEN);
|
||||
strcat(buffer,cross_filesplit);
|
||||
@ -623,7 +623,7 @@ void SHELL_Init() {
|
||||
envmcb.SetPSPSeg(psp_seg); // MCB of the command shell environment
|
||||
envmcb.SetSize(0x28);
|
||||
envmcb.SetType(0x4d);
|
||||
|
||||
|
||||
/* Setup environment */
|
||||
PhysPt env_write=PhysMake(env_seg,0);
|
||||
MEM_BlockWrite(env_write,path_string,(Bitu)(strlen(path_string)+1));
|
||||
@ -638,7 +638,7 @@ void SHELL_Init() {
|
||||
DOS_PSP psp(psp_seg);
|
||||
psp.MakeNew(0);
|
||||
dos.psp(psp_seg);
|
||||
|
||||
|
||||
/* The start of the filetable in the psp must look like this:
|
||||
* 01 01 01 00 02
|
||||
* In order to achieve this: First open 2 files. Close the first and
|
||||
@ -660,7 +660,7 @@ void SHELL_Init() {
|
||||
tail.count=(Bit8u)strlen(init_line);
|
||||
strcpy(tail.buffer,init_line);
|
||||
MEM_BlockWrite(PhysMake(psp_seg,128),&tail,128);
|
||||
|
||||
|
||||
/* Setup internal DOS Variables */
|
||||
dos.dta(RealMake(psp_seg,0x80));
|
||||
dos.psp(psp_seg);
|
||||
@ -668,10 +668,6 @@ void SHELL_Init() {
|
||||
|
||||
SHELL_ProgramStart(&first_shell);
|
||||
|
||||
#ifdef HW_RVL
|
||||
WiiMessagePause("Press A to continue (or Home to exit).\n");
|
||||
#endif
|
||||
|
||||
first_shell->Run();
|
||||
delete first_shell;
|
||||
first_shell = 0;//Make clear that it shouldn't be used anymore
|
||||
|
Loading…
x
Reference in New Issue
Block a user