65/TODO

56 lines
1.5 KiB
Plaintext

1. Implement PPU, APU
a. Graphics
- PPU MEMORY MAP:
$2000 Name table 0 (32x30 tiles)
$23C0 Attribute table 0
$2400 Name table 1 (32x30 tiles)
$27C0 Attribute table 1
$2800 Name table 2 (32x30 tiles)
$2BC0 Attribute table 2
$2C00 Name table 3 (32x30 tiles)
$2FC0 Attribute table 3
$3F00 Image Palette
$3F10 Sprite Palette
- Create 'PPU' hardware with VBLANK period
to sync drawing (to prevent seeing direct
I/O to VRAM
b. Sound
- APU MEMORY MAP:
CHANNELS:
1) $4000 Square 1
2) $4004 Square 2
3) $4008 Triangle
4) $400C Noise
5) $4010 DMC (Delta Modulation Channel)
$4015 Common (Status)
c. Joypad
2. Implement instruction set
a. Pay attention to address modes
- !! Difference in OPC ($LL,x) and ($LL),y
I think the (,x) version is like C "(int8_t*)(LL)[x]" or something
- Zeropage, absolute, immediate value, indirect (X, Y)
- Understand memory mapping for 6502
b. Move/transfer insns
c. Jump/branching insns
d. Arithmetic insns
e. Bitwise/logical insns
3. Create suite of tests
4. Refactor code/build utilities to be more cross-platform/portable
a. Remove dependencies on curses from graphics/audio implementations
-----------------------------------------------------------------------
Useful Links for writing opcodes:
Instruction set: http://wouter.bbcmicro.net/general/6502/6502_opcodes.html
Instruction set: https://www.masswerk.at/6502/6502_instruction_set.html
Addressing modes: http://www.emulator101.com/6502-addressing-modes.html