Just something I threw together in 5 minutes. Do note that a bunch of dvars have been hashed, and no longer are able to be changed by their original commands. Some work, some don’t. There is no output from the game, but you can input console commands.
It’s been a wild few months, and I would like to thank all of the testers of Rime that have been reporting bugs, suggestions and usability problems.
One main issue that I have with Rime is the lack of automation. It had gotten an auto-updater quite awhile back, but it was very primitive and needs an overhaul so I can push updates faster to the testers and eventually the entire community. With this documentation is key for such a complicated and large project and before hand-generating the documentation or even using a tool like DoxyGen wasn’t exactly up-to-par. I’ve spent the last few days creating DokuGen which takes the C# assemblies and XML documentation and creates a DokuWiki format output so you can just drop it in your dokuwiki/data/pages/ directory and have it reflect instantly online!
If you are like me, you hate developing on Linux. Nothing beats Microsoft’s Visual Studio, nothing. Recently with the Windows 10 Anniversary update you have WSL or Windows Subsystem for Linux, as excited as I was for this to come out Visual Studio is a “slow” adopter of this technology and I currently spent many hours poking and tweaking things until I got them right. So here it is, a full tutorial on how to get PlayStation 4 development going on Windows.
Note: This is not using any of Sony’s official software development kit, and is free for anyone to use.
3 Months Later, much progress has been made. Here is another dump of the git repository change-log. I won’t be able to continue development on Rime until after July due to myself switching apartments again (I move every year =[ ). With that being said, I have set up a Continuous Integration server for Rime so current alpha testers can get bleeding edge builds if needed. There’s only one problem, deploying the builds 😛 I will be writing an open source deployment tool that I will upload on my github when it is completed.
With that being said, I have a software recommendation, If you haven’t heard PVS-Studio is a hell of a tool catching many programmer errors and mistakes. Rime didn’t suffer from many errors, only 1 high level issue, ~40 medium (mostly serialization issues), and 200 low priority ones (caused by floating point arithmetic) Read more to see full change-log.
Good news, Rime is becoming more and more functional every day that it gets worked on (busy with school primarily). The last month has been both productive and a ton of work has gone into the project. Here are some of the changes from the git history.
Implemented “-cleanup” option for the auto-updater in order to clean up old files on next launch.
Added more editing abilities to the PartitionBrowserControl.
Added logging of version on startup (the UI is currently broken and doesn’t show it)
Added “Dashes” member to GUID in order to get the dashes format as well.
Added checking of instances on CtrRef ToString in order to show “*null*” if the partition or instance is null. (may change to partition only)
Also made it where if you double click on an CtrRef it will automatically open up a new editor with that instance loaded.
Fixed bug with the PluginManager in where multiple instances would be removed due to old-style name checks. This was resolved by properly removing that one instance.
Fixed crash in the OutputPlugin due to the parameters being null.
Fixed threading related crash on updating the UI when a new update was made available.
Fixed crash in the logger when parameters were null.
Changes and Corrections:
Corrected List DataTemplate, by changing the member type from TreeView to ItemsControl.
Refactored update system.
Major refactoring to allow plugins to load properly. Also disabled the Theme in order to properly see what is going on in the ebx editor.
Thanks to all of the testers we have, and special shoutouts to Powback for assisting with the documentation and preparation for the public build.
Time flies, I really thought I wrote the last entry last month, but apparently its been quite awhile. Here’s a bit of a status update…
I’ve been swamped with work and fixing issues and researching more cool things for Venice Unleashed. So work on Rime has been slow, but after reading the last blog post, there has been a ton of work behind the scenes that have been done with Rime.
Converted quite a few parts to use the MVVM for raw speed and performance
Added chunk reading via the VFS
Implemented a “new” ebx reader written by NoFaTe almost 3 years ago (+- a year)
Corrected issues with said EBX reader
Implemented ebx VFS and cross-ebx reading
Ebx reading and parsing is all async and threaded now and done in the background without affecting initial map loading times. (Maxed out my laptops i5 for ~9s before finishing)
Updated all projects to Visual C++ 14.0 and .NET 4.6.1 (fixes all UI issues using C# 6.0)
The bundle browser is now sorted alphabetically
Updated bundle browser plugin to use the VFS instead of manually parsing bundles itself.
And many many more changes to increase performance etc.
Hello there, I know it’s been awhile since I’ve updated this and a few people thought the project was dead (I don’t know why, but they did lol). Here’s a quick update of what has happened over the last few months. Most of the work has been done by the other member of Venice UnleashedNoFaTe!
Fixed a crash that would occur due to plugins without UI’s being added as UI elements.
Fixed various threading issues and collection changed issues due to the asynchronous nature of Rime.
Fixed a ton of issues dealing with the UI and how they interface with plugins.
Updated WebLink security (cross communication to modders link to prepare for the community)
Updated the BinaryReader/Writer with more efficient versions.
Removal of a lot of deprecated, unused, commented out code.
Deprecated all previous (semi-functional) mounting code (due to the new readers/virtual file system).
Moved a TON of shared code (used between Lib/Rime itself) to the RimeCommon and restructured it.
Moved a TON of Frostbite specific utilities and classes to RimeLib.
Refactored the plugin system again (Will have to update the RimeExamplePlugin github soon).
Refactored the handling for Frostbite Guid class.
Added the ability to auto-start certain plugins on launch
Added all available plugins to be launched from a menu if you are unsure how to launch them (only ones with UI).
Added auto-detection of game builds and information.
Added BuildInfoProxy for x86 and x64 versions of Frostbite to read out the engine’s build info natively.
Added detection for Frostbite2014.4 (Star Wars Battlefront Alpha Trial).
Implemented a new Virtual File System.
Loading of patch files and patched superbundles completed.
Added Rime to a CI solution to prepare for testing builds for those who have already been selected for testing.
Here’s a little side project that I didn’t have very much time to fully complete. It is a unlocked Halo 2 Beta! Currently when you sign in, just select “do not sign in” and then from there you can use System Link, Split Screen, Xbox Live (arranged game).
Just a note, the System Link is missing some code to allow xbox’s to see each other, I am slowly working on a fix for this. I spent a few weeks a few months ago working on my own xbe (Xbox Executable) patcher and patch creation system, which allowed me to build patched executable really quickly. In this time I recoded the entire main menu in assembly to “unlock” everything, I even had force loading which is disabled in this patcher due to unforeseen crashes.
Removal of the EULA screen
Removal of all watermarking
Removal of all main menu limitations (if code is still there)
Re-linking of System Link, Xbox Live, and System Link screens.
Controller input hook (not active)
You will need the executable matching SHA1: C42E58FA8EEDCD4F46707C2FD0D8CEFCC61A6410
Well, it’s been a month since the last update. But in that month, Rime went from being non-functional, but powerful tool to a semi-functional extraction for Frostbite 2 (and 3) games. There has been a huge overhaul in the back-end to allow it to function in a modular fashion.
Currently there are many bugs, but to poke around and open up various resources has been implemented and soon(TM) integration with Venice Unleashed will be finished and the community will have the first taste of modding the Frostbite engine.
Just a few updates. As read in my previous post, security is something I take very seriously as a developer, and I was going to allow plugins to run unrestricted until the beta. Luckily with enough debugging and trial and error, I finally got proper locked down sandboxed plugins that can be loaded from any directory! With that being said as well, I have resolved issues with the internal messaging structure for Rime as well as changed the way that plugins function. I also will be updating the example plugin git repository.
Overhauled and fixed internal communication of all parts of Rime
Fixed loading of plugins
Implemented plugin security sandbox
Cleanup of old code, refactored entire plugin system
Removal of SharpDX and all DirectX 11 related mesh rendering
Removal of IPlugin interface.
Moved all plugin logic and abstract classes to a common module (RimeCommon)
Moved most message logic and listeners to a common module.
Setup an OpenGL based renderer to replace SharpDX. Proof of concept finished.
Also I’m moving, so there may not be any work done until I find a place to live. Peace.