Initial stage Atari 2600 VCS Emulator writen in GO.
Horizontal Movement | Vertical Movement |
---|---|
Controller Input | NTSC Palette |
---|---|
Players and Scoreboard | Scoreboard Colors |
---|---|
Background and Playfield | Playfield Reflection |
---|---|
Name | Status |
---|---|
CRT NTSC TV Display | OK |
Graphics: NTSC Color Palette | OK |
Graphics: Background | OK |
Graphics: Playfield | OK |
Graphics: Scoreboard | OK |
Graphics: Scoreboard Player Color | OK |
Graphics: Player 0 and Player 1 | OK |
Graphics: Player Vertical Movement | OK |
Graphics: Player Horizontal Movement | OK |
Graphics: Player Stretch (NUSIZ0 and NUSIZ1) | OK |
Graphics: Player Multiply (NUSIZ0 and NUSIZ1) | OK |
Graphics: Player Inverted (REFP0 and REFP1) | OK |
Controller Input | OK |
Memory page boundary cross detection | OK |
CPU Stack | OK |
Decimal Mode (BCD) | OK |
TIA RO Memory Mirrors (64 bytes) | OK |
TIA RW Memory Mirrors (64 bytes) | OK |
ROM Memory Mirrors | OK |
RAM Memory Mirrors | OK |
RIOT RW Memory Mirrors | OK |
6502 / 6507 CPU Opcodes | OK |
- Timers not working well
- Player are not well centralized (horizontal movement)
- Graphics: Improve P0 and P1 scroll (X and Y)
- Graphics: Ball
- Graphics: Missiles
- Scoreboard value increment for both players
- Scoreboard multi digit
- Sound
- Implement ISB "Opcode"
- Return from Black and White mode has incorrect collors
- Implement TIA Collision Detection: a) CXM0P: D6 - M0-P0: Not started D7 - M0-P1: Not started b) CXM1P: D6 - M1-P1: Not started D7 - M1-P0: Not started c) CXP0FB: D6 - P0–BL: Not started D7 - P0–PF: DONE d) CXP1FB: D6 - P1-BL: Not started D7 - P1-PF: DONE e) CXM0FB: D6 - M0-BL: Not started D7 - M0-PF: Not started f) CXM1FB: D6 - M1-BL: Not started D7 - M1-PF: Not started g) CXBLPF: D6 - ----- D7 - BL-PF: Not started h) CXPPMM: D6 - M0–M1: Not started D7 - P0-P1: DONE
- Key 6: Console Color switch
- Key 7: Console Game Select switch
- Key 8: Console Reset switch
- Key 9: Enable/Disable Debug
- Key 0: Reset emulation
https://www.masswerk.at/6502/6502_instruction_set.html
http://www.obelisk.me.uk/6502/reference.html
https://sites.google.com/site/6502asembly/6502-instruction-set/ror
https://www.atariarchives.org/alp/appendix_1.php
https://problemkaputt.de/2k6specs.htm
https://dwheeler.com/6502/oneelkruns/asm1step.html
http://www.obelisk.me.uk/6502/addressing.html#ABY
http://www.emulator101.com/6502-addressing-modes.html
http://www.obelisk.me.uk/6502/reference.html#CPY
http://www.qotile.net/minidig/docs/tia_color.html
https://www.randomterrain.com/atari-2600-memories-guide-to-cycle-counting.html
http://www.righto.com/2012/12/the-6502-overflow-flag-explained.html
https://www.pagetable.com/?p=410
https://atariage.com/forums/topic/192418-mirrored-memory/?tab=comments#comment-2439795 https://problemkaputt.de/2k6specs.htm#videohttps://problemkaputt.de/2k6specs.htm#memoryandiomap
https://atariage.com/forums/topic/133686-please-explain-riot-timmers/
https://www.atariarchives.org/roots/chapter_6.php
https://pt.slideshare.net/chesterbr/atari-2600programming
https://www.randomterrain.com/atari-2600-memories-tutorial-andrew-davie-01.html#basics
https://dwheeler.com/6502/oneelkruns/asm1step.html
https://gitter.im/pixellib/Lobby?at=5dbc310c10bd4128a19e5608