This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Artificial Blank - How can it be done.

Artificial Blank - How can it be done.
by on (#40554)
Original Post:
__________________________________________
I wanted to have 2 Sprite RAM addresses together with IRQ split on the Status Bar, But I need this to apply to a project of mine (Super Mario Bros. hack)

I have doppleganger's SMB disassembly as a reference

It could require 2 Sprite 0 placements, I do not know if it is true!

__________________________________________

EDIT: That is not actually the case anymore, It requires an Artificial Blanking, Whatever that means, Please point it out to me. (It involves the PPU)

by on (#40557)
I don't understand fully what you're trying to do but that doesn't sound really possible. It is possible to do 2 times sprite DMA in a frame only if you create an artificial blanking area and have enough RAM for that, which is not likely to be the case.

Why is there so many people coming asking crazy things to make SMB hacks ?

by on (#40558)
It's because they have no idea what they are doing or talking about but they want to try to use us to do their ideas that they seem to think are possible. Or maybe they want to make us think they are smart or something. Who knows. But Hamtaro frequently asks out of this world questions.

by on (#40563)
Bregalad wrote:
I don't understand fully what you're trying to do but that doesn't sound really possible. It is possible to do 2 times sprite DMA in a frame only if you create an artificial blanking area and have enough RAM for that, which is not likely to be the case.

Why is there so many people coming asking crazy things to make SMB hacks ?


Oh, That is what I missed, But how do you really create an Artificial Blanking area? I know it involves the PPU, But there is no way I can make a assembly routine unless you can try to point me on how to do an Artificial Blank.

Note that I am using WRAM area $6000-$60FF as SpriteRAM part 2. So It is practically enough space.

by on (#40566)
Bregalad wrote:
Why is there so many people coming asking crazy things to make SMB hacks ?

There's just one, really.

by on (#40567)
Hamtaro126 wrote:
how do you really create an Artificial Blanking area? I know it involves the PPU, But there is no way I can make a assembly routine unless you can try to point me on how to do an Artificial Blank.

There's no way to turn the TV's electron beam off as it does during vertical blanking interval. The closest you can do is display a black scanline.

by on (#40569)
BMF54123 wrote:
Bregalad wrote:
Why is there so many people coming asking crazy things to make SMB hacks ?

There's just one, really.


This is exactly what I was going to say.

by on (#40676)
I suspect what is he asking is about doing a split screen effect.

You can use sprite 0 to do this for one split. I think he wants two.

So what I think he wants to do is that after that first hit occurs, clear the sprite 0 hit bit, set a new location for sprite 0 (through DMA or the gbaguy way with writes to $2004), and wait for it to be hit again.

As far as I know, this cannot be done. And even if it could, you'd be writing to PPU memory during the drawing period which probably wouldnt behave too well.

Al

by on (#40716)
Hamtaro126 wrote:
Bregalad wrote:
It is possible to do 2 times sprite DMA in a frame only if you create an artificial blanking area

But how do you really create an Artificial Blanking area?

Code:
  ; Turn off rendering
  lda #0
  sta PPUMASK

  ; Omitted: do other stuff

  ; Turn rendering back on
  lda #$1E
  sta PPUMASK

But if you really want to blank the screen to rewrite OAM, you'll need enough RAM to hold both 256-byte display lists. This will likely mean using a cart board that puts RAM at $6000-$7FFF.