Skip to content

mmr/siing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Siing is a Nintendo Wii game that allows you to have fun with peripherals such as rock band's guitar, drums, and logitech usb Microphone. Siing is deployed using the Homebrew Browser or directly by saving the WAD file in an SD card and loaded with Wii Flow or any other loader.

Implementation Instructions

Development Environment Setup

Required Tools Installation

  1. DevkitPPC (Wii development toolchain):

    • Download from: https://github.com/devkitPro/installer/releases
    • Choose the latest version for your operating system
    • Windows: Run the installer and follow the prompts
    • Linux: Use the package manager or run the installer script
    • macOS: Use Homebrew or run the installer script
  2. Wii SDK (libogc):

  3. Wii homebrew development libraries:

  4. USB Gecko or similar debugging hardware:

Environment Setup Steps

  1. Install DevkitPPC:

    # Windows: Run the installer
    # Linux:
    wget https://github.com/devkitPro/installer/releases/download/v3.1.1/devkitpro-pacman.amd64.deb
    sudo dpkg -i devkitpro-pacman.amd64.deb
    sudo dkp-pacman -Syu
    sudo dkp-pacman -S wii-dev
    
    # macOS:
    brew install devkitpro/devkitpro/devkitppc
  2. Set up environment variables:

    # Linux/macOS: Add to your shell profile (.bashrc, .zshrc, etc.)
    export DEVKITPRO=/opt/devkitpro
    export DEVKITPPC=$DEVKITPRO/devkitPPC
    export PATH=$PATH:$DEVKITPPC/bin
    
    # Windows:
    # 1. Open System Properties (Win + Pause/Break or right-click This PC > Properties)
    # 2. Click "Advanced system settings"
    # 3. Click "Environment Variables"
    # 4. Under "System variables", click "New" and add:
    #    Variable name: DEVKITPRO
    #    Variable value: C:\devkitPro
    # 5. Add another variable:
    #    Variable name: DEVKITPPC
    #    Variable value: C:\devkitPro\devkitPPC
    # 6. Edit the "Path" variable and add:
    #    C:\devkitPro\devkitPPC\bin
  3. Verify installation:

    # Linux/macOS:
    powerpc-eabi-gcc --version
    
    # Windows (in Command Prompt or PowerShell):
    powerpc-eabi-gcc --version
  4. Install additional tools:

    # Linux/macOS:
    # WAD packaging tools
    sudo dkp-pacman -S wii-tools
    
    # Debugging tools
    sudo dkp-pacman -S wii-debug
    
    # Windows:
    # The Windows installer includes all necessary tools:
    # - wii-tools (WAD packaging tools)
    # - wii-debug (Debugging tools)
    # - Additional tools are located in C:\devkitPro\tools\bin

Required Libraries

All required libraries are included with the DevkitPPC installation:

  • libogc (Wii homebrew library)
  • libfat (for SD card access)
  • libusb (for USB peripheral support)
  • libasnd (for audio handling)

Core Features Implementation

1. USB Peripheral Support

  • Implement USB device detection and initialization
  • Create device drivers for:
    • Rock Band Guitar
    • Rock Band Drums
    • Logitech USB Microphone
  • Handle input events from each peripheral
  • Implement device hot-swapping support

2. Audio System

  • Set up audio output system using libasnd
  • Implement audio input handling for microphone
  • Create audio processing pipeline for:
    • Guitar input processing
    • Drum input processing
    • Microphone input processing
  • Implement audio mixing and effects

3. Game Interface

  • Design and implement a simple, intuitive UI
  • Create menu system for:
    • Device selection
    • Audio settings
    • Performance mode selection
  • Implement visual feedback for user inputs

4. Performance Modes

  • Free Play Mode:
    • Allow unrestricted use of peripherals
    • Provide real-time audio feedback
    • Enable device combination support
  • Practice Mode:
    • Include basic tutorials
    • Provide visual guides for inputs
    • Allow for individual device practice

Technical Implementation Steps

  1. Project Structure:

    src/
    ├── main.c
    ├── usb/
    │   ├── device.c
    │   ├── device.h
    │   └── peripheral.c
    ├── audio/
    │   ├── input.c
    │   ├── output.c
    │   └── processing.c
    ├── ui/
    │   ├── menu.c
    │   └── interface.c
    └── game/
        ├── modes.c
        └── logic.c
    
  2. Build System:

    • Create Makefile for project compilation
    • Set up WAD packaging configuration
    • Configure debug and release builds
  3. Testing:

    • Implement unit tests for core functionality
    • Create peripheral testing suite
    • Set up debugging tools and logging

Deployment

  1. WAD Creation:

    • Package the application into a WAD file
    • Include necessary assets and resources
    • Sign the WAD file for Wii compatibility
  2. Distribution Methods:

    • Homebrew Browser:
      • Prepare metadata and description
      • Create installation package
    • Direct SD Card:
      • Create installation instructions
      • Package necessary files

Development Guidelines

  1. Code Style:

    • Follow C99 standard
    • Use consistent naming conventions
    • Document all public APIs
    • Include error handling
  2. Performance Considerations:

    • Optimize USB polling rates
    • Minimize audio latency
    • Efficient memory management
    • Handle Wii hardware limitations
  3. Testing Requirements:

    • Test on multiple Wii models
    • Verify peripheral compatibility
    • Check memory usage
    • Validate audio quality

Future Enhancements

  • Add support for additional USB peripherals
  • Implement multiplayer features
  • Create custom audio effects
  • Add recording and playback functionality

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published