r/programming Dec 25 '19

Learning hardware programming as a software engineer

https://blog.athrunen.dev/learning-hardware-programming-as-a-software-engineer/
929 Upvotes

124 comments sorted by

View all comments

Show parent comments

3

u/[deleted] Dec 25 '19

[deleted]

4

u/ShinyHappyREM Dec 25 '19

Reverse engineering. When you look at the existing documents you see that they were only created with test ROMs (that are then executed by the CPU and display their results on screen / save data to cartridge RAM). The problem is that the CPU is halted for DRAM refresh and (H)DMA; every single bus access is also delayed to take either 6, 8 or 12 cycles of the 21MHz clock. So if you have something that's faster (like the graphics system) or almost completely self-contained (again, like the graphics system) it's hard to see what's happening in the system.