{"id":28,"date":"2025-02-07T05:35:49","date_gmt":"2025-02-07T05:35:49","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/?p=28"},"modified":"2025-02-07T05:35:49","modified_gmt":"2025-02-07T05:35:49","slug":"tech-stack","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/2025\/02\/07\/tech-stack\/","title":{"rendered":"Tech Stack"},"content":{"rendered":"\n<p>C++ is the main technology I have been learning for the NES emulation project. Before this school term, I had only used C++ a handful of times for niche scenarios, such as computer graphics. So, I always felt that C++ was a daunting language to learn and use. However, after several weeks of development, I&#8217;m starting to really appreciate this famous programming language. I feel like I have a lot of low-level control that is perfect for a project such as this, such as assembly, but it is very similar in syntax to newer high-level languages. The main difference I had to get used to was how you have to write your own Makefile for the compiler to know how to link and compile your code correctly. I am very used to writing Python scripts and pressing play.<\/p>\n\n\n\n<p>Another technology I have been slowly learning is a C++ GUI library called Dear ImGui. This library is very lightweight and easy to implement in existing projects. I am primarily using this library to display the graphical output of our emulator and also as a debugging tool for visually seeing simulated hardware components update in real-time, such as the CPU registers. This is useful and has saved me some development time.<\/p>\n\n\n\n<p>GitHub (and git) are the last main tools used in our project. I have used different version control software for many years, so I feel confident in using this tool to maintain our codebase and work on our project asynchronously. <\/p>\n\n\n\n<p>Overall, my favorite technology I have been using on this project is C++. I think it will be a very useful language for future projects, as it seems most tech stacks have started with some version of C as its base.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C++ is the main technology I have been learning for the NES emulation project. Before this school term, I had only used C++ a handful of times for niche scenarios, such as computer graphics. So, I always felt that C++ was a daunting language to learn and use. However, after several weeks of development, I&#8217;m [&hellip;]<\/p>\n","protected":false},"author":14558,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-28","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/posts\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/users\/14558"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":4,"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/posts\/28\/revisions"}],"predecessor-version":[{"id":32,"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/posts\/28\/revisions\/32"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/media?parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/categories?post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/ethanpilskalns\/wp-json\/wp\/v2\/tags?post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}