It is currently Fri Dec 15, 2017 8:43 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 116 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Author Message
PostPosted: Sat Dec 28, 2013 6:01 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6534
Location: Seattle
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.


Top
 Profile  
 
PostPosted: Wed Jan 01, 2014 7:29 pm 
Offline
Formerly WhatULive4
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 339
FYI, the website has been updated. Everything is a go, good luck. If something doesn't make sense, let me know.


Top
 Profile  
 
PostPosted: Fri Jan 03, 2014 2:22 am 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1941
Location: WhereverIparkIt, USA
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?

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
PostPosted: Fri Jan 03, 2014 12:39 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19348
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
PostPosted: Sat Jan 04, 2014 4:51 pm 
Offline
User avatar

Joined: Sun Jan 02, 2011 11:50 am
Posts: 522
(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.


Top
 Profile  
 
PostPosted: Sun Jan 05, 2014 7:01 pm 
Offline

Joined: Mon Nov 11, 2013 2:23 pm
Posts: 18
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 :)


Top
 Profile  
 
PostPosted: Fri Jan 10, 2014 10:03 pm 
Offline
User avatar

Joined: Mon Sep 27, 2004 8:33 am
Posts: 3715
Location: Central Texas, USA
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 :)


Last edited by blargg on Fri Jan 10, 2014 10:31 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Fri Jan 10, 2014 10:27 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19348
Location: NE Indiana, USA (NTSC)
What you could do is enter an 8K app containing the bootloader and instructions for using it.


Top
 Profile  
 
PostPosted: Fri Jan 10, 2014 11:03 pm 
Offline
User avatar

Joined: Mon Sep 27, 2004 8:33 am
Posts: 3715
Location: Central Texas, USA
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.


Top
 Profile  
 
PostPosted: Fri Jan 10, 2014 11:43 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19348
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
PostPosted: Sat Jan 11, 2014 1:25 pm 
Offline
Formerly WhatULive4
User avatar

Joined: Fri Oct 30, 2009 4:43 am
Posts: 339
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.


Top
 Profile  
 
PostPosted: Sat Jan 11, 2014 4:56 pm 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 941
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?

_________________
.


Top
 Profile  
 
PostPosted: Sat Jan 11, 2014 5:08 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19348
Location: NE Indiana, USA (NTSC)
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.


Top
 Profile  
 
PostPosted: Sat Jan 11, 2014 5:47 pm 
Offline
User avatar

Joined: Mon Sep 27, 2004 8:33 am
Posts: 3715
Location: Central Texas, USA
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.


Top
 Profile  
 
PostPosted: Sat Jan 11, 2014 8:42 pm 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 941
OK, yes I believe that can work.

_________________
.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 116 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group