This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

new nesasm tutorial

new nesasm tutorial
by on (#73191)
Hi,

I reworked the patater.com nesasm tutorial to make it more compact
and more readily for programming the nes. In short, it has a few extra tips for
the patater nesasm tutorial.

This is work in progress, comments are welcome.

Love,
E.
new nesasm tutorial - the site
by on (#73192)
http://soft.vub.ac.be/~jceuppen/games/nes/nesjazz.html

by on (#73248)
What's the demo do? It seems okay, but the demo source should be cleaned up. Turn the PPU off until you load your pallets and background, then turn it on. Also, using sprites in the common area of $200 might be good idea instad of $00, because $00 can be used for a better application then sprites, like variable storage and zero-page operations and just stuff along those lines. :)
demo
by on (#73380)
The demo shows how to make a game ; you can move a player tile with the arrow keys. The sprite palette can be changed in-ROM with Tile layer pro.

Love,
erana

by on (#73386)
I am talking about the code its self, it's very dirty and doesn't do stuff in a good order, which may cause glitches. Also, my ROM doesn't run on even FCEUXD as far as I can tell. :/

by on (#73392)
No offense, but based on the code and the tools, this tutorial looks very 1999, which is not a good thing.

by on (#73393)
Snakedemo doesn't work at all, not even in Nesticle.

by on (#73407)
3gengames wrote:
I am talking about the code its self, it's very dirty and doesn't do stuff in a good order, which may cause glitches. Also, my ROM doesn't run on even FCEUXD as far as I can tell. :/


The page tells you to use the iNES emulator. The code is well-documented in the sense that you edit the hex numbers to choose a ttile from a tile palette not just some sprites or a real palette. Then you can also edit the button presses to make
a simple game a la snake. That's all.

E.

by on (#73408)
Dwedit wrote:
Snakedemo doesn't work at all, not even in Nesticle.


The page mentions it works in the iNES emulator.

by on (#73410)
Odds are it doesn't work on a console though, which it might as well not work in anything. You can have your Pallet easy to edit, fine. But it's the main code though: it's really messy, doesn't work, and also doesn't follow good programming practice in any way really. Also, turn off the screen when writing pallets and to the background, and the PPU in general. It takes less time to access it and is the right way to do it. That's just one of many things that need changed. More compact code isn't good if it doesn't work.


On a side not, I think we can now put iNES on the list of "Don't test on this emulator!" list. :wink:

by on (#73415)
3gengames wrote:
Odds are it doesn't work on a console though, which it might as well not work in anything. You can have your Pallet easy to edit, fine. But it's the main code though: it's really messy, doesn't work, and also doesn't follow good programming practice in any way really. Also, turn off the screen when writing pallets and to the background, and the PPU in general. It takes less time to access it and is the right way to do it. That's just one of many things that need changed. More compact code isn't good if it doesn't work.


On a side not, I think we can now put iNES on the list of "Don't test on this emulator!" list. :wink:


Well the tile palette trick works anyhow , never mind the emulalor ;-)

by on (#73417)
No, it doesn't work. That emulator allows it, but anything close to accurate will fail.

by on (#73422)
3gengames wrote:
No, it doesn't work. That emulator allows it, but anything close to accurate will fail.


Yes I know, it's called DWIM...

by on (#73423)
erana wrote:
3gengames wrote:
No, it doesn't work. That emulator allows it, but anything close to accurate will fail.


Yes I know, it's called DWIM...


Then DOES it work?

by on (#73429)
Dwedit wrote:
Snakedemo doesn't work at all, not even in Nesticle.


*sarcasm mode on*
- If it doesn't work in NESticle, it doesn't work in the NES too.
*sarcasm mode off*

by on (#73432)
Zepper wrote:
Dwedit wrote:
Snakedemo doesn't work at all, not even in Nesticle.


*sarcasm mode on*
- If it does work in NESticle, it will work in the NES too.
*sarcasm mode off*



Fixed. ;)

by on (#73436)
Isn't iNES badly outdated and not free? Why would anyone use such an emulator?

by on (#73439)
Image

by on (#73442)
Apparently, the Mac OS 9 version of INes was free and didn't suck as much, it was the best around until GrayBox and RockNES came out for the mac.
Re: new nesasm tutorial
by on (#73452)
erana wrote:
I reworked the patater.com nesasm tutorial to make it more compact
and more readily for programming the nes.


I think this is the problem. I checked the patater.com nesasm tutorial and it's the one written by GbaGuy.

by on (#73459)
I wonder what would happen if someone who actually knew the NES were to go down gbaguy's tutorial and rewrite it line by line. Should I try fixing it, or would it be a waste of time?

by on (#73461)
tepples wrote:
I wonder what would happen if someone who actually knew the NES were to go down gbaguy's tutorial and rewrite it line by line. Should I try fixing it, or would it be a waste of time?

Maybe you should... For some reason, a lot of NES tutorials are written by newbies who still don't know much.

On the other hand, a lot of the effort we put into fixing things that are wrong in this community goes to waste, because it's often hard to get the exposure necessary to erase the older material from existence.

by on (#73464)
Waste of time, good tutorials already exist like Nerdy Nights on nintendoage.com. People just find and use the craptastic ones instead.

by on (#73465)
Oh yeah, I had forgotten about Nerdy Nights... About people still using the craptastic ones even though good ones exist, that's what I meant when I said it's hard to get enough exposure to overshadow the inaccurate tutorials.

by on (#73490)
What needs to be written is a tutorial for writing a simple game like tet...falling blocks or arcanoid. NerdyNights is a good enough example to get a solid ground, but the only other one I've found that addresses how you actually set up a game is poorly formatted and uses fun phrases like "my farts smell like tacos" throughout. Sad that it is placed alongside the NerdyNights tutorials which actually comes off professional at least.

by on (#73494)
Programming an actual game is out of the scope of a NES tutorial IMO...

by on (#73501)
tokumaru wrote:
Programming an actual game is out of the scope of a NES tutorial IMO...


I was thinking the same thing. I can't understand anyone elses source code very good, but since I know the ideas around game engines and how to get stuff done within a program, I can still make a pretty good engine without many problems, so I concur with that statement.

by on (#73510)
tokumaru wrote:
Programming an actual game is out of the scope of a NES tutorial IMO...


Yes. Like a car workshop manual teaching you how to drive.

by on (#73512)
I see the utility for several types of tutorials:

1) Basics: Enough to get a meta-sprite on the screen under joypad control, a background that scrolls (simply, one-way moving star-field is fine), and some rudimentary sound. Basic structure of an NMI thread + main game thread.

2) Advanced: How to use the NES platform effectively. Things like splitting arrays of words into two arrays of bytes, music engine, implementing a game that bank-switches (MMC1 or MMC3), how to decide what to put into zero-page and what to leave in normal RAM, making use of BRAM for saved games (checksums, save slots, etc...), multi-directional scrolling, compressed map data (briefly review schemes like SMB1, Metroid, Zelda-1, Crystalis, Dragon Warrior 1-4, Faria, etc...), various physics systems for managing jumps, gravity. Collision detection.

3) Game design theory. Although there is no one right way to design and implement a game, some people get stuck and can't get over the hump from moving a sprite via the joypad to making a usable game engine. So cover things like game object management, when to spawn new objects and clear old ones out (this was discussed on nesdev in a thread a few months ago I thought), creating an event-driven story engine (for games that would use one), etc...

It just seems weird to me to say that new nesdev's would not benefit from anything more than a beginner's tutorial. Even intermediate and advanced developers can benefit from reading the coherent thoughts of others.