nesdev.com
http://forums.nesdev.com/

2014 NESDev Compo - Guidelines/Rules
http://forums.nesdev.com/viewtopic.php?f=31&t=10748
Page 4 of 8

Author:  lidnariq [ Sat Dec 28, 2013 6:01 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

Punch wrote:
Another thing, I noticed that the emulator mirrors my 16kb bank at the $8000~$BFFF range, that's normal, right?
Yes.

The iNES header format doesn't support files smaller than 16KiB PRG. You could use UNIF instead, but for your purposes there's no real advantage to doing so over padding.

Author:  NESHomebrew [ Wed Jan 01, 2014 7:29 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

FYI, the website has been updated. Everything is a go, good luck. If something doesn't make sense, let me know.

Author:  infiniteneslives [ Fri Jan 03, 2014 2:22 am ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

Looks great! Good job getting everything together and fully announced.

A few minor comments, do with them as you please.

Registration: I'd recommend explaining that it's non-obligatory, and can be done at any point. There is no deadline to register afaik, just a good idea to do it sooner vice later if you're thinking about making a submission so you can stay in the loop.

Quote:
Use of existing tools/libraries/code qualify as long as permission has been granted by the author.
What about open source, openly shared code? So long as licensing requirements are upheld, would it not be okay to use especially things like generic libraries and such? Or if someone took a hello world example, or nerdy nights tutorial do we want to discourage things like that?

Author:  tepples [ Fri Jan 03, 2014 12:39 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

If your library is under a free software license, then the license itself is proof that "permission has been granted by the author". For example, anything copied out of Zap Ruder, such as controller and Zapper reading code, is under the GNU Permissive License.

Author:  Movax12 [ Sat Jan 04, 2014 4:51 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

(Not sure if this is the best place to mention this..)
I would like to, but I don't think I will have time in the coming months to be able to finish/submit my own project. But I would like to offer to help with anyone else's project. Anyone that feels they could use some help with programming please let me know/PM me. I'd be happy to be part of a team.

Author:  SoleGooseProductions [ Sun Jan 05, 2014 7:01 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

infiniteneslives wrote:
What about open source, openly shared code? So long as licensing requirements are upheld, would it not be okay to use especially things like generic libraries and such? Or if someone took a hello world example, or nerdy nights tutorial do we want to discourage things like that?


I would hope not, but an answer to this question would be swell. Many of us, I assume, are coming straight off of the NN and have a majority of our code adaptations invested in it. Thanks for any clarification :)

Author:  blargg [ Fri Jan 10, 2014 10:03 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

I just realized that this might be a perfect place to slip in a serial bootloader. PL2303-based USB-TTL-serial adapters are $2 shipped on eBay and can be wired directly to the controller port. Even if there's no cart RAM, small programs can be developed. If this sounds good, I'll update the spec using my current version and we can figure out the details. It'd be a nifty easter egg feature tucked away into 65 bytes of ROM. And if the contest organizers aren't interested, then maybe it can be slipped into one of the entries :)

Author:  tepples [ Fri Jan 10, 2014 10:27 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

What you could do is enter an 8K app containing the bootloader and instructions for using it.

Author:  blargg [ Fri Jan 10, 2014 11:03 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

I'm not much into gambling/artificial zero-sum situations, and it's less useful if you have to navigate a menu every time to use it. My thought was hold a particular button on the controller while powering up/resetting to invoke it. If code size is an issue I can probably provide a version under 40 bytes, including controller checking code.

Author:  tepples [ Fri Jan 10, 2014 11:43 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

You have a point. Given the whole desktop PC GUI-style theme of the planned menu, I could have this serial bootloader stand in for PXE. Code size is not the issue as much as my own ability to test a transfer. I have an NTSC NES with PowerPak, a Windows 7 PC, and a Linux PC, but no soldering skills.

Author:  NESHomebrew [ Sat Jan 11, 2014 1:25 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

tepples wrote:
You have a point. Given the whole desktop PC GUI-style theme of the planned menu, I could have this serial bootloader stand in for PXE. Code size is not the issue as much as my own ability to test a transfer. I have an NTSC NES with PowerPak, a Windows 7 PC, and a Linux PC, but no soldering skills.

I think this would be an excellent addition. I'm glad Blargg thought of this. It would be nice to have some more useful purposes for the GUI other than just look pretty. For example, it would be cool to have it run some hardware tests on the as the "OS" boots up. You brought up detecting peripherals, this would be a cool place to show "Port 2: Zapper Detected", "NTSC Mode", etc.

Author:  zzo38 [ Sat Jan 11, 2014 4:56 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

blargg wrote:
I just realized that this might be a perfect place to slip in a serial bootloader. PL2303-based USB-TTL-serial adapters are $2 shipped on eBay and can be wired directly to the controller port.
Which bits of which port? I suggest bit3 and/or bit4 of the second port; this way it is compatible with both NES and Famicom. The bootloader program could also include a BIOS of functions (and an ASCII character set loaded by default in CHR RAM) also used by the main menu; then loaded programs can optionally use this feature.

WhatULive4 wrote:
For example, it would be cool to have it run some hardware tests on the as the "OS" boots up. You brought up detecting peripherals, this would be a cool place to show "Port 2: Zapper Detected", "NTSC Mode", etc.
Yes, and perhaps display "Push SELECT for serial bootloader", or "Push gun trigger for serial bootloader" if the Zapper is connected to the first port.

Another question about NESDev Compo in general: If individual programs are extracted for standalone, is the reset vector restored? Is a program allowed to check if the reset vector has been tampered with, and display a "QUIT" option on its menu if so? Would it work?

Author:  tepples [ Sat Jan 11, 2014 5:08 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

zzo38 wrote:
Another question about NESDev Compo in general: If individual programs are extracted for standalone, is the reset vector restored?

Yes. The current builder (designed for NROM games) saves the original reset vector in a table in the ROM and restores it when extracting the ROMs. I plan to make the next generation builder (designed for multiple mappers) at least as careful.

Quote:
Is a program allowed to check if the reset vector has been tampered with, and display a "QUIT" option on its menu if so? Would it work?

It should work. Great idea.

Author:  blargg [ Sat Jan 11, 2014 5:47 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

zzo38 wrote:
blargg wrote:
I just realized that this might be a perfect place to slip in a serial bootloader. PL2303-based USB-TTL-serial adapters are $2 shipped on eBay and can be wired directly to the controller port.
Which bits of which port? I suggest bit3 and/or bit4 of the second port; this way it is compatible with both NES and Famicom. The bootloader program could also include a BIOS of functions (and an ASCII character set loaded by default in CHR RAM) also used by the main menu; then loaded programs can optionally use this feature.

I had it using $4017 bits 4, 2, 1, 0. If I remember correctly (I cannot access all my notes at the moment), bit 0 so you can use a normal NES controller cable, bit 1 if you replace Famicom controller input (or maybe they put input in either), bit 2 is either so you can wire serial to NES internal bus (memblers was going to do this) and possibly on Famicom, and bit 4 is for having two controllers connected and using a modified extension cable for the second port, and maybe also for Famicom. The main danger from more than the minim necessary bits is other hardware that drives them them low when idle.

The bootloader is very minimal, receiving a 256-byte user program to zero-page and checksumming it. Everything else can be done by uploading the appropriate program.

As for invocation, it should be something simple to do with minimal effort. Holding a button on the controller while powering up/resetting is about as minimal as it gets for manual invocation. It should check the controller shortly after reset to avoid having to hold the buttons for more than a moment. It should also check that only the decided-on buttons are held, and no others, to avoid possibility of false triggering if no controller, other controller type, whatever.

Here's what I've got for the bootloader spec and serial cable at the moment, but I haven't looked over it in a while so it may contain minor errors:

Bootloader

Serial cable

I've been using the specified bootloader for a few years, and an earlier variant for many years before that, and it's performed quite well.

Author:  zzo38 [ Sat Jan 11, 2014 8:42 pm ]
Post subject:  Re: 2014 NESDev Compo - Guidelines/Rules

OK, yes I believe that can work.

Page 4 of 8 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/