Difference between revisions of "User:Cboomf"

From WiiBrew
Jump to navigation Jump to search
 
(83 intermediate revisions by 9 users not shown)
Line 1: Line 1:
I am a NERD ;-)
+
{{Infobox homebrew
 +
| image      = [[Image:Lines WiiWebServer.png]]
 +
| title      = [[Wii Web Server]]
 +
| type        = utility
 +
| author      = Cboomf
 +
| version    = alpha 1.20
 +
| licence    = GPL
 +
| download    = https://sourceforge.net/projects/wiiwebserver/
 +
| website    = https://sourceforge.net/projects/wiiwebserver/
 +
| source      = http://sourceforge.net/scm/?type=svn&group_id=229938
 +
| peripherals = {{Wiimote1}}{{Nunchuk}}{{WiFi}}{{Internet}}{{FrontSD}}{{GCNController}}{{USBMSD}}{{LesPaul}}
 +
| hbb        = yes
 +
}}
  
PC SPECS :-
+
{{Infobox development tools
 +
| image      =
 +
| title      = [[libwiilight]]
 +
| desc        = A library for the disc slot light
 +
| type        = library
 +
| author      = Cboomf
 +
| version    = Beta 1
 +
| download    = Media:libwiilight.zip
 +
| peripherals = {{Wii}}
 +
}}
  
1: PIII 750MHz (over clocked to 800MHz), 64MB Dual Screen Graphics Card, 256MB Ram, 20GB Hard Drive, Win 98 + Ubuntu 7.10<br>
+
I am a '''NERD''' ;-)<br />
2: Celeron 1.2GHz, 16MB Graohics Card, 512 MB Ram, 2x 15GB Hard Drives, Ubuntu 7.10<br>
+
[http://bridgesrail.blogspot.com]
3: Celeron 1.2GHz, 16MB Graphics Card, 256 MB Ram, 20GB Hard Drive, Win 98<br>
 
4: AMD Athlon 1.8GHz, 128MB Graphics Card, 512MB Ram, 80GB Hard Drive, Win XP<br>
 
5: P1 233MHz, 8MB Graphics Card, 256MB Ram, 3GB Hard Drive, Win 95<br>
 
6: LAPTOP : Celeron 1.7GHz, 230MB Graphics Card, 1GB Ram, 2x 20GB Hard Drives, Win XP + Ubuntu 7.10<br>
 
  
 +
<div style="clear: both; padding-top: 24pt;">
 +
==Me==
 +
</div>
 +
{{Userbox lang|en}}
 +
{{Userbox dev|Win}}
 +
{{Userbox developer}}
 +
{{Userbox beta}}
  
I am currently coding ( attempting ;-) ) a package of seemingly random bits of code that may server a purpose, may not but, it is just to learn C and have some fun with my wii.
 
  
If someone can improve it put any improvements in the Updates section at the bottom ;-)
+
<div style="clear: both; padding-top: 24pt;">
 +
==Major Experience==
 +
</div>
 +
{{Userbox code|C}}
 +
{{Userbox code|PAS}}
 +
{{Userbox code|VB}}
 +
{{Userbox code|VB.net}}
 +
{{Userbox code|VBS}}
 +
{{Userbox code|PHP}}
 +
{{Userbox code|JS}}
 +
{{Userbox code|HTML}}
 +
{{Userbox code|MySQL}}
 +
{{Userbox code|BAS}}
  
===Code dump : ===
+
<div style="clear: both; padding-top: 24pt;">
  
<source lang="c">
+
==Minor Experience==
#include <stdio.h>
+
</div>
#include <stdlib.h>
+
{{Userbox code|C++}}
#include <string.h>
+
{{Userbox code|Java}}
#include <malloc.h>
+
{{Userbox code|ASM}}
#include <ogcsys.h>
+
{{Userbox code|Cobol}}
#include <gccore.h>
 
#include <ogc/ipc.h>
 
#include <stdarg.h>
 
#include <ctype.h>
 
#include <unistd.h>
 
#include <assert.h>
 
#include <ogc/ios.h>
 
#include <ogc/stm.h>
 
#include <ogc/es.h>
 
#include <ogc/gu.h>
 
#include <ogc/usb.h>
 
#include <bte/bte.h>
 
  
static void *xfb = NULL;
+
<div style="clear: both; padding-top: 24pt;">
static GXRModeObj *rmode = NULL;
+
==Wii + Hardware==
 +
</div>
 +
{{Userbox sdcard|2gb}}
 +
{{Userbox wiimote|2}}
 +
{{Userbox wiizapper|1}}
 +
{{Userbox wiiwheel|1}}
 +
{{Userbox nunchuk|2}}
 +
{{Userbox classic controller|1}}
 +
{{Userbox gamecube controller|1}}
 +
{{Userbox balance board|1}}
 +
{{Userbox USBKeyboard|1}}
 +
{{Userbox wifi}}
 +
{{Userbox system menu|4.0}}
 +
{{Userbox Trucha}}
 +
{{Userbox motionplus|1}}
  
#define USB_ALIGN __attribute__ ((aligned(32)))
+
<div style="clear: both; padding-top: 24pt;">
  
#define MAX_WIIMOTES 4
+
==Homebrew==
 
+
</div>
#include "GRRLIB.h"
+
{{Userbox DVDx}}
 
+
{{Userbox homebrew channel|1.0.3}}
#include "wiiuse.h"
+
{{Userbox bootmii|beta2}}
 
+
{{Userbox homebrew browser}}
#include "../gfx/music.h"
+
{{Userbox mplayer ce}}
#include "../gfx/cursor.h"
+
{{Userbox bannerbomb}}
#include "../gfx/impact.h"
 
 
 
typedef void (*Loader_Entry)(void);
 
static u32 *xjb;
 
 
 
wiimote** wiimotes;
 
 
 
Loader_Entry loader = (Loader_Entry)0x80001800;
 
 
 
extern u16 *GRRLIB_buffer;
 
unsigned int buttonA=0;
 
unsigned int buttonB=0;
 
unsigned int buttonUp=0;
 
unsigned int buttonDown=0;
 
unsigned int buttonLeft=0;
 
unsigned int buttonRight=0;
 
unsigned int buttonPlus=0;
 
unsigned int buttonMinus=0;
 
unsigned int buttonHome=0;
 
unsigned int buttonOne=0;
 
unsigned int buttonTwo=0;
 
unsigned int rumble=0;
 
unsigned int irx=0,iry=0;
 
 
 
void wiimote_event(struct wiimote_t* wm, int event)
 
{
 
    wiiuse_rumble(wiimotes[0], rumble);
 
switch (event) {
 
case WIIUSE_EVENT:
 
 
buttonB=0;
 
buttonA=0;
 
buttonUp=0;
 
buttonDown=0;
 
buttonLeft=0;
 
buttonRight=0;
 
buttonPlus=0;
 
buttonMinus=0;
 
buttonHome=0;
 
buttonOne=0;
 
buttonTwo=0;
 
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_B))
 
buttonB=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_A))
 
    buttonA=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_UP))
 
    buttonUp=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_DOWN))
 
    buttonDown=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_LEFT))
 
    buttonLeft=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_RIGHT))
 
    buttonRight=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_HOME))
 
    buttonHome=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_ONE))
 
    buttonOne=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_TWO))
 
    buttonTwo=1;
 
 
if (IS_PRESSED(wm, WIIMOTE_BUTTON_PLUS))
 
    buttonPlus=1;
 
 
if ( IS_PRESSED(wm, WIIMOTE_BUTTON_MINUS))
 
    buttonMinus=1;
 
 
break;
 
 
default:
 
break;
 
}
 
 
 
}
 
 
 
void hello(void)
 
{
 
    printf("    Hello world!\n");
 
printf("    v 0.45");
 
}
 
 
 
void menutext(void)
 
{
 
    printf("    Menu\n");
 
printf("    ----\n");
 
printf("    Home        = Return to loader\n");
 
printf("    Up  !!      = Elf Loader\n");
 
printf("    Down !!      = System Utils\n");
 
printf("    Left !      = Fun\n");
 
printf("    Right        = Reboot Wii\n");
 
    return;
 
}
 
 
 
void clearscreen(void)
 
{
 
int y;
 
    for(y=0;y<34;y++)
 
printf("                                                                          \n");
 
}
 
 
 
void checkAndReload(void) {
 
  if((buttonHome==1)){
 
    loader();
 
  }
 
}
 
 
 
void console(void) {
 
    xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
 
xjb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
 
CON_Init(xfb,20,120,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
 
 
VIDEO_Configure(rmode);
 
VIDEO_SetNextFramebuffer(xfb);
 
VIDEO_SetBlack(FALSE);
 
VIDEO_Flush();
 
VIDEO_WaitVSync();
 
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
 
}
 
 
 
void sysutils(void) {
 
return;
 
}
 
 
 
void shutdown(void) {
 
    __STM_Init();
 
STM_RebootSystem();
 
__STM_Close();
 
}
 
 
 
void fun(void) {
 
 
 
    clearscreen();
 
__STM_Init();
 
 
 
    printf("    FUN\n");
 
printf("    ---\n\n");
 
 
int ver;
 
int revma;
 
int revmi;
 
int di_fd;
 
static u8 stm_inbuf[0x20] ATTRIBUTE_ALIGN(32);
 
static u8 stm_iobuf[0x20] ATTRIBUTE_ALIGN(32);
 
 
ver=IOS_GetVersion();
 
revma=IOS_GetRevisionMajor();
 
revmi=IOS_GetRevisionMinor();
 
    printf("    IOS Version : %d  Revision : %d.%d \n\n", ver, revma, revmi);
 
 
 
di_fd=IOS_Open("/dev/di",1);
 
    ((u32*)stm_inbuf)[0x00] = 0x70000000;
 
IOS_Ioctl( di_fd, stm_inbuf[0x00], stm_inbuf, 0x20, stm_iobuf, 0x20);
 
printf("    DVD ID : %s \n\n",stm_iobuf);
 
IOS_Close(di_fd);
 
 
//GRRLIB_DrawImg(10,50, music_width, music_high, music_img, 0, 1);
 
//GRRLIB_Render();
 
 
printf("    Press + to rumble\n");
 
printf("    Press - to stop\n\n");
 
 
printf("    Press A to continue\n");
 
while(1) {
 
VIDEO_WaitVSync();
 
if ((buttonA==1)){
 
    console();
 
            clearscreen();
 
        menutext();
 
__STM_Close();
 
        return;     
 
    }
 
if ((buttonPlus==1)){
 
    rumble=1;
 
}
 
if ((buttonMinus==1)){
 
    rumble=0;
 
}
 
}
 
}
 
 
 
void menu(void) {
 
    clearscreen();
 
menutext();
 
while(1) {
 
VIDEO_WaitVSync();
 
    checkAndReload();
 
if ((buttonLeft==1)){
 
            fun();
 
    }
 
if ((buttonRight==1)){
 
            shutdown();
 
    }
 
if ((buttonDown==1)){
 
    //sysutils();
 
}
 
if ((buttonUp==1)){
 
    //elfloader();
 
}
 
    }
 
}
 
 
 
 
 
void start(void) {
 
if((buttonB==1)) {
 
  menu();
 
}
 
}
 
 
 
int main(int argc, char **argv) {
 
 
 
    /****************************************************************************
 
Initialise Video
 
    Initialise GCPad for input
 
****************************************************************************/
 
 
 
GRRLIB_buffer=(u16 *)malloc(640*240*2);
 
 
VIDEO_Init();
 
PAD_Init();
 
 
//rmode = &TVPal528IntDf;
 
 
switch(VIDEO_GetCurrentTvMode()) {
 
case VI_NTSC:
 
rmode = &TVNtsc480IntDf;
 
break;
 
case VI_PAL:
 
rmode = &TVPal528IntDf;
 
break;
 
case VI_MPAL:
 
rmode = &TVMpal480IntDf;
 
break;
 
default:
 
rmode = &TVNtsc480IntDf;
 
break;
 
}
 
 
 
console();
 
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
 
 
printf("    Press 1&2\n\n");
 
 
*((u32*)0xcd0000c0) |= 0x100;
 
bte_init();
 
bte_start();
 
wiimotes = wiiuse_init(MAX_WIIMOTES,wiimote_event);
 
wiiuse_find(wiimotes, MAX_WIIMOTES, 5);
 
wiiuse_connect(wiimotes, MAX_WIIMOTES);
 
wiiuse_set_leds(wiimotes[0], WIIMOTE_LED_1);
 
wiiuse_rumble(wiimotes[0], 1);
 
usleep(200000); /* 200ms */
 
wiiuse_rumble(wiimotes[0], 0);
 
 
clearscreen();
 
 
GRRLIB_InitVideo();
 
GRRLIB_Start();
 
GRRLIB_FillScreen(0x0000);
 
GRRLIB_Render();
 
 
 
console();
 
 
    /****************************************************************************
 
Main code
 
****************************************************************************/
 
 
 
hello();
 
printf("\n");
 
printf("    My first native wii homebrew\n\n");
 
printf("    Press B :-)\n\n");
 
 
while(1) {
 
VIDEO_WaitVSync();
 
start();
 
}
 
 
return 0;
 
}
 
 
 
 
 
 
 
</source>
 
 
 
== Updates ==
 
 
 
These may be updates/fixes for the code above
 
* I was able to compile your code.  I think you need the most recent cvs of the libogc use Drack's guide
 
http://www.tehskeen.com/forums/showthread.php?t=2968
 
** Thanks for that now i just have an error about usb functions in libbte
 
Also you should not include .c files in the header.
 
<source lang="c">
 
 
 
</source>
 

Latest revision as of 21:32, 9 January 2010

Wii Web Server
Lines WiiWebServer.png
General
Author(s)Cboomf
TypeUtility
Versionalpha 1.20
LicenceGPL
Links
Download
Website
Source
Downloadable via the Homebrew Browser
Peripherals
Wiimote1.svgNunchuck alternative.svgLocal WiFiInternetLoads files from the Front SD slotGameCube ControllerUSB mass storage deviceLes Paul Controller


libwiilight
General
Author(s)Cboomf
TypeLibrary
VersionBeta 1
Links
Download

I am a NERD ;-)
[1]

Me

en This user is a native speaker of English.
Windows Flag.png This user develops using Windows.
Developer icon.png
This user has developed homebrew for the Wii.
Userbox beta.png
This user beta tests homebrew.


Major Experience

C This user codes in C.
PAS This user codes in Pascal.
VB This user codes in Visual Basic.
VB.net This user codes in Visual Basic .NET.
VBS This user codes in Visual Basic Script.
PHP This user codes in PHP: Hypertext Preprocessor.
JS This user codes in JavaScript.
HTML This user codes in HTML.
MySQL This user codes in MySQL.
BAS This user codes in BASIC.

Minor Experience

C++ This user codes in C++.
Java This user codes in Java.
ASM This user codes in Assembly.
Cobol This user codes in Cobol.

Wii + Hardware

SD Card This user owns a 2gb SD card.
2 Wii Remotes This user owns 2 Wii Remotes.
Wii Zapper This user owns 1 Wii Zapper.
Wii Wheel This user owns 1 Wii Wheel.
Nunchuck alternative.svg This user owns 2 Nunchuks.
ClassicController.svg This user owns 1 Classic Controller.
GameCube Controller This user owns 1 GameCube Controller.
Wii Balance Board This user owns 1 Wii Balance Board.
USB Keyboard This user owns a USB Keyboard.
Wi-Fi This user uses Wi-Fi.
Wii This user is running System Menu 4.0 on their Wii.
Userbox trucha.png This user has at least one trucha vulnerable IOS.
Wii MotionPlus This user owns 1 Wii MotionPlus unit.

Homebrew

DVDX This user has installed DVDX on their Wii.
Userbox homebrew channel.png This user has installed the Homebrew Channel version 1.0.3 on their Wii.
BootMii This user has installed BootMii version beta2 on their Wii.
Homebrew Browser This user uses the Homebrew Browser to download and update their homebrew.
MPlayer CE This user uses MPlayer CE to play media on their Wii.
Bomb icon.png
This user used Bannerbomb to install homebrew.