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.)
 
(40 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.1.2
+
| version    = libogc-based: 2.0.6 r6572; Wii Linux-based: 2.0.0 RC4 r6112
 
| license    = GPL
 
| license    = GPL
| download    = http://repos.srb2.org/srb2wii/srb2wii.tar.bz2
+
| website    = http://srb2.org/
| website    =
+
| discussion  = http://mb.srb2.org/showthread.php?t=35324
| discussion  = http://mb.srb2.org/showthread.php?t=31137
+
| source      = svn://code.srb2.org/SRB2/branches/WII
| source      = http://repos.srb2.org/srb2wii/srb2wii-source.tar.bz2
+
| peripherals = {{Wiimote2}} {{Nunchuk}} {{ClassicController}} {{GCNController}} {{USBKeyboard}} {{USBMSD}} {{FrontSDHC}} {{WiFi}} {{Internet}}
| peripherals = {{Wiimote1}} {{ClassicController}} {{FrontSD}}
 
 
}}
 
}}
  
'''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.
  
== Changelog ==
+
The earliest builds of SRB2Wii are based off a highly-customised Wii Linux distribution that run the PowerPC Linux version of SRB2.
  
'''SRB2Wii v1.2.0 has been released! Here are the changes:'''
+
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.
- Upgraded the Linux kernel to MIKE p3. This brings forth several enhancements.
 
  
- 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.
+
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.
  
- 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.
+
==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
  
- Wii Remote configuration interface has been greaty 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.
+
===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
  
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.
+
Both distributions can coexist given that their Homebrew Channel folders are renamed.
  
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.
+
==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.
  
'''News 23/8/2009:'''
+
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.
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:'''
+
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.
- Installed Python2.6 and Tcl, now SRB2Python works with SRB2Wii (Go check the SRB2Python thread for binaries for SRB2Wii).
 
  
- More cleanup to make building and messing around with SRB2Wii easier for the curious =)
+
===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.
  
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 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.
  
'''SRB2Wii v1.1.1 has been released! Here are the changes:'''
+
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.
- Fixed the error with "ln" when Linux boots.
 
  
- Cleanup to make the filesize smaller.
+
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.  
  
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.
+
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.
  
'''SRB2Wii v1.1.0 has been released! Here are the changes:'''
+
===The boot process===
- Upgraded the Linux kernel to 2.6.30.
+
* Kernel is loaded into memory and executed on the Broadway.
  
- Has a lot more RAM to use.
+
* Kernel executes subroutines, probes the hardware, and then mounts the initramfs filesystem compiled into the kernel image.
  
- Both Linux and SRB2 load MUCH, MUCH faster! This is due to the new kernel, the extra RAM, and other small tweaks.
+
* Kernel executes the "init" shell script on the initramfs.
  
- SDHC card support for folks on SDHC cards.
+
* 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.
  
- The console now has overscan compensation for people on older TVs.
+
** If found, it will mount that filesystem and pass control to the /sbin/init program under the main filesystem, which continues the SRB2Wii boot.
  
- When it reboots, it now takes you back to the Homebrew Channel rather than restart the whole console.
+
** 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.
  
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.
+
** If no image or tarball is found, it will report to the user that it cannot find the filesystem image and reboot.
  
'''1.0.1 is out! Here are the changes:'''
+
* The /sbin/init program follows the commands laid out in the /etc/inittab file, which sets up virtual terminals, and starts the runlevel S.
- 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.
+
* /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.
  
'''1.0.0'''
+
* 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).
- Inital release.
+
 
 +
* The SRB2Wii launcher starts and the user is now given control.
  
 
[[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.