Project64 Legacy v1.6.4 - [The End] (Mean it this time!) - 2024/06/22

Okay, final push for [The End] of our involvement with Project64 Legacy.

Big thanks to all who assisted in the journey on Discord, and a special thanks to Fanatic 64,
& Derek "Turtle" Roe for keeping us on our toes!

Changes:

Application:

* Fix for Icepir8's Legacy RSP Plugin Ver: 0.2.2e support
* TLB extra checks for overflow buffer mapping for user TLB entries
* Enabled Advance Mode by default
* Pause Emulation disabled by default


Icepir8's Legacy RSP Plugin Ver: 0.2.2e

* Interpreter Core fix.
* Save state loading fix.
* Reset without crashing in window & full screen modes.

Icepir8's Legacy LLE Video Plugin (Final) Ver: 0.3.2e

* Vsync disabled by default.   
* Fixed zombie creation in procuress issue.

Azimer's Legacy Audio Plugin (Final) Ver: 0.70.10c

* Replaced Windows INI Functions with SimpleINI.  
* Removed Volume, Driver, DisallowSleep from Rom Specific
* Removed validation checks to DS8 to prevent JaboSound issues
* CoInit changes in an attempt to bring stability
* A Patch to address load state delay
* Updated configuration to only save to general section for driver, volume, sleeps.
  Also forced defaults and config save when config does not exist.
* Fix BOOL to bool



Project64 Legacy v1.6.3 - Final - 2024/03/11

Arbitrary code vulnerability fix.

* tlb miss in write opcodes are now generating exceptions as expected. This solves a vulnerability that can allow roms
  to run arbitrary code in previous releases.
  
Basic Mode Update:  
  
* Enabled Add New, Edit & Delete Cheats
* Enabled File/Screenshot Capture
* Enabled Settings/Configure RSP Plugin,
* Enabled Help/About INIFiles
* Enabled File/Rom Information.

Enabled Setting Dialogues available in Full-screen with shortcut keys

* Enabled Configure Graphics Plugin (CTRL+V)
* Enabled Configure Audio Plugin (CTRL+U)
* Enabled Configure Controller Plugin (CTRL+X)
* Enabled Configure RSP Plugin (CTRL+W)
* Enabled Settings(CTRL+T)
  
Icepir8's Legacy LLE Plugin Ver: 0.3.2

* Enable Vsync is disabled by default to assist lower spec systems. 
* Render Mode drop down: OpenGL/DirectX8 (Beta) (DX8 also assists lower spec systems)
* Added Embedded RSP HLE Handling.
* Added the ability to save setting per rom

Azimer's Audio_Legacy Audio to v0.70.10c

* Removed validation checks to DS8 to prevent JaboSound issues

This fixes the issue with select rom directory hanging 

* Default Backend Sound Driver now DirectAudio Driver
* Added the ability to save setting per rom


v1.6.2 Legacy Beta - 2023/07/09 (Windows 7 Up Build)

Introduced New Files &  Formats in /Config

Config Directory will contain:

Jabo.ini - (Jabo's Video D3D Initialization / Configuration File

    This is used solely as a resource of all Jabo Video information requirements.

Project64.rds

    Jabo's RDB Settings have been replaced by Jabo.ini located in the Config Directory.
    Hardcoded default settings will not be written to the RDS
    Non-Hardcoded settings are CPU Core Style, Self-Mod Code Method, RDRAM Size, ABL (These are under Advanced)
    The RDRAM may become hardcoded to 4MB and only changeable by game settings because so few games require the expansion pak.

Project64.rdi

    Very important file which now host information such as:

    Developer (Game made by)
    ForceFeedback (Rumble Pak support)
    GameInformation (Online RDX - Full Game Information and links)
    Genre (The Genre of the game be it shooter, action, puzzle etc)
    Players (How many players the game supports)
    ReleaseDate /The release date of the game including region differences)


Project64.cdb

    The file has been streamlined to useful and sensible cheat support.
    Anything Beta/Silly Specific can be down to the user to add.
    Brand new exclusive Features & Cheat Formats

Jabo's Direct3D8 1.7.0.47a Unhide Advance Settings.reg
Jabo's Direct3D8 1.7.0.47a Hide Advance Settings.reg

    Must use the Jabo's Direct3D8 1.7.0.47a.reg to Unhide/Hide Jabo 1.7 Options 


1.6.2 Beta Application & Core Changes    

	Added Cheat Menu Support in Full screen (Does not work with Jabo Video)
	Added China (C) Country Region Code Support
	Added Date & Time of build to About Dialog
	Added Game Information via File / Right click in Rom Browser
	Added Jabo Video Specific Perm Cheat Support & accessed from the Jabo.ini file
	Added Jabo's Direct3D8 1.6.2 (For Lower Spec Systems) - Reads and writes to Jabo.ini
	Added Jabo's Direct3D8 1.7.0.47a (For Jabo Texture Support) - Reads and writes to Jabo.ini
	Added Jabo's_Direct3D8 1.7.0.47a Reg Files in /Config (Must use the Jabo's Direct3D8 1.7.0.47a.reg to Unhide Jabo 1.7 Options as they write to Registery)
	Added Memory Viewer to Cheat Search
	Added XenoCrisis N64 Support
	Changes to Recent Rom and Rom Directory Lists, Save State Numbering and shortcuts
	Input default changed to NRage Legacy 
	Introduced and Updated N-Rage Legacy 1.6.2 to support Range in XInput settings
	New RSP plugin api, RSP_INFO ver 0x102
	Updated Azimer's Audio_Legacy Audio to v0.70.10a (This has Direct Audio as Default to combat an issue with creating the first rom directory crash)
	Video and RSP default plugins changed to Icepir8's Legacy Plugins
    Added Gateway (NTSC) & Lodgenet (PAL) Countries Region Code Support
    Correction to dlist wait hack for Wave Race 64 iQue
    Fix a crash in the memory dumper when not using the recompiler CPU
    Fix for debugger window sizes
    Now supports Rom / Zip Drag and Drop Load
    Updated old domain URL's to new domain project64-legacy.com
    Use a different method to wait for the emulation thread to exit
	
There is also a fairly major refactor to the memory viewer. Contextual colouring follows the precedent set by the cheat search, with red indicating a value has decreased, and green indicates an increase. New here are colors for watchpoints, which use an underlined font: Magenta = write, blue = read, violet = read/write. The primary changes are listed below:
    
    Added auto refresh thread to redraw the memory view every 150ms
    Added contextual colouring
    Added release version and SDK version to ROM info and Browser
    Added support for scrolling with the mouse wheel
    Default address is 0x80000000
    Disabled column resizing
    Draw word separators in the memory viewer
    Fix D1 and D3 code type handling
    Fixed garbage in the ASCII view
    Fixed manufacturer decoding in ROM info
    Fixed some styling issues
    Removed the useless close button
    

Add minimize button to dialog windows

    Cheat Menu
    r4300i Commands
    r4300i Registers
    Breakpoints
    TLB Entries

Added to Basic Mode:

    File/Rom Information
    Options/Configure RSP Plugin
	System/Screenshot Capture
	System/Cheat Search/Memory Viewer
    Help/About INI Files

#bugfix

	Fixed ROM Browser #-Z sorting
    Fixed memory viewer bugs
    Fixed window drift when taskbar is on the top or left. (Jabo D3D and Rice Video still have issues)
    Synced rom browser and main emulation windows.


v1.6.1 Legacy

R4300i core and executable


- 1.6.1 Legacy plugins
- rumble controller issue fix
- new support files position /Config
- new support files
- aleck64 Support
- new crc handling
- new features
- game fixes for DK64, Twisted Edge, Taz Express, NFL, etc
- cheat serarch function
- raw/text PC+Dissasembled RAM Dump
- fixed many gui issues for speed and compatibilty
- reduced memory usage
- transition to vs2010
- plus many many more

v1.6

R4300i core and executable

- support for rumble enabled controller plugins
- marked some memory allocations with execute flag
- game fixes for DK64, Hydro Thunder, etc
- enable perm cheats
- fixed gui issues
- reduced memory usage

Direct3D6

- Pilotwings no longer crashes
- Fixed drivers that have incorrect depth buffer caps

Direct3D8
- Added new plugin

RSP

- minor compiler tweaks for speed

Direct Input

- support for more axes 
- warn user when configuring button already set
- rumble support using force feedback

====================================================

v1.5.1

Direct3D6

just a few tweaks made soon after v1.5 was released,
that hopefully helped with the "pausing" problem:

optimised texture cache
better matrix stack handling
optimized texture gen with SSE
less memory uses, faster searches 

====================================================

v1.5

R4300i core and executable

- stack pointer optimisations (added SP Hack option)
- PIF2 emulation for Banjo-Tooie and Jet Force Gemini
- added new (default) self.-mod code method: Check Memory Advance
- added Delay SI Interrupt option for games broken in v1.4
- compiler resets when max code blocks reached rather than erroring
- more non-fatal error messages hidden in release builds
- improved game compatibility - refer to RDB

- fixed input plugins not showing in menu issue
- fixed possible crash during plugin selection
- fixed couple of causes of crash during rom load
- fixed several possible problems with state saving and loading
- allows saving and window switch while paused
- alt-tab should work better in Win2k/XP
- new rom loading method should fix Radeon+64MB rom issue
- cpu % counters should be more accurate

- added Hide Advanced Settings option
- added right click menus for rom browser and cheats
- added Always on Top option
- language file rewritten for more complete translations
- added first run selection for language
- opens settings dialog automatically when plugin missing
- better prevention of rom loading when plugins are not initialised
- end emulation in fullscreen doesn't mess up
- rom browser sort now saves by multiple columns
- rom browser window shrink bug fixed
- rom browser sorting by Genre works
- rom browser configuration saving moved to registry
- defaulted first column to Good Name
- removed User Notes box (still reads file)
- added ROM Notes tab
- fixed help file open in Win2k/XP
- fixed many bugs in menu item availibility, less crashes
- added and altered some shortcut keys

- added edit and delete cheats functions
- improved dialog, can enter many codes at once etc.
- nodes show partially selected cheats with grey ticks
- added serial repeater, activator and stacked activator support
- raised limits to 100 codes per cheat and 500 cheats per game
- added GS button support
- remembers window position, window can be resized
- removed 'mark all' button (caused problems)
- function keys work while cheat window open
- added option for remember selected cheats


RSP

- Implemented more opcodes in compiler
- Validated task lists before sending


Direct Input

- Analog stick range slider
- Set default button


Direct3D

- Better support for cards that lack blending & large textures
- Support for sprite microcodes
- Improved microcode detection
- Rewrote frame buffer emulation, new options to speed it up too
- Redesigned configuration dialog
- Anisotropic filtering slider
- Texture cache more reliable, and faster
- GeForce 3, 4 and Radeon support improved
- Lots of fixes for games, too many to list


Direct Sound

- Implemented volume control
- Cleaned up dialog

