~fixed DVD browser

~modified intro screen
This commit is contained in:
ekeeke31 2009-05-12 12:27:19 +00:00
parent 9204498c96
commit ef8d1a27a9
6 changed files with 146 additions and 74 deletions

View File

@ -202,9 +202,6 @@ static int getentry (int entrycount)
***************************************************************************/
int DVD_UpdateDir(int go_up)
{
/* current directory doesn't change */
if (selection == 0) return 1;
/* root has no parent directory */
if (go_up && (basedir == rootdir)) return 0;
@ -213,7 +210,7 @@ int DVD_UpdateDir(int go_up)
rootdirlength = filelist[selection].length;
/* reinit selector (previous value is saved for one level) */
if (selection == 1)
if (selection == 0)
{
selection = old_selection;
offset = old_offset;

View File

@ -29,62 +29,129 @@
#include "intro_pcm.h"
#include <asndlib.h>
extern const u8 Bg_intro_c1_png[];
extern const u8 Bg_intro_c2_png[];
extern const u8 Bg_intro_c3_png[];
extern const u8 Bg_intro_c4_png[];
extern const u8 Bg_intro_c5_png[];
/*
* This is the legal stuff - which must be shown at program startup
* Any derivative work MUST include the same textual output.
*
* In other words, play nice and give credit where it's due.
*/
void legal ()
{
int ypos = 64;
gx_texture *texture;
int ypos = 60;
gxClearScreen((GXColor)BLACK);
WriteCentre (ypos, "Genesis Plus Sega Mega Drive Emulator (v1.2a)");
ypos += fheight;
WriteCentre (ypos, "(C) 1999 - 2003 Charles MacDonald");
ypos += fheight;
WriteCentre (ypos, "This is free software, and you are welcome to");
ypos += fheight;
WriteCentre (ypos, "redistribute it under the conditions of the");
ypos += fheight;
WriteCentre (ypos, "GNU GENERAL PUBLIC LICENSE Version 2");
ypos += fheight;
WriteCentre (ypos, "Additionally, the developers of this port");
ypos += fheight;
WriteCentre (ypos, "disclaims all copyright interests in the ");
ypos += fheight;
WriteCentre (ypos, "Nintendo Gamecube Porting code.");
ypos += fheight;
WriteCentre (ypos, "You are free to use it as you wish.");
ypos += 2*fheight;
FONT_writeCenter ("DISCLAIMER",24,0,640,ypos,(GXColor)WHITE);
ypos += 48;
FONT_writeCenter ("This is free software, and you are welcome to",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("redistribute it under the conditions of the",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("GNU GENERAL PUBLIC LICENSE Version 2.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("You may not sell, lease, rent or generally use",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("this software for any commercial purposes.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("You may not distribute this software with any ROM images",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("unless you have the legal right to distribute them.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("All trademarks and registered trademarks are",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("the property of their respective owners.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("This software is not endorsed by or affiliated",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("with Sega Enterprises Ltd or Nintendo Co Ltd.",20,0,640,ypos,(GXColor)WHITE);
ypos += 48;
texture= gxTextureOpenPNG(Bg_intro_c4_png,0);
if (texture)
{
gxDrawTexture(texture, (640-texture->width)/2, ypos, texture->width, texture->height,255);
ypos += texture->height + 2 * fheight;
if (texture->data) free(texture->data);
free(texture);
}
GXColor color = {0x99,0xcc,0xff,0xff};
#ifdef HW_RVL
gx_texture *button = gxTextureOpenPNG(Key_A_wii_png,0);
#else
gx_texture *button = gxTextureOpenPNG(Key_A_gcn_png,0);
#endif
gx_texture *logo_bottom= gxTextureOpenPNG(Bg_intro_c5_png,0);
gx_texture *logo_top = gxTextureOpenPNG(Bg_intro_c4_png,0);
gxDrawTexture(logo_bottom, (640-logo_bottom->width-logo_top->width -32)/2, 480-logo_bottom->height-24, logo_bottom->width, logo_bottom->height,255);
gxDrawTexture(logo_top, (640-logo_bottom->width-logo_top->width -32)/2+logo_bottom->width+32, 480-logo_bottom->height-24, logo_top->width, logo_top->height,255);
gxSetScreen ();
sleep (1);
GXColor color = {0x66,0x99,0xcc,0xff};
FONT_writeCenter("Press any button to skip intro",fheight,0,640,ypos,color);
gxSetScreen ();
int count = 100;
while (count > 0)
sleep(1);
int count = 1500;
int vis = 0;
while (!(m_input.keys & PAD_BUTTON_A) && (count > 0))
{
ypos = 60;
gxClearScreen((GXColor)BLACK);
FONT_writeCenter ("DISCLAIMER",24,0,640,ypos,(GXColor)WHITE);
ypos += 48;
FONT_writeCenter ("This is free software, and you are welcome to",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("redistribute it under the conditions of the",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("GNU GENERAL PUBLIC LICENSE Version 2.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("You may not sell, lease, rent or generally use",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("this software for any commercial purposes.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("You may not distribute this software with any ROM images",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("unless you have the legal right to distribute them.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("All trademarks and registered trademarks are",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("the property of their respective owners.",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("This software is not endorsed by or affiliated",20,0,640,ypos,(GXColor)WHITE);
ypos += 20;
FONT_writeCenter ("with Sega Enterprises Ltd or Nintendo Co Ltd.",20,0,640,ypos,(GXColor)WHITE);
ypos += 48;
if (count%25 == 0) vis^=1;
if (vis)
{
FONT_writeCenter("Press button to continue.",24,0,640,ypos,color);
gxDrawTexture(button, 220, ypos-24+(24-button->height)/2, button->width, button->height,255);
}
gxDrawTexture(logo_bottom, (640-logo_bottom->width-logo_top->width - 32)/2, 480-logo_bottom->height-24, logo_bottom->width, logo_bottom->height,255);
gxDrawTexture(logo_top, (640-logo_bottom->width-logo_top->width -32)/2+logo_bottom->width+32, 480-logo_bottom->height-24, logo_top->width, logo_top->height,255);
gxSetScreen ();
count--;
VIDEO_WaitVSync();
if (m_input.keys) return;
}
gxTextureClose(&logo_top);
gxTextureClose(&button);
gxTextureClose(&logo_bottom);
if (count > 0)
{
ASND_Init();
ASND_Pause(0);
int voice = ASND_GetFirstUnusedVoice();
ASND_SetVoice(voice,VOICE_MONO_16BIT,44100,0,(u8 *)button_select_pcm,button_select_pcm_size,200,200,NULL);
GUI_FadeOut();
ASND_Pause(1);
ASND_End();
return;
}
gxClearScreen((GXColor)BLACK);
texture = gxTextureOpenPNG(Bg_intro_c1_png,0);
gx_texture *texture = gxTextureOpenPNG(Bg_intro_c1_png,0);
if (texture)
{
gxDrawTexture(texture, (640-texture->width)/2, (480-texture->height)/2, texture->width, texture->height,255);
@ -106,7 +173,6 @@ void legal ()
gxSetScreen ();
sleep (1);
gxClearScreen((GXColor)BLACK);
texture = gxTextureOpenPNG(Bg_intro_c3_png,0);
if (texture)
@ -115,8 +181,8 @@ void legal ()
if (texture->data) free(texture->data);
free(texture);
}
gxSetScreen ();
ASND_Init();
ASND_Pause(0);
int voice = ASND_GetFirstUnusedVoice();

View File

@ -138,11 +138,11 @@ static gui_image bg_main[4] =
static gui_image bg_misc[5] =
{
{NULL,Bg_main_png,IMAGE_VISIBLE,146,80,348,288,255},
{NULL,Bg_main_png,IMAGE_VISIBLE|IMAGE_FADE,146,80,348,288,255},
{NULL,Bg_overlay_png,IMAGE_VISIBLE|IMAGE_REPEAT,0,0,640,480,255},
{NULL,Banner_top_png,IMAGE_VISIBLE,0,0,640,108,255},
{NULL,Banner_bottom_png,IMAGE_VISIBLE,0,380,640,100,255},
{NULL,Main_logo_png,IMAGE_VISIBLE,466,40,152,44,255}
{NULL,Banner_top_png,IMAGE_VISIBLE|IMAGE_SLIDE_TOP,0,0,640,108,255},
{NULL,Banner_bottom_png,IMAGE_VISIBLE|IMAGE_SLIDE_BOTTOM,0,380,640,100,255},
{NULL,Main_logo_png,IMAGE_VISIBLE|IMAGE_SLIDE_TOP,466,40,152,44,255}
};
static gui_image bg_ctrls[8] =
@ -153,7 +153,7 @@ static gui_image bg_ctrls[8] =
{NULL,Banner_bottom_png,IMAGE_VISIBLE,0,380,640,100,255},
{NULL,Main_logo_png,IMAGE_VISIBLE,466,40,152,44,255},
{NULL,Frame_s4_png,IMAGE_VISIBLE,38,72,316,168,128},
{NULL,Frame_s4_png,IMAGE_VISIBLE,38,242,308,168,128},
{NULL,Frame_s4_png,IMAGE_VISIBLE,38,242,316,168,128},
{NULL,Frame_s3_png,IMAGE_SLIDE_RIGHT,400,134,292,248,128}
};
@ -296,9 +296,9 @@ static gui_butn buttons_main[9] =
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,0,1}, 80, 50,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,1,1},246, 50,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,1,1},412, 50,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{3,0,1,1}, 80,194,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX ,{3,0,1,1}, 80,194,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX ,{3,0,1,1},246,194,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{3,0,1,0},412,194,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX ,{3,0,1,0},412,194,148,132},
{NULL , BUTTON_FADE|BUTTON_OVER_SFX ,{3,0,1,1}, 0,360, 88, 48},
{NULL , BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{2,1,1,1},542,330, 88, 38},
{NULL , BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{1,0,1,0},542,370, 88, 48}
@ -326,28 +326,28 @@ static gui_butn buttons_ctrls[13] =
#ifdef HW_RVL
static gui_butn buttons_load[4] =
{
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,2,0,1},246,102,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{1,0,1,1}, 80,248,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{2,0,1,1},246,248,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{3,0,1,0},412,248,148,132}
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,2,0,1},246,102,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{1,0,1,1}, 80,248,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{2,0,1,1},246,248,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{3,0,1,0},412,248,148,132}
};
#else
static gui_butn buttons_load[3] =
{
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,0,0,1}, 80,180,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,0,1,1},246,180,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,0,1,0},412,180,148,132}
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,0,0,1}, 80,180,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,0,1,1},246,180,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,0,1,0},412,180,148,132}
};
#endif
/* Options menu */
static gui_butn buttons_options[5] =
{
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,0,1}, 80,120,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,1,1},246,120,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,2,1,1},412,120,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{3,0,1,1},162,264,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{2,0,1,0},330,264,148,132}
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,0,1}, 80,120,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,3,1,1},246,120,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{0,2,1,1},412,120,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{3,0,1,1},162,264,148,132},
{&button_icon_data,BUTTON_VISIBLE|BUTTON_ACTIVE|BUTTON_FADE|BUTTON_OVER_SFX|BUTTON_SELECT_SFX,{2,0,1,0},330,264,148,132}
};
/*****************************************************************************/
@ -886,7 +886,7 @@ void GUI_FadeOut()
{
gxDrawRectangle(0, 0, 640, 480, alpha, (GXColor)BLACK);
gxSetScreen();
alpha +=2;
alpha +=3;
}
}
@ -1098,6 +1098,10 @@ int GUI_WindowPrompt(gui_menu *parent, char *title, char *items[], u8 nb_items)
gxSetScreen ();
}
/* final position */
GUI_DrawMenu(parent);
gxSetScreen ();
/* close textures */
gxTextureClose(&window);
if (delete_me[0]) gxTextureClose(&data->texture[0]);
@ -2539,6 +2543,7 @@ static void optionmenu(void)
GUI_InitMenu(m);
ret = GUI_RunMenu(m);
GUI_DeleteMenu(m);
switch (ret)
{
case 0:
@ -2896,20 +2901,16 @@ void MainMenu (void)
GUI_InitMenu(m);
GUI_DrawMenuFX(m,10,0);
GUI_DeleteMenu(m);
while (quit == 0)
{
GUI_InitMenu(m);
ret = GUI_RunMenu(m);
GUI_DeleteMenu(m);
switch (ret)
{
case -1: /*** Return to Game ***/
case 6:
if (!genromsize) break;
GUI_InitMenu(m);
GUI_DrawMenuFX(m,10,1);
GUI_DeleteMenu(m);
quit = 1;
@ -2917,7 +2918,6 @@ void MainMenu (void)
case 0: /*** Quit Emulator ***/
{
GUI_InitMenu(m);
switch (GUI_WindowPrompt(m, VERSION, items,3))
{
case 1:
@ -2945,36 +2945,47 @@ void MainMenu (void)
break;
default: /* TODO */
GUI_DeleteMenu(m);
break;
}
break;
}
case 1: /*** Load Game ***/
GUI_DeleteMenu(m);
quit = loadmenu();
if (quit) break;
GUI_InitMenu(m);
break;
case 2: /*** Options */
GUI_DeleteMenu(m);
optionmenu ();
GUI_InitMenu(m);
break;
case 3: /*** Memory Manager ***/
if (!genromsize) break;
GUI_DeleteMenu(m);
quit = filemenu ();
if (quit) break;
GUI_InitMenu(m);
break;
case 4: /*** Emulator Reset ***/
if (!genromsize) break;
system_reset ();
GUI_DrawMenuFX(m,10,1);
GUI_DeleteMenu(m);
gxClearScreen ((GXColor)BLACK);
gxSetScreen ();
system_reset ();
quit = 1;
break;
case 5: /*** Game Genie ***/
if (!genromsize) break;
GUI_DeleteMenu(m);
GetGGEntries();
GUI_InitMenu(m);
break;
case 7: /*** ROM Captrure ***/
@ -2984,7 +2995,9 @@ void MainMenu (void)
case 8: /*** ROM Information ***/
if (!genromsize) break;
GUI_DeleteMenu(m);
showrominfo ();
GUI_InitMenu(m);
break;
}
}

View File

@ -59,10 +59,6 @@
/*****************************************************************************/
/* Generic backgrounds */
extern const u8 Bg_intro_c1_png[];
extern const u8 Bg_intro_c2_png[];
extern const u8 Bg_intro_c3_png[];
extern const u8 Bg_intro_c4_png[];
extern const u8 Bg_main_png[];
extern const u8 Bg_overlay_png[];
extern const u8 Banner_main_png[];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB