oshisama Posted October 19, 2005 Share Posted October 19, 2005 There was a slight problem with anomie's HDMA notes. Specifically, you must set the DoTransfer flag after decrementing NTLRx, otherwise if you have a table entry of $80, two transfers will occur. This fixes the bug in Charlie's stage in SFA2. I also did some tests and verified that enabling HDMA mid-frame does not clear the DoTransfer flag, however the flag is cleared at the start of a new frame (probably during HDMA init). It is possible this flag is cleared at the end of HDMA (V=225/240), but there's no real way to tell. The result is the same either way. The only edge case I can think of is to try enabling overscan at V > 225, and then enabling HDMA and seeing if a transfer occurs or not. I'll do that later. I also fixed a bug with color add/sub, and it fixed both Energy Breaker and the ToP opening battle screen! Finally. That ToP bug annoyed the hell out of me. Energy Breaker seems to work perfectly now, even the world map has zero glitches that I can see. The only problem now is that Final Fantasy: Mystic Quest has an odd glitch with HDMA on the map. Lastly, I finally feel that the accuracy of the emulator is good enough to block VRAM writes outside of vblank. This means a few fan-translated games that won't run on hardware will no longer work in bsnes. On the positive side, it should hopefully fix glitches in a few commercial games such as Peter Pan. I even found a neat quirk. If you write to VRAM at exactly V=0,HC=6, it will write the CPU MDR (open bus value) to VRAM. Hah. Reads/writes to VRAM with the display disabled ($2100.d7 set) always work. When it's clear, then they only work during vblank. They will not work outside of vblank and inside of hblank. Also, reading from VRAM outside of vblank usually returns $00, $01, or $ff. I haven't found the pattern yet. Maybe it's even returning some of the VRAM the PPU is accessing? Who knows. Writes to $2116 update the VRAM read buffer, this won't work either outside of vblank. »» Homepage Link to comment Share on other sites More sharing options...
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!Register a new account
Already have an account? Sign in here.Sign In Now