<- 1  -   of 75
^^
vv
List results:
Search options:
Use \ before commas in usernames
There is also a small gap between a couple sections of the track, which is why you can stand on it about midway up.
Do these tools work on Windows XP?
I dunno. Probably not?
URDE/hecl, definitely not, PWE? maybe?
Oh, just a heads up, Jack and I have had our roles a bit reversed, while jack has been able to get time to work on URDE, I've been struggling to find the time, however URDE is still being actively worked on, when we have time, and we've made massive progress since our last progress report. I'll let jack elaborate on that if he wants, since he's been the one to do most of the work.
Edit history:
Aruki: 2017-10-26 11:45:56 am
very nice! I've been slow the last few months because I needed to focus on Hat in Time (WHICH BTW CAME OUT THIS MONTH AND PEOPLE REALLY LIKE IT) and so didn't really have any time for any hobby stuff. But now that it's out I'm trying to figure out a more balanced schedule going forward so I can keep doing hobby projects like PWE on the side.

For right now I'm toying around with some DKCTF stuff I've been wanting to do for ages, cuz I'm not super thrilled with the way I did a few things in PWE and a fresh project is a great opportunity to experiment with some new stuff and try putting into practice some of the stuff I've learned working on Hat. So might be a bit longer before I go back to PWE, but whenever I do there is still a *lot* of stuff I'm really excited to work on for it! Lately it's just really a matter of finding time for this stuff since I have so many other things demanding my attention right now. My life has definitely changed a hell of a lot since I started working on this project.
Here is a quick screenshot of the packager doing it's thing, we'll probably have a time lapse sometime in the future.
Edit history:
monochrome: 2017-11-18 11:41:42 pm
Quote from Aruki:
Also, I made this code to fix frustum culling issues. I didn't want to use the existing code because they disable the culling entirely. Which is good for VR, but way overkill if you just want widescreen. So here's a code that extends the frustum range, but still allows for culling to happen offscreen. This works because the CFrustumPlanes constructor takes the aspect ratio as a function parameter. This code patches in an instruction that forces the game to always load 2.0 as the aspect ratio value.

Code:
043452A8 C342CB78

Would it be possible to create a specific code for 21:9 using an aspect ratio value above 2.0? I have tried a few generic codes but they seem to disable culling entirely, which tanks performance.
Quote from monochrome:
Quote from Aruki:
Also, I made this code to fix frustum culling issues. I didn't want to use the existing code because they disable the culling entirely. Which is good for VR, but way overkill if you just want widescreen. So here's a code that extends the frustum range, but still allows for culling to happen offscreen. This works because the CFrustumPlanes constructor takes the aspect ratio as a function parameter. This code patches in an instruction that forces the game to always load 2.0 as the aspect ratio value.

Code:
043452A8 C342CB78

Would it be possible to create a specific code for 21:9 using an aspect ratio value above 2.0? I have tried a few generic codes but they seem to disable culling entirely, which tanks performance.


possibly. I implemented the code by pointing to a 2.0 value that happened to be nearby in memory to the one the game normally uses for frustum culling. You could possibly either find a different value to point to, or implement the code in a different way. Not something I'm gonna be personally looking at doing right now either way though, unfortunately.
Any plans for updating your STRG editor to support MP3?
I'm using it for translation of MP1 and it works very well.
It will be so helpful if I can use it for MP3 too...
The STRG editor is a very old outdated tool that won't be receiving any additional updates unfortunately, sorry. But I will be integrating a new STRG editor into PWE in the future.
It's okay, new tools sounds good!
PWE is very useful tool to organize strings, I love it.
Edit history:
Aruki: 2018-01-20 04:09:52 pm
so this isn't a huge development or anything - but Shinesparkers talked to one of the technical lead engineers, Jack Mathews, and asked him about our modding work and PWE, and he had this to say:

Quote:
SS: We have a lot of creative fans within the community, and on their behalf I would like to ask are you aware of fan efforts to mod the Prime games using Prime World Editor and the software they use to do it? How do you feel about this?

I’ve been following the mod stuff off and on for years and I am so impressed. I also have to apologize to the modding community – I’m actually responsible for a ton of the file formats in the games – particularly the graphics assets, the PAK files, and I believe the area files. I cannot believe what people discovered without actual source, and I can assure all of you, I know how terrible the formats are and… sorry.

(check out their full interview!)

This lead into some chatting on Twitter where he shared a couple tidbits of technical info - nothing huge, but one thing of note is he shared some info on the hashing algorithm that was used for asset IDs and property IDs: https://twitter.com/jack_mathews/status/954768169956270080

So Jack says MP1 uses CRC32 hashes for asset IDs, whereas MP3 uses MD5 hashes with the top half cut off, and all games use CRC32 for property IDs. Additionally, asset paths start with "$/". Using this info, we've been able to replicate the asset ID hashes for both MP1 and MP3!! For example, take the path for the Space Pirate Frigate world asset, from Metroid1.pak.contents.txt:

Code:
	   78767	0x158EFE17	K:/new_rep/Worlds/IntrolLevel/!Intro_Master/cooked/!Intro_Master.mwld [n]


To get the correct hash, you need to convert the string to lowercase, and replace "K:/new_rep" with a $. So this is the string you hash:

Code:
$/worlds/introllevel/!intro_master/cooked/!intro_master.mwld


After that, run the game's CRC32 function on it. This differs from a standard CRC32 function in that the final XOR at the end is not performed. The resulting hash is 0x158EFE17, which is the same asset ID as you find in the game data!

Here's an example from MP3:

Code:
	   90944	0x553C40553CB53184	Y:/cook_rep/characters/space_pirate/cooked/space_pirate_bound.cmdl [c]


Same process as MP1, convert to lowercase (albeit already lowercase in this case) and replace the prefix with a $:

Code:
$/characters/space_pirate/cooked/space_pirate_bound.cmdl


and md5 it, you get this hash:

Code:
EE6F37CFB4400337553C40553CB53184


which is a match!! Strangely enough I have found a couple assets that I cant replicate the hash for, like this font:

Code:
	    5732	0x8E959CB18B3E28C1	Y:/cook_rep/fonts/deface14b_o.rpff [c]


we also havent been able to replicate the property IDs yet, but it is cool finally knowing how the asset ID hashes were created after all this time!!
Edit history:
Aruki: 2018-01-23 09:00:37 pm
Aruki: 2018-01-23 07:11:56 pm
Aruki: 2018-01-22 12:33:20 pm
Some random stuff about asset paths Antidote and I have figured out by guessing and checking the resulting hashes
- AGSC files are in $/sounds/audiogroups/<name>.agsc
- Tweak files are in $/tweaks/cooked/<name>.ctwk
- Characters are generally pretty easy to find, most are in $/characters/<char name>/<character>_bound.<cmdl/cskr/cin>
- ANCS files are in the same folder and are formatted <character>.acs
- ANIM/EVNT filenames generally match the animation names from the ANCS files and have .ani/.evnt extensions
- The SCAN filenames from some actor instance names in the MREA files are indeed the actual filename
- Some of my auto-generated lightmap filenames for various rooms in Ruins/Phen/etc are correct lol. Others are wrong due to being in the wrong order but the general naming scheme is correct.
- Antidote figured out that a lot of the paths from the MP3 prototype build can be matched up with 32-bit MP1/2 hashes by applying CRC32 to them instead of MD5. These were previously impossible to translate so were only useful for MP3/DKCR.
- It should be feasible to bruteforce some filenames (such as textures in the common_textures folders which often have pretty short filenames)

- Chozo Ruins MLVL: $/worlds/ruinworld/!ruinsworld/cooked/!ruinsworld.mwld
- Phendrana Drifts MLVL: $/worlds/iceworld/!iceworld/cooked/!iceworld.mwld
- Tallon Overworld MLVL: $/worlds/overworld/!over_master/cooked/!over_master.mwld
- Phazon Mines MLVL: $/worlds/mines/!mines_master/cooked/!mines_master.mwld
- Magmoor Caverns MLVL: $/worlds/overworld/!lava_master/cooked/!lava_master.mwld (lol)
- Impact Crater MLVL: $/worlds/crater/!crater_master/cooked/!crater_master.mwld
- Olympus MLVL: $/worlds/gf_flagship/!gfship_world/cooked/!gfship_world.mwld
- Norion MLVL: $/worlds/gf_planet/!gfplanet_world/cooked/!gfplanet_world.mwld
- SkyTown Main MLVL: $/worlds/skytown/!skytown_world/cooked/!skytown_world.mwld
- Phaaze MLVL: $/worlds/phaaze/!phaaze_world/cooked/!phaaze_world.mwld
we can replicate property IDs now! It turns out that you have to append the property type to the end of the property name. So for example for the Patterned property called "Mass" you have to hash the string "Massfloat" and the result is 0x75DBB375. Or for EditorProperties you need to hash the string "EditorPropertiesEditorProperties" and the result is 0x255A4580.

this is thanks to Jack Mathews too - he couldn't remember exactly how the property names were formatted but he told me what he thought they probably did, and I managed to get the IDs to match up by going off what he said. So he's pretty dang awesome!!
so the last few days we've been using the new info to determine the real names of tons of properties. I integrated a property name validation system into PWE's property editor, and I also wrote some tools that guess property names by using a list of dictionary words and checking against known property IDs, again all integrated into PWE. Also this makes it actually feasible to start importing the property names from DKCR3D back to the original DKCR, so I've been working on that too. According to Bearborg we have something like 37% of all property names named correctly so far.



I wanna release a new build of PWE with these new tools soon, so hopefully I will have time to keep fleshing them out until I get in all the features I want soon.

Until then, anyone who is interested in Prime hacking I highly recommend you join our discord server. I am trying to keep this thread mostly updated but it's dead here. There is way more stuff happening on Discord.

https://discord.gg/edCR3hd
For those who aren't in discord:
You removed the scan dash? What an unwelcome change...
What the? We didn't remove scan dash, that's demonstrating scandash.