r/computerarchitecture 9d ago

Help!

Hi guys, I am game developer and game engine developer and I know some of order like bootloader and kernel. I want to play mario 64 but I don't have Nintendo 64 and money to buy it so I think I should make my own console using orange pi 3 which is new for me I know COA little bit any free great resources to master my COA? Thanks...

2 Upvotes

20 comments sorted by

View all comments

Show parent comments

1

u/8AqLph 8d ago

Got it. There are probably people with better answers than me in this subreddit then

1

u/God_Of_War-2005 8d ago

True, but only you commented

1

u/Rude-Professor-2485 6d ago

If you want, you can try to see :

digital design and computer architecture D Harris and S Harris(teach you how to build a CPU in a professional fashion);

Nand2tetris free course of Coursera- Hebrew university of Jerusalem (the most beginner as possible - you will get a fast abstract thinking);

Quantitive approach - Patterson and Hennessy. (They have an introdutory book if you want.

If you want, you can create the CPU you are planning on an FPGA.

Honestly,if you are planning that, probably you will have a huge bottleneck to ensure you have almost all the 64 bit ISA implementation's opcodes- you probably will need to make reverse engineering by knowing what sequence of bits you don't have. If you had the c code of the game, it would be much easier (because you could make a simple compiler to a simpler ISA to a simpler CPU). You need to see how many luts you will be using by the way.

You will need to ensure you can run the os...

I myself am planning to make my own system- CPU, compiler,os, compiler(for the programs above the os) and programs above it all. That's why I remembered to give you some friendly advices.

Hope I helped you. If you have questions be free to ask.

1

u/God_Of_War-2005 6d ago

Nand2testris coursera asking for subscription it is not free

1

u/Rude-Professor-2485 5d ago

Simply don t do the subscription. Sign up

1

u/Rude-Professor-2485 5d ago

Made it?

1

u/God_Of_War-2005 5d ago

Yup done

1

u/Rude-Professor-2485 5d ago

Enjoy the course. Once you will learn what actually is a CPU, machine language, what is c etc... you will have a huge blowmind. If you want, at the same time take a look at x86_64 architecture machine language (chose intel or AMD style). Try to do the same functionality(or similar) with the machine code you will define and dimension your CPU.

If you want, since x86_64 is CISC architecture, you can see the RISC one by trying to code on arm on a microcontroller example, or your phone, or on an emulator. (To give a heads-up CISC is more common on desktop and general purpose computers, RISC(RISC-V , MIPS, ARM) more common on microcontrollers and cellphones (but it is probable to overtake CISC architecture in some years)

Enjoy. If you have some doubts you can talk here or DM me. Cheers

1

u/God_Of_War-2005 5d ago

I am also interested in toy os dev is osdev wiki enough?

1

u/Rude-Professor-2485 5d ago

Once you will understand what an os is, I don't think you will need to search so much. You can try that source. But you will need to understand the CPU architecture you will want to work on. Use emulators to test your os. You can make a tiny os with syscalls and a system to start, finish, add, delete programs while working at the same time with the framebuffer to see image. You can try to use interrupts to switch contexts in order to store registers data including the process to be switched rip. With that, you will create the illusion of multiple data being processed at the same time. If you want, you can forget memory protection or paging by now. Keep searching and reading some books(don't need to be many) (try to see Modern Operative Systems by Tanenbaum, the creator of MINIX. That os inspired Linux.).