Page 5 of 6

Re: Program GUI Thread

Posted: Tue Nov 25, 2014 2:18 am
by Click16
Yeah its just a simple app, here's a short version of how it works: I get the Hue Saturation and Brightness values from a pixel, I then use those to calculate the color deficiencies hue, and use both the Brightness and Saturation to determine how saturated, dark, and light the color appears, and set the color of the pixel to the new value.

The hardest part about this, is that some of the colors that are 100% saturated for us appear desaturated, or darker when converted. This lead to some issues, but I managed to get most (if not all) of the bugs sorted out.

If any of you were wondering,
Protanopia (Pro - tan - opia) is Long Wavelength cone deficiency. Protanopes can't see see the red component in colors, therefor Cyan appears very light, like sort of off-white, Yellow and green are exactly the same, and purple and blue are hard to distinguish.

Deuteranopia (Due - ter - an - opia) is Medium Wavelength cone deficiency. Deuteranopes can't see the green component in colors.

Tritanopia (Try - tan - opia) is Short Wavelength cone deficiency. Trianopes can't see the blue component in colors.

It was a lot of fun to do research with my friend. Basically every time I test the program, I just ask "Click the button, and tell me if you notice the image change." and after a lot of trial and error, he finally can't tell that the images change. (At least when it's set to protanopia)

Re: Program GUI Thread

Posted: Tue Nov 25, 2014 6:30 am
by NotZachary82
My dad has this

Re: Program GUI Thread

Posted: Sun Nov 30, 2014 2:31 am
by DoorM4n
Click! That is such an awesome app!

Re: Program GUI Thread

Posted: Fri Jan 16, 2015 10:26 pm
by Click16
Decided to just use my free time to make a 2d Overworld game engine. As stated, this more or less an engine, so there isn't much to this other than making these "levels". Its more so just for fun than anything. Not really planning a full game on here, just want to put something together that works.

Oh, also, ignore the Pokémon overworld sprite, it's just a placeholder until I make my own.

Click for full-size images.

Map Maker:
Image

In-game:
Image

Its being programmed in MonoGame which is an Open Source implementation of Microsoft's XNA Framework.

Re: Program GUI Thread

Posted: Sat Jan 17, 2015 8:25 pm
by troymac1ure
I think I made the exact same one in DOS years ago (except I had the tools on the right side). lol. I still have the world map depending on how you save yours :P
Always loved games like these. My actual game made it as far as being able to walk around the map and have others over LAN (IPX I think) walk on the same map. Never got around to building in code for towns or fighting though.

Re: Program GUI Thread

Posted: Sat Jan 17, 2015 10:30 pm
by CaptainPoopface
It looks like Legend of Zelda: A Link to the Past. Classic game. I don't understand the appeal of making a 2D world that will not be used... Just come up with some simple RPG construct. You have to interview everyone in the town to find where the cave is where the old man lives who can tell you where the mystic sword is buried that you must use to chop the enchanted vine that seals the bridge guarded by the angry troll who stands between you and the next castle.

Re: Program GUI Thread

Posted: Tue Jan 27, 2015 2:56 am
by Click16
Well, used a lot of my existing code with Abide to start another project. Its a map builder. I hope to hard code all of the plugins to reduce the risk of error. Thankfully, JacksonCougar's plugins are mapped with padding alignment and max chunk sizes to make rebuilding the meta block easier. But who knows where this will go. I am just trying to get a map to rebuild from the decompiled state for right now.
Image

Re: Program GUI Thread

Posted: Tue Jan 27, 2015 2:22 pm
by JacksonCougar
one of us. one of us.

So how are you planning on decompiling and compiling the maps/assets anyways?
Have you had a look through my old Sunder code that did this stuff? You should take a look at it anyways because it has some useful things you need to make work for the map to load.

All in all it is pretty cool to see others still messing about with this kind of stuff

Re: Program GUI Thread

Posted: Tue Jan 27, 2015 9:23 pm
by Click16
So I am taking advantage of the BinaryFormatter class and creating nicely laid-out serializable classes. Here's what the program does in a nutshell

It creates a solution instance, adds ProjectFileReferences which tells it where to look for the project files. (This is similar to how Visual Studio does it if you ever looked at a solution file as a text doc)

In the project file, I specify an Enum for the Map Type, and compile a list of StringIDs. It loops through each IndexEntry and builds properly mapped meta reference, and checks for raw data blocks. It will create a "holder" for the raw types. It will grab the raw data appropriate for the class, and will grab the instances regardless of being internal or not (I do store the location for the compiler so you don't waste space, but you still have the option of localizing raw for overwriting purposes) All of the reference files store a copy of the original data, so if you fuck something up, or the compiler fails, it will default to the original, or you can revert the file by hand. (An appropriate warning, and an existing backup option is to be implemented)

Image

So I have 2 problems right now, some lengths for the sound raw doesn't make sense, and since "ReadBytes(int length)" takes an int parameter and not an unsigned int or long value some sound raw doesn't get extracted. I'll show an example

Sound Raw Chunk 7
Image

As you can see, that number is way too large to be a positive length (as a signed int32)

Also, I'm not sure how the Unicode stuff is handled... Like say you go to the Unicode Index in hex, how is that stuff read?

Re: Program GUI Thread

Posted: Wed Jan 28, 2015 2:30 am
by Grimdoomer
It looks like you have the offset and size switched. Your offset looks like a size and your size looks like an offset.

Re: Program GUI Thread

Posted: Wed Jan 28, 2015 9:08 am
by JacksonCougar
Grim you should know this one lol... you did make the sound extractor after all. Click there is a 1 bit flag on the size value of the sound raw reference. It is a flag for true == WAV format, I think. So the solution would be to just mask the value to clip the MSBit

As for Unicode there is a reflexive in match globals (it might be in the tag root for all I know too) that has pointers to all the different Unicode tables (languages). These are linked by the unicode collection tag

Re: Program GUI Thread

Posted: Fri Jan 30, 2015 2:27 am
by Grimdoomer
JacksonCougar wrote:Grim you should know this one lol... you did make the sound extractor after all. Click there is a 1 bit flag on the size value of the sound raw reference. It is a flag for true == WAV format, I think. So the solution would be to just mask the value to clip the MSBit

As for Unicode there is a reflexive in match globals (it might be in the tag root for all I know too) that has pointers to all the different Unicode tables (languages). These are linked by the unicode collection tag
OH I completely forgot about the bit(ch). It's been a long time...

Re: Program GUI Thread

Posted: Fri Jan 30, 2015 6:18 pm
by Click16
I'd like to know how you made those moonfish plugins jackson. I am converting them to C# types for building / decompiling. I'm finding the "maxelement" and "padalign" attributes to be infinitely useful :D.

Heres a sample of what one of my plugins looks like in C#
http://pastebin.com/SYUJTzL4

I had to use a handful of XZodia's plugins for the ones you didn't convert, and I would like to know how you got the info such as the pad alignment and max count. Unless you figured all of that through trial and error, but that seems a little insane xD

Re: Program GUI Thread

Posted: Fri Jan 30, 2015 6:40 pm
by XZodia
not sure about pad alignment but max count is from grim's extracted info from guerilla

Re: Program GUI Thread

Posted: Fri Jan 30, 2015 9:09 pm
by JacksonCougar
moonfish has a shitty build system in it for building its tags directly from the guerilla executable. So my plugins are just a variant on that to convert into the entity layout.

Credit where it is due though; its all grim's codebase that made that possible (mangled and mutilated though by me :p)

If you are looking through the moonfish source you'll find the relavent code in the ./Guerilla directory. Some tricks are used to manually convert things from the vista format to the xbox one, but generally most things seem to map out very accurately back and forth. Things get a little hazy when dealing with any tags that are post- or pre- processed

Re: Program GUI Thread

Posted: Tue Feb 10, 2015 3:48 pm
by JacksonCougar
Image

Re: Program GUI Thread

Posted: Tue Feb 10, 2015 4:36 pm
by XZodia
What are you up to?

Re: Program GUI Thread

Posted: Tue Feb 10, 2015 11:51 pm
by JacksonCougar
just doing more work on moonfishy

Re: Program GUI Thread

Posted: Mon Feb 16, 2015 5:21 am
by JacksonCougar
Image
Normal mapping, blending with diffuse map, blending with specular highlight pulled from environment map...
missing detail maps

Image
alpha channel mapped to specular

Re: Program GUI Thread

Posted: Mon Feb 16, 2015 9:08 pm
by XZodia
Snazzy...
Did your write your own shader for that?

Re: Program GUI Thread

Posted: Tue Feb 17, 2015 2:06 am
by JacksonCougar
Yea, I plan on implementing all the shaders in some form. When it comes to actually reversing code from the binaries that's more up Grims alley.

Re: Program GUI Thread

Posted: Tue Feb 17, 2015 4:40 am
by Grimdoomer
I made this. Full size: http://i.imgur.com/WsCme1E.jpg
Image

It loads all the tag layouts from the pc toolset and my layouts from Mutation, and lets me compare them side by side.

Re: Program GUI Thread

Posted: Tue Feb 17, 2015 3:01 pm
by XZodia
Nice syntax highlighter, link please?

Re: Program GUI Thread

Posted: Wed Feb 18, 2015 1:01 am
by Grimdoomer
http://www.codeproject.com/Articles/161 ... ghlighting

It's really good, one of the best custom controls I've ever seen.

Re: Program GUI Thread

Posted: Thu Feb 19, 2015 10:32 pm
by neodos
Awesome stuff guys!