Welcome! Log In Create A New Profile

Advanced

Game patching idea?

Posted by SteelSLasher 
Re: Game patching idea?
July 16, 2009 11:33PM
By the way concerning translation stuff, I'm still stuck at reversing bmg files... The ones used by System Menu were easy but can't figure out the ones used by Wiifit and I'm too lazy to try to figure out using replace & test method... any suggestions and findings are welcome..

@Tempus : The idea is great btw, I'd like to contribute considering currently there is no (and possibly will not be any in the near future) games in my native language and I'd like to give a little present to my fellow citizens.
Re: Game patching idea?
July 16, 2009 11:41PM
We need absoultely 0 help with language patching, or actual game modification, translation or anything else. That's what we've been working on for the last few months, and it's almost done! We'd just like to have a patching method with a legal option. That is what we need help with. The FAT code from WiiGator's cBoot2 looks exactly like what we needed, since we already had sector write. now we just need to learn how it works, port it into our code properly, write our interrupt modules and then attach a nice front end. Check out the code up top, the part we need to finish modifying is libproxiios, and then with luck everything will work!

Even if the Metroid guy did do substantial translating, A) the Metroid games were GC ports, and B) Fatal Frame 4 uses unique filetypes which are only vaguely similar to regular Wii formats (with the exception of images, which are modified TPL files... though we didn't learn this until later.)

What this thread is about is not translating games, but the way to load patched files into the game on-the-fly, that's what we're up to here! This is not just for translation, but like I said, could be used for glitch fixes, texture hacks, custom background music, mod scenarios, etc.

WiiPower: Out of curiosity, I'd also like to hear how the boot.dol replacement works. I'm assuming it modifies the apploader? How does it manage to get the file properly from SD? Not necessarily the path we're taking, but if this should somehow not work out well near the end, I'd like to have an alternate route!

I.R.on: Take a look at the code briefly and post if you want to continue. As for the bmg's, if they aren't intelligible after staring at them for a while, load the game with your gecko and find them in memory. Having a list of offsets helps a lot in determining structure, and then values can be easily mapped to formatting and encoding types using your head a little. Keep in mind the Wii uses big endian a lot, but occasionally little endian as well - you'll get there.

Anyone else: take a look at the source code from the last post. If you're interested, message me. I've only been developing on the Wii for 2 months, and 90% has been reverse-engineering file formats, so I'd appreciate expertise - especially if you know about IOS patching for functionality!



Edited 1 time(s). Last edit at 07/16/2009 11:48PM by Tempus.
Re: Game patching idea?
July 17, 2009 12:09AM
I get "Error 403 - Forbidden" for the link you gave for the sources... As for bmg files, actually I figured out the easy one just staring at the files, unfortunately I don't have a usb gecko so can't do memory dumps and such...
Re: Game patching idea?
July 17, 2009 12:15AM
Last link was missing the file name. Oops. New Link: http://zero4.higashinoeden.com/Developer/PatchProxy.zip
Re: Game patching idea?
July 17, 2009 11:35AM
Tempus here's a legal idea,

user puts in disc
loads patcher
patcher checks disc for validity, checks game id for compatibility and available patches
if patches exist continue else exit
check patch details (what is patched, the main.dol, an image or a seperate executable)
if an image is "patched" or updated, use a patched ios to forcefully load that image instead of the one on the disc when the original is requested
if a .dol is to be patched, extract the one of the disc and store it on a device, then patch it (legal since its only a specific resource, done directly via the wii, the disc is still required, no distribution)
to load the updated game, disc is inserted, go to disc channel, patched ios redirects resource loading
if disc channel does not work, use a custom channel

it lacks detail but by lacking detail i was able to make it simple to understand, i know ios patching will be hard but its probably more legal than patching the game iso and then loading it via the usb loader

also, nintendo actually lack programming innovation, the wii concept was designed by satoru and a few other producers, the programmers just the made a system for the ideas

(btw i believe this proves it slightly -> [hackmii.com] if the programmers were "innovative" then would they have not said "hey, maybe we could..." or "maybe that could be..." not dissing nintendo just saying they need changes)
Re: Game patching idea?
July 17, 2009 06:24PM
Except for the dol swapping and loading through the disc channel, yeah that's pretty much what we're doing. We'll load the game through the patching program, because it's well, easier. Because of the way IOS patching works, we're interrupting the calls as they write to memory, so you can't "pre-patch" games before they're loaded. At this time, we have no need to patch dols or any other actual code, simply content. It'd be easy enough to write in yourself though: "Ifends with , do . Else continue as normal". Alternatively, you could ask the PPC frontend itself to nab the resouce from the disc and patch it before the game begins loading, but that would be more difficult for a variety of reasons.
Re: Game patching idea?
July 18, 2009 12:05PM
i suggested we store the patched version to reduce the complications of run-time patching, but from the manner of your post it seems that we cant do that?

Sorry if i am pushy on the pathing thing but from what you have said it seems almost certain it can be done through your work
Re: Game patching idea?
July 18, 2009 03:42PM
It's not that we can't, it's just that it's I don't see the need for it at this time and we'd be more productive to ignore it for now and finish up the core functionality first.
Re: Game patching idea?
July 20, 2009 12:09AM
Quote
SifJar
You're right. But discs cant be patched, and the Wii isnt designed to patch games on the fly, so he suggested that the game could be copied to a storage device (i.e. a hard drive) then the game could be patched there, and the disc is just used to launch it from there.
Pirate loaders already intercept disc access and read the data from another source instead. Patching could work exactly the same, except you'd only redirect for certain regions of certain files, and store only the modified regions on the external device. (Though for efficiency's sake you might just keep it in RAM instead of reading every time.)
Re: Game patching idea?
July 20, 2009 08:31AM
Yeah, that's what we're doing, with slight differences. The RAM is nowhere near big enough to keep more than a very small fix in memory, and if you have a fix that small you might as well just load it with Gecko, which loads values to the RAM anyway!
Re: Game patching idea?
July 20, 2009 07:51PM
Quote
HyperHacker
Pirate loaders already intercept disc access and read the data from another source instead. Patching could work exactly the same, except you'd only redirect for certain regions of certain files, and store only the modified regions on the external device. (Though for efficiency's sake you might just keep it in RAM instead of reading every time.)

Thats what i said!
Re: Game patching idea?
July 21, 2009 12:01PM
Just some extra details:

The occurrence of dol loading is found in most if not all wii games that have several dols to load examples being mortal kombat armageddon, metroid prime wii make and cod3, the technical term for this is IOS Reload.

Games which use non-nintendo hardware may also use this technique, apparently boogie is supposed to be a tri-dol game but i cannot confirm that myself.

IOS Reload can cause problems in homebrew apps



Edited 1 time(s). Last edit at 07/21/2009 06:21PM by Arikado.
Sorry, only registered users may post in this forum.

Click here to login