NESDev and Strangulation Records messageboards
Forum Index | FAQ | New User | Login | Search

Previous ThreadView All ThreadsNext ThreadShow in Flat Mode*


SubjectMMC5 can do it  
Posted bybananmos
Posted on9/27/04 6:21 PM
From IP130.236.154.216  



Take this anyway you want, but WTF is wrong with you suggesting there's something wrong with ME trying to point at the obvious fact that most people here claiming to do NES development are NOT DOING SO and are giving NES development a bad name in general.

Look. Compatibility with the system you've developed your software for isn't "good". It's MANDATORY. Commodore 64 software that only runs on a PC is NOT Commodore 64 software. ZX Spectrum software that only runs on a PC is NOT ZX Spectrum software. Game Boy Advanced software that only runs on a PC is NOT Game Boy Advanced software. PlayStation2 software that only runs on a PC is NOT PlayStation2 software. This list could go on forever, but I think you should get my point by now. Namely the fact that NES software that only runs on a PC is ___NOT___ NES software. Is that so fucking hard to grasp?

And yes, of course I'd like to see additional _NES_ PROGRAMMERS. And a NES programmer, by definition, is SOMEONE WHO WRITES SOFTWARE FOR THE NINTENDO ENTERTAINMENT SYSTEM. Thus, I without a doubt prefer 5 people developing working software for the NES to 500 people who develop software that doesn't work at all on a NES. (or any other standardized platform for that matter)

> Software development works through iterative refinement. The usual model for
> freeware for the past 20 years or more has been "get a version at the bare
> minimum of functionality out and release new versions continuously to deal
> with bugs as they occur." It's really quite effective.

Software that doesn't work as intended on the intended system to be point of being unusable DOESN'T HAVE "the bare minimum of functionality". It has NO FUNCTIONALITY.

> Insulting and threatening people because their code doesn't work to standards
> THEY'VE BEEN SYSTEMATICALLY LIED TO ABOUT isn't going to help; providing
> information on what the standards are is more likely to get results.

Excuse me, but just who the hell are you accusing of "systematically lying" to you about standards?!! What kind of SHITTY FUCKED-UP ATTITUDE are you giving us trying to blame OTHER PEOPLE for YOUR OWN FAILURES and UTTER NEGLECTION of making sure your software works on the platform you claim to have written it for?!! It's YOUR OWN damn responsibility to make sure what you've written IS in fact NES software BEFORE you release it as such!

To stop you from whining again, I'll provide you with the one and only standard there is to NES development: you socket a board of your choice and insert either (E)EPROMs or a ROM emulator cable into it. You then insert this board into a NES unit of your choice and press the power button. (the one closest to the red LED) If it works as intended, you just wrote yourself some NES software. If it didn't, you fucked up. And the only one you have to blame for this is YOURSELF.

If you expect some kind of "The Annotated NES Reference Manual" defining the exact results of anything you try to pull off in your code, you're in the wrong business. NO ONE knows exactly how the NES will behave when it runs the code you've written. That's why we TEST IT ON A NES EXTENSIVELY before releasing it as "NES software". We're programmers, not fortune tellers trying to predict the future.

> That said. The NES 101 tutorial was designed to provide semi-cookbook code to
> get all the basic components down, and (with the help of the people in
> #nesdev) was refined from "runs in all known emulators" to "runs on NTSC
> hardware" -- or so I was given to understand, as NES devkits are few and far
> between, and I haven't had the inclination or equipment to create one from
> scratch. PAL software was never tested, and while writing the code I had no
> information available as to the differences between PAL and NTSC. Feel free to
> try it out; source is included and it's generally well commented, so if it
> fails for reasons that are immediately apparent from the code, direct me to
> the issue, and I might even consider fixing it. After all, telling people how
> to do it RIGHT would generally solve your problem rather more neatly, yes?

Good to hear, since "Runs in all known emulators" has about as much value to us as "my mom and dad think it's really cool".

That said, it doesn't seem to work very well on my NES when testing it. (on my SNROM cart, using an autorunning dumping program to get the CHR-ROM in place) The code is obviously running (since I hear the annoying "pling" sounds), but the screen is black. Could be my equipment, but I find it unlikely. It could be that you don't reset the $2006 switch (which defines which of the two bytes you are about to write to $2006/$2005) by reading $2002 at init. Nevertheless, it is strange that you've gotten other results when someone else tested it for you, unless you've modified the source since then. I'll try to check this out at a later time.

I'd also like to inform you that the joypad reading code is somewhat retarded. A far better way to detect single keypresses is to XOR the old joypad byte with the new one. You then AND the result with the new joypad byte to get a byte for 0->1 transitions and AND it with the old one to detect a 1->0 transition. Gives you much cleaner code.

Galaxy Patrol works somewhat, but there are occasional lags in the scrolling as well as occasional flicker of a garbage screen. You are obviously polling $2002 to get the vblank status. This is unreliable and causes the code to miss vblanks every now and then. That's why you should ALWAYS use an NMI handler.

Diffusion Chamber seems to work without any problems AFAICT.

> Unless you think it's your personal due or are otherwise high-handed about it,
> of course, in which case I reserve the right to fix it and then single you out
> for disdain in the acknowledgements.

Go ahead. Make my day.



-
Entire Thread
Subject  Posted byPosted On
*Hall of shame  bananmos9/19/04 10:30 AM
.*Suggestions.  <_Hyde_>9/28/04 7:59 PM
..*OT: Clearing RAM  Anonymous9/28/04 10:11 PM
...*Re: OT: Clearing RAM  Memblers9/28/04 10:42 PM
....*Re: OT: Clearing RAM  beneficii10/27/04 7:31 PM
.....*Re: OT: Clearing RAM  beneficii10/27/04 7:37 PM
......*Re: OT: Clearing RAM  Memblers10/27/04 7:47 PM
.......*Re: OT: Clearing RAM  beneficii10/27/04 7:56 PM
........*Re: OT: Clearing RAM  Memblers10/27/04 8:16 PM
....*Re: OT: Clearing RAM  Anonymous9/28/04 10:56 PM
.....*Re: OT: Clearing RAM  koitsu9/29/04 00:23 AM
......*Re: OT: Clearing RAM  tepples9/29/04 11:07 PM
.......*Re: OT: Clearing RAM  koitsu9/30/04 04:02 AM
.......*Re: OT: Clearing RAM  mcmartin9/30/04 03:19 AM
.....*Re: OT: Clearing RAM  Memblers9/28/04 11:05 PM
..*Re: Suggestions.  mcmartin9/28/04 8:26 PM
...*Re: Suggestions.  Memblers9/28/04 9:33 PM
....*Re: Suggestions.  <_Hyde_>9/28/04 10:08 PM
.....*Re: Suggestions.  Memblers9/28/04 10:38 PM
.*Re: Hall of shame  sepi9/28/04 07:09 AM
.*Re: Hall of shame  deadbody9/27/04 9:39 PM
.*Re: Hall of shame  mcmartin9/27/04 07:50 AM
...MMC5 can do it  bananmos9/27/04 6:21 PM
...*Bug-reports  mcmartin9/28/04 00:21 AM
...*Rant reply here  mcmartin9/28/04 00:15 AM
....*Re: Rant reply here  blargg9/28/04 05:33 AM
.....*Re: Rant reply here  mcmartin9/28/04 06:16 AM
...*Weird  bananmos9/27/04 6:28 PM
....*Re: Weird  koitsu9/28/04 03:21 AM
.*Re: Hall of shame  Fx39/19/04 4:35 PM
..*Re: Hall of shame  loopy9/19/04 8:47 PM
...*Re: Hall of shame  bananmos9/19/04 9:23 PM
.*Re: Hall of shame  bananmos9/19/04 10:56 AM
..*Re: Hall of shame  tepples9/19/04 2:20 PM
...*Re: Hall of shame  bananmos9/19/04 2:23 PM
..*Re: Hall of shame  RoboNes9/19/04 11:25 AM
...*Re: Hall of shame  bananmos9/19/04 12:17 PM
....*Re: Hall of shame  RoboNes9/20/04 2:27 PM
.....*Re: Hall of shame  Anonymous9/20/04 2:36 PM
......*Procedural clarification?  tepples9/20/04 5:02 PM
.......*Re: Procedural clarification?  bananmos9/21/04 00:10 AM
........*A day per compile?  tepples9/21/04 00:53 AM
.........*Re: A day per compile?  bananmos9/22/04 01:10 AM
..........*Re: A day per compile?  beneficii10/27/04 7:19 PM
..........*Multiboot would make NES more accessible  tepples9/22/04 05:59 AM
..........*Re: A day per compile?  blargg9/22/04 05:12 AM
...........*Re: A day per compile?  bananmos9/22/04 09:50 AM
............*Re: A day per compile?  blargg9/22/04 4:35 PM
...........*Re: A day per compile?  koitsu9/22/04 05:59 AM
.........*Re: A day per compile?  quietust9/21/04 03:34 AM
..........*Re: A day per compile?  RoboNes9/21/04 5:59 PM
...........*Re: A day per compile?  Memblers9/21/04 6:48 PM
............*Re: A day per compile?  Drag9/21/04 7:31 PM
.............*Re: A day per compile?  quietust9/21/04 8:57 PM
..............*OT: MMC3 vs 8x16  Nessie9/22/04 1:16 PM
...............*Re: OT: MMC3 vs 8x16  quietust9/22/04 4:22 PM
................*Re: OT: MMC3 vs 8x16  Nessie9/23/04 00:24 AM
..............*Re: A day per compile?  loopy9/21/04 10:20 PM
...............*Re: A day per compile?  Drag9/23/04 00:40 AM
.............*Re: A day per compile?  Drag9/21/04 7:46 PM
.............*Re: A day per compile?  Memblers9/21/04 7:36 PM
..............*Re: A day per compile?  Memblers9/21/04 7:40 PM
.......*Re: Procedural clarification?  Drag9/20/04 9:38 PM
........*Re: Procedural clarification?  bananmos9/21/04 00:12 AM
........*Re: Procedural clarification?  Fx39/20/04 10:05 PM
........*Re: Procedural clarification?  Drag9/20/04 9:40 PM
....*Re: Hall of shame  Memblers9/19/04 1:33 PM
.....*Re: Hall of shame  koitsu9/19/04 9:07 PM
......*Re: Hall of shame  bananmos9/19/04 9:33 PM
.......*Re: Hall of shame  koitsu9/19/04 9:49 PM
........*Re: Hall of shame  bananmos9/19/04 10:03 PM
.........*Re: Hall of shame  koitsu9/19/04 10:17 PM
..........*Re: Hall of shame  loopy9/19/04 10:49 PM
..........*Re: Hall of shame  bananmos9/19/04 10:48 PM
Jump to

Memblers' homepage             Contact Me

Forums powered by WWWThreads Demo