Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
0 user currently in General Emulation.
Acmlm's Board - I2 Archive - General Emulation - IPS patching on the fly for N64 emus
  
User name:
Password:
Reply:
 

UserPost
aioria1981
Posts: 112/234
You can use this in the while. It will generate an executable patch based in the orginal and hacked roms (it was originally based in cracking apps, but it can be applied to roms too)
HyperLamer
Posts: 6884/8210
Well it's easy to make up a format. The hard part is making a program to apply - and even moreso create - a patch from it.
spoondiddly
Posts: 15/22
Well, heck, we could come up with a format right and post it here.

start with some fun ASCII word for file extension.

The patcher would have to figure out the original rom format, but the patch header can tell how the data in the patch is swapped.
0 - no swapping
1 - 16 bit swap
2 - 32 bit swap
3 - 64 bit swap
all other values reserved for future use, or just use binary flags along the first nibble.

To accomidate any size file dynamically, each memory address could be preceeded by the length of the address. For example:
03 975420
would place the following data at 975420.

Then the size of the data would use the same format:
02 1000
so the next 1000 bytes are copied to the address given.

end with END in ASCII

It isn't as efficient as IPS, but it would handle any file size given.

-

Come to think of it, you could figure out the swapping if the first chunk of data given was a sample of the file's data from a certain address.
ie: check custom robo's header for given value to determine file swapping
0 0 01 00 04 80371240
first byte:
first nibble: swapping present in patch data
second nibble: swapping of following sample so you know what you're testing
second byte: length of following address
third byte: address of data - 00, or start of file
fourth byte: length of test data
5th - 8th byte: data at location for non-swapped file. By reading the four bytes at the given address and testing against this, file swapping can be determined by the patcher.
Lenophis
Posts: 707/830
Originally posted by HyperHacker
What we really need is a better patching system. IPS can't handle byteswapping or files above 16MB.

And how many times has it been that it "should be done?" Far too many. How about it somebody actually makes one now?
HyperLamer
Posts: 6867/8210
What we really need is a better patching system. IPS can't handle byteswapping or files above 16MB.
spoondiddly
Posts: 14/22
Well it's pretty obvious why this hasn't been implemented yet, concidering you can probably count the number of existing patches on one hand.

However, concidering that a number of programs are popping up that allow image swapping, level addition, and of course the obligatory translations it seems it really should be done sooner rather than later. The oddest thing is that N64 hacking almost completely revolves around editors, so you could really have a stack of patches pile up rather quickly.

It's even odder that it was never even concidered, concidering s/nes emulators have been doing it for years and that all the necessary file manipulation is already executed when the rom image is loaded into ram. On the other hand, there never really was a good reason, was there?

Anyway, excuse the rant. I get like this from time to time.
Acmlm's Board - I2 Archive - General Emulation - IPS patching on the fly for N64 emus


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.021 seconds.