In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "User:Callum/Sonic Robo Blast 2"

From WiiBrew
Jump to navigation Jump to search
(Fixed some things.)
 
(34 intermediate revisions by 6 users not shown)
Line 4: Line 4:
 
| type        = platform game
 
| type        = platform game
 
| author      = [http://wiki.srb2.org/wiki/Sonic_Team_Junior Sonic Team Jr.]
 
| author      = [http://wiki.srb2.org/wiki/Sonic_Team_Junior Sonic Team Jr.]
| maintainer  =
 
| contributor =
 
 
| portedby    = [[User:Callum|Callum Dickinson]]
 
| portedby    = [[User:Callum|Callum Dickinson]]
| version    = 1.2.0
+
| version    = libogc-based: 2.0.6 r6572; Wii Linux-based: 2.0.0 RC4 r6112
 
| license    = GPL
 
| license    = GPL
| website    =  
+
| website    = http://srb2.org/
| discussion  = http://mb.srb2.org/showthread.php?t=31137
+
| discussion  = http://mb.srb2.org/showthread.php?t=35324
| source      = http://repos.srb2.org/srb2wii/srb2wii-source.tar.bz2
+
| source      = svn://code.srb2.org/SRB2/branches/WII
| peripherals = {{Wiimote1}} {{Nunchuk}} {{ClassicController}} {{FrontSD}}
+
| peripherals = {{Wiimote2}} {{Nunchuk}} {{ClassicController}} {{GCNController}} {{USBKeyboard}} {{USBMSD}} {{FrontSDHC}} {{WiFi}} {{Internet}}
 
}}
 
}}
  
'''SRB2Wii''' is an unofficial port of the 3D platformer fangame [http://www.srb2.org Sonic Robo Blast 2] to the Wii. The PowerPC Linux version of SRB2 runs under a tiny Linux distribution loaded from an image. SRB2Wii is under ongoing development, the series of releases so far have only been test releases, SRB2Wii doesn't work properly yet. There are a couple of problems with SRB2Wii as of this writing: the controls don't seem to work, and SRB2's Software renderer has enddianness issues with big-endian systems, including PowerPC, this causes it to have visual glitches and crashes, while that is being worked on, they are what is stopping SRB2Wii from working properly.
+
'''SRB2Wii''' is an unofficial port of [http://srb2.org/ Sonic Robo Blast 2] to the Wii. Development is mainly headed by [[User:Callum|Callum]]. There are two distributions of SRB2Wii.
  
As of 24 August, 2009, there are two versions that can be downloaded:
+
The earliest builds of SRB2Wii are based off a highly-customised Wii Linux distribution that run the PowerPC Linux version of SRB2.
  
[http://repos.srb2.org/srb2wii/srb2wii-ios.tar.bz2 An IOS version] for people loading SRB2Wii through [[IOS]]/[[Homebrew Channel]].
+
SRB2Wii now natively uses the libogc libraries as opposed to running through Wii Linux, which brings massive speed improvements, although some new bugs were introduced.
  
[http://repos.srb2.org/srb2wii/srb2wii-mini.tar.bz2 A mini version] for people loading SRB2Wii through the [[BootMii]] loader and [[mini]]. Make sure /bootmii/ppcboot.elf is vacant.
+
SRB2Wii is currently under ongoing development. The libogc-based distribution features working controls, and faster performance than the Wii Linux-based distribution. The Wii Linux-based distribution currently features working controls and partial netgame support, though with some performance issues in more CPU-intensive maps.
  
 +
==Current release information==
 +
===libogc-based===
 +
*'''Current version:''' 2.0.6 r6752 (April 08, 2011)
 +
*'''SRB2 codebase:''' 2.0.6
 +
*'''Available at:''' http://alam.srb2.org/SRB2_MOB/Wii/Release/srb2wii.zip (requires SRB2 data files and [http://repos.srb2.org/srb2ports/music.dta this music.dta] file in /srb2wii/ on your SD card)
 +
*'''Discussion:''' http://mb.srb2.org/showthread.php?t=35324
  
[http://repos.srb2.org/srb2wii/network.tar.bz2 Network configuration files] for people wanting to use the networking on SRB2Wii. Read the instructions in /linux/README. Wi-Fi networking only through mini.
+
===Wii Linux-based===
 +
*'''Current version:''' 2.0.0 RC4 r6112 (November 27, 2010)
 +
*'''SRB2 codebase:''' 2.0.4
 +
*'''Available at:''' http://repos.srb2.org/srb2wii/srb2wii-ios-2.0.0rc4.tar.bz2 (requires SRB2 data files in /srb2wii/ on your SD card)
 +
*'''Discussion:''' http://mb.srb2.org/showthread.php?t=31137
  
== Changelog ==
+
Both distributions can coexist given that their Homebrew Channel folders are renamed.
  
'''SRB2Wii v1.2.0 has been released! Here are the changes:'''
+
==Wii Linux-based Distribution==
 +
===How it works===
 +
Sonic Robo Blast 2 is almost completely written in [http://en.wikipedia.org/wiki/ANSI_C ANSI C]. This allows it to be compiled and run on different architectures, given the appropriate modifications necessary to make it work on another operating system and architecture.
  
- Upgraded the Linux kernel to MIKE p3. This brings forth several enhancements.
+
SRB2 is known to work (with varying degrees of compatibility) on at least the x86, x86-64, PowerPC, ARM, MIPS, SuperH and SPARC architectures. It works best on the x86, PowerPC and ARM architectures.
  
- SRB2Wii now supports booting from mini via the BootMii menu. This brings SEVERAL advantanges, including 11MB more RAM than SRB2Wii from the Homebrew Channel/IOS, working internal Wi-Fi networking (experimental), USB 2.0 support, and USB bandwidth improvements. SRB2 will be able to load faster and load more sophisticated levels under mini.
+
It can also compiled for the DOS, Windows, Windows CE, Linux, Mac OS X, FreeBSD (and possibly other Unix-like operating systems) and Solaris operating systems, in addition to many different video game systems.
  
- SRB2Wii now has experimental networking support, the Wii LAN Adapter and Wi-Fi work when running under mini, and the Wii LAN Adapter only when running under IOS from the Homebrew Channel. Check /linux/README in network.tar.bz2.
+
===SRB2 and Wii Linux===
 +
The Wii's Broadway CPU is a standard PowerPC architecture chip developed by IBM. As a result, standard PowerPC code can run on it once homebrew has been enabled.
  
- Wii Remote configuration interface has been greatly simplified (behind the scenes improvement), the Wii Remote now acts as a keyboard, and this will become obvious once you press some buttons while SRB2 is loading =) Nunchuk, Wii Remote accelerometer and Classic Controller support has been added. Once the controls work in SRB2, you can use the Wii Remote sideways, use the Nunchuk and Wii Remote together (and use the Wii Remote for mouselook), or the Classic Controller. GameCube Controller support will come soon.
+
The team at GC-Linux.org have taken this opportunity to expand their GC-Linux operating system to support the Wii as well. Almost all the hardware on the Wii is now well supported under Linux with the latest kernel patches. The only thing that does not work is the Wii's optical drive and the internal Wi-Fi in IOS mode.
  
If you plan on running SRB2Wii from the Homebrew Channel, download srb2wii-ios.tar.bz2. If you want to try SRB2Wii from mini/BootMii menu (just make sure there isn't any other homebew taking up /bootmii/ppcboot.elf, because SRB2Wii NEEDS to execute from there), download srb2wii-mini.tar.bz2. If you want to get networking running, download network.tar.bz2, extract onto your SD card, and follow the instructions in /linux/README.
+
The current status of Wii Linux has allowed programs that run under Linux but cannot easily be natively compiled for the Wii to run on the Wii through compiling for the powerpc-linux target and then running it on Wii Linux.
  
Whoever tries SRB2Wii through mini hopefully can report to me that it works, unfortunately I haven't had much luck installing BootMii on my Wii, so I have not been able to test it. Thanks. I subsequently also haven't been able to test that the networking interface works either, so I ask people with a Wii Linux-compatible Wii LAN Adapter and people on Wi-Fi with mini report to me that everything works. Thanks.
+
SRB2Wii follows this approach. It always uses the latest Wii Linux kernels for the most advanced features. SRB2Wii was forked from the Kobo Deluxe for Wii 0.5.1 sources. In its current stage, though, it looks nothing like the original source on which it was based.  
  
'''News 23/8/2009:'''
+
SRB2Wii is a heavily simplified and modified version of GC-Linux.org's whiite-linux operating system (older version based on Debian etch), although they otherwise now have no similarities whatsoever. It only includes and loads the programs, libaries and services necessary to run SRB2 and related programs, and exploits Busybox to consolidate most of the required programs into one executable for simplicity.
I have redesigned the Wii Remote configure interface. The Wii Remote is now set up as a keyboard and I can confirm it to be working, that seems to point to an issue with SRB2 as to why the input isn't working.
 
  
'''SRB2Wii v1.1.2 has been released! Here are the changes:'''
+
===The boot process===
 +
* Kernel is loaded into memory and executed on the Broadway.
  
- Installed Python2.6 and Tcl, now SRB2Python works with SRB2Wii (Go check the SRB2Python thread for binaries for SRB2Wii).
+
* Kernel executes subroutines, probes the hardware, and then mounts the initramfs filesystem compiled into the kernel image.
  
- More cleanup to make building and messing around with SRB2Wii easier for the curious =)
+
* Kernel executes the "init" shell script on the initramfs.
  
With this release, the source is now available for people who want to compile their own SRB2Wii. Well, its not technically source code, but there is a patch for modifications to the Linux kernel. Just read the README file when you download it. Can only be built on a Linux system, if your not using it, go get a REAL development platform =P (I use Ubuntu to compile SRB2Wii since its the easiest to cross-compile on).
+
* The script sets variables necessary to run, mounts sysfs and procfs, then mounts the first partition on the front SD card and looks for the main filesystem image.
  
'''SRB2Wii v1.1.1 has been released! Here are the changes:'''
+
** If found, it will mount that filesystem and pass control to the /sbin/init program under the main filesystem, which continues the SRB2Wii boot.
  
- Fixed the error with "ln" when Linux boots.
+
** If it finds a tarball of the filesystem image, it will convert the tarball into the main filesystem image and continue booting, but instead loading the /sbin/kickstart program, which will further prepare the filesystem for use.
  
- Cleanup to make the filesize smaller.
+
** If no image or tarball is found, it will report to the user that it cannot find the filesystem image and reboot.
  
Its functionally identical to the old version. As before, if you have v1.0.1 or older on your SD card, please remove it before installing this version.
+
* The /sbin/init program follows the commands laid out in the /etc/inittab file, which sets up virtual terminals, and starts the runlevel S.
  
'''SRB2Wii v1.1.0 has been released! Here are the changes:'''
+
* /etc/init/rcS runs all the scripts in /etc/rcS.d, which currently includes kserv (mount procfs and sysfs if they are not mounted already), procps (kernel services), udev, dbus, hcid (Bluetooth) and swap (mount swap files). rcS then passes control back to inittab.
  
- Upgraded the Linux kernel to 2.6.30.
+
* inittab launches runlevel 1, which loads the rc1 script. /etc/init/rc1 runs all the scripts in /etc/rc1.d, which currently includes wiimote (start the Wii Remote and Sensor Bar), cleanup (create special device node symbolic links and create some files SRB2 needs) and launcher (the SRB2Wii launcher).
  
- Has a lot more RAM to use.
+
* The SRB2Wii launcher starts and the user is now given control.
 
 
- Both Linux and SRB2 load MUCH, MUCH faster! This is due to the new kernel, the extra RAM, and other small tweaks.
 
 
 
- SDHC card support for folks on SDHC cards.
 
 
 
- The console now has overscan compensation for people on older TVs.
 
 
 
- When it reboots, it now takes you back to the Homebrew Channel rather than restart the whole console.
 
 
 
I've changed the file structure in this version. If you have v1.0.1 or older, you need to delete your current SRB2Wii installation off of your SD card and then extract this one, and your data files into /apps/srb2wii/data.
 
 
 
'''1.0.1 is out! Here are the changes:'''
 
 
 
- Installed ncurses and Perl for the new launcher to work when its eventually included.
 
 
 
- Several other behind the scenes fixes that might also fix segmentation faults some people have been reporting.
 
 
 
'''1.0.0'''
 
 
 
- Inital release.
 
  
 
[[category:Homebrew in Development]]
 
[[category:Homebrew in Development]]

Latest revision as of 18:34, 28 January 2014

SRB2Wii
SRB2 Titlescreen.png
General
Author(s)Sonic Team Jr.
Ported byCallum Dickinson
TypePlatform game
Versionlibogc-based: 2.0.6 r6572; Wii Linux-based: 2.0.0 RC4 r6112
LicenseGPL
Links
Website
Discussion
[[1]]
Peripherals
WiiMote2.svg Nunchuck alternative.svg ClassicController.svg GameCube Controller USB Keyboard USB mass storage device Loads files from SDHC cards in the Front SD slot Local WiFi Internet

SRB2Wii is an unofficial port of Sonic Robo Blast 2 to the Wii. Development is mainly headed by Callum. There are two distributions of SRB2Wii.

The earliest builds of SRB2Wii are based off a highly-customised Wii Linux distribution that run the PowerPC Linux version of SRB2.

SRB2Wii now natively uses the libogc libraries as opposed to running through Wii Linux, which brings massive speed improvements, although some new bugs were introduced.

SRB2Wii is currently under ongoing development. The libogc-based distribution features working controls, and faster performance than the Wii Linux-based distribution. The Wii Linux-based distribution currently features working controls and partial netgame support, though with some performance issues in more CPU-intensive maps.

Current release information

libogc-based

Wii Linux-based

Both distributions can coexist given that their Homebrew Channel folders are renamed.

Wii Linux-based Distribution

How it works

Sonic Robo Blast 2 is almost completely written in ANSI C. This allows it to be compiled and run on different architectures, given the appropriate modifications necessary to make it work on another operating system and architecture.

SRB2 is known to work (with varying degrees of compatibility) on at least the x86, x86-64, PowerPC, ARM, MIPS, SuperH and SPARC architectures. It works best on the x86, PowerPC and ARM architectures.

It can also compiled for the DOS, Windows, Windows CE, Linux, Mac OS X, FreeBSD (and possibly other Unix-like operating systems) and Solaris operating systems, in addition to many different video game systems.

SRB2 and Wii Linux

The Wii's Broadway CPU is a standard PowerPC architecture chip developed by IBM. As a result, standard PowerPC code can run on it once homebrew has been enabled.

The team at GC-Linux.org have taken this opportunity to expand their GC-Linux operating system to support the Wii as well. Almost all the hardware on the Wii is now well supported under Linux with the latest kernel patches. The only thing that does not work is the Wii's optical drive and the internal Wi-Fi in IOS mode.

The current status of Wii Linux has allowed programs that run under Linux but cannot easily be natively compiled for the Wii to run on the Wii through compiling for the powerpc-linux target and then running it on Wii Linux.

SRB2Wii follows this approach. It always uses the latest Wii Linux kernels for the most advanced features. SRB2Wii was forked from the Kobo Deluxe for Wii 0.5.1 sources. In its current stage, though, it looks nothing like the original source on which it was based.

SRB2Wii is a heavily simplified and modified version of GC-Linux.org's whiite-linux operating system (older version based on Debian etch), although they otherwise now have no similarities whatsoever. It only includes and loads the programs, libaries and services necessary to run SRB2 and related programs, and exploits Busybox to consolidate most of the required programs into one executable for simplicity.

The boot process

  • Kernel is loaded into memory and executed on the Broadway.
  • Kernel executes subroutines, probes the hardware, and then mounts the initramfs filesystem compiled into the kernel image.
  • Kernel executes the "init" shell script on the initramfs.
  • The script sets variables necessary to run, mounts sysfs and procfs, then mounts the first partition on the front SD card and looks for the main filesystem image.
    • If found, it will mount that filesystem and pass control to the /sbin/init program under the main filesystem, which continues the SRB2Wii boot.
    • If it finds a tarball of the filesystem image, it will convert the tarball into the main filesystem image and continue booting, but instead loading the /sbin/kickstart program, which will further prepare the filesystem for use.
    • If no image or tarball is found, it will report to the user that it cannot find the filesystem image and reboot.
  • The /sbin/init program follows the commands laid out in the /etc/inittab file, which sets up virtual terminals, and starts the runlevel S.
  • /etc/init/rcS runs all the scripts in /etc/rcS.d, which currently includes kserv (mount procfs and sysfs if they are not mounted already), procps (kernel services), udev, dbus, hcid (Bluetooth) and swap (mount swap files). rcS then passes control back to inittab.
  • inittab launches runlevel 1, which loads the rc1 script. /etc/init/rc1 runs all the scripts in /etc/rc1.d, which currently includes wiimote (start the Wii Remote and Sensor Bar), cleanup (create special device node symbolic links and create some files SRB2 needs) and launcher (the SRB2Wii launcher).
  • The SRB2Wii launcher starts and the user is now given control.