Wii7800

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

Wii7800

Post by raz0red » Mon May 18, 2009 10:46 am

A port of the ProSystem (Atari 7800) emulator for the Wii.

Current production release (v0.4):

https://github.com/raz0red/wii7800/rele ... 00-0_4.zip (Binaries)
https://github.com/raz0red/wii7800/archive/0.4.tar.gz (Source)

Wiki (Wiibrew):

http://www.wiibrew.org/Wii7800

Code: Select all

--------------------------------------------
Wii7800 v0.4 release README
--------------------------------------------

Ported by raz0red [github.com/raz0red]

--------------------------------------------
What is Wii7800?
--------------------------------------------

Wii7800 is a port of the ProSystem emulator developed by Greg Stanton. 
Additional changes developed by Ludovic Jacomme aka Zx-81 (PSP port), Leonis,
and gdement. Portions of the Pokey code were adapted from the MAME 
implementation.

[https://gstanton.github.io/ProSystem1_3/]

--------------------------------------------
Current status
--------------------------------------------

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

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

--------------------------------------------
Known issues
--------------------------------------------

    - High Score cartridge is only compatible with NTSC games.

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

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

Cartridge images must be placed in the roms directory (/wii7800/roms).
(Zip files are supported)

Wii7800 does support loading of the Atari 7800 BIOS, although it isn't 
necessary. If you wish to use the BIOS, simply place the NTSC and PAL BIOS
files in the (/wii7800) directory. The NTSC file must be named, "7800.rom",
while the PAL file must be named, "7800pal.rom". 

--------------------------------------------
Lightgun Accuracy, etc.
--------------------------------------------

The crosshair for the Wii7800 emulator is not perfect. For example you may be
pointing at something and your shot may register to the right or left. This is
due to the way the 7800 handles hit detection for lightgun games. It only 
checks for a hit every 7 CPU cycles. There are 330 cycles for the visible 
portion of each frame. Thus, there are only ~47 hit points for each scanline.
So, the crosshair at best gets you in approximately the right area, and if you
miss you need to adjust based on where the shot shows up on the screen 
(exactly how you do it when there is no crosshair). 

--------------------------------------------
Cartridge/ROM Compatibility 
--------------------------------------------

To find out if a particular cartridge/ROM is compatible with Wii7800, please
refer to the following page. 

[http://www.wiibrew.org/wiki/Wii7800/Cartridge_Compatbility]

Note: There are many dumps of ROMs that are incompatible with Wii7800. 
However, there is typically a dump of the cartridge that does work. 
This page contains a list of compatible ROMs by "hash code".

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

    Wii7800 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
                        
    In-game (Joystick):
    ---------------------------

        Wiimote:

            D-pad          : Move
            2              : Fire 1
            1              : Fire 2
            +              : [Reset]
            -              : [Select]
            A              : Left difficulty (if enabled)
            B              : Right difficulty (if enabled)
            Home           : Display Wii7800 menu (see above)

         Classic controller:

            D-pad/Analog   : Move
            Right analog   : Dual analog (if enabled)
            A              : Fire 1
            B              : Fire 2
            +              : [Reset]
            -              : [Select]
            ZL/ZR Trigger  : [Pause]
            L Trigger      : Left difficulty (if enabled)
            R Trigger      : Right difficulty (if enabled)
            Home           : Display Wii7800 menu (see above)
            
         Nunchuk controller:

            Analog         : Move
            C              : Fire 1
            Z              : Fire 2
                  
         GameCube controller:

            D-pad/Analog   : Move
            C Analog       : Dual analog (if enabled)
            A              : Fire 1
            B              : Fire 2
            Start          : [Reset]
            L Trigger      : [Select]
            R Trigger      : [Pause]
            Y              : Left difficulty (if enabled)
            X              : Right difficulty (if enabled)
            Z              : Display Wii7800 menu (see above)
            
    In-game (Lightgun):
    ---------------------------

        Wiimote:

            Wiimote IR     : Move
            A/B            : Fire 1
            +              : [Reset]
            -              : [Select]
            1              : Left difficulty (if enabled)
            2              : Right difficulty (if enabled)
            Home           : Display Wii7800 menu (see above)
           
--------------------------------------------
Wii7800 crashes, code dumps, etc.
--------------------------------------------

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

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

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

munky6           : Lead tester
Curt Vendel      : Granting permission to use the High Score ROM
GroovyBee        : Technical assistance
mimo             : Testing
Tantric/eke-eke  : Audio code example
Tantric          : Huge improvements to the SDL
Team Twiizers    : For enabling homebrew

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

11/16/19 (0.4)
---------------------
    - Reworked audio integration (resolves audio clipping and pops)
    - Refactored project layout. Now includes third party libraries, which
        should reduce effort to build against latest devkitPro releases
    - Updated to latest versions of devkitPPC (r34) and libogc (1.8.23)
    - Merged PR#7 by arocchi
        Fixes to make wii7800 work with latest DevKit
    - Merged PR#3 by clobber
        Fix bit shift overflow when reading cartridge size from header
    - Merged PR#2 by clobber
        Update internal ROM database
    - Merged PR#1 by clobber
        Correctly load supergame cart types

03/29/10 (0.3)
---------------------
    - GX based scaler (smoother scrolling in Plutos, Xevious, Motor Psycho)
    - 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.
    - Fixed graphical glitches in Ballblazer
    - Implemented RANDOM (read) and SKCTLS (write) for Pokey sound emulation
        - Ballblazer now plays all sounds
    - Minor refactor of Pokey code
    - Some minor adjustments to the Light Gun related code
    - Updated palette (from Underball)
    - Updated menu code, GX rendering of dip switches and debug information
    - Ability to set HBLANK period, Dual-analog support in ProSystem database

06/29/09 (0.2)
-------------------
    - Lightgun support 
    - High score cartridge support
    - Increased accuracy of Maria cycle timing, games now run at close to 
        their intended speed (One on One, Tower Toppler, Summer Games, 
        KLAX, Karateka, etc.)
    - Increased compatibility for PAL games (Ballblazer, Commando, and Food 
        Fight now work)    
    - Audio now sounds as it should regardless of frequency (PAL games and 
        custom frame rates)
    - Timers now properly take into consideration cycles generated via Maria 
        and during WSYNC
    - Changes to ProSystem database format
        - Maria cycles are now enabled by default (option 0x1 now disables
            Maria, the opposite of before)
        - Ability to adjust the lightgun crosshair offset per game
    - All games now have Maria cycles and WSYNC enabled in the ProSystem 
        database (with the exception of MIA)    
    - Console switch defaults updated to work with the majority of games
    - Additions to debug output (Maria vs. CPU cycles, timer info, etc.)
    - Other games improved by various changes
        - Kung Fu Master no longer has the lines in the upper left corner of
            display and the Fuji logo appears as it should (if using BIOS)
        - Midnight Mutants has less graphical glitches
        - Summer Games has less graphical glitches
        - Plutos has slightly less graphical glitches
    - Fixed save/restore state issue for games that use RIOT timers.        
        
05/26/09 (0.1)
-------------------
    - Snapshot support, including auto-load/auto-save
    - Optional loading of 7800 BIOS
    - Support for ProSystem emulator database
    - Detects and configures controls for one and two button 7800 games
    - Controls support for Wiimote/Nunchuk/Classic/Gamecube controllers
    - Analog controls support
    - Dual analog support for Gamecube/Classic controllers (Robotron)    
Last edited by raz0red on Mon Mar 29, 2010 1:06 pm, edited 4 times in total.

Ebf18
Posts: 11
Joined: Thu Feb 19, 2009 5:07 pm

Post by Ebf18 » Sun May 24, 2009 8:57 pm

Good to hear Raz, looking forward to testing it and thanks :D

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

Post by raz0red » Tue May 26, 2009 10:10 pm

Released 0.1. (see first post)

--Raz.

Ebf18
Posts: 11
Joined: Thu Feb 19, 2009 5:07 pm

Post by Ebf18 » Wed May 27, 2009 7:19 am

Thanks much Raz :)

ajrosner68
Posts: 7
Joined: Sat Mar 21, 2009 9:38 pm

Post by ajrosner68 » Wed May 27, 2009 8:00 pm

From what I've played, it rocks... Good work. :D

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

Post by raz0red » Thu May 28, 2009 6:32 am

Thanks for the kind words guys.

If you are having issues with ROMs loading, etc. make sure to check out the following page:

Wii7800 Cartridge Compatibility

It appears there are a lot of bad dumps (or dumps that don't work with the emulator due to an improper header, lack of database entry, etc.). But, the vast majority of cartridges do work with the emulator. In fact the only one I haven't been able to find a working version for is the "32 in 1" cartridge.

--Raz.

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

Post by raz0red » Thu May 28, 2009 7:59 am

Robotron, dual analog (Gamecube Controller)

388,225 / Wave 16 on Advanced

Can you beat it? :D

--Raz.

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

Post by raz0red » Mon Jun 29, 2009 9:40 pm

Just released 0.2.

http://www.wiibrew.org/wiki/Wii7800

--Raz.

Ebf18
Posts: 11
Joined: Thu Feb 19, 2009 5:07 pm

Post by Ebf18 » Tue Jun 30, 2009 7:31 am

Thank you sir. :D

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

Post by raz0red » Mon Mar 29, 2010 1:07 pm

Just released 0.3.

http://www.wiibrew.org/wiki/Wii7800

--Raz.

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

Re: Wii7800

Post by raz0red » Sat Nov 16, 2019 10:20 am

Just released 0.4

http://www.wiibrew.org/wiki/Wii7800

--Raz.

Post Reply