|
1 | | -# SNES for Analogue Pocket |
| 1 | +# Pro Action Replay MK3 for Analogue Pocket |
2 | 2 |
|
3 | | -Ported from the original core developed by [srg320](https://github.com/srg320) ([Patreon](https://www.patreon.com/srg320)). Latest upstream available at https://github.com/MiSTer-devel/SNES_MiSTer. |
| 3 | +A SNES core for the Analogue Pocket that emulates the Datel **Pro Action Replay |
| 4 | +MK3** cheat cartridge on top of [agg23's openFPGA SNES core](https://github.com/agg23/openfpga-SNES) |
| 5 | +(a port of [srg320's MiSTer SNES](https://github.com/MiSTer-devel/SNES_MiSTer)). |
| 6 | +The MK3 BIOS wraps a standard SNES ROM and provides the cartridge's cheat entry, |
| 7 | +trainer, and live cheat application. |
4 | 8 |
|
5 | | -Please report any issues encountered to this repo. Most likely any problems are a result of my port, not the original core. Issues will be upstreamed as necessary. |
| 9 | +## Install |
6 | 10 |
|
7 | | -> [!WARNING] |
8 | | -> |
9 | | -> Savestates/Memories/Sleep not supported |
10 | | -> |
11 | | -> Savestates/Memories/Sleep are not supported by any FPGA SNES core. Not this one, not the MiSTer core it's ported from, not the Analogue Super NT one. |
12 | | -> |
13 | | -> **Support for savestates will _not_ be coming** to any of these cores. Do not ask. If you would like to learn more, see [issue #59](https://github.com/agg23/openfpga-SNES/issues/59) and [this discussion on the MiSTer forums](https://misterfpga.org/viewtopic.php?t=4944). |
| 11 | +1. Extract the latest release ZIP to the root of your Pocket SD card. |
| 12 | +2. Place a verified 128 KB MK3 BIOS dump at |
| 13 | + `Assets/snes/timboettiger.Pro Action Replay/snes-pro-action-replay-mk3.bin`. |
| 14 | + The BIOS is proprietary Datel firmware and is not distributed here. |
| 15 | +3. Load any SNES ROM through the Pocket UI. |
14 | 16 |
|
15 | | -## Installation |
| 17 | +## Modes |
16 | 18 |
|
17 | | -### Easy mode |
| 19 | +The cartridge's 3-position switch is exposed as a core option: |
18 | 20 |
|
19 | | -I highly recommend the updater tools by [@mattpannella](https://github.com/mattpannella) and [@RetroDriven](https://github.com/RetroDriven). If you're running Windows, use [the RetroDriven GUI](https://github.com/RetroDriven/Pocket_Updater), or if you prefer the CLI, use [the mattpannella tool](https://github.com/mattpannella/pocket_core_autoupdate_net). Either of these will allow you to automatically download and install openFPGA cores onto your Analogue Pocket. Go donate to them if you can |
| 21 | +- **MK3 Menu** — boot into the BIOS for code entry (default) |
| 22 | +- **Cheats Active** — boot the game with cheats applied |
| 23 | +- **No Cheats** — boot the game unmodified |
20 | 24 |
|
21 | | -### Manual mode |
22 | | -To install the core, copy the `Assets`, `Cores`, and `Platform` folders over to the root of your SD card. Please note that Finder on macOS automatically _replaces_ folders, rather than merging them like Windows does, so you have to manually merge the folders. |
| 25 | +## Documentation |
23 | 26 |
|
24 | | -## Usage |
| 27 | +The user manuals and the full reverse-engineering documentation live in the |
| 28 | +parent project: <https://github.com/timboettiger/action-replay-mk-iii>. |
25 | 29 |
|
26 | | -ROMs should be placed in `/Assets/snes/common`. Both headered and unheadered ROMs are now supported. |
| 30 | +## Build & release |
27 | 31 |
|
28 | | -## Features |
| 32 | +Pushing a version tag builds and publishes a release via GitHub Actions |
| 33 | +(`.github/workflows/build.yml`): |
29 | 34 |
|
30 | | -### Dock Support |
| 35 | +``` |
| 36 | +git tag v0.2.1 && git push origin v0.2.1 # release |
| 37 | +git tag v0.2.1-beta && git push origin v0.2.1-beta # pre-release |
| 38 | +``` |
31 | 39 |
|
32 | | -Core supports four players/controllers via the Analogue Dock. To enable four player mode, turn on `Use Multitap` setting. |
| 40 | +It compiles the bitstream (Quartus in Docker), converts the assets, packages the |
| 41 | +core, and attaches the ZIP to the release. |
33 | 42 |
|
34 | | -### Expansion Chips |
| 43 | +To build locally: compile `projects/snes_pocket.qpf` with Quartus, then run |
| 44 | +`scripts/build-release.sh`. Other helpers: `scripts/build-loader.sh` (chip32 |
| 45 | +loader), and `scripts/build-icon-image.sh` / `scripts/build-platform-image.sh` |
| 46 | +(PNG to Pocket `.bin`). |
35 | 47 |
|
36 | | -All original expansion chips supported by MiSTer are also supported on the Pocket. The full list is: |
| 48 | +## Credits & licence |
37 | 49 |
|
38 | | -* SA-1 (Super Mario RPG) |
39 | | -* Super FX/GSU-1/2 (Star Fox) |
40 | | -* DSP (Super Mario Kart) |
41 | | -* CX4 (Mega Man X 2) |
42 | | -* S-DD1 (Star Ocean) |
43 | | -* SPC7110 (Far East of Eden) |
44 | | -* ST1010 (F1 Roc 2) |
45 | | -* BSX (Satellaview) |
46 | | - |
47 | | -The Super Game Boy, ST011 (Hayazashi Nidan Morita Shougi), and ST018 (Hayazashi Nidan Morita Shougi 2) are not supported in the MiSTer core, and therefore are not supported here. Additionally, the homebrew MSU expansion chip is not currently supported. |
48 | | - |
49 | | -#### BSX |
50 | | - |
51 | | -BSX ROMs must be patched to run without BIOS. The BSX BIOS is not currently supported |
52 | | - |
53 | | -### Savestates/Memories/Sleep |
54 | | - |
55 | | -> **Warning**: Not supported |
56 | | -
|
57 | | -Savestates/Memories/Sleep are not supported by any FPGA SNES core. Not this one, not the MiSTer core it's ported from, not the Analogue Super NT one. |
58 | | - |
59 | | -**Support for savestates will _not_ be coming** to any of these cores. Do not ask. If you would like to learn more, see [issue #59](https://github.com/agg23/openfpga-SNES/issues/59) and [this discussion on the MiSTer forums](https://misterfpga.org/viewtopic.php?t=4944). |
60 | | - |
61 | | -### Video |
62 | | - |
63 | | -* `Square Pixels` - The internal resolution of the SNES is a 8:7 pixel aspect ratio (wide pixels), which roughly corresponds to what users would see on 4:3 display aspect ratio CRTs. Some games are designed to be displayed at 8:7 PAR (the core's default), and others at 1:1 PAR (square pixels). The `Square Pixels` option is provided to switch to a 1:1 pixel aspect ratio |
64 | | -* `Pseudo Transparency` - Enable blending of adjacent pixels, used in some games to simulate transparency |
65 | | - |
66 | | -### Turbo |
67 | | - |
68 | | -* `CPU Turbo` - Applies a speed increase to the main SNES CPU. **NOTE:** This has different compatibility with different games. See the [MiSTer list of games](https://github.com/MiSTer-devel/SNES_MiSTer/blob/master/SNES_Turbo.md) that this feature works with |
69 | | -* `SuperFX Turbo` - Applies a speed increase to the GSU (SuperFX) chip. Can be used in addition to the `CPU Turbo` option in games like Star Fox to maintain a higher frame rate. |
70 | | - |
71 | | -### Controller Options |
72 | | - |
73 | | -There are several options provided for selecting which type of controller the core will emulate. |
74 | | - |
75 | | -* `Gamepad` - The standard SNES controller used with most games. |
76 | | -* `Super Scope` - The Super Scope lightgun that's used with most lightgun games. See Lightguns for more details. |
77 | | -* `Justifier` - The Justifier lightgun that's used with Lethal Enforcers. See Lightguns for more details. |
78 | | -* `Mouse` - The SNES mouse that's used with Mario Paint and several other games. See SNES Mouse for more details. |
79 | | - |
80 | | -### Lightguns |
81 | | - |
82 | | -Core supports virtual lightguns by selecting the `Super Scope` or `Justifier` options under `Controller Options`. Most lightgun games user the Super Scope but Lethal Enforcers uses the Justifier. The crosshair can be controlled with the D-Pad or left joystick, using the A button to fire and the B button to reload. D-Pad aim sensitivity can be adjusted with the `D-Pad Aim Speed` setting. |
83 | | - |
84 | | -**NOTE:** Joystick support for aiming only appears to work when a controller is paired over Bluetooth and not connected to the Analogue Dock directly by USB. |
85 | | - |
86 | | -### SNES Mouse |
87 | | - |
88 | | -Core supports a virtual SNES mouse by selecting `Mouse` under `Controller Options`. The mouse can be moved with the D-Pad or left joystick and left and right clicks can be performed by pressing the A and B buttons respectively. Mouse D-Pad movement sensitivity can be adjusted with the `D-Pad Aim Speed` setting. |
89 | | - |
90 | | -**NOTE:** The dock firmware doesn't currently support a USB mouse. |
| 50 | +SNES core by srg320, openFPGA port by agg23, MK3 emulation by Tim Boettiger. |
| 51 | +GPL-3.0 — see `LICENSE`; redistributions must include source. |
0 commit comments