Page 1 of 3
A programming newb wants to start
Posted: Tue Jul 07, 2015 9:13 pm
by FireballDragon
Alright, fine. I'll let
this slide... For now.
I love NES games, though I have no idea how to program them. I actually have an NES in my house, along with a Retron 5. I just bought two SNES controllers and started replaying SMRPG. And it's funny how SMRPG is a better Mario RPG than all the Paper Mario games combined. The Mario & Luigi RPGs are pretty good, though. But I don't really like Partners in Time.
Re: Nice Guy
Posted: Tue Jul 07, 2015 9:15 pm
by tepples
FireballDragon wrote:Alright, fine. I'll let this slide... For now.
I love NES games, though I have no idea how to program them.
Even if all you do is play-test
others' projects and offer constructive suggestions, that's fine too. It just looks suspicious when someone signs up and doesn't make an attempt to go on-topic before doing
from otherforums import drama.
Re: Nice Guy
Posted: Tue Jul 07, 2015 9:24 pm
by FireballDragon
To be fair, I had a fleeting interest in NES programming, but I didn't see the need because it's a dead console.
I kinda wanna get into it again, but I wonder if it's any different from Game Maker, because I know how to use that. A little.
Re: Nice Guy
Posted: Tue Jul 07, 2015 10:15 pm
by Drew Sebastino
FireballDragon wrote:I didn't see the need because it's a dead console.
I know it's obviously no longer in production and about 30 years old, but what's your definition of "dead"? You could still always make the game for the NES and have a built in emulator so it can be on steam or whatever.
FireballDragon wrote:I wonder if it's any different from Game Maker, because I know how to use that. A little.
Nicklausw should know. I have no clue about Game Maker. Have you ever programmed in assembly for any CPU architecture?
The exit is coming up very soon.
Ever heard of Loctite?

Re: Nice Guy
Posted: Tue Jul 07, 2015 10:22 pm
by FireballDragon
I have no idea how to program anything from scratch, but from what Google tells me, I apparently need some sort of compiler. Any tools you can list for a complete beginner?
Re: Nice Guy
Posted: Tue Jul 07, 2015 10:29 pm
by Khaz
FireballDragon wrote:I have no idea how to program anything from scratch, but from what Google tells me, I apparently need some sort of compiler. Any tools you can list for a complete beginner?
I'm going to beat Tepples to the punch for once and correct you. You need an assembler, not a compiler. Unless you plan on doing NES programming in C or something... I use WLA DX to do all my SNES assembling. Given how similar 65816 is to 6502, I can only assume WLA does a passable NES assembling as well.
I would like to state for the record that I've been working in assembly for about a year now and I have never been so ecstatic about programming. Java, C++, Python, even Basic occasionally, have all frustrated the hell out of me because they all rely on often poorly-documented methods written by other people, that you need to understand inside and out just to use them. Assembly is BLISS. You take a list of what every instruction does, learn how your special hardware registers work, and then BAM YOU'RE OFF. No more annoyances in the coding process, ever. I don't care if people think it's "obsolete". I say it's superior and I dare someone to prove me wrong.
Oh yeah, and while I'm stating things for the record I'd also like to state that I regret ever requesting this threadsplit, I should have left well enough alone.
Re: Nice Guy
Posted: Tue Jul 07, 2015 10:46 pm
by nicklausw
FireballDragon wrote:I wonder if it's any different from Game Maker, because I know how to use that. A little.
It's very different. No objects or anything like that. There are sprites and a static background, though, I'll tell you that much. XD
Whether you decide to use assembly or C, either way you can use the
cc65 compiler suite or whatever it's called. I always use
asm6 for assembly, though, because it's so much
easier simpler.
Re: Nice Guy
Posted: Tue Jul 07, 2015 10:47 pm
by nicklausw
Khaz wrote:I can only assume WLA does a passable NES assembling as well.
Such isn't entirely true. I tried fixing the 6502 version's reliance on operand hinting, and even though my fix works very well, the pull request hasn't been accepted yet, so. XD
Re: Nice Guy
Posted: Tue Jul 07, 2015 10:48 pm
by FireballDragon
Khaz wrote:FireballDragon wrote:I have no idea how to program anything from scratch, but from what Google tells me, I apparently need some sort of compiler. Any tools you can list for a complete beginner?
I'm going to beat Tepples to the punch for once and correct you. You need an assembler, not a compiler. Unless you plan on doing NES programming in C or something... I use WLA DX to do all my SNES assembling. Given how similar 65816 is to 6502, I can only assume WLA does a passable NES assembling as well.
I would like to state for the record that I've been working in assembly for about a year now and I have never been so ecstatic about programming. Java, C++, Python, even Basic occasionally, have all frustrated the hell out of me because they all rely on often poorly-documented methods written by other people, that you need to understand inside and out just to use them. Assembly is BLISS. You take a list of what every instruction does, learn how your special hardware registers work, and then BAM YOU'RE OFF. No more annoyances in the coding process, ever. I don't care if people think it's "obsolete". I say it's superior and I dare someone to prove me wrong.
Oh yeah, and while I'm stating things for the record I'd also like to state that I regret ever requesting this threadsplit, I should have left well enough alone.
Ah. Well, I'm completely new to this, so I've yet to learn the jargon.
Re: Nice Guy
Posted: Tue Jul 07, 2015 10:57 pm
by Khaz
nicklausw wrote:Khaz wrote:I can only assume WLA does a passable NES assembling as well.
Such isn't entirely true. I tried fixing the 6502 version's reliance on operand hinting, and even though my fix works very well, the pull request hasn't been accepted yet, so. XD
Yeeeah... It is a problem with WLA. It's a really ugly solution but I've just taken to explicitly defining the operand of every single instruction. It comes naturally once you get used to it, but I do hate how it messes up the alignment of the text. And it's a bit annoying that my code is now a mix of fully-hinted sections and not-at-all ones.
I still don't really have any regrets about not switching to ca65. WLA may have some annoying flaws but the language of it in general just makes a lot more sense to me.
FireballDragon wrote:Ah. Well, I'm completely new to this, so I've yet to learn the jargon.
I personally would love to see "assembling" and "compiling" merged into the same word. I acknowledge there's a difference, I just don't think it's an important one. Others disagree.
Re: Nice Guy
Posted: Wed Jul 08, 2015 12:37 am
by FireballDragon
Well then I'm glad we're on the same page. ...Kind of.
Re: Nice Guy
Posted: Wed Jul 08, 2015 1:15 am
by mikaelmoizt
FireballDragon wrote:I have no idea how to program anything from scratch, but from what Google tells me, I apparently need some sort of compiler. Any tools you can list for a complete beginner?
Just my opinion here..
http://skilldrick.github.io/easy6502/ for a quick start learing 6502
Asm6 will do all the assembling.
Windows Notepad or something really simple to write your code into (for starters)
NES Screen Tool for drawing something to put onto screen.
There are also some tutorials here on this forum with code snippets depending on what assembler you want to try out.
Then you have TONS of great resources on the nesdev wiki once you need it.
Re: Nice Guy
Posted: Wed Jul 08, 2015 1:38 am
by nicklausw
mikaelmoizt wrote:There are also some tutorials here on this forum with code snippets depending on what assembler you want to try out.
Imma self-promote real quick. (It's not a tutorial, though, just gives a taste of the assemblers)
Re: Nice Guy
Posted: Wed Jul 08, 2015 5:16 am
by Drew Sebastino
Khaz wrote: I use WLA DX to do all my SNES assembling. Given how similar 65816 is to 6502, I can only assume WLA does a passable NES assembling as well.
Hell no! If he starts of in ca65 (which is a dedicated 6502 assembler,) than the syntax or whatever won't bother him and he won't have to deal with the buggy piece of sh*t that is WLA DX. Although koitsu helped me, I made the switch and I have no regrets.
Also, don't use C.
I know this won't really help though, but I used bazz's tutorials on superfamicom.org to get me started with SNES development. (Which unfortunately use WLA DX, but oh well.) I tried something called "Nerdy Nights" for the NES before I could find anything on the SNES, but I didn't get it at all. Some have found it useful though.
Re: Nice Guy
Posted: Wed Jul 08, 2015 6:51 am
by Khaz
Espozo wrote:Hell no! If he starts of in ca65 (which is a dedicated 6502 assembler,) than the syntax or whatever won't bother him and he won't have to deal with the buggy piece of sh*t that is WLA DX. Although koitsu helped me, I made the switch and I have no regrets.
Also, don't use C.
I know this won't really help though, but I used bazz's tutorials on superfamicom.org to get me started with SNES development. (Which unfortunately use WLA DX, but oh well.) I tried something called "Nerdy Nights" for the NES before I could find anything on the SNES, but I didn't get it at all. Some have found it useful though.
Okay okay... Maybe WLA is a bad idea for 6502, since you don't have to deal with ca65's direct page BS. Still, I believe if someone could just fix WLA's few stupid little bugs and annoyances, it could be the gold standard for 65816. I never gave ca65 a fair chance, true, but several things about it STILL confuse me.
NES is a simpler system so maybe it doesn't matter so much there. In SNES though, the learning curve to get started was so damn vertical I'd say it's worth learning a slightly clunkier language just to be able to make use of the tutorials, and hopefully not get immediately scared off. I believe I read bazz's tutorials all the way through at least 50 times, with reference to koitsu's old documents here and there, before I really understood. Were I a less obsessive-compulsively-driven person, I probably would have given up before I even made anything appear on screen. Once I had the framework set up and could SEE the effects of what I was doing though, everything was suddenly incredibly easy with or without WLA's annoyances.
Personally I think the severe lack of recent SNES developers is largely because most can't get through that first week. I was extremely close to switching to Genesis, myself.
Agree on "Don't code in C" though. Maybe if you want to do Sega work, I know they have some kind of C dev kit available... But I don't think you'll find much help using it for NES/SNES, and it's just by definition going to result in less efficient code. Would be a total waste of time instead of just learning the assembly you have to get to know anyway, imho.