|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
Here's one for ya - the main menu of Rock n' Roll Racing (US) is just a purple screen. The developer logos prior to it are fine - it looks like a palette DMA got missed or something.
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
Shaq Fu is hanging for some reason, but I guess it's related to the sprite OAM stuff...when the game starts to do a DMA to the OAM port the game'll hang for some reason. Indeed a debug trick (by trigger random values to "zero-page" address $84 when it hangs during attract mode) shows the following screen... ...attempting to write more causes graphics artifacts with the (incidentally) sprites...ideas? As for Rock N' Roll Racing, it's definitely un-initialized palette RAM, if you wait an attract cycle it puts the following: EDIT: It does this: GDMA-Ch 3: len: 10000, abus: 7E2200, bbus: 2122, incr: 1, dir: CPU->PPU, type: 0For non-experts: BBUS 0x2122 is the cgram port, cgram size is 0x200 and 0x7e2200 is null data. Pratically these are the DMA params modified by a previous DMA, if I remove the hook-up colors are right (i.e. if I keep the params to be abus = 0x7e2000 and length = 0x200). Still searching for a explaination (timings or a DMA quirk?)
Last edited by Kale; 08/14/09 11:50 PM. Reason: info for Rock 'N Roll Racing
|
|
|
|
Joined: Dec 2005
Posts: 443
Senior Member
|
Senior Member
Joined: Dec 2005
Posts: 443 |
Best way to watch for OAM is *usually* to watch for 544 byte DMA transfers (destination $04, but the 544 has always jummped out at me faster)
I'm thinking it's still going to wind up being a timing issue for Shaq Fu.
Possible lead on the other one (investigating now).
Apparently, Rock n Roll Racing expects DMA to stay in-bank. (Bank wrapping is not at all uncommon on the 65816, see MVN/MVP and several other modes where the top 8 bits of an address are fixed). My best reading of BSNES indicates likewise (the A-bus address only increments a 16-bit address and appends 8 bits for bank). MESS, otoh, uses a 24-bit DMA address.
edit because Kale added stuff: If DMA isn't reset after a DMA, that's what I would expect them to be. Short of DMA from a fixed source. Except for the length. That should be 0 after a transfer.
Edit (I'm stupid): oh. 0x10000 that's probably solved by adding the bank wrap. because the last 0x200 bytes that DMA would write? the palette!
Last edited by Heretical_One; 08/14/09 11:54 PM.
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
Ok, considering that the "param update" is... snes_ram[SNES_DMA_BASE + dma + 2] = abus & 0xff; snes_ram[SNES_DMA_BASE + dma + 3] = (abus >> 8) & 0xff; (i.e. not +4 update) ..indicates that you're right, thanks
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
end of Mode 0 demo. if you look at BSNES, there is a black square passing in front of the strip of stars which is missing in MESS
|
|
|
|
Joined: Apr 2006
Posts: 737 Likes: 1
Senior Member
|
Senior Member
Joined: Apr 2006
Posts: 737 Likes: 1 |
r5439 - Tiny Toon Adventures - Buster Busts Loose (U) At the end of the first level, you get a chance to play a mini-game selectable from a spinning wheel. This wheel still show correctly at times, but not all the time. I notice if I fast forward - it seems to show correctly all the time. Here is an .INP to get you there and through it. SNES .INP for Tiny Tune Adventures - Buster Busts Loose (U)
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
|
|
|
|
Joined: Jun 2008
Posts: 205
Senior Member
|
Senior Member
Joined: Jun 2008
Posts: 205 |
(Now the SNES Test program stars sprites are identical when switches from non interlace to interlace, dunno at the current time how they squeeze in half like bsnes does) If I'm not mistaken, the half-compression is due to enabling OAM interlace. what about the black square moving in front of the stars? It isn't a black square, it's range-tile over. There are too many sprites on the scanline to show all at once, so one ends up not getting rendered. They change the OAM base address to determine which is the FirstSprite, allowing them to cycle through all of them. Support for this goes hand-in-hand with the RTO test in the electronics test, so you can kill two birds with one stone.
|
|
|
2 members (AJR, Bletch),
364
guests, and
5
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,944
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|