Skip to content

cuttl/wii2600

 
 

Repository files navigation


Wii2600 v0.2 release README

Ported by raz0red [http://www.twitchasylum.com]


What is Wii2600?

Wii2600 is a port of the Stella 2.7.2 emulator to the Wii.

Stella is a multi-platform Atari 2600 VCS emulator released under the GNU General Public License (GPL). Stella was originally developed for Linux by Bradford W. Mott, however, since its original release several people have joined the development team to port Stella to other operating systems such as AcornOS, AmigaOS, DOS, FreeBSD, IRIX, Linux, OS/2, MacOS, Unix, and Windows. [http://stella.sourceforge.net].


Current status

Wii2600 is an ongoing work in progress. For the latest project information please visit the following URL:

[http://www.wiibrew.org/wiki/Wii2600]


Known issues

- Displaying rom info w/ screenshots makes browsing slow
- The colors are incorrect for screenshots taken at 1x

Installation

To install Wii2600, simply extract the zip file that this README was distributed with directly to your SD card (retain the hierarchical structure exactly).

Cartridge images should be placed in the roms directory (wii2600/roms).


Tearing, Vertical Sync, PAL/NTSC, etc.

Without the use of Vertical Sync, 2600 games that scroll (Barnstorming, River Raid, etc.) will exhibit tearing during game play.

The first time Wii2600 is started it attempts to determine whether your Wii is running in PAL (50hz) or NTSC/PAL60 (60hz) mode. Based on this determination it sets a default value for Vertical Sync.

NTSC/PAL60:

If Wii2600 determines you are in NTSC/PAL60 mode (60hz) it enables Vertical Sync by default. This should work well for both NTSC and PAL games. PAL games run fine due to the fact that they run at a slower rate than NTSC.

PAL:

If Wii2600 determines you are currently in PAL mode (50hz) it disables Vertical Sync by default. The reason it disables this setting is to be compatible with both PAL and NTSC games at 100% speed. Since the Wii console is syncing at 50hz it won't be able to maintain the required 60hz for NTSC games and as a result you will get garbled sound and slow video.

If you still want to use Vertical Sync, you can enable it via the "Advanced" menu in Wii2600. PAL games will run as they were intended, 50hz at 100% speed. Wii2600 also configures another setting "Force FPS" to "50 FPS" when you enable Vertical Sync in PAL mode. What this setting does is control the frame rate that games run at. Essentially what it will do is force all games (NTSC or PAL) to run at 50 FPS. In doing so it also adjusts audio buffer sizes, etc. so that you won't experience garbled sound. The downside is that NTSC games will now run at 50 FPS versus their intended 60 FPS, so the games will run a bit slower.

The real answer to resolve these issues is to add auto-frame skipping to Stella. That is definitely something I will be looking to add in an upcoming release.


Paddle controls

Wii2600 supports three different modes for emulating paddles support ("Roll", "IR", and "Analog"). For complete details see the controls section below.

In most cases Stella will automatically enable paddle support for the selected rom. However, in cases where it doesn't, you must configure paddle support manually. This is accomplished via the "Controller" tab found in the "Game Properties" menu of the "Options" (found in the main rom browser). For the P0 or P1 controllers specify Paddles instead of Joystick, etc.

It is also important to note how Wii2600 allocates the controls when Paddles are selected. If P0 is set to be paddles, then Wii controllers 1 and 2 will map to the two paddles that are that are plugged into the virtual P0. If P1 is also set to paddles then controllers 3 and 4 will represent the two paddles that are plugged into P1. However if P0 is set to be paddles and P1 is set to be a joystick, then Wii controller 3 will represent the joystick (1 and 2 will represent paddles). If P1 is set to joystick and P2 is set to paddles then Wii controller 1 will be the joystick while 2 and 3 will represent the paddles.


Controls

Wii2600 menu:
-------------

    Wiimote:

        Up/Down  : Scroll
        A        : Select 
        B        : Back
        Home     : Exit to Homebrew Channel
        Power    : Power off

     Classic controller:

        Up/Down  : Scroll
        A        : Select 
        B        : Back
        Home     : Exit to Homebrew Channel
        
     Nunchuk controller:

        Up/Down  : Scroll
        C        : Select 
        Z        : Back
              
     GameCube controller:

        Up/Down  : Scroll
        A        : Select 
        B        : Back
        Z        : Exit to Homebrew Channel
        
Stella emulator menu:
---------------------

Unfortunately, at this point all navigation of the Stella menu is done via
the Wiimote without the use of motion controls. Thus, the '+' and '-' 
buttons allow for tabbing through the different controls. Pressing the 'A'
button operates the current control, etc.

    Wiimote:

        +           : Move forward through controls
        -           : Move backward through controls
        Up/Down     : Scroll (when focused on a list or slider, etc.)
        Left/Right  : Page through list (when focused on list control)
        Left/Right  : Move between tabs (when focused on a tab in a dialog)
        A           : Operates current control (presses button, launch rom)
        B           : Closes current dialog
        Home        : Exit to Homebrew Channel

     Classic controller:

        +           : Move forward through controls
        -           : Move backward through controls
        R Trigger   : (Alternate) Move forward through controls
        L Trigger   : (Alternate) Move backward through controls
        Up/Down     : Scroll (when focused on a list or slider, etc.)
        Left/Right  : Page through list (when focused on list control)
        Left/Right  : Move between tabs (when focused on a tab in a dialog)
        A           : Operates current control (presses button, launch rom)
        B           : Closes current dialog
        Home        : Exit to Homebrew Channel
        
     Nunchuk controller:

        Up/Down     : Scroll (when focused on a list or slider, etc.)
        Left/Right  : Page through list (when focused on list control)
        Left/Right  : Move between tabs (when focused on a tab in a dialog)
        C           : Operates current control (presses button, launch rom)
        Z           : Closes current dialog
              
     GameCube controller:

        R Trigger   : Move forward through controls
        L Trigger   : Move backward through controls
        Up/Down     : Scroll (when focused on a list or slider, etc.)
        Left/Right  : Page through list (when focused on list control)
        Left/Right  : Move between tabs (when focused on a tab in a dialog)
        A           : Operates current control (presses button, launch rom)
        B           : Closes current dialog
        Z           : Exit to Homebrew Channel
        
     USB keyboard:
     
        Refer to Stella emulator documentation.             
        
In-game (Joystick/Driving):
---------------------------

    Wiimote:

        D-pad         : Move
        2             : Fire
        1             : Open/close command menu (save/load state, etc.)
        +             : [Reset]
        -             : [Select]
        A             : [Toggle Color/BW mode]
        Home          : Display Stella menu (see above)

     Classic controller:

        D-pad/Analog  : Move
        A             : Fire
        Y             : Open/close command menu (save/load state, etc.)
        +             : [Reset]
        -             : [Select]
        R Trigger     : [Toggle Color/BW mode]
        Home          : Display Stella menu (see above)
        
     Nunchuk controller:

        Analog        : Move
        C/Z           : Fire            
              
     GameCube controller:

        D-pad/Analog  : Move
        A             : Fire
        Y             : Open/close command menu (save/load state, etc.)
        Start         : [Reset]
        L Trigger     : [Select]
        R Trigger     : [Toggle Color/BW mode]
        Z             : Display Stella menu (see above)
       
     USB keyboard:
     
        Refer to Stella emulator documentation.             
        
In-game (Paddle - "Roll" mode):
-------------------------------

In this paddle mode, you hold the Wiimote horizontally and twist it forward
and backward (like the Wiiware game Bit Trip Beat). You can set the 
sensitivity and center of this mode via the "Controls" menu. You should 
definitely adjust the settings until you find one that is comfortable. For 
example, I like to adjust the center way forward (+5) because I find it 
easier to push the fire button for games like Warlords, etc. Also, I 
adjust the sensitivity up to about 7. Since the Wiimote doesn't have to be
pointed directly at the sensor bar for this mode to work, it works wll on
all styles of paddle-based games (Kaboom!, Warlords, Video Olympics, etc.).
    
    Wiimote:

        Roll    : Move 
        A/B/2   : Fire
        1       : Open/close command menu (save/load state, etc.)
        +       : [Reset]
        -       : [Select]
        Home    : Display Stella menu (see above)    

            
In-game (Paddle - "IR" mode):
-----------------------------

In this paddle mode, you point the Wiimote at the Wii sensor bar and move 
it left and right. You can set the sensitivity of this mode via the 
"Controls" menu. This mode requires that the Wiimote be pointed directly
at the screen, thus it is typically better suited for horizontally oriented
single-player style games (Kaboom!, Breakout, etc.).
    
    Wiimote:

        IR      : Move 
        A/B/2   : Fire
        1       : Open/close command menu (save/load state, etc.)
        +       : [Reset]
        -       : [Select]
        Home    : Display Stella menu (see above)    
        
        
In-game (Paddle - Analog joystick mode):
----------------------------------------

In this paddle mode, move the Analog joystick left and right (or up and 
down, see controls menu) to control the paddle. It is important to note 
that the joystick selected to use for this mode is based on priority. If 
you have a Nunchuk or Classic controller plugged into the Wiimote, that 
Analog control will be used. If neither of those are currently plugged in,
the Gamecube analog control will be used.
    
     Classic controller:

        Analog        : Move
        A             : Fire
        Y             : Open/close command menu (save/load state, etc.)
        +             : [Reset]
        -             : [Select]
        Home          : Display Stella menu (see above)
        
     Nunchuk controller:

        Analog        : Move
        C/Z           : Fire
        
    Wiimote (used w/ Nunchuk):

        A/B/2         : Fire
        1             : Open/close command menu (save/load state, etc.)
        +             : [Reset]
        -             : [Select]
        Home          : Display Stella menu (see above)
              
     GameCube controller:

        Analog        : Move
        A             : Fire
        Y             : Open/close command menu (save/load state, etc.)
        Start         : [Reset]
        L Trigger     : [Select]
        Z             : Display Stella menu (see above)

Wii2600 crashes, code dumps, etc.

If you are having issues with Wii2600, please let me know about it via one of the following locations:

[http://www.wiibrew.org/wiki/Talk:Wii2600] [http://www.twitchasylum.com/forum/viewtopic.php?t=513]


Special thanks

  • munky6 : Lead tester
  • RB22 : PAL testing (0.1)
  • zodiacprime : Testing (0.1)
  • Sputicus : Helping bug fix (0.1)
  • Tantric/eke-eke : Audio code example
  • yohanes : SDL USB keyboard support
  • Team Twiizers : For enabling homebrew

Change log

05/03/09 (0.2)

- 4-player paddle support
- Ability to set the paddle mode to use (Roll, IR, or Analog joystick)    
- Wiimote "Roll" paddle mode (similar to Bit Trip Beat)
- Ability to set "Roll" paddle mode sensitivity and center
- Wiimote "IR" paddle mode (rewritten since 0.1) 
- Ability to set "IR" paddle mode sensitivity
- Analog joystick horiz/vert paddle mode (Classic, Nunchuk, Gamecube) 
- Ability to set analog paddle mode sensitivity
- Analog joystick control support (in game and during menu navigation) 
- Driving control support (via d-pads and analog controls)     
- Ability to toggle color/BW modes from controller (Starmaster, etc.)
- Improved sound support
- Fixed bug that caused some games to always display at 1x (versus 2x)
- Fixed emulation of select/reset buttons (you can now hold them down)
- Added ability to display rom info (screenshots) when browsing (slow)

02/19/09 (0.1)

- Initial release
- Wiimote/Classic/GameCube controller support
- Mouse via Wiimote for paddle games (proof of concept)
- USB Keyboard
- Audio/Video etc.    
- Save/load state
- Screenshot support

About

Wii2600 is a port of the Stella 2.7.2 emulator to the Wii

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 72.3%
  • Prolog 13.6%
  • C 5.0%
  • HTML 3.9%
  • TeX 3.1%
  • M4 0.9%
  • Other 1.2%