I'm a Junior CS Student, and as part of our senior year in our program we have to develop a capstone project which is sort of free-form in nature, the professors let you pick it and set your own goals within reason and they let you know how the scale seems as you go. In our Computer Systems class, we are writing a simulator for a toy architecture (Y86-64) and picking it up as we go. Truthfully this systems stuff speaks to me much more than some of the theoretical stuff does, and I think it would be more exciting to work on a serious application than some webdev stuff.
I figured, then, that maybe the next step would to attempt to simulate a z80, and maybe make a really basic GB emulator - nothing super functional, just enough to load a test rom with my teammate. With that in mind, I have some questions - and sorry, truthfully I have not done a ton of research into this, but I'm a year out so my plan was to move forward with that after I got at least some input:
- For those who have dabbled into this, is it even feasible to do granted fairly limited embedded systems knowledge?
- If it is feasible, is one college semester (about 15 weeks) a reasonable time for a team of two to work on it?
- Is the pipelining process for a z80 complex/if we wanted to keep our project smaller-scale could we sacrifice the pipeline and go for a sequential approach or would that just break everything?
- My professor's greatest concern when I approached him with this idea was that he couldn't come up with a way to test our progress off the top of his head. What sort of milestones would be feasible?
- Following that, if we don't have a functioning display draw, how can we implement meaningful debug to ensure that we are progressing comfortably?
- As someone with limited LinAlg knowledge, would it be really difficult to implement the GPU?
- Would it be more reasonable to just go with a more standard z80, or to step down to something else entirely?