Author
|
Topic: NES Horizontal/Vertical mirroring (Read 2190 times)
|
Nightcrawler
Guest
|
|
« Reply #30 on: October 17, 2006, 03:33:52 pm » |
|
Anything else will just never leave the starting gate. Quite frankly, I think that's exactly what we're seeing. Many 'smart 'paper' launch competitive formats have fallen flat on their face. NINJA is the ONLY IPS replacement that has at least gotten a small handful of patches out there NOT made by the format creator. It's the only one that has taken a step out of the starting gate. It's easier when you're the only one designing a format. But collaboration and well planned ideas take time. Not to mention we're both very busy. We shouldn't be rushing a format that's supposed to supercede IPS patches for the next ~10 years. But yeah, NINJA's way ahead of us and does a lot more, and does it now. Use whatever you want, they both roughly accomplish the same goals anyway. Of course. I've heard your reasons before and I've lived them with my own projects. I don't discount your reasoning for delay. But here's the bottom line. It really doesn't matter. What matters is the end result. The patching format just hasn't launched and by the sound of it, won't be complete for a long time. So, perhaps it will be a replacement to NINJA a few years from now. Who knows. But don't be upset because someone says your patching formation hasn't taken off. It's just not done and for very valid reasons, you haven't finished and can't be expected to rush it. But that doesn't change the FACT that it isn't here and therefore can't be considered as a real contender at this time. I feel like you're upset that nobody/D/me is really taking UPS as seriously as you think it should be taken. But you shouldn't be upset about it because it's just not done and has a long ways to go. It's not about picking formats, individuals, or sides. It's about evaluating what's available and NINJA is really it. There's really nothing else at a mature enough stage. I can't change that. So, just continue do your thing and when it's more mature and more widely applicable for/to most platforms, it'll be time to take a good look at UPS.
|
|
|
|
Ryusui
Guest
|
|
« Reply #31 on: October 17, 2006, 04:47:34 pm » |
|
I'm seriously considering releasing all my translation patches in NINJA format. Header issues or no. >_>
|
|
|
|
I.S.T.
Guest
|
|
« Reply #32 on: October 22, 2006, 05:00:57 am » |
|
Anything else will just never leave the starting gate. Quite frankly, I think that's exactly what we're seeing. Many 'smart 'paper' launch competitive formats have fallen flat on their face. NINJA is the ONLY IPS replacement that has at least gotten a small handful of patches out there NOT made by the format creator. It's the only one that has taken a step out of the starting gate. It's easier when you're the only one designing a format. But collaboration and well planned ideas take time. Not to mention we're both very busy. We shouldn't be rushing a format that's supposed to supercede IPS patches for the next ~10 years. But yeah, NINJA's way ahead of us and does a lot more, and does it now. Use whatever you want, they both roughly accomplish the same goals anyway. Of course. I've heard your reasons before and I've lived them with my own projects. I don't discount your reasoning for delay. But here's the bottom line. It really doesn't matter. What matters is the end result. The patching format just hasn't launched and by the sound of it, won't be complete for a long time. So, perhaps it will be a replacement to NINJA a few years from now. Who knows. But don't be upset because someone says your patching formation hasn't taken off. It's just not done and for very valid reasons, you haven't finished and can't be expected to rush it. But that doesn't change the FACT that it isn't here and therefore can't be considered as a real contender at this time. I feel like you're upset that nobody/D/me is really taking UPS as seriously as you think it should be taken. But you shouldn't be upset about it because it's just not done and has a long ways to go. It's not about picking formats, individuals, or sides. It's about evaluating what's available and NINJA is really it. There's really nothing else at a mature enough stage. I can't change that. So, just continue do your thing and when it's more mature and more widely applicable for/to most platforms, it'll be time to take a good look at UPS. He didn't sound upset or anything like that to me...
|
|
|
|
D
Guest
|
|
« Reply #33 on: October 23, 2006, 12:17:35 pm » |
|
I wanted to include UPS in NINJA but I'm having a hard time implementing it (mostly because the explanation about how relative offsets are calculated is a little bit ambiguous in the text). If it gets cleared up further I will include it.
|
|
|
|
byuu
Guest
|
|
« Reply #34 on: October 23, 2006, 04:58:03 pm » |
|
Nah, I'm not upset or anything. As far as adding support to NINJA ... UPS isn't ready yet, we need to define the XML data section at least for raw files before anything can come of this. I don't really like XML much, to be honest. Seems stupid to me to specify both start and end of a string, when a line feed works just fine for that. But, XML is much more common, so it's probably a good idea for me to just suck it up already. This is the pointer support. It basically encodes pointers as relative offsets from the previous change to the current change, and attempts to make them as small as possible without requiring anything too complex to parse. uint ptr_read() { uint len = fgetc(patch.fp); if(len == 0xff) { patch_eof = true; return 0; }
if(len <= 0xf7) { return len; }
len -= 0xf8; uint ptr = 0; for(int i = 0; i < (len + 2); i++) { ptr |= fgetc(patch.fp) << (i << 3); }
ptr += 0xf8; if(len >= 1) { ptr += 0x10000; } if(len >= 2) { ptr += 0x1000000; }
return ptr; }
void ptr_write(uint ptr) { if(ptr <= 0xf7) { fputc(patch.fp, ptr); return; }
ptr -= 0xf8; if(ptr <= 0xffff) { fputc(patch.fp, 0xf8); fputc(patch.fp, ptr); fputc(patch.fp, ptr >> 8); return; }
ptr -= 0x10000; if(ptr <= 0xffffff) { fputc(patch.fp, 0xf9); fputc(patch.fp, ptr); fputc(patch.fp, ptr >> 8); fputc(patch.fp, ptr >> 16); return; }
ptr -= 0x1000000; fputc(patch.fp, 0xfa); fputc(patch.fp, ptr); fputc(patch.fp, ptr >> 8); fputc(patch.fp, ptr >> 16); fputc(patch.fp, ptr >> 24); } That only works with 32-bit files for now, eventually it'll do 64-bit, of course. UPS doesn't support anything above 64-bit, as both myself and Nach have serious doubts that filesizes will grow that big. This isn't "but IPS exceeded 24-bits!" idiocy, either. Each bit is twice the storage, per bit. UPS can literally work on a file one trillion times larger than IPS' internal limit. If that gets exceeded, then holy fuck. Seriously. I'll concede, use NINJA if you have a file that can't be patched with a 64-bit patcher.
|
|
|
|
Aerdan
Guest
|
|
« Reply #35 on: October 23, 2006, 05:38:06 pm » |
|
As far as XML goes: Don't make new tags if you can put the data in an attribute instead. Example: Bad:<note> <from> Aerdan </from> <to> Byuu </to> <subject> XML usage example </subject> <body> This is an example of XML usage. </body> </note> Good:<note> <from name="Aerdan"/> <to name="Byuu"/> <subject> XML usage example </subject> <body> This is an example of XML usage. </body> </note> And if anyone tells you to use only elements, do the world a favour and excise them from the gene pool.
|
|
|
|
byuu
Guest
|
|
« Reply #36 on: October 24, 2006, 03:02:50 am » |
|
You might want to go have a field day with the official W3C tutorial author, then. Anyway, I do like the idea of only having one tag like that, using the / as a single tag terminator. Too bad you have to label attributes. <ups> <info> <author="byuu"/> <website="bla.com"/> <description> No. </description> </info> </ups> Invalid, but sweet. And then it would be the user's choice how to encode info. <author>byuu</author> or <author="byuu">, both having the same effect. Maybe we should intentionally violate the standard, heh. I like breaking rules.
|
|
|
|
Aerdan
Guest
|
|
« Reply #37 on: October 24, 2006, 03:19:36 am » |
|
That'd be better off as: <ups> <author name="byuu" site="bla.com"/> <desc> wiiii... </desc> </ups> [Unless, of course, you plan to put more than a header in, in which case wrap the info in <header> or something, a la (X)HTML.]
|
|
|
|
Nightcrawler
Guest
|
|
« Reply #38 on: October 24, 2006, 09:55:21 am » |
|
Right. You CAN write out a self closing tag like that and it is still XML valid. That should meet your needs better Byuu. You DON'T have to have a start and end tag for everything that way.
|
|
|
|
byuu
Guest
|
|
« Reply #39 on: October 24, 2006, 03:43:50 pm » |
|
According to three highly skilled programmers, they all state that attributes are for describing data, and tags are for printing out the data.
Example:
<author name="byuu"/> Basically says, "Here is information about the author, whose name is byuu... oops. No data found."
<info> <author>byuu</author> </info> Basically says, "Here is information on the UPS patch. The author is byuu."
I don't like it myself, but I'd trust the advice of Bisqwit, Nach and the W3C guy who wrote the official frickin' manual on how to use XML :/
To be brutally honest, I don't like XML at all. I think it's a hideous format.
But, we'll see how things go. Nothing's finalized yet.
|
|
|
|
Aerdan
Guest
|
|
« Reply #40 on: October 24, 2006, 04:49:25 pm » |
|
I just talked to a professional programmer who uses XML on a daily basis; he pretty much took the same stance I did: use elements only when necessary, and otherwuse use attributes.
Note: It is easier to define an attribute in XMLChema than it is to define an element. Also be aware that XMLSchema describes what an attribute/element can contain; DTDs can only tell you that there are attributes and elements.
|
|
|
|
|