Bregalad wrote:
Your intro have been fixed several times, including once by me, look at romhacking.net
This is the first I've ever heard of anyone fixing it. Why hasn't anyone talked to me about it? Yes, I'm incredibly hard to find, aren't I? *sigh*
http://www.romhacking.net/trans/139/ mentions nothing of the problem, and the only reference I can find is
here. Quoting the readme:
Quote:
The patch for Final Fantasy 2 also fixes the intro so that it work on real hardware (it orininally had glitches in the intro), and make sure the mapper is effectively MMC1 not mapper 2 (it shouldn't hurt if it already way MMC1), because a mapper 2 hack distribution was (and still is) very common, and it's not possible to make a cart out of it. For this reason, it's not recommended applying the PAL fix patch before the english translation because it's not likely to work. But it should work with other translations in various european languages based on this english translation as well (there is plenty of them).
Your fix/patch is highly focused on re-working Square's code to work on PAL consoles, with the "added bonus" of "fixing my intro".
EDIT: I did find another fix-up of some sort
here, released in 2006. I don't know who Parasyte is or what was truly changed, other than what the readme says (which includes other changes as well). I haven't looked at the IPS to work out the differences between what Demi released and what the patched version does.
Bregalad wrote:
The error was that you did writes to $2006 without writing a correct value to $2000, and the wrong nametable was shown when plalette fading, because only $2005 was reset. Another error was that you used $2002 polls to wait VBlank instead of using the reliable NMI waiting routine.
Let's expand on this, because none of the above helps me to the extent that it should.
1) People seem to be intentionally forgetting that this intro was written in late 1997. That means it was based on what the community (that included me at the time) knew 12 years ago. Getting all in-my-face in 2008 is a little ironic, given that the console itself is from 1985 to begin with. :-)
2) You sound outright annoyed by my request; I read what you write and it gets translated into "tons of people have already fixed your fucked up code, you don't know shit, go away". If I'm interpreting that correctly, wonderful -- I don't even know what to say to that, because I've already been down this road with the nesdev community in the past many times over.
3) Since when do you have to write to $2000 before writing to $2006? None of my intro code writes to $2000, and why should it? I have a feeling this circles back to bits #1/#0 of the register (Name Table selection), but again, see Item #1. Please expand on this. Point me to thorough documentation. I wouldn't ask for help if I knew what the problem was.
4) Regarding "only $2005 was reset" -- same comment as #3. This very likely relates to loopy's "skinny on NES scrolling", which further complicates matters. I think I've already stated on this forum a few times now that all the explanations are highly cryptic and that something concise/easy to understand/examples needs to be written before people will truly understand such PPU details. I'll also point out Item #1 again, which is when none of this information was available.
5) Regarding polling $2002 for VBlank status -- yep, I do that, specifically monitoring D7 (VBlank status). The code in question therefore becomes something like this:
Code:
- LDA $2002
BPL -
LDA #$3F
STA $2006
LDA #$09
STA $2006
...further palette modifications (writes to $2007)...
Can you expand on what's wrong with this?
The reason I wrote what I did was because I did not want to have to re-write Square's NMI routine -- given that VBlank lasts a certain number of cycles, I didn't want to risk screwing up their routine and making a mess of the actual game itself. It's difficult enough working with cramped ROM space to begin with.
I can see some mistakes based on what Disch has said in the past, specifically setting $2006 to whatever address first, then writing $0000 to $2005. I say "mistakes" because I think the order you write to the registers affects how the PPU behaves internally (circling back to loopy's skinny on the PPU again, causing me to point out Item #1 again...)