Search found 7 matches
- 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...
- 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...
- 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...
- 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_...
- 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...
- 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 ...
- 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...