Search found 7 matches

by NewDietCoke248903
Sat Aug 20, 2016 6:00 pm
Forum: NESdev
Topic: What is actually "baked into" the PPU?
Replies: 4
Views: 4733

What is actually "baked into" the PPU?

I was reading over the wikipedia page for the PPU here: https://en.wikipedia.org/wiki/Picture_Processing_Unit And saw these "Key features": 2 kB of external RAM to store tile layout and auxiliary color information for background graphics (commonly referred to as nametables) 256 bytes of in...
by NewDietCoke248903
Sun Sep 06, 2015 11:02 am
Forum: NESemdev
Topic: Struggling to understand the PPU
Replies: 6
Views: 5134

Re: Struggling to understand the PPU

If it's your first emulator, don't insist on getting everything perfect the first time. Make a basic PPU renderer. You'll need to get registers functional so the CPU will manipulate PPU memory so that you have something to actually draw on screen. Once you have that, you can make a basic render for...
by NewDietCoke248903
Sun May 10, 2015 9:34 am
Forum: NESemdev
Topic: PPU and tile rendering confusion
Replies: 1
Views: 1455

PPU and tile rendering confusion

(Note, please correct me if I'm wrong anywhere as I'm trying to reiterate what I read in the wiki) I'm reading through the line-by-line timing (http://wiki.nesdev.com/w/index.php/PPU_rendering) but I'm a little confused interpreting some of the data on there: Four memory accesses need to be performe...
by NewDietCoke248903
Sun Apr 26, 2015 12:15 pm
Forum: NESemdev
Topic: Trying to tackle the PPU and timing
Replies: 7
Views: 5677

Re: Trying to tackle the PPU and timing

Okay -- Would this be a decent algorithm then: void start() { while (1) { execute_cpu(); } } void exec_cpu() { if (cpu_instruction_is_about_to_require_ppu_mem_access()) { execute_ppu(cpu_cycles_executed_before_this_instruction); } .... } void execute_ppu(int cpu_cycles) { catch_up_and_draw_based_on_...
by NewDietCoke248903
Sun Apr 26, 2015 10:07 am
Forum: NESemdev
Topic: Trying to tackle the PPU and timing
Replies: 7
Views: 5677

Re: Trying to tackle the PPU and timing

It actually starts a little earlier than pixel 0, it's cycles 321-336 of the previous scanline that get the first 16 pixels ready. Then cycles 337-340 are garbage fetches that don't matter. Then it's at cycle 0, and it starts outputting pixels it has stored (fine scroll determines which pixels it d...
by NewDietCoke248903
Sun Apr 26, 2015 9:41 am
Forum: NESemdev
Topic: Trying to tackle the PPU and timing
Replies: 7
Views: 5677

Re: Trying to tackle the PPU and timing

1 PPU cycle is 1 pixel. The PPU doesn't read instructions from memory, but it certainly follows an internal sequence of pre-programmed tasks. This page describes what the PPU does on each cycle. Okay -- I read that section on the wiki. I'm a little confused at this (my interpretation from the wiki ...
by NewDietCoke248903
Sun Apr 26, 2015 8:24 am
Forum: NESemdev
Topic: Trying to tackle the PPU and timing
Replies: 7
Views: 5677

Trying to tackle the PPU and timing

I'm writing an NES emulator and I've completed the CPU with cycle timing. I'm now working on the PPU but having an issue trying to grasp how to actually do timing/drawing. The CPU and the PPU have fixed frequencies. The frequency to on the CPU makes sense to me... The CPU executes instructions in me...