Why SDL can't load an image via wiiload instead of sd card ?
-
- Site Admin
- Posts: 1986
- Joined: Tue Aug 09, 2005 3:21 am
- Location: UK
- Contact:
Re: Why SDL can't load an image via wiiload instead of sd ca
The solution here means that you don't have to change the code when you release it or want to run directly from the SD card (or any other device that can be mounted). As I said, you can't load things directly via wiiload.
Re: Why SDL can't load an image via wiiload instead of sd ca
SDL-Wii doesn't start any IO devices or initialize any filesystems, the main program has to handle it.WinterMute wrote:When the wii SDL port starts up the SD card it will attempt to set the working directory using the path it finds in argv[0].
-
- Site Admin
- Posts: 1986
- Joined: Tue Aug 09, 2005 3:21 am
- Location: UK
- Contact:
Re: Why SDL can't load an image via wiiload instead of sd ca
Oops, been a while since I looked at the SDL port - there used to be a fatInitDefault in one version that was kicking around. The ability to set argv0 from wilload is still useful though.
Re: Why SDL can't load an image via wiiload instead of sd ca
WinterMute wrote:No, currently you can't load files via wiiload other than from the SD card as you've been doing.
I've just modified wiiload so you can set argv0 from the command line though, this will let you change the initial working directory set when the SD card is initialised. You can either build wiiload yourself, it's in SVN at http://devkitpro.svn.sourceforge.net/vi ... i/wiiload/ , or you can grab the builds I've just put up at https://sourceforge.net/projects/devkitpro/files/misc/ . The tarball only has wiiload 0.5.1 binaries for win32 & OSX atm, I didn't have time to build the linux versions. The binaries are still showing as pending atm but should hopefully be live soon.
when you're running the new wiiload just add the path you want as the first parameter after the dolAdding the name of the dol isn't necessary but the trailing slash is.Code: Select all
wiiload mysdlapp.dol sd:/apps/SDL/mysdlapp.dol
I am having the same problem we I have to hard code the absolute path of all my external files/images/models/lua scripts if I want to test my program with wiiload. Has this patch been rolled into in the latest release of wiiload?
-
- Site Admin
- Posts: 1986
- Joined: Tue Aug 09, 2005 3:21 am
- Location: UK
- Contact:
Re: Why SDL can't load an image via wiiload instead of sd ca
Yes, this feature is available with the latest version of wiiload distributed with devkitPPC
Re: Why SDL can't load an image via wiiload instead of sd ca
my make files has ;
but it does not seem to affect it at all.
Code: Select all
#---------------------------------------------------------------------------------
run:$(BUILD)
wiiload $(TARGET).dol "sd:/apps/mygame/"
#---------------------------------------------------------------------------------
-
- Site Admin
- Posts: 1986
- Joined: Tue Aug 09, 2005 3:21 am
- Location: UK
- Contact:
Re: Why SDL can't load an image via wiiload instead of sd ca
It's working fine for me with some test code. Are you sure you're using the right wiiload? (0.5.1)
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <gccore.h>
#include <wiiuse/wpad.h>
#include <ogc/lwp_watchdog.h>
#include <fat.h>
static void *xfb = NULL;
static GXRModeObj *rmode = NULL;
extern u64 gettime();
//---------------------------------------------------------------------------------
int main(int argc, char **argv) {
//---------------------------------------------------------------------------------
// Initialise the video system
VIDEO_Init();
// This function initialises the attached controllers
WPAD_Init();
// Obtain the preferred video mode from the system
// This will correspond to the settings in the Wii menu
rmode = VIDEO_GetPreferredMode(NULL);
// Allocate memory for the display in the uncached region
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
// Initialise the console, required for printf
console_init(xfb,20,20,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
// Set up the video registers with the chosen mode
VIDEO_Configure(rmode);
// Tell the video hardware where our display memory is
VIDEO_SetNextFramebuffer(xfb);
// Make the display visible
VIDEO_SetBlack(FALSE);
// Flush the video register changes to the hardware
VIDEO_Flush();
// Wait for Video setup to complete
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
// The console understands VT terminal escape codes
// This positions the cursor on row 2, column 0
// we can use variables for this with format codes too
// e.g. printf ("\x1b[%d;%dH", row, column );
printf("\x1b[2;0H");
printf("Hello World!\n");
printf("There were %d arguments\n",argc);
for (int i=0; i<argc; i++ ) {
printf("%s ",argv[i]);
}
printf("\n");
if(fatInitDefault()) {
char wd[1024];
getcwd(wd,1024);
printf("path is %s\n",wd);
FILE *test = fopen("boot.dol","rb");
if (test == NULL) {
printf("failed opening boot.dol\n");
} else {
fseek(test,0,SEEK_END);
int size = ftell(test);
fclose(test);
printf("boot.dol is %d bytes.\n",size);
}
} else {
printf("failed intialising FAT\n");
}
while(1) {
// Call WPAD_ScanPads each loop, this reads the latest controller states
WPAD_ScanPads();
// WPAD_ButtonsDown tells us which buttons were pressed in this loop
// this is a "one shot" state which will not fire again until the button has been released
u32 pressed = WPAD_ButtonsDown(0);
// We return to the launcher application via exit
if ( pressed & WPAD_BUTTON_HOME ) exit(0);
// Wait for the next frame
VIDEO_WaitVSync();
}
return 0;
}
Re: Why SDL can't load an image via wiiload instead of sd ca
yes I am using the right version
when I compile your code I get this message;
I expect the working directory to be "sd:/apps/rotationtest2/" but doesn't seem to work (and the directory exists). I simply want it to run as if was being run from the homebrew channel with the working directory set correctly.
Code: Select all
> "make" run
main.c
linking ... rotationtest2.elf
output ... rotationtest2.dol
wiiload rotationtest2.dol "sd:/apps/rotationtest2/"
wiiload v0.5.1
coded by dhewg
compressing 280160 bytes... 52.87%
connecting to 192.168.0.101:4299
sending upload request
sending file size (148107 bytes)
sending data..
sending arguments (37 bytes)
done.
Code: Select all
Hello world
there are 1 arguments
sd:/apps/rotationtest2/
path is /
failed opening boot.dol
Who is online
Users browsing this forum: No registered users and 0 guests