N64 Emulator
Go to file
Summate 65a9097980
Allowing a paste into a number field to be trimmed automatically (#2414)
The specific issue I experienced is that Excel/LibreOffice Calc add a newline when you copy the contents of a single cell. This is bad behavior and they should provide a copy option that does not do that, but alas, it's much harder to get that into those applications. This behavior made it impossible to paste an otherwise-valid hex address into the Project64 fields without first putting it into Notepad, deleting the newline, recopying, and then doing the paste from there. If the field was simply text, you can go into the field edit and shift + home to select all and then do a copy, but that does not work for a formula. When you edit the file, it shows the formula instead. Therefore, you have absolutely no way of working around this except pasting it somewhere else and removing the newline manually.

In principle, there's no reason why you wouldn't trim the ends at least. Whitespace on either end is useless to you. However, content being after the newline should be rejected as it was before.

There were two secondary issues in the pasting code that are fixed here: One is that it only sort of collapsed single spaces. So if you had more than one space, spaces still would have ended up in the result. Actually I think the semantics were slightly more insidious, <space><number> would have turned into <number><same number> effectively. The only thing it did was remove the space by duplicating the number. If you had two spaces, then it would have ended up with e.g. <space><number><same number>. The only case where this wouldn't have happened is a space at the end which would have been preserved in the paste.

Secondly, it mutated the clipboard data directly. This would have lead to confusing results where multiple pastes would have had clipboard data in the clipboard itself move from, for example, two spaces to a single space to no spaces at all. The better solution is to preprocess to figure out how big we ultimately want our space-less result to be and stamp out the copy ourselves skipping anything we don't want. Leave the clipboard alone.

If it's desired to preserve single spaces only in the middle, the code will need to be modified a bit.

Co-authored-by: Summate <summate.ssbm@gmail.com>
2024-06-06 14:22:26 +09:30
.github Fix spelling in CONTRIBUTING.md 2023-02-21 14:57:08 +10:30
Android Android: Start to get controller working 2023-12-07 16:14:04 +10:30
Artwork Artwork: Add Project64 logo 2023-12-07 17:49:26 +10:30
Bin Core: Add vcruntime140_1.dll for clang.exe 2022-12-20 09:44:11 +10:30
Config RDB: Remove SMM-Protect as a setting being used 2024-05-09 15:59:04 +09:30
Docs Add TOC to the README and other improvements (#2424) 2024-06-06 14:21:17 +09:30
Lang Update Portuguese translation (#2412) 2024-03-07 21:13:58 +10:30
Plugin Jabo_Direct3D8 no d3d syslog.txt 2016-09-07 16:35:49 +01:00
PropertySheets x64: some code clean up and remove warning on Common and 3rd party 2022-07-11 19:30:25 +09:30
Scripts [Debugger] Rewrite script API (#2110) 2021-09-03 14:41:04 +09:30
Source Allowing a paste into a number field to be trimmed automatically (#2414) 2024-06-06 14:22:26 +09:30
.gitignore Android: Get RSP core to compile on android 2023-11-09 11:53:06 +10:30
Directory.Build.props Add defaults file so MSbuild can be run from any subdirectory. 2017-06-07 14:36:30 -07:00
JS-API-Documentation.html [Debugger] JS API: Fix Buffer links in documentation (#2169) 2022-01-13 11:07:39 +10:30
Project64.sln Android: Move hle audio code in to main rsp plugin 2023-11-02 20:06:58 +10:30
README.md Add TOC to the README and other improvements (#2424) 2024-06-06 14:21:17 +09:30
appveyor.yml Actually fix Zip file name 2019-10-02 23:32:16 -07:00
license.md Rename licence.md to license.md 2020-06-14 15:21:56 -05:00

README.md

logo

Project64

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).

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.

Download nightly builds here.

AppVeyor (Windows x86/x64): Build status

Side note: 64-bit builds are considered experimental and aren't currently supported

Supported requirements

  • Operating system
    • 64-bit Windows 10 and 11
  • CPU
    • 1GHz or faster Intel or AMD processor with at least SSE2 support
  • RAM
    • 2GB or more
  • Graphics card
    • DirectX 8 capable (Jabo's Direct3D8)
    • OpenGL 3.3 capable (Project64 Video)
    • OpenGL 3.3 capable (GLideN64)
    • OpenGL 3.3 capable (Angrylion's RDP Plus)
    • Vulkan 1.1 capable (Parallel-RDP)

Intel integrated graphics can have issues that are not present with Nvidia and AMD GPU's even when the requirements are met. Outdated drivers can also cause issues, so please update them!

Support

For support, we ask all users read our support document. Read this before opening issues.

Please join our Discord server for support, questions, etc.

Changelog

If you would like to see a changelog that is available here.

Dependencies

Contributing

Contributions are always welcome!

If you want to contribute to this project, please click here to get more information on how to set up a local build environment.

See the contributing file for ways to get started.

Maintainers and contributors

  • @Project64 - Zilmar - current maintainer
  • Jabo - Previous contributor
  • Smiff - Previous contributor
  • Gent - Previous contributor

Also see the list of community contributors.

License

GitHub

Please see the license for more details.