8080-Emulator/README.md

31 lines
2.3 KiB
Markdown
Raw Normal View History

2024-01-06 19:30:56 +00:00
# 8080-Emulator
2024-01-09 10:27:28 +00:00
This is a 8080-Emulator written in C, built with the help of the website: http://www.emulator101.com/ in order to emulate the space invaders game.
As someone who uses emulators like Dolphin, Citra, RPCS3, Cemu and Yuzu all the time and loves to read the development notes, I decided to build an emulator myself. I like to take things slow, so I opted to emulate one of the earliest processors - the 1974's Intel 8080.
2024-01-09 14:14:56 +00:00
<img title="The 8080-Processor" alt="i8080" src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fhackaday.com%2Fwp-content%2Fuploads%2F2019%2F06%2F8080-sbc-featured.jpg&f=1&nofb=1&ipt=cf315f3913abb46203c8d458013d9b7358435e5b7176642dd186d4fa17bbf176&ipo=images">
2024-01-09 10:27:28 +00:00
## On the Philosophy of Processors
2024-01-09 13:44:33 +00:00
I finally understand how CISC processors work, I've played Turing Complete and built 2 RISC processors in the game and also one in my computer architecture class, but I've never really imagined how CISC-commands look like. It's a different philosophy, though to be honest I still prefer the RISC-architecture even if the machine code turns out to be longer, because beauty is in simplicity and elegance.
2024-01-19 20:49:50 +00:00
## Graphics
2024-01-19 21:29:55 +00:00
This was the most painful thing to implement, as the framebuffer is saved as a bitmap that also needs to be rotated, it took me many tries to get the game display working.
2024-01-19 21:35:27 +00:00
<img title="The 8080-Processor" alt="i8080" src="https://media.discordapp.net/attachments/823874645950201866/1198017748475846676/Attemp3.png?ex=65bd5ff9&is=65aaeaf9&hm=781663486f298df8a593f6938629379be9fb9765d5e518609f34332313057f09&=&format=webp&quality=lossless">
<img title="The 8080-Processor" alt="i8080" src="https://media.discordapp.net/attachments/823874645950201866/1198017748731695215/1fw1cd4tdzcc1.webp?ex=65bd5ff9&is=65aaeaf9&hm=24d5765dd72a94183d95877358568ca4f7515d17b498f85634ca3afeac78f6af&=&format=webp">
<img title="The 8080-Processor" alt="i8080" src="https://media.discordapp.net/attachments/823874645950201866/1198017749105004685/image.png?ex=65bd5ff9&is=65aaeaf9&hm=d9aab03a39cc4dacacfadcd7bf0ebef4d0ebe529f9789c99dc6921e830f9531e&=&format=webp&quality=lossless">
2024-01-19 20:49:50 +00:00
2024-01-09 13:44:33 +00:00
## Current state
2024-01-09 13:44:53 +00:00
- [x] Disassembler
- [x] Understanding the i8080 machine code
- [x] Emulating the i8080
2024-01-14 19:53:53 +00:00
- [x] I/O-functionality
2024-01-09 14:12:49 +00:00
2024-01-09 14:12:36 +00:00
-------diverging from the guide--------
2024-01-09 14:12:49 +00:00
2024-01-19 20:21:50 +00:00
- [x] Graphical display
2024-01-09 13:45:06 +00:00
- [ ] Done :D