diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 7067c3a91..c895d9f21 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,11 +1,11 @@ # Introduction -First of all, thank you for considering contributing to Project64! Project64 is an open-source project and contributions by the community help fix bugs, add new features, and improve the project. +First of all, thank you for considering contributing to Project64! Project64 is an open-source project and we love to receive contributions from the community. Contributions by the community help fix bugs, add new features, and improve the project. There are many ways to contribute, from writing and improving the documentation, testing, submitting bug reports and feature requests, or writing code which can be incorporated into Project64 itself. + +If you are looking for support or need help, please join the [Discord](https://discord.gg/Cg3zquF)! It's the best way to get your questions answered quickly. Please do not open a GitHub issue without first reading through the [support document](../Docs/SUPPORT.md). Following these guidelines will help make sure that users and developers alike can work together to achieve the projects goals. -Project64 is an open-source project and we love to receive contributions from the community. There are many ways to contribute, from writing and improving the documentation, testing, submitting bug reports and feature requests, or writing code which can be incorporated into Project64 itself. +Please do NOT post any copyrighted materials. This includes (but is not limited to) ROMs, ROM hacks, IPL and firmware files, etc. -Please don't use the issue tracker for support questions. Please join the Discord so the community can help with your issue! - -Please do NOT post any copyrighted materials. \ No newline at end of file +Save states and game saves do not fall under this category, so please post them if they are applicable to your issue! \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/BUG.yml b/.github/ISSUE_TEMPLATE/BUG.yml index 1aedcdc84..347f2e099 100644 --- a/.github/ISSUE_TEMPLATE/BUG.yml +++ b/.github/ISSUE_TEMPLATE/BUG.yml @@ -1,6 +1,6 @@ name: Bug report description: >- - If you experience a bug in Project64 and its default plugins, please open an + If you experience a bug in Project64 and/or its maintained plugins, please open an issue here and fill out the template. title: '[Bug]: ' labels: @@ -15,7 +15,11 @@ body: - type: markdown attributes: value: >- - If you are having issues with a plugin that isn't included with and + + Please read the support document in this repository before opening an issue! + + + If you are having issues with a plugin that isn't included with or supported by the Project64 team, we cannot support you other then pointing you to the developer or repository for those plugins. @@ -43,7 +47,7 @@ body: id: what-happened attributes: label: Actual behavior? - description: Describe the issue you encountered. + description: Describe in detail the issue you encountered. placeholder: Tell us what you see!; use screenshots if necessary. value: null validations: @@ -75,16 +79,16 @@ body: id: ROM_details attributes: label: What game were you playing? - description: What is the specific ROM that you encountered an issue with? + description: What is the specific game/ROM that you encountered an issue with? value: | Title: Nintendo 64 game or Nintendo 64 Disk Drive: - ROM information (First you must uncheck "hide advanced settings" in the settings menu, then File > ROM info should show up, post the information contained there in this field): - Save type: (Attach game save or save state here) + ROM information (First you must uncheck "hide advanced settings" in the settings menu, then File > ROM info should show up, post the information contained there in this field. Alternatively, you can right click the ROM in the ROM browser and hit "ROM information".): + Save type: (attach game save or save state here) - Original or modified ROM?:(attach patch here) + Original or modified ROM?:(attach patch if applicable here) validations: required: false - type: textarea @@ -92,7 +96,7 @@ body: attributes: label: Specifications and build details description: >- - List your system information, you can obtain this from MSINFO32 and the + List your PC specifications/information, you can obtain this from MSINFO32 and the emulators title bar and about page. value: | Project64: (include commit version number and whether you are using the diff --git a/Docs/BUILDING.md b/Docs/BUILDING.md index c5edd4ca2..abc23c545 100644 --- a/Docs/BUILDING.md +++ b/Docs/BUILDING.md @@ -11,7 +11,7 @@ If you just want to run Project64 or its development builds, use the [Readme](ht * This is a hard requirement. It is used for the build step and requires the solution be a part of the Project64 git repository on disk. * Visual Studio 2015, 2017, or 2019 Community Edition * During installation, select the `Programming Languages/Visual C++` option in the Visual Studio 2015 installer, or -* During installation, select the `Desktop development with C++` workload in Visual Studio 2017 and 2019 +* During installation, select the `Desktop development with C++` workload in Visual Studio 2017 and 2019 or newer ## Clone the repository diff --git a/Docs/CHANGELOG-ANDROID.md b/Docs/CHANGELOG-ANDROID.md new file mode 100644 index 000000000..43f846dd8 --- /dev/null +++ b/Docs/CHANGELOG-ANDROID.md @@ -0,0 +1,15 @@ +# Changelog +All notable changes to this project will be documented in this file. This is only for the Android version of the emulator. For the Windows changelog, refer to the Windows changelog. + +Minor note: Before version 4.0, the changelog didn't exist, and the changelog that did exist that was implemented after version 2.3.2 was very basic and version history before that was 99% guessed. So after 4.0 we hope for that to change! + +This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## Android release 9: +- Add ability to change screen resolution +- Fix multiple pause/resume +- Minor bug fixes + +## Android release 7: diff --git a/Docs/CHANGELOG.md b/Docs/CHANGELOG.md index 52ff0e66c..d62b34b2b 100644 --- a/Docs/CHANGELOG.md +++ b/Docs/CHANGELOG.md @@ -1,18 +1,63 @@ -Version 3.0 +# Changelog +All notable changes to this project will be documented in this file. This is only for the Windows version of the emulator. For the Android changelog, refer to the [Android changelog](../Docs/CHANGELOG-ANDROID.md). + +Minor note: Before version 4.0, the changelog didn't exist, and the changelog that did exist that was implemented after version 2.3.2 was very basic and version history before that was 99% guessed. So after 4.0 we hope for that to change! + +This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] +- ROM info now always shows even if "hide advanced options" is checked +- If emulator runs into permanent loop, it will no longer end emulation + +## [3.0.1] - June 17, 2021 + +## [3.0.0] - May 26, 2021 +### Added - GLideN64 has been added and you can select it as the default plugin in the welcome screen - New audio plugin - New input plugin - Added enhancements functionality -- Cheat system has been rebuilt from the ground up -- Ability to change defaults -- Saves in their own unique directory - Added Shygoo's debugger code -- Fixed FPU issue -- Fix issues in key assignment -- Large address aware +- Added the ability to change defaults + +### Changed +- Saves now have their own unique directory +- Cheat system has been completely rebuilt +- Project64 is now large address aware - Default compiler is now Visual Studio 2015 -Android Release 9: -- Add ability to change screen resolution -- Fix multiple pause/resume -- Minor bug fixes +### Fixes +- Fixed FPU issue +- Fix issues in key assignment + +### Removed +- N/A + +## [2.3.2] - January 23, 2017 + +## [2.3.1] - October 2, 2016 + +## [2.3] - August 12, 2016 + +## [2.2] - March 30, 2015 + +## [2.1] - March 29, 2015 + +## [2.0] - Unknown date + +## [1.7] - Unknown date +- Changes unknown, but first major open-source release +- Major updates to the core + +## [1.6.1] - Unknown date +- Last update of the Jabo plugins +- Minor update + +## [1.6] - Unknown date +- Last major release before major changes and open-source release in 1.7 + +## [1.1 - 1.5] - Unknown date +- Changes unknown currently + +## [1.0] - May 26, 2001 +- First release! \ No newline at end of file diff --git a/Docs/SUPPORT.md b/Docs/SUPPORT.md new file mode 100644 index 000000000..6d62689dd --- /dev/null +++ b/Docs/SUPPORT.md @@ -0,0 +1,36 @@ +# Project64 support + +### Hello, this document is to help you out if you are looking to get support for Project64. + +#### First of all, GitHub issues are ***not*** for general inquiries, support questions, or anything that can be handled on our support Discord. Issues opened without first reading this document or attempting to get support in the Discord will be closed. Issues opened regarding software we don't maintain will also be closed. + +#### Here is a non-exhaustive list of things you should do before asking for help on the Discord: +- Fully update Windows +- Update all of your drivers +- Make sure you are using either the latest stable version of Project64, or the latest nightly build of Project64 +- Make sure you aren't using a bad ROM dump +- If you have issues with a ROM hack, make sure the unmodified game doesn't have issues as well as the ROM hack +- Try other plugins if a plugin isn't working correctly for you +- Try one of the recommended plugins setups below if the current setup isn't working for you + +## Recommended plugin setups for Project64 + +### Accuracy +- Parallel-RDP in LLE mode (graphics plugin) +- Parallel-RSP in LLE (RSP plugin) +- Azimer's audio v0.70 WIP 10 in LLE (audio plugin) +- Project64 input, or N-Rage input plugin (depending on your controller/needs) + +### Performance and general gaming +- GLideN64 in HLE (graphics plugin) +- Parallel-RSP in HLE (RSP plugin) +- Azimer's audio v0.70 WIP 10 in HLE (audio plugin) +- Project64 input, or N-Rage input plugin (depending on your controller/needs) + +### I might need to open an issue on the Project64 GitHub +- Project64 Video (graphics plugin) +- Zilmar's RSP (RSP plugin) +- Project64 audio (audio plugin) +- Project64 input + +#### Note: plugins that are no longer maintained or are closed-source ***WILL NOT*** receive support. diff --git a/Docs/img/icon.png b/Docs/img/icon.png new file mode 100644 index 000000000..441e1f9d0 Binary files /dev/null and b/Docs/img/icon.png differ diff --git a/Docs/img/screen.png b/Docs/img/screen.png new file mode 100644 index 000000000..b04a102a2 Binary files /dev/null and b/Docs/img/screen.png differ diff --git a/README.md b/README.md index b118aace1..502d71808 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,91 @@ -# Project64 - Nintendo 64 Emulator +

+ logo +

-Project64 is a free and open-source emulator for the Nintendo 64 and Nintendo 64 Disk Drive written in C++ currently for Windows (planned support for other platforms in the future). +# Project64 -## System Requirements +Project64 is a free and open-source emulator for the Nintendo 64 and Nintendo 64 Disk Drive written in C++ currently only for Windows (planned support for other platforms in the future). -* Operating System - * Windows XP and later +## Features + +- Development and debugging tools +- Save/load states +- Fullscreen +- Controller support +- Great language support +- Support for many popular N64 emulator plugins + +## Screenshot + +

+ screenshot +

+ +## Installation + +Installer for the latest stable releases are available [here](https://www.pj64-emu.com/windows-downloads). + +Download nightly builds [here](https://www.pj64-emu.com/nightly-builds). + +AppVeyor (Windows x86/x64): [![Build status](https://ci.appveyor.com/api/projects/status/sbtwyhaexslyhgx3?svg=true +)](https://ci.appveyor.com/project/project64/project64/branch/develop) + +*Side note: 64-bit builds are considered experimental and aren't currently supported* + +## Minimum requirements + +* Operating system (limited support for Windows 8.1 and below) + * Windows XP SP3, Windows 7 SP1, Windows 8.1, and the latest version of Windows 10 * CPU * Intel or AMD processor with at least SSE2 support * RAM * 512MB or more * Graphics card * DirectX 8 capable (Jabo's Direct3D8) - * OpenGL 2.0 capable (3.0+ recommended) (Project64 Video) + * OpenGL 1.1 capable (Project64 Video) * OpenGL 3.3 capable (GLideN64) - -Intel Integrated Graphics can have issues that are not present with Nvidia and AMD GPU's even when the requirements are met. - -### Stable Builds - -Installer for the latest stable release: https://www.pj64-emu.com/windows-downloads - -Follow the instructions in the setup window to complete the installation. - -If you would like to see the changelog: [Changelog here](https://github.com/project64/project64/blob/develop/Docs/CHANGELOG.md) - -Download nightly builds here: https://www.pj64-emu.com/nightly-builds - -AppVeyor (Windows x86/x64): [![Build status](https://ci.appveyor.com/api/projects/status/sbtwyhaexslyhgx3?svg=true -)](https://ci.appveyor.com/project/project64/project64/branch/develop) - -Note: x64 builds are **NOT** recommended for regular use. They are incomplete and very experimental. Due to this, x64 builds are currently _slower_ than 32-bit builds. ## Support -[**Join the official Project64 Discord server**](https://discord.gg/Cg3zquF) to seek help from Project64 developers, contributors, and the community! Please ask questions here first and see if you should open an issue. +For support, we ask all users read our [support document](./Docs/SUPPORT.md). Read this ***before*** opening issues. -### Compiling +Please join our [Discord server](https://discord.gg/Cg3zquF) for support, questions, etc. -``` -Visual Studio Community 2015 or later -``` +## Changelog -Load .sln project file and compile. +If you would like to see a changelog that is available [here](./Docs/CHANGELOG.md). -See the [BUILDING.md](https://github.com/project64/project64/blob/develop/Docs/BUILDING.md) file for details. +## Dependencies + +- Duktape: MIT license +- 7-Zip: LGPL+unRAR license +- zlib: zlib license +- png: libpng license +- discord-rpc: Copyright (C) Discord +- DirectX: Copyright (C) Microsoft +- Windows Template Library: Copyright (C) Microsoft ## Contributing -Please read [CONTRIBUTING.md](https://github.com/project64/project64/blob/develop/.github/CONTRIBUTING.md) before contributing, opening issues or pull requests, or for other contributions. +Contributions are always welcome! -## Versioning +See the [contributing](./.github/CONTRIBUTING.md) file for ways to get started. -We use semantic versioning for Project64. For the versions available, see the [tags on this repository](https://github.com/project64/project64/tags). +## Maintainers and contributors -## Author / Contributors +- [@Project64](https://www.github.com/project64) - Zilmar - current maintainer +- Jabo - Previous contributor +- Smiff - Previous contributor +- Gent - Previous contributor -* **Zilmar** - *Current maintainer* - [Zilmar](https://github.com/project64) -* **Jabo** - *Previous contributor* - Jabo -* **Smiff** - *Previous contributor* - Smiff -* **Gent** - *Previous contributor* - Gent +Also see the list of [community contributors](https://github.com/project64/project64/contributors). -See also the list of [contributors](https://github.com/project64/project64/contributors) who participated in this project. +## 🔗 Links +- [Website](https://pj64-emu.com) +- [Discord](https://discord.gg/Cg3zquF) ## License -This project is licensed under the GPLv2 License - see the [LICENSE.md](https://github.com/project64/project64/blob/develop/license.md) file for details. +![GitHub](https://img.shields.io/github/license/project64/project64) + +Please see the [license](./license.md) for more details. \ No newline at end of file