Writing NES Games! With Assembly!!



I’d like to take you on a stroll down memory lane and dig into the internals of the Nintendo Entertainment System (NES) to figure out how it works. While we’re there, we’ll see how to build a game for the NES using 6502 assembly with the help of a few modern tools. We’ll gain a new respect for ’80s developers and an appreciation for the high-level languages we have today!

EVENT:

!!Con 2017

SPEAKER:

Christian Joudrey

PERMISSIONS:

The original video was published with the Creative Commons Attribution license (reuse allowed).

CREDITS:

Original video source:

Nguồn: https://speakforchange.org/

Xem thêm bài viết khác: https://speakforchange.org/game/


Article Categories:
Game

Comments

  • Neat and all, but I’m at 4.51, and how many times is he going to boast that he’s used to working with “high level language”

    heaintloveu June 28, 2020 3:24 pm Reply
  • Nintendo devs should watch this

    Jack 3G June 28, 2020 3:24 pm Reply
  • Ruby developer that uses a Mac … People please wake-up

    V O June 28, 2020 3:24 pm Reply
  • My parents had zelda in the 80s and zelda.and still have the same games saved feom the 80s so it lasts

    christian monturano II June 28, 2020 3:24 pm Reply
  • i saw the first slide and secretly hoped that the whole slideshow was gonna be played off an NES

    Fopenplop June 28, 2020 3:24 pm Reply
  • Can I program nes games with python?

    Azoz054 alothman June 28, 2020 3:24 pm Reply
  • Lot of respect for what so many developers had to go through and work around to get a game out for what sometimes may not been considered by many to be a good game.

    Unusual Post June 28, 2020 3:24 pm Reply
  • Currently studying for my exams (one of the core subjects is assembly). Next semester we are writing a big project in assembly. Seeing you excited about the process makes me excited as well. Nice video!

    ft pm June 28, 2020 3:24 pm Reply
  • Very simple binary format — NO.

    Usam June 28, 2020 3:24 pm Reply
  • Merry-o

    Joseph Wagner June 28, 2020 3:24 pm Reply
  • I'm trying to do this with CrystalTile2 and HxD, but I can't seem to understand how to set the address that is the start of the actual program. I also can't seem to get the CHR ROM in the right area, which is also weird, especially because I have looked at many many ROMs with CrystalTile2 and they seem to be in the same place my CHR is. I would really appreciate help from anyone. (I am not paying 30 USD for an activation code for NESMaker. That is ridiculous.)

    Edit: I just copied the first three hundred bytes of code from Super Mario Bros to my nesgame.nes file, and deleted instructions (replace them with zeroes) until the game looped the stack. Then I would add the instruction that made it work from there. I changed the palette by first stopping the rendering system, putting in the palette address 3f00-3f1f in PPU_ADDR and stored the data I want at the address at PPU_DATA. Then I turned rendering back on, and it wasn't a 'blank' screen, it was a 'black' screen. nesdev helped me figure out the names of the ppu registers. Also you can use PPU_ADDR and PPU_DATA to change anything in the ppu ;).

    6502.org/tutorials/6502opcodes gives you the hex values for every instruction.

    First milestone 😀

    Guinea Pig Gaming June 28, 2020 3:24 pm Reply
  • "Turns out" this video was good!

    R69NiX June 28, 2020 3:24 pm Reply
  • Awesome! It really helped me get my head around it! Thank you!!

    teskio999 June 28, 2020 3:24 pm Reply
  • mairio

    Sam vz June 28, 2020 3:24 pm Reply
  • No… My battery on my Zelda cartridge works fine in 2019. My saves are working since the 80's.

    Steve Lalancette June 28, 2020 3:24 pm Reply
  • same story happen to me once lol

    T R June 28, 2020 3:24 pm Reply
  • Says Aboot and then says he's from Canada. That's the definition of redundancy!

    Bonzi Buddy June 28, 2020 3:24 pm Reply
  • …. Marryo??

    Logan Harris June 28, 2020 3:24 pm Reply
  • Did he claim it was hard to find NES or 6502 documentation? Lol ok.

    tr br June 28, 2020 3:24 pm Reply
  • Hey Chris ! nice video! MTL represent 😉
    What would be the steps to achieve a remake of Little Samson game on a NES cartridge.
    Is there any tutorials on how to think graphics and animations for NES games?
    In 2 years I would like to show the world a game of mine… any cues and clues?

    Vincent Dagenais June 28, 2020 3:24 pm Reply
  • Is it normal?.., euhmm depends, if you’re a commodore geek, you’d be like…

    LDA #$00
    STA $D020
    STA $D021

    LDA #$20
    clear:
    LDX #$00
    STA $0400,X
    STA $0500,X
    STA $0600,X
    STA $0700,X
    DNE loop

    LDA #$71
    STA $0400

    And that’s after 30 years 🙂

    Raymond Doetjes June 28, 2020 3:24 pm Reply
  • Wow sublime

    Leonardo Gsperin June 28, 2020 3:24 pm Reply
  • She : He might be thinking about me.

    He: How the heck this Nintendo works?

    Amritesh Ganiger June 28, 2020 3:24 pm Reply
  • 8:13 If the NES only uses 8 bits for button press data how does the zapper work?

    Bloody Pommel Studios June 28, 2020 3:24 pm Reply
  • Did he ever open source his work?

    ohnoitschris June 28, 2020 3:24 pm Reply
  • Great video, thanks for sharing.

    Frank Aiello June 28, 2020 3:24 pm Reply
  • You seem like a good guy good luck mate. Also I would like to thank you because I started a course about game development in LUA about a year ago and had to stop for whatever reason and after seeing this video I embarked on the course again.

    ziad sherif June 28, 2020 3:24 pm Reply
  • Mary-oh?

    thriwren June 28, 2020 3:24 pm Reply
  • I’m still learning python. Just made sublime text work with python 3.7 great day

    james88 June 28, 2020 3:24 pm Reply
  • dude is a legwnd. i want to be like you somwday im a 2nd year computer sci student

    Levi Ackerman June 28, 2020 3:24 pm Reply
  • Hard to watch.

    g00glian0 June 28, 2020 3:24 pm Reply
  • This guys is an inspiration. Humble and enthusiastic! Well done!

    Peter Suwara June 28, 2020 3:24 pm Reply
  • I don't understand why this is so impressive. It's not like we just stumbled upon Nintendo games buried in some ancient tomb with no idea how they got there or work. Shouldn't all this stuff be common knowledge in gaming / programming / etc. worlds?

    Rufus Slothkowski June 28, 2020 3:24 pm Reply
  • Watching brogrammers be mindblown by the fact that people actually used to need to understand how computers worked to write software. Good thing that these days we have heaps of RAM and more CPU cycles than you can shake a stick at. God forbid an iphone developer actually need to consider trivial things like memory allocation.

    David Herscher June 28, 2020 3:24 pm Reply
  • Ha, I also found that go project before getting here. Go is great

    Alex Morais June 28, 2020 3:24 pm Reply

Leave a Comment

Your email address will not be published. Required fields are marked *