Ideal developing tool for beginners

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

Post Reply
User avatar
SaucJedi
Posts: 46
Joined: Wed Jul 27, 2005 9:46 am
Location: Spain

Ideal developing tool for beginners

Post by SaucJedi »

I was wondering just now how to start making more than the simple 'paint some tiles on screen' demo on the NES...

I have downloaded several tools and I'm curious about wich one will be the best. My aim is in making a simple game, with a tiled scrolling background, some sprites and one of the sprite acting as the 'weapon' and marking where to shoot... some sort of Operation Wolf VERY cutted down...

This is what I know right now:

-NESHLA: would be my first option. I've read very good things about, but I wonder about the drawbacks of such an approach to NES programming.

-NESASM: The first, if I'm correct. Plain assembler.

-CC64: Targets a lot of old machines, kinda like NESASM

What do you think about them? Add any if you know of others and I will investigate them.

Thanks in advance
Celius
Posts: 2158
Joined: Sun Jun 05, 2005 2:04 pm
Location: Minneapolis, Minnesota, United States
Contact:

Post by Celius »

Well, you'd be best starting out small making crap demos just to get the general idea of things. I switch between Nesasm and Neshla, because Nesasm is a rather simple assembler, and Neshla has alot of macros, but he never lists them all, and you have to go on a wild goose chase just to find out how to do a simple set up in his C style language, when you could just do the easy way in Nesasm, which is code, instead of macros. If you are using windows, you should go to the Nesdev forum, and under the topic "NSA doesn't work...." find the link that tepples posted to his version of NSA, which works on Windows XP. I don't know what NSA on the real site is compatible with, but not XP. anyways.. If you get the Windows one, go to http://k2pts.home.comcast.net/gbaguy/nesasm.net and download his little package, because it includes a program where you can make a pallete, and you need to make one in order to use "name" which was included in tepples thing. You need just to type name, something.chr, something.pal, something.nam, depending on what those files are named, and it will load up. and you can select your pallete and what not, and stick it on the screen. And when you're done, press command s, and command q, and incbin all those files in your code. The site where you get the pallete program, go to day 19, and he shows you how to load those in your code correctly. I'm going to stop talking now.. :)
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Pin Eight NES Tools contains 8name, a clone of NSA.
Guest

Post by Guest »

Guys, here I am once more. For now I have looked at NESHLA and I find it pretty interesting, but still I wonder wich assembler to use for 'normal' (without macros and all) assembly development.

NESASM seems to have drawbacks... CA65 anyone? There is another option? Please, let me know your pros and cons....

Thanks!
User avatar
SaucJedi
Posts: 46
Joined: Wed Jul 27, 2005 9:46 am
Location: Spain

Post by SaucJedi »

OMG... what happens with logging in this site? :shock: The post above is mine.
Celius
Posts: 2158
Joined: Sun Jun 05, 2005 2:04 pm
Location: Minneapolis, Minnesota, United States
Contact:

Post by Celius »

Well, if you're a real newbie, NESASM is the way to go. But I am using Wla-dx right now. It's a little tricky to start with, but once you make your first demo on it, it's really easy to get the hang of. It has more options, and is just a better overall assembler. I suggest that. CA65, I hear many good things about as well, even though I've never used it...
User avatar
SaucJedi
Posts: 46
Joined: Wed Jul 27, 2005 9:46 am
Location: Spain

Post by SaucJedi »

Well, I'm new to NES programming, but not programming in general (assembler included). I understand the basics of 6502 assembler and such.

Wla-dx... I've heard it's hard to install and start using it, but if you think it's worth the offort, I'll look at it. Thanks.

Has any of you used CA65?

What about using C code mixes with assembler? (CC65). I know the NES processor has little horsepower, but for it may be worth to check it. Recently I found a C compiler for ZX Spectrum that allows assembler mixed with the code and it really stands up. Sadly, The Z80 in the Spectrum runs about 4Mhz or so... four times faster than NES...
movax-

Post by movax- »

I don't think NESHLA forces anyone to use macros, especially the ones that come with it - but there there if you want them. I prefer the flag checking done with the do loops over labels and branch codes.
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

I've used CA65 for a while. Only recently I'd written a little test program in C, it compiled and worked once I stopped trying to use functions like printf (I guess the NES library is currently broke or unwritten).

Mixing asm and C should work fine. It's probably best to keep your asm away from the compiler, because it'll try to optimize it. So I'd bring it together during assembly or linking.

Also, a 4MHZ Z80 is probably slower than a 1.79Mhz 6502. Z80 uses a lot of clock cycles, while the 6502 completes many instructions in 2 - 4 clocks. But they're pretty close in speed, it depends on the code.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Keeping it fair and balanced

Post by tepples »

Memblers wrote:Also, a 4MHZ Z80 is probably slower than a 1.79Mhz 6502. Z80 uses a lot of clock cycles, while the 6502 completes many instructions in 2 - 4 clocks.
In defense of Z80:
  • The 6502 uses a two phase clock, while the Z80 uses a one-phase clock. For this and other reasons, in some analyses one can treat a 1.8 MHz 6502 (NES) and a 3.6 MHz Z80 (Sega Master System; Game Gear; ZX Spectrum) as having the same effective clock speed.
  • The Zilog Z80 (used in the Spectrum) has two pages of seven CPU registers each (A, B, C, D, E, H, L), and many of these can be combined to form 16-bit registers. Operations in these are said to be even faster than operations on 6502 zero page.
  • The so-called "GBZ80" (Sharp's 8080 derivative incorporating some Z80 features) doesn't have the second page of registers, but it has a direct page (similar to that of the 6502 or 65C816) located in $FF00-$FFFF, and as on the Atari VCS model 2600, the Game Boy puts most of its I/O registers within this page.
User avatar
SaucJedi
Posts: 46
Joined: Wed Jul 27, 2005 9:46 am
Location: Spain

Post by SaucJedi »

So maybe it's worth a try. I'm thinking more of games with static screens, little or no scrolling backgrounds... Maybe for that kind of things it would be of interest using C with assembler routines in separated files.

The thing that really stops me from going that path is that I don't know enough about the internals to make a guess about how much crap such approach would be.
RoboNes
Posts: 48
Joined: Mon Sep 20, 2004 6:47 am

Post by RoboNes »

movax- wrote:I don't think NESHLA forces anyone to use macros, especially the ones that come with it - but there there if you want them. I prefer the flag checking done with the do loops over labels and branch codes.
true it does't
Post Reply