Hacking [release] Justice - Freedom Wars Un/packer

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
Today I'd like to present a little something I started the other day.

Introduction
For those who don't know me (probly 99%), I was involved a bit when the 3DS homebrew scene first started to bloom. I was also involved in aiding PPSSPP development some time ago. I decided to give a try to the vita scene, so here I am, working on something.

Project information
This tool is made to un/pack EAF containers found in Freedom Wars. I actually started this tool the other day so it is not a fully fleshed out Freedom Wars editor yet, nor is it highly optimised.
I largely am releasing this tool in an early state to gauge interest and potentially help for fleshing this tool out.

The EAF containers seem to encrypt nearly all files in the container with a unique encryption. The magic for these encrypted files is #EMZ. I do not know how to decrypt these, so resources cannot be edited yet. I also don't know how to view running game code on the vita to figure out the decryption process.

Currently this tool will not produce 1:1 outputs with the default Freedom Wars EAFs. There are 2 reasons:

1) I don't know how much padding to produce per contained file. This is OK I think as the game doesn't care as long as positions and sizes are correct. Because I don't know, I didn't use padding when writing the tool (which gives the output a bit of a trim).

2) In original EAFs the first file in the EAF's table of files seems to be the last file in the portion that contains the data for contained files. Otherwise the data is ordered according to the file table. My program orders all data according to the file table. The game doesn't seem to care as long as the position and size is correct.

Download

source: https://github.com/CPkmn/Justice
binaries: check attachments
 

Attachments

  • Justice.rar
    60.2 KB · Views: 284

UsaraKa

Member
Newcomer
Joined
Sep 4, 2016
Messages
5
Trophies
0
Age
35
XP
53
Country
United States
This was the first game that I wanted mods for after Vitamin was released. One of my favorite games for the Vita. Really exciting news that you're working on a way to make that happen. Unfortunately, I don't have any skills to help you out. I'll be rooting for you CollosalPokemon and checking back regularly to see the progress on it. Thank you!
 

Rakidas

Gay Pirate Queen
Member
Joined
Aug 6, 2015
Messages
185
Trophies
0
Location
Australia
XP
597
Country
Ditto what @UsaraKa said :D I wish I weren't such a n00b or I could help this project! So keen to have the possibility of mods for this game, one of my all-time favourite handhelds! :D I'll be keeping a real close eye on this project, and keeping a flame going for FW mods! :D Thanks man :)
 

CollosalPokemon

ばん。。。かい
OP
Member
Joined
Oct 18, 2009
Messages
682
Trophies
0
XP
1,724
Country
United States
How are you going with this project, @CollosalPokemon? Loved the initial release, and really looking forward to the next update :) Keep up the great work! :)

I'll respond with this quote from the first:

I also don't know how to view running game code on the vita to figure out the decryption process.


In other words:
I don't know exactly how to progress from here, other than maybe making the extraction faster (it can be pretty slow, especially for cmn.eaf).
I don't think there's a public vita debugger yet so the decryption process for the files in the EAFs is pretty much completely unknown. I started the project with a thought of possibly gathering help, but that may or may not come.
 

Rakidas

Gay Pirate Queen
Member
Joined
Aug 6, 2015
Messages
185
Trophies
0
Location
Australia
XP
597
Country
Fair enough man :) I hope that help comes. I'm sorry that I don't have the skill/debugging tools to help more! Here's hoping that aid comes soon :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • NinStar @ NinStar:
    there is a plugin that display them on the wii u menu, pretty sure it is enabled by default
  • crafthp434 @ crafthp434:
    so like it doesnt exist
  • crafthp434 @ crafthp434:
    yeah
    ?
  • NinStar @ NinStar:
    it doesn't exist, at least not for aroma
  • crafthp434 @ crafthp434:
    ohhhhh
  • NinStar @ NinStar:
    on tiramisu you can access it by opening mii maker
  • crafthp434 @ crafthp434:
    okay
  • NinStar @ NinStar:
    I don't have a wii u anymore to test it myself, but if homebrews are not visible on the wii u menu I think you can press L + R + minus to open the plugin menu, there should be an option called "homebrews on wii u menu" or something similar
  • crafthp434 @ crafthp434:
    nope
  • crafthp434 @ crafthp434:
    it is L+dpad down+ select
  • crafthp434 @ crafthp434:
    but homebrew is appearing in the home menu btw
  • NinStar @ NinStar:
    yes, now I remember it
  • NinStar @ NinStar:
    then it is working, I also don't like that they did this but it is the only option you have if you are using aroma
  • crafthp434 @ crafthp434:
    i just didint know the homebrew launcher didint exist in aroma
  • crafthp434 @ crafthp434:
    thanks btw
  • Xdqwerty @ Xdqwerty:
    Im downloading fallout 3 goty edition
    +1
  • BigOnYa @ BigOnYa:
    I'm downloading more ram for my hamster pc
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    New hamster PC, with anal operation and BT connectivity!
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, How do I make enemies respawn on gdevelop after
    the player dies?
  • Psionic Roshambo @ Psionic Roshambo:
    Carrying a PC or phone is so old school!
  • Psionic Roshambo @ Psionic Roshambo:
    Squeeze your cheeks twice to answer calls!
  • BigOnYa @ BigOnYa:
    @Xdqwerty you can use a "spawner" function on any object.
    +1
  • BigOnYa @ BigOnYa:
    Or when your player dies, you can say in code, if enemy exists, do nothing, but if enemy does not exist, then create enemy at certain spot. (This would be a pain tho for lots of emeies)
    +1
  • BigOnYa @ BigOnYa:
    Easiest, simple way would be just restart scene, but player would restart from beginning.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, thx in advance
    +1
    Xdqwerty @ Xdqwerty: @BigOnYa, thx in advance +1