What's new

Windows 10 Laptop w/ Nvidia Card + 4k Screen Setup (includes C button detection fix)


New member
After much trial, error and failure, I finally have a fully stable and playable Project64 setup on my new laptop, the settings of which I will share for those who may have a similiar hardware/software setup.

Laptop Specs:
Microsoft Windows 10 (x64) b. 17134.112
Intel Core i7-6700HQ
Intel HD Graphics 530
NVIDIA GeForce GTX 1070
Native Resolution: 3840x2160

Software Utilized:
JoyToKey 3.7.4
AdvancedRun (Optional)

Project64 General Settings:
Pause Emulation When Window is not active: Checked
Enter full screen mdoe when loading a ROM: Checked
Disable Screen Saver: Checked
Start emulation when ROM is opened: Checked
Automatically compress saved states: Checked

Project64 Plugin Settings:
Video: Glide64 for PJ64
Audio: Project64 Audio Plugin
Input: N-Rage for PJ64
RSP: RSP Plugin
Graphics HLE: Checked

Project64 Video Settings:

Windowed Resolution: 640x480
Vertical Sync: Checked
Full Screen Resolution: 1280x720
Anisotropic Filtering: Checked
Autodetect VRAM Size: Checked
Show texture enhancement Options: Checked

Emulation Settings:
Filtering Mode: Auto
Buffer Swapping method: New
LOD Calculation: off
Aspect Ratio: Stretch (Matter of taste)
Fog: Checked
Buffer Clear on every frame: Checked
Enable Frame buffer emulation: Checked
Hardware frame buffer emulation: Checked
Software depth buffer rendering: Checked

Texture Enhancement:
Filter: Smooth 3
Enhancement: X2SAI (Matter of Taste)
Texture Cache: 512
Compress Texture Cache: checked
Texture Compression Method: S3TC
Format: Rice Format
Alternative CRC: Checked
Use Alpha Fully: Checked
Compress Texture Cache: Checked
Save Texture Cache to Disk: Checked

Project64 Input Settings:
Plugged: Checked
Range: 100%
Digital Pad: Mapped to Gamepad
Buttons: Mapped to Gamepad
Analog Stick: Mapped to Gamepad
C buttons: Keys of your selection (SEE JoyToKey SECTION)
Real N64 Range: Checked
Mem Pak: Selected

Note: I could not get the C buttons of my N64 Controllers (OEM) to register with any version of N-Rage, so I gave up and brought in JoyToKey to fake it. For those unfamiliar, this software maps gamepad input to emulated keyboard presses.

1. Create a new configuration called 'whateveryouwant'
2. Click on the 'Others' tab
3. Use Axes other than X and Y: Checked
4. Use Pov Switches: Checked
5. Click back to Joysticks
6. Assign a random key to every button that contains the word 'Axis' in the label.
7. Open up notepad and press all 4 c buttons one at a time
8. Switch back to JoyToKey, and using the information gained from notepad, clear all keys except those corresponding to the c buttons. If you wish, you may also change the key assignments to something neater, like w(up) s(down) a(left) d(right) rather than the random keys you entered before. Be Sure NOT to use the same keyboard key assignments for additional controllers!
9. In the Project64 Input Settings for the C buttons, assign them to the keys emulated from JoyToKey
10. Repeat Steps 6-9 for additional controllers

Operating Instructions:
Project64 should be run without any compatibility settings other than running it as administrator+Disable DPI Scaling, whereas JoyToKey should be both RaA and compatibility mode set for Windows XP SP3. I also force the NVidia card in the Nvidia control panel. That's it!

Optional Note on Portability and Convenience:

In conjunction with a short batch file liked this:

@echo off
cd /d %~dp0
cd JoyToKeyCButtons
AdvancedRun.exe /Run
cd /d %~dp0
AdvancedRun.exe /Run

and a program called AdvancedRun by nirsoft, you can run both of these programs on any computer without having to remember any setup or compatibility settings. In my particular case, the batch file resides in the Project64 root directory, the installation of JoyToKey resides in a subfolder of the root called 'JoyToKey', and a copy of AdvancedRun is in both of these directories. If you decide to create a portable setup like this, just make sure to open both copies of the AdvancedRun program from File Explorer one time, enter in the corresponding target exe MANUALLY (Don't browse or it will save the full path, which defeats the goal of portability), then enter in the aforementioned compatibility settings, run it, and in the background it will save a file called AdvancedRun.cfg in the same directory from which you ran the AdvancedRun executable.

To finish it off, create a link to your batch file, set it to use the icon from Project64, copy the link to the Start Menu Directory, and you'll forget all about the JoyToKey hackjob :)

Hope this helps somebody out, peace.
Last edited: