Skip to content

Commit

Permalink
Xm and more (#17)
Browse files Browse the repository at this point in the history
* Added partial XM support
Added POT support to Pokey
Modifed Pokey and TIA Buffers
Fixed issue where pokey counter was not being reset
Added temporary hack to get Pac320 to work (may cause issues)

* Added Pokey @450 support
Added Support for carts about 144k
Improved cart detection (via header and by size)
Fixed issue occurring when Kangaroo and Holey were enabled (caused
backgroud to be displayed causing large black squares)

* Added ability to edit cartridge DB in UI
Added disable bios, left/right switch, swap buttons, pokey@450, and xm
to cartridge database.
Fixed Pokey pops that were occurring
Removed WSYNC, cycle stealing, and swap buttons from global settings

* Fixed bug with cart db UI and dual analog

* Added XM to save states

* Defaults to latest save state when loading cart

* Minor menu fix (able to select spacer)

* Reorganized advanced menu

* Added whether cart was loaded from db in debug

* Temporarily disable BIOS support
Will enable once issue is resolved

* Reduced TIA volume slightly

* Fixed controller for crossbow and alien brigade

* Added Bentley Bear's Crystal Quest to DB

* Bank switching fixes, new cart type
Fixed 64k cart bank switching when specifying out of range bank
Added new cartridge mode "Standard RAM". 64k or less w/ RAM at $4000
Removed global high score cart setting
Added per-cartridge setting for HSC (default to header value)

* Updates to prosystem database
Cartridge size uses file size (vs. header)
Default controllers to joysticks
Fix database load issue (sometimes read into next entry)
Added default cart title (when not in header or DB)
Added another default screen size
Fixed vsync issue (caused stutter, mostly on PAL titles)

* Many homebrew additions to cart database
Fixed issue where some IM hacks were not loading
Updated db editor to always write out pokey450 and XM settings

* More cart database entries

* Updated readme files and images for 0.5 release

* Updated readme

* Updated release date
  • Loading branch information
raz0red authored Mar 25, 2020
1 parent 66962fb commit 3e4adae
Show file tree
Hide file tree
Showing 33 changed files with 3,593 additions and 409 deletions.
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ CFLAGS = \
-g -O1 -Wall $(MACHDEP) $(INCLUDE) \
-DNOCRYPT -DWII -DBIG_ENDIAN -DWII_BIN2O \
-Wno-format-truncation \
-Wno-narrowing

-Wno-narrowing
#-DWII_NETTRACE
#-DLOWTRACE -DDEBUG
CXXFLAGS = $(CFLAGS)
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map
Expand Down Expand Up @@ -91,6 +91,7 @@ CPPFILES := \
Cartridge.cpp \
Common.cpp \
Database.cpp \
ExpansionModule.cpp \
Hash.cpp \
Logger.cpp \
Maria.cpp \
Expand All @@ -106,6 +107,7 @@ CPPFILES := \
Tia.cpp \
wii_atari.cpp \
wii_atari_config.cpp \
wii_atari_db.cpp \
wii_atari_emulation.cpp \
wii_atari_menu.cpp \
wii_atari_sdl.cpp \
Expand Down
104 changes: 84 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@

Ported by raz0red

Wii7800 is a Nintendo Wii port of the ProSystem emulator developed by Greg Stanton.
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/]

| ![](https://wiibrew.org/w/images/thumb/1/16/7800-pole.gif/189px-7800-pole.gif) | ![](https://wiibrew.org/w/images/thumb/a/a5/7800-commando.gif/189px-7800-commando.gif) | ![](https://wiibrew.org/w/images/thumb/d/dd/7800-ninja.gif/189px-7800-ninja.gif) |
|---|---|---|
_Wii7800 0.5 + Atari 7800 Homebrew Video_

<a href='http://www.youtube.com/watch?feature=player_embedded&v=Qq7qgz8fVgs' target='_blank'><img src='http://img.youtube.com/vi/Qq7qgz8fVgs/0.jpg' width='425' height=344 /></a>

## Current status

Expand All @@ -29,26 +30,37 @@ please visit the [Wii7800 page](http://www.wiibrew.org/wiki/Wii7800) on WiiBrew:
## Installation

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

Cartridge images must be placed in the roms directory (/wii7800/roms).
(Zip files are supported)
## Lightgun Accuracy, etc.

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".
The crosshair for the Wii7800 emulator is not perfect. For example, you
may be pointing at something and your shot may register slightly to the
right or left.

## Lightgun Accuracy, etc.
## Cartridge Database

Wii7800 ships with a database that contains recommended settings for the
majority of commercial and a limited number of homebrew cartridges. These
settings cover control settings, difficulty switch settings, and
cartridge-related settings (cartridge type, Pokey support, XM support,
high score cart support, 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 Wii7800 menu
* Select the "Cartridge-specific settings" menu item
* View/edit the settings for the cartridge

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).
Some settings will not be applied until the settings are saved and the
cartridge is reloaded. When one of these settings is modified, a message
will be displayed indicating that this particular setting requires the
cartridge to be reloaded (and the settings saved prior to loading).

Other settings, such as difficulty switch and control settings may not
be applied until the cartridge is reset (or reloaded).

## Cartridge/ROM Compatibility

Expand Down Expand Up @@ -152,6 +164,17 @@ This page contains a list of compatible ROMs by "hash code".
1 : Left difficulty (if enabled)
2 : Right difficulty (if enabled)
Home : Display Wii7800 menu (see above)

## SMB (Network support)

Wii7800 allows for loading ROMs over the network via SMB. To enable SMB
support, you must edit the "wii7800.conf" file located in the "/wii7800"
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

## Wii7800 crashes, code dumps, etc.

Expand All @@ -174,6 +197,48 @@ the following locations:

## Change log

### 03/24/20 (0.5)
- Partial Expansion Module (XM) support
- XRAM
- XPokey (limited to single Pokey)
- Added support for cartridges with sizes greater than 144k
- Additional bank switching modes and cartridge types
- Multiple bank switching fixes
- Reworked cartridge header detection
- Now properly detects bank switching, RAM, etc.
- Detects Expansion Module (XM)
- Detects High score cartridge
- Detects Pokey at $0450
- Cartridge database
- Added ability to edit cartridge database settings via menu
- Added several new cartridge properties
- Pokey at $0450
- Default difficulty switch settings
- Expansion Module (XM) enabled/disabled
- High score cartridge enabled/disabled
- Database content
- Fixed incorrect controller settings for Sirius, Crossbow,
and Alien Brigade
- Added many homebrew cartridges
- 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
- Multiple default screen sizes
- Hierarchical file navigation support
- USB Support
- SMB (Network support) for loading ROMs
- Multi-save slot support
- Reworked menu system (cartridge-specific settings, etc.)
- Support for launching via WiiFlow (and returning)
- Fixed VSYNC issue which caused initial stutter on PAL games
- Fixed issue occurring when Kangaroo and Holey were enabled (caused
background to be displayed, resulting in large black squares)
- Several audio improvements (eliminated majority of TIA and Pokey pops)

### 11/16/19 (0.4)
- Reworked audio integration (resolves audio clipping and popping)
- Refactored project layout. Now includes third party libraries, which
Expand Down Expand Up @@ -239,4 +304,3 @@ the following locations:
- Controls support for Wiimote/Nunchuk/Classic/Gamecube controllers
- Analog controls support
- Dual analog support for Gamecube/Classic controllers (Robotron)

Binary file modified res/gfx/about.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified res/gfx/layers/wii7800.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 56 additions & 13 deletions res/layout/apps/wii7800/README.wii
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--------------------------------------------
Wii7800 v0.5-SNAPSHOT release README
Wii7800 v0.5 release README
--------------------------------------------

Ported by raz0red [github.com/raz0red]
Expand Down Expand Up @@ -37,14 +37,6 @@ Installation
To install Wii7800, simply extract the zip file directly to your SD card
or USB device (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.
--------------------------------------------
Expand All @@ -53,6 +45,32 @@ The crosshair for the Wii7800 emulator is not perfect. For example, you
may be pointing at something and your shot may register slightly to the
right or left.

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

Wii7800 ships with a database that contains recommended settings for the
majority of commercial and a limited number of homebrew cartridges. These
settings cover control settings, difficulty switch settings, and
cartridge-related settings (cartridge type, Pokey support, XM support,
high score cart support, 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 Wii7800 menu
* Select the "Cartridge-specific settings" menu item
* View/edit the settings for the cartridge

Some settings will not be applied until the settings are saved and the
cartridge is reloaded. When one of these settings is modified, a message
will be displayed indicating that this particular setting requires the
cartridge to be reloaded (and the settings saved prior to loading).

Other settings, such as difficulty switch and control settings may not
be applied until the cartridge is reset (or reloaded).

--------------------------------------------
Cartridge/ROM Compatibility
--------------------------------------------
Expand Down Expand Up @@ -180,8 +198,8 @@ Wii7800 crashes, code dumps, etc.
If you are having issues with Wii7800, please let me know about it via one of
the following locations:

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

--------------------------------------------
Special thanks
Expand All @@ -200,23 +218,48 @@ Team Twiizers : For enabling homebrew
Change log
--------------------------------------------

TBD (0.5)
03/24/20 (0.5)
---------------------
- Partial Expansion Module (XM) support
- XRAM
- XPokey (limited to single Pokey)
- Added support for cartridges with sizes greater than 144k
- Additional bank switching modes and cartridge types
- Multiple bank switching fixes
- Reworked cartridge header detection
- Now properly detects bank switching, RAM, etc.
- Detects Expansion Module (XM)
- Detects High score cartridge
- Detects Pokey at $0450
- Cartridge database
- Fixed incorrect controller settings for Sirius
- Added several homebrew titles (Arkanoid, etc.)
- Added ability to edit cartridge database settings via menu
- Added several new cartridge properties
- Pokey at $0450
- Default difficulty switch settings
- Expansion Module (XM) enabled/disabled
- High score cartridge enabled/disabled
- Database content
- Fixed incorrect controller settings for Sirius, Crossbow,
and Alien Brigade
- Added many homebrew cartridges
- 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
- Multiple default screen sizes
- Hierarchical file navigation support
- USB Support
- SMB (Network support) for loading ROMs
- Multi-save slot support
- Reworked menu system (cartridge-specific settings, etc.)
- Support for launching via WiiFlow (and returning)
- Fixed VSYNC issue which caused initial stutter on PAL games
- Fixed issue occurring when Kangaroo and Holey were enabled (caused
background to be displayed, resulting in large black squares)
- Several audio improvements (eliminated majority of TIA and Pokey pops)

11/16/19 (0.4)
---------------------
Expand Down
2 changes: 1 addition & 1 deletion res/layout/apps/wii7800/meta.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<app version="1">
<name>Wii7800</name>
<coder>raz0red</coder>
<version>0.5-SNAPSHOT</version>
<version>0.5</version>
<release_date>000000000000</release_date>
<short_description>Atari 7800 Emulator</short_description>
<long_description>Wii7800 is a port of the ProSystem emulator developed by Greg Stanton.
Expand Down
Loading

0 comments on commit 3e4adae

Please sign in to comment.