Page 1 of 1

Getting started (in 2021)

Posted: Fri Jan 08, 2021 8:48 am
by ludoVIC
Hello to everybody,
I recently started having a look into NES development and I'd like to exchange a couple of impressions.

From what I understood, the first step would be to acquire familiarity with 6205 assembly.
This is doable by following the skilldrick tutorial, as well as appropriate books (done).

Then, one should move on more NES specific material, and here the Nerdy Night guide comes into play.
I am currently at lesson 5 and somehow full of questions, aware that the answers will come through experience.
(no worries, I will not spam here :wink: )

May I ask if I am doing in the "right" way, or is there something important I accidentally skipped?

Re: Getting started (in 2021)

Posted: Fri Jan 08, 2021 4:41 pm
by Pokun
Sounds like you are more prepared to take on Nerdy Nights than I was, so I think you are fine. Nerdy Nights, like every other tutorial, does make certain assumptions that you already understand some things that you might or might not understand. This causes tons of questions for you as you are not sure if you understand everything correctly, or there are some key things that you simply don't understand yet, and just guess to fill the gaps.

What you can do is ask more concretely exactly what part of the tutorial you don't understand in this thread and people will soon answer them. It may help to hear the explanations from different views and different people.

NES programming is actually often surprisingly simple (although there may be a lot of new things to melt when starting out so it may still be overwhelming), so one advice is not to overthink it if you are confused. That's a mistake I often do anyway.

Re: Getting started (in 2021)

Posted: Fri Jan 08, 2021 9:25 pm
by nocash
Also have a look at a NES hardware reference (spam warning: try my own everynes.htm document, for example).
Ie. something that gives an overview about which registers are there, and what are they doing.

Without other docs, tutorials can sound like black magic... why do they want me write that value to that address?
Some things aren't explained at all, or the description is so complicated that it's hard to follow.
(I haven't read the Nerdy Night's tutorial myself, and don't know if that problems could arise there, too)

Re: Getting started (in 2021)

Posted: Sat Jan 09, 2021 1:58 pm
by Quietust
nocash wrote:
Fri Jan 08, 2021 9:25 pm
Also have a look at a NES hardware reference (spam warning: try my own everynes.htm document, for example).
That's not spam - that's on-topic self-promotion, and there's nothing wrong with that.
For further convenience, here's a hyperlink to the relevant section of that document.

Re: Getting started (in 2021)

Posted: Sun Jan 10, 2021 7:42 am
by Pokun
Nocash' documents are great for many systems. The Everynes docs, the Nesdev Wiki and this forum should cover about everything that's known about the Famicom and Nes, and is about all you need besides the tutorial.

Re: Getting started (in 2021)

Posted: Wed Jan 13, 2021 4:21 am
by ludoVIC
Thank you for you answers! I am happy to hear your comments, and I think I'll post some more precise questions soon.

Beyond that, I don't manage to access the suggested links from user "nocash". In my web browser I read the message:

You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Finally, if on the one hand the nesdev wiki seems certainly to be an immense source, on the other hand it looks very hard to follow for a new user. The content is somehow split into too many subsections. I'd prefer came back there only after having acquired a basic overview. To my eyes it seems like a solid reference, but not optimal for the beginner.

Re: Getting started (in 2021)

Posted: Wed Jan 13, 2021 8:25 am
by Pokun
Nocash is moving his hompage I think, so it might not work at the moment. Though the hyperlink worked for me now.

I hear you about the wiki being very technical. It was much worse when I started years ago but has become a bit more newbie friendly lately. It's also something you will get used to as you learn more (and also get used to the technical jargon if you aren't an engineer). Everynes isn't easier to understand either, but it's great when searching for certain details that you can't find anywhere else.

The most important pages in the wiki you can use for reference now are probably these:
CPU address space map - map of the space accessible directly by the CPU
CPU/APU registers - DMA, controller input and audio registers
Controller - how the controllers works
Controller input reading - how to read the controllers
Programmer's PPU reference:
PPU address space map - map of the PPU/VRAM and OAM space, only accessible via the PPU ports
PPU registers - used to control the PPU
OAM - memory for sprite attributes (not part of VRAM)
Pattern table - character/sprite pattern data found in the CHR-ROM/RAM
Nametable - AKA "tilemap" or background "screen"
Nametable attributes - palette numbers for characters in each nametable
Palette - background and sprite palettes

Re: Getting started (in 2021)

Posted: Wed Jan 13, 2021 11:13 am
by tepples
The 403 Forbidden error for is discussed in this topic.

Re: Getting started (in 2021)

Posted: Mon Jan 18, 2021 10:19 am
by ludoVIC
Thank you very much for the clarifications: for having pointed out the most relevant Wiki sections, as well as for the news concerning the website.

I am re-reading the first Chapters of the Nerdy Nights tutorial, and I have to admit to be very satisfied.
At the beginning they seemed more obscure, but I think I am getting into the right direction :D

Re: Getting started (in 2021)

Posted: Mon Jan 18, 2021 10:24 am
by Pokun
Yup that's how it works. As you press on some older stuff starts to make sense when re-reading it.
Keep fighting and good luck!

Re: Getting started (in 2021)

Posted: Wed Jan 20, 2021 9:45 am
by ludoVIC
Thanks, man! :beer: :wink: