WiiColEm

A forum to discuss Wii homebrew development.
User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

WiiColEm

Post by raz0red » Tue Jan 26, 2010 9:16 am

A port of the ColEm emulator for the Wii.

Image

Image

Current stable release (v0.3):

https://github.com/raz0red/wiicolem/rel ... em-0_3.zip (Binaries)
https://github.com/raz0red/wiicolem/archive/0.3.tar.gz (Source)

Wiki (Wiibrew):

http://www.wiibrew.org/WiiColEm

Code: Select all

--------------------------------------------
WiiColEm v0.3 release README
--------------------------------------------

Ported by raz0red
[http://github.com/raz0red]

--------------------------------------------
Overview
--------------------------------------------

WiiColEm is a port of the ColEm ColecoVision emulator developed by 
Marat Fayzullin.

Features:

  * Super Game Module (SGM) compatibility
  * Multiple video modes (240p, GX+VI, GX) 
  * Support for driving, roller, and super action controllers
  * Tilt-based (Wiimote) driving support
  * Cartridge database w/ recommended controller settings and keypad 
    descriptions for most commercial cartridges
  * Cartridge keypad overlays
  * Per-cartridge button mappings  

--------------------------------------------
Installation
--------------------------------------------

To install WiiColEm, simply extract the zip file directly to your SD card
or USB device (retain the hierarchical structure exactly).

--------------------------------------------
Cartridge Database 
--------------------------------------------

WiiColem ships with a database that contains recommended settings for most
commercial cartridges. These settings cover controls mappings, keypad
overlays, keypad button descriptions, and advanced settings (whether
the cartridge requires an EEPROM, SRAM, etc.).

To view/edit the settings applied for a particular cartridge perform the
following steps:

  * Load the cartridge (via the "Load cartridge" menu item)
  * Return to the WiiColEm menu
  * Select "Cartridge-specific settings" menu item
  * Examine the "Control settings" and "Advanced" settings for the cartridge 

For more information on mapping controls and creating and/or customizing
cartridge settings, see the "Cartridge Settings" section (below). 

--------------------------------------------
Controls
--------------------------------------------

The following section contains the "default" control mappings for WiiColEm.

It is important to note that if the cartridge that is being loaded exists in
the Cartridge Database it may contain non-default mappings. 

  WiiColEm menu:
  --------------

    Wiimote:

      Left/Right  : Scroll (if sideways orientation)
      Up/Down     : Scroll (if upright orientation)
      A/2         : Select 
      B/1         : Back
      Home        : Exit to Homebrew Channel
      Power       : Power off

    Classic controller/Pro:

      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
                        
  In-game (Keypad):
  -----------------
  
  The keypad allows you to press keys on the ColecoVision controller keypads.
  If a description has been provided for the currently selected key it will
  be displayed above the keypad.

  You can select whether you want emulation to pause while the keypad is
  displayed via the "Keypad pause" option in "Advanced" settings (pausing is
  enabled by default). This value can be overridden on a cartridge-by-
  cartridge basis via Cartridge Settings (see "Cartridge Settings" section,
  below). 
  
  NOTE: The "Keypad pause" option is not available when the GX+VI or 
        Double strike (240p) video modes are enabled.
        (Keypad pause is enabled and cannot be disabled).

    * When keypad pause is enabled, the keypad will be closed when a keypad
      button is pressed (or the keypad is explicitly closed). It is important
      to note that the keypad button will continue to be pressed as long as
      the controller button is held. This is necessary for games like War 
      Room where you need to hold the keypad buttons down to see the 
      different factories, etc. It is also necessary for games that require
      a longer button press for the selection to register (Star Trek, etc.).
      
    * When keypad pause is disabled, emulation will continue while the keypad
      is displayed. The keypad will continue to be displayed until it is
      explicitly closed. 

  It is also important to note that commonly used keys can be mapped to Wii
  controller buttons (see "Cartridge Settings" section, below).
  
    Wiimote:

      D-pad          : Choose Key
      2, 1, A, B     : Press Key
      +              : Close Keypad
      
    Wiimote + Nunchuk:

      D-pad, Analog  : Choose Key
      C, Z, A, B     : Press Key
      +              : Close Keypad
      
    Classic controller/Pro:

      D-pad/Analog   : Choose Key           
      A, B           : Press Key
      +              : Close Keypad
                              
    GameCube controller:

      D-pad/Analog   : Choose Key
      A, B           : Press Key
      Start          : Close Keypad
            
  In-game (Standard):
  -------------------

    Wiimote:

      D-pad          : Move
      2              : Left Fire Button
      1              : Right Fire Button
      +              : Toggle Keypad
      Home           : Display WiiColEm menu (see above)
      
    Wiimote + Nunchuk:

      D-pad, Analog  : Move
      C              : Left Fire Button
      Z              : Right Fire Button
      +              : Toggle Keypad
      Home           : Display WiiColEm menu (see above)
      
    Classic controller/Pro:

      D-pad/Analog   : Move
      A              : Left Fire Button
      B              : Right Fire Button
      +              : Toggle Keypad
      Home           : Display WiiColEm menu (see above)
                              
    GameCube controller:

      D-pad/Analog   : Move
      A              : Left Fire Button
      B              : Right Fire Button
      Start          : Toggle Keypad
      Z              : Display WiiColEm menu (see above)

  In-game (Super action):
  -----------------------    
  
  Very few games use the "spinner" that is a part of the super action 
  controller. You can enable/disable the "spinner" via Cartridge Settings
  (see "Cartridge Settings" section, below). 
  
  By disabling the spinner, you have more options available for the move
  controls (Nunchuk analog, both analogs on the Classic and GameCube 
  controllers).
      
    Wiimote + Nunchuk:

      D-pad, Analog  : Move (if spinner disabled)
      D-pad          : Move (if spinner enabled)
      Analog         : Spinner (if enabled)
      C, 2           : Yellow Button
      Z, 1           : Orange Button
      A              : Blue Button
      B              : Purple Button
      +              : Toggle Keypad
      Home           : Display WiiColEm menu (see above)
      
    Classic controller/Pro:

      D-pad/Analog   : Move (if spinner disabled)
      Left Analog    : Move (if spinner enabled)
      Right Analog   : Spinner (if enabled)
      A, R Trigger   : Yellow Button
      B, L Trigger   : Orange Button
      X, ZR          : Blue Button
      Y, ZL          : Purple Button
      +              : Toggle Keypad
      Home           : Display WiiColEm menu (see above)
                              
    GameCube controller:

      D-pad/Analog   : Move (if spinner disabled)
      Analog         : Move (if spinner enabled)
      C Stick        : Spinner (if enabled)
      A, R Trigger   : Yellow Button
      B, L Trigger   : Orange Button
      X              : Blue Button
      Y              : Purple Button
      Start          : Toggle Keypad
      Z              : Display WiiColEm menu (see above)

  In-game (Driving/Tilt):
  -----------------------
  
  In this mode, you steer by tilting the Wiimote (similar to Excite
  Truck/Bots). You can adjust the tilt sensitivity via Cartridge Settings
  (see "Cartridge Settings" section, below).
      
    Wiimote:

      Tilt   : Steer
      D-pad  : Shift
      2      : Gas
      1      : Brake
      +      : Toggle Keypad
      Home   : Display WiiColEm menu (see above)
      
  In-game (Driving/Analog):
  -------------------------

  In this mode, you steer by using the analog controls (Nunchuk, Classic,
  GameCube). You can adjust the analog sensitivity via Cartridge Settings
  (see "Cartridge Settings" section, below).
      
    Wiimote + Nunchuk:

      Analog        : Steer
      D-pad         : Shift
      C, 2          : Gas
      Z, 1          : Brake
      +             : Toggle Keypad
      Home          : Display WiiColEm menu (see above)
      
    Classic controller/Pro:

      Right Analog  : Steer
      D-pad         : Shift
      A             : Gas
      B             : Brake
      +             : Toggle Keypad
      Home          : Display WiiColEm menu (see above)
                              
    GameCube controller:

      C Stick       : Steer
      D-pad         : Shift
      A             : Gas
      B             : Brake
      Start         : Toggle Keypad
      Z             : Display WiiColEm menu (see above)
      
  In-game (Roller):
  -----------------

  In this mode, the trackball motion is simulated via analog controls
  (Nunchuk, Classic, GameCube). You can adjust the analog sensitivity via
  Cartridge Settings (see "Cartridge Settings" section, below).
  
    Wiimote + Nunchuk:

      Analog       : Move
      C, 2         : Left Fire (2p)
      Z, 1         : Right Fire (2p)
      A            : Left Fire
      B            : Right Fire
      +            : Toggle Keypad
      Home         : Display WiiColEm menu (see above)
      
    Classic controller/Pro:

      Left Analog  : Move
      A            : Left Fire (2p)
      B            : Right Fire (2p)
      X            : Left Fire
      Y            : Right Fire
      +            : Toggle Keypad
      Home         : Display WiiColEm menu (see above)
                              
    GameCube controller:

      Analog       : Move
      A            : Left Fire (2p)
      B            : Right Fire (2p)
      X            : Left Fire
      Y            : Right Fire
      Start        : Toggle Keypad
      Z            : Display WiiColEm menu (see above)
      
  In-game (Aquattack):
  --------------------

  Aquattack has a very unique control scheme. It uses the keypad buttons to 
  fire in eight different directions. Essentially, it uses the "keypad" as a 
  "d-pad". While the keypad buttons have been mapped to the eight different 
  buttons on the Classic controller (and pro) it is cumbersome to use. In 
  addition to mapping these buttons, a special control scheme has been added
  to WiiColEm that allows for the use of the right analog stick on both the 
  GameCube and Classic controller/Pro for firing in the eight different 
  directions.
        
--------------------------------------------
Cartridge Settings
--------------------------------------------

WiiColEm contains the ability to manage per-cartridge settings. The settings
that can be edited include:

  * Control settings
  * Advanced settings (Whether it requires an EEPROM, SRAM, etc.)
    
  Control Settings
  ----------------

  The following control options are available:

    * The controller type (standard, super action, driving/tilt,
      driving/analog, roller)
    * Wiimote orientation
    * Sensitivity (Roller and driving controllers)
    * ColecoVision keypad and controller button mappings 

  When mapping buttons, you map a ColecoVision keypad or controller button to
  one of the "button groups" listed below. This allows you to map a button
  once across the different Wii controllers.

  You can use the "(View as)" menu item to toggle and view how the 
  ColecoVision buttons are mapped to a particular Wii controller (Wiimote,
  Nunchuk, Classic/Pro, and GameCube).

    Button 1:                Button 2:                Button 3:
    ---------                ---------                ---------
      Wiimote   : 2            Wiimote   : 1            Wiimote   : A
      Nunchuk   : C            Nunchuk   : Z            Nunchuk   : (n/a)
      Classic   : A            Classic   : B            Classic   : X
      GameCube  : A            GameCube  : B            GameCube  : X

    Button 4:                Button 5:                Button 6:
    ---------                ---------                ---------
      Wiimote   : B            Wiimote   : (n/a)        Wiimote   : (n/a)
      Nunchuk   : (n/a)        Nunchuk   : (n/a)        Nunchuk   : (n/a)
      Classic   : X            Classic   : R Trigger    Classic   : L Trigger
      GameCube  : X            GameCube  : R Trigger    GameCube  : L Trigger

    Button 7:                Button 8:
    ---------                ---------
      Wiimote   : (n/a)        Wiimote   : (n/a)
      Nunchuk   : (n/a)        Nunchuk   : (n/a)
      Classic   : ZR           Classic   : ZL
      GameCube  : (n/a)        GameCube  : (n/a)

--------------------------------------------	
SMB (Network support)	
--------------------------------------------	

WiiColEm allows for loading ROMs over the network via SMB. To enable SMB	
support, you must edit the "wiicolem.conf" file located in the "/wiicolem"	
directory and provide values for the following:	

 * share_ip    : IP address of the computer to connect to.	
 * share_name  : Name of the share on the computer.	
 * share_user  : Name of the user to connect as	
 * share_pass  : Password for the user

--------------------------------------------
WiiColEm crashes, code dumps, etc.
--------------------------------------------

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

[http://www.wiibrew.org/wiki/Talk:WiiColEm]
[https://github.com/raz0red/wiicolem/issues]

--------------------------------------------
Credits
--------------------------------------------

NeoRame          : Icon
Pixelboy         : Source overlays
James Carter     : Source overlays
Mastershoes      : Testing (0.3)
Murph74          : Testing (0.2) 
Astroman         : Testing (0.2)
Yurkie           : Testing (0.1)

--------------------------------------------
Special thanks
--------------------------------------------

Marat Fayzullin  : Creating an awesome emulator and answering all of my 
                   annoying questions
Tantric          : Menu example code and SDL enhancements
Daniel Bienvenu  : Help resolving the Mode 2 issues
Opcode           : Providing a ROM for testing the Opcode memory expansion
                   and MegaCart(R) support

--------------------------------------------
Change log
--------------------------------------------

12/25/19 (0.3)
-------------------
  - Updated to latest version of ColEm (4.8)
    - Super Game Module (SGM) emulation
    - 24c08 and 24c256 EEPROM emulation
  - Display enhancements
    - Double strike (240p)
    - GX+VI mode
    - 16:9 correction
    - Full widescreen support      
    - Ability to enable/disable bilinear filter (GX mode)
    - Color trap filter
  - Hierarchical file navigation support
  - SMB (Network support) for loading ROMs  
  - Multi-save slot support
  - Support for launching via WiiFlow (and returning)
  - Updated to latest versions of devkitPPC (r35) and libogc (1.8.23)    

03/06/11 (0.2)
-------------------
  - Cartridge-specific overlays
  - Default keypad (controller) image for cartridges without specific overlays
    - Ability to set the default keypad (controller) size
  - Ability to specify whether to use cartridge-specific overlays (global
      and per-cartridge).
  - GX based scaler
    - Ability to adjust screen size to any size/dimensions via the
        "Screen Size" option under "Display". If this is entered after 
        loading a cartridge, the last frame will be displayed to assist in 
        sizing.
  - USB support
  - SDHC support
  - Classic Controller Pro support
  - Support for ColecoVision MegaCart(R)
  - Fixed Lord of the Dungeon save/load state issues
  - Fixed Opcode memory expansion save/load state issues
  - Fixed save/load state bug causing the palette to not be restored 
      correctly (Aquattack, War Room)
  - Ability to set Wiimote orientation (sideways/upright) for navigating menus
  - Firing in Aquattack is now supported via the right analog stick (GameCube,
      Classic/Pro controllers).
  - Fixed bugs caused by pressing multiple keypad buttons simultaneously

01/26/10 (0.1)
-------------------
  - Initial release
  
--Raz.
Last edited by raz0red on Mon Mar 07, 2011 9:38 am, edited 12 times in total.

cyrusmartin
Posts: 3
Joined: Thu May 20, 2010 12:13 am

does this emulator support USB loading?

Post by cyrusmartin » Thu May 20, 2010 8:36 am

I can not get this thing to start no matter what I do.
I have followed all of the instructions and have the coleco.rom bios in the correct place.
I'm using a flash drive though and not an SD card.

When I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.
Any ideas?

-Cy

User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

Re: does this emulator support USB loading?

Post by raz0red » Thu May 20, 2010 9:09 pm

cyrusmartin wrote:I can not get this thing to start no matter what I do.
I have followed all of the instructions and have the coleco.rom bios in the correct place.
I'm using a flash drive though and not an SD card.

When I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.
Any ideas?

-Cy
Sadly it only currently works with SD Cards. I haven't ever really looked into supporting USB devices, but I may look into it for an upcoming release.

I have a 0.2 version of WiiColEm almost ready to be released. It now has overlay support, allows for resizing the screen to any dimensions, and uses GX for rendering (which smooths out the display on some games). I am hoping to release it early next week.

I am looking for some people to beta test. Please let me know if you would be interested.

Thanks.

--Raz.

cyrusmartin
Posts: 3
Joined: Thu May 20, 2010 12:13 am

yes

Post by cyrusmartin » Fri May 21, 2010 11:54 pm

I would be very interested.
If you ever do implement the USB option though then I would be eternally grateful.
Thank you for doing this at all though. Seriously.
I know it is a lot of hard work and I really appreciate it.

You rock.

-Cy

User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

Re: yes

Post by raz0red » Sat May 22, 2010 4:11 pm

cyrusmartin wrote:I would be very interested.
If you ever do implement the USB option though then I would be eternally grateful.
Thank you for doing this at all though. Seriously.
I know it is a lot of hard work and I really appreciate it.

You rock.

-Cy
Heh, thanks a lot for the kind words.

I just looked around a bit and it appears that implementing USB support shouldn't be that hard to do (assuming I have a USB device to test with). I will give it a go later tonight. I will PM you in a couple days with info on a pre-release binary, etc.

Thanks a lot for helping to test this. If anyone else is interested please PM me (or respond to this thread).

--Raz.

meteorman_01
Posts: 2
Joined: Sun May 23, 2010 10:37 am

forwarder or channel/wad

Post by meteorman_01 » Sun May 23, 2010 4:15 pm

Is there anyone who has a channel for WiiColEm? The Emulator is great but wish I could launch it from menu as opposed to going through the homebrew channel.

User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

Re: forwarder or channel/wad

Post by raz0red » Mon May 24, 2010 8:00 am

meteorman_01 wrote:Is there anyone who has a channel for WiiColEm? The Emulator is great but wish I could launch it from menu as opposed to going through the homebrew channel.
Unfortunately, I am not aware of one.

I know there are programs that allow you to create your own forwarder however. A quick search led me to this one, but I believe there are more recent ones as well.

http://www.consolespot.net/forums/wii-n ... ndows.html

--Raz.

meteorman_01
Posts: 2
Joined: Sun May 23, 2010 10:37 am

re: forwarder or channel/wad

Post by meteorman_01 » Mon May 24, 2010 8:13 am

unfortunately, I just can't figure this out... If someone has a WiiColEm forwarder already created and working with SDHC I would really appreciate it it you could post it. Thanks. I love this emulator....colem is ok....but just so slow to get past initial blue screen when launching app , can't scroll through list of roms easy (one at a time) and it doesn't see all roms. WiiColEm works perfect every time... now only if I could launch it as a channel.

cyrusmartin
Posts: 3
Joined: Thu May 20, 2010 12:13 am

Yes!

Post by cyrusmartin » Mon May 24, 2010 8:03 pm

You are awesome.

Let me know as soon as You want me to test something.
Thank you again!!!!


-Cy

User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

Post by raz0red » Mon Mar 07, 2011 9:39 am

Released 0.2. (see first post)

--Raz.

ccollccoll
Posts: 12
Joined: Tue Jun 22, 2010 9:20 pm

Post by ccollccoll » Thu Mar 10, 2011 3:42 am

raz0red wrote:Released 0.2. (see first post)

--Raz.
SD: \ wiicolem - work.

(USB 2.0)

Not working - if USB: \ wiicolem: - when I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.

Apparently the problem in IOS for USB:

which need to use IOS58 or IOS202 (versions 4, 5 or 5.1)?

Many thanks for your work.

User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

Post by raz0red » Thu Mar 10, 2011 1:35 pm

ccollccoll wrote:
Not working - if USB: \ wiicolem: - when I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.

Apparently the problem in IOS for USB:

which need to use IOS58 or IOS202 (versions 4, 5 or 5.1)?

Many thanks for your work.
Hmm... very strange. Are you trying this with version 0.2? The only reason I ask is that if it isn't able to mount the drive it displays a message stating that it failed. Are you seeing that message?

--Raz.

ccollccoll
Posts: 12
Joined: Tue Jun 22, 2010 9:20 pm

Post by ccollccoll » Fri Mar 11, 2011 8:28 am

raz0red wrote:
ccollccoll wrote:
Not working - if USB: \ wiicolem: - when I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.

Apparently the problem in IOS for USB:

which need to use IOS58 or IOS202 (versions 4, 5 or 5.1)?

Many thanks for your work.
Hmm... very strange. Are you trying this with version 0.2? The only reason I ask is that if it isn't able to mount the drive it displays a message stating that it failed. Are you seeing that message?

--Raz.
Hmm ... very strange. Are you trying this with version 0.2? - Yes, version 0.2.


The only reason I ask is that if it isn't able to mount the drive it displays a message stating that it failed. Are you seeing that message? - No, message I do not see. After launch, once when I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.

I have firmware 4.1 and the Homebrew channel 1.0.8 through IOS58.

User avatar
raz0red
Site Admin
Posts: 677
Joined: Sat Oct 29, 2005 8:21 pm
Location: Britannia
Contact:

Post by raz0red » Sun Mar 13, 2011 1:14 pm

ccollccoll wrote: Hmm ... very strange. Are you trying this with version 0.2? - Yes, version 0.2.

The only reason I ask is that if it isn't able to mount the drive it displays a message stating that it failed. Are you seeing that message? - No, message I do not see. After launch, once when I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.

I have firmware 4.1 and the Homebrew channel 1.0.8 through IOS58.
Hmm... I have tested on 8 different USB devices and they have worked. Not really sure what is happening. What kind of USB device are you using? Maybe I can find one to test with.

Thanks.

--Raz.

ccollccoll
Posts: 12
Joined: Tue Jun 22, 2010 9:20 pm

Post by ccollccoll » Mon Mar 14, 2011 3:49 am

raz0red wrote:
ccollccoll wrote: Hmm ... very strange. Are you trying this with version 0.2? - Yes, version 0.2.

The only reason I ask is that if it isn't able to mount the drive it displays a message stating that it failed. Are you seeing that message? - No, message I do not see. After launch, once when I try to start the emu, it loads a lack screen and then just sends me back to the homebrew channel.

I have firmware 4.1 and the Homebrew channel 1.0.8 through IOS58.
Hmm... I have tested on 8 different USB devices and they have worked. Not really sure what is happening. What kind of USB device are you using? Maybe I can find one to test with.

Thanks.

--Raz.
I have tried two USB devices at 80 Gb and 1000 Tb (FAT32). Tried USB flash at 1 Gb (FAT32).

set:

IOS249 (v17)
IOS202 (v4)
IOS58 (v6175)

Post Reply