Комментарии:
These videos are an amazing resource! Thank you so much. This has already been very helpful.
ОтветитьFor anyone running into the issue of compiling 'wrapper.s' instead of the example file, I could solve it by changing cl65config.json, adding "input" and changing "params" like this:
"input": "wrapper.s",
"params": "--verbose --target nes examples\\01_XandY.s"
I'm guessing that this has something to do with dependencies and the order in which the files are compiled, and there might be a better way to configure it, but it worked for me.
Not here for the gaming stuff but really interesting!
ОтветитьLemme guess: You’re a professional programmer? I’m a CS student taking my first assembly course, for an Atmega16. I LOVE it. Being a big fan of C and HATING courses in Android and .NET, dev, it’s so enriching and fun to mess with hardware. Hardware is the platform! ❤
ОтветитьWhat do i do if it compiles wrapper.s instead of 01_XandY.s
Ответить6502 was also used in slight variations on Atari 2600s and Commodore 64, if you want to program games for those consoles.
ОтветитьWhen doing the run and build for the XandY code, the compiler kept building the wrapper file instead of the XandYs. I configured the default build task to be on the XandYs, although I don't know if that does anything different. Either way, after compiling, it doesn't make a .NES file, it just makes a blank file that can't be used by the emulator. I don't know why it does this.
ОтветитьWhen I run build task on any of the examples, it builds a rom of the wrapper. The key difference is that when you do it it executes the task directly but on my terminal it executes the task in the folder.
Ответитьfor some reason it keeps generating me wrapper file instead of the 01_XandY file, even tho i’ve followed exactly your manipulation
ОтветитьI'm a SMB3 rom hacker and I am very thankful for your instruction on assembly programming. bitwise operations video helped me a lot.
ОтветитьBuild a EFI computer and a CNC lathe with a C64 a fair while back. All with Assembly.
ОтветитьHi just a quick one. I got myself a nes programming course. It teaches 60hz programming, and would like to know how easy or difficult it would be to convert to 50hz has it doesn't teach that. Thanks in advance.
ОтветитьI know this video's kinda old, but when i try to run smth except the hello program, fceux just says "unknown ROM file format". Can anyone help?
Ответитьwhat parameters should i use in the cl65config.json file? the default params dont work and ive tried the ones shown on the github and the files they make dont work with FCEUX.
Ответитьi am GOING to learn 6502 for a SCHOOL PPROJECT in 6 WEEKS. wish me luck, i HOPE its possible
ОтветитьThe 6502 was an amazing CPU in its day, and remains one of the best choices for microcontroller foundations 50 years later. It's architecture and assembly language offer a straightforward path to creating sophisticated apps without high-level languages/compilers. It has a few things that have to be digested, like the difference between indirect-indexed and indexed-indirect modes (also known as indirect-x and indirect-y), but the ability to use either as the situation demands is super power, and permits C-like pointers and pointers to pointers to be easily created in assembly. It's a time-tested chip with utility that extends far beyond the typical useful life of such a complex-purpose unit.
Ответитьafter 30 years of programming sure I know this but it's all about the delivery. That was fun
ОтветитьThis is random and may or may not help someone but I know it’s helped me remember the difference between data and storage. Data comes from the Latin verb do dare which means to give, data is it’s perfect passive participle meaning things having been given. So storage is where you store the things having been known or given 🙂
ОтветитьDo instructions contain the data by itself lie OPCODE and OPERAND ?
Thanks for the series !!!
Great tutorial, very helpful, thanks
ОтветитьOne thing that strikes me right in the nerd feels when I think about programming is: the distinction between code and data is purely conceptual. In the real world, code is just data that works on other data.
Ответитьi know the first thing about 6502 assembly, just not the second thing.
ОтветитьGood stuff. The dev cart magazines got me interested in assembly.
ОтветитьHello, great video ! I wanted to start learning and creating games for NES for a while (more than 1 year) and you made me start, so thanks for being able to break my lazyness xD !
Could you share the code that helps to prevent the grey screen on FCEUX ? I visited some websites but don't really understand if it's due to the emulator, an error in the code or just basic NES functionning.
Also, do you plan on creating a video about the base code of a NES game (explaining VECTORS/HEADER segments, how to display a simple sprite on the screen, etc...) ? I really think it would be helpful, especially from you !
I hope you're having a great day !
I need a 6502 book I think. I have an original book form the 80's that I got for programming my Commodore 64, will it work?
ОтветитьFinally got my dev environment working on my M1 Mac!
ОтветитьI triple dog dare you to talk about self-modifying code.
ОтветитьThank you. I've compiled with `cl65 01_XandY.s --verbose --target nes -o 01_XandY.nes` on Linux and it failed with "Unknown ROM file format". It is great that you have provided DevEnvironmentDemo. I had to add header
.segment "HEADER"
; .byte "NES", $1A ; iNES header identifier
.byte $4E, $45, $53, $1A
.byte 2 ; 2x 16KB PRG code
.segment "VECTORS"
;; When an NMI happens (once per frame if enabled) the label nmi:
.addr 0
;; When the processor first turns on or is reset, it will jump to the label reset:
.addr Main
Without vectors it failed to reach 8000
This was going to be my next question. Thank you so much. I wanted to know more about 6502
ОтветитьI‘d love to watch some of your videos, but getting advertisements literally every 30 seconds. Sorry, this is just too much.
ОтветитьWas good at 6502 back in the 80’s. Very nice limited size instruction set compared to todays CPUs
Ответитьthere are no numbers, only voltages and logic states
computers do not know what a 1 or 0 is only responding to voltage levels.
1 and 0 are for us to understand the voltages...
Nice shirt!
ОтветитьFCEUX says that it is not a valid rom.
.export Main
.segment "CODE"
.proc Main
ldx #5
ldy #5
inx
iny
dey
dey
dex
rts
.endproc
cl65config:
{
"executable": "C:\\cc65\\bin\\cl65",
"input": "rind.s",
"params": "--verbose --target nes -o rind.nes"
}
Thank you!!!!!
Wanted to thank you. I am working on a new Zelda 2 Randomizer that uses a different approach to the randomization and I used your videos to help me figure out why certain maps in the game don't respect the level exit data, and I was able to follow a trace and find the code. Using your videos and some 6502 ASM wikis I managed to figure it out. For some reasons maps with a map number greater than 29, ignore the level exits and default to all "go outside" exits. Thanks for the help =).
ОтветитьExcellent video - please make more. I cannot believe only 39k views! You definitely deserve more.
ОтветитьWow, what a channel. Keep going man
Ответитьthank for you video. great class about it.
ОтветитьI suggest Mesen for the NES emulator as it's much more accurate than FCEUX and it also has an excellent debugger.
ОтветитьI'm having some problems on the debbuging phase, i reset the ROM file into de FCEUX and add the breakpoint, but the counter just starts at 0000 address. What can i do?
ОтветитьNo, I'm not feeling comfortable with your head attacking my private space so aggressively.
ОтветитьThis lesson is like an icebreaker, against the ice that around assembly language. Thank you a lot
ОтветитьWhen I try to build the rom, I get the message "no build task to run found".
ОтветитьPlease don't stop this channel 🥺, now I can finally make nes games. I knew programming but never found this content except nesdev which is very complicated to understand
Ответить