Nice! The thing is people, patches will be less likely to be incompatible with your already used patches because you are not overwriting data but just adding some. Too, you can point a free space yourself in your hack wich is very important. The IPS patch didnt do that and when you get used to it youll realise that some patches that never worked togheter will work now. Too, if you have any problems with the patch, you can still open the ASM file to check where you put the code and remove it with Translhextion.
I'm pretty sure someone will make an in-depth tutorial for that.
I guess they remove IPS to save space too.
Sorry, but it may be a while before I can release this. The Windows compilation has errors reading the IPS file, and since you more than likely run Windows, you are SOL. When I made the previous post, I had not yet tried the software on Windows.
If you want me to decompile an IPS file to BINary for you, I would be glad to do so. Just PM me with a link to the file.
About converting BIN to ASM, you will first need to determine whether or not the BIN file contains code. If it does, then you need to download a copy of the SNES Professional ASM Dev Kit, aka SPASM, and open your BIN file up in it. Consult the SPASM help file for more information, as I am too lazy to write a full blown tutorial on SPASM, when what you need is all in the help file.
When you get SPASM to list the code for you, you need to copy this code to a fresh ASM file. Of course this means you nead to understand ASM to be able to copy it correctly.
EDIT: I might put the file on my server (fyarball.kicks-ass.net), and add a Web interface to it. It would return the files Zipped or GZipped.
I've successfully created an IPS->BIN converter, by modifying some of the IPS functions of PHP NINJA, so it dumps each of the IPS records into a new .BINary file (named as it's offset). The converter also supports LunarCut by dumping the cut offset into a plain text file.
Due to IPS's outdated format, the maximum size of an IPS record is 64KB, so 256KB of patch data even all at the same offset would be split up into 4 IPS records. Furthermore, as an example of this madness, I used this converter on Klopenator's "Big Fish Chrisis" and it resulted in 2893 .BINary files.
But, aside from the limitations, this tool can help with the task of converting IPS patches into xkas patches. You can easily tell if a patch is a simple hex edit if it contains only a few files only a few bytes in size.
Currently, NO data whatsoever is modified, just dumped. So you still have to disassemble the code to make an ASM file out of it. I will upload this tool as I can.
Questiopn, that was a very imformative tutorial, but how do we change a .bin file to a .asm file?
What kind of .bin file? .bin is just raw data and could contain anything.
If you mean a 100% code .bin file (Like a Blocktool block), you can grab "SNES Professional ASM Dev Kit" (SPASM) from the tools section. It's fairly easy to use, and has a huge, informative, help file. You can use it to manually disassemble code from ROMs and .BIN files. There is no automatic .BIN to .ASM.
If you mean stuff like GFX to go with your .asm patch, like in a Nintendo Logo Expansion Patch, you don't. You include it with the incbin pseudo opcode, details down the thread.
Smart people call .asm files "Assembler code" and .bin files "binary data".
I agree to making the patches xkas patches and making an xkas tutorial so everyone can use this amazing tool. but for now... to use xkas open command prompt in the same folder as xkas, the patch, and your rom and type: xkas patchname.asm romname.smc or open notepad and type: xkas patchname.asm romname.smc and save it as a .bat file and run it. It's that simple.
Please people stop complaining because IPS is easier to use, more familiar, etc... Smalls is not going to reallow IPS just because of that.
IPS is good for distributing Rom Hacks, (actually, NINJA is better for that, but meh.) while xkas is good for code hacks. The patches section is for code hacks. Stuff like Mattrizzle's and Bouche's music patches should have been submitted as xkas + bin, using the incbin pseudo opcode I said earlier.
Should I make a .BIN to .asm converter??? (not for code, for data)
My guess is yes, it would be Sooooo easy on my part, and could be inserted anywhere.
I read xkas's manual, and found out that it can directly insert BINs via the incbin pseudo opcode. Get a copy of the manual and read it, it will explain the xkas syntax enhancements.
(some asm here)
ORG (where to put the .bin)
(more asm here)
Handy for patches that use external (not in AllGFX.bin) GFX, like the logo expansion patch.
As for a n00b xkas patcher, would still help the n00bs I guess, so I might do one if I feel un-lazy.
xkas is an assembler, it converts ASM code (binary code in the form of text) into something the SNES can read (binary code in the form of binary, how about that!), then applies it to anywhere in the ROM. An xkas patch is just ASM code. 99% of the patches in the patches section are just code tweaks, and people could learn ASM from those patches if they had been submitted as xkas patches. While writing ASM code can be hard, using xkas to patch ROMs with code already written is easy.
IPS patches are just the difference between two files. They are too hard to disassemble, and too easy to create. And often, they cause issues when being applied to already hacked ROMs, causing glitches and screwed ROMs. Because of this, IPS files are perfect for submitting finished hacks as, and who cares if you can't apply it to your hack; they're supposed to be applied to clean ROMs. But for code tweaks, they just cause problems. The patches section is for code tweaks.
You can use xkas for stuff like GFX as well, although it's not the best choice. GFX should be submitted as .BIN files to the GFX section, and music to the music section.
I get this, and think, for the most part, it's a good idea.
But for some patches, straight xkas is impractical. What about patches that contain more than just ASM, like the music patches. Addmusic is great, but SPC's from games sound better than .mml's of the same song.
My solution is that patches should be submitted in a zip file that contains an xkas patch with the ASM and an IPS or BIN for the data. Of course the latter (BIN) would be preferred for the data.
Also, no more "DO NOT PATCH THIS TO YOUR HACK, this is for your playing experience only" patches, Like KPhoenix's Laser Suit, what good is that for hacking SMW if you can't use it in your hack?
And for the sake of the Mushroom Kingdom, fully comment your xkas patches.
This was probably done because a lot of people (including me) submitted IPS patches containing mere hex edits. Hex edits are simple enough to be done through a hex editor, and not through a patch.
Anyway, I'm glad this rule was put in.
Then what dumbshit mod moderated those patches? T_T
I'm against this. Why can't we just have BOTH!?
(Sorry if my BBcode is bad or this site doesn't use it, I didn't read it, naughty me)
I think so too.
Then what dumbshit mod moderated those patches? T_T
Yeah, I don't get it, that's why they're moderated at all, right?
I'm a little short on hacking knowledge, but I wish I could know more. What I figurred from the other comments is that Xkas patches contain some ASM tools and codes that can easily be edited and inserted into a ROM. Because of this, there is a less likely chance that that it will screw up your ROM.
Anyway, I'm not sure if this is a good thing. I'm a newbie, though.\
(This is my first News Comments)
An xkas file is a file containing the raw ASM code to be compiled into the rom (and therefore is eazy to edit)
An ISP file changes data at an offset to a set value, and can be used to install ASM hacks, or just about anything... (Though you can in theroy do the same in xkas)
I'm not good at explaining things though... Sorry if I just confused you more.