Newcomer to NES programming

A place for your artistic side. Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

Moderator: Moderators

Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Newcomer to NES programming

Post by Sik »

Vertical mirroring + cutting off lines from the top and the bottom, I presume? But then you need a way to time where the blanking happens, which as far as I know is not that easy without a scanline counter (sprite zero tends to help, but not sure to what extent when you need to do two splits)
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Newcomer to NES programming

Post by tepples »

Cutting 16 lines off only the top is enough, and this can be done by wasting only sprites 1-9.
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: Newcomer to NES programming

Post by Alp »

tokumaru wrote:Clean 8-way scrolling is possible even without extra name tables. It's just a little trickier to code.
2AM post, after several days of not coding. I can write to the nametable data off-screen. To make maps larger. Right. I forgot. I'm still new to this, haha.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Newcomer to NES programming

Post by Sik »

Well yeah, but I figured that most people would prefer to center the visible area instead to look less ugly.
ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: Newcomer to NES programming

Post by ccovell »

Cool game designs so far!

I don't know how they do it, but a lot of music (+ the player) can be squeezed into a small space. Matt Simmonds' song "Empty" is only 512 bytes!

http://csdb.dk/sid/?id=32845
( http://www.last.fm/music/Matt+Simmonds+ ... 2+bytes%29 )
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: Newcomer to NES programming

Post by Alp »

Kasumi wrote:Sprites can be placed arbitrarily, and the two you've got are identical beyond the spacing.
A question, is it at all feasible to split a larger sprite, consisting of 8x8 pieces into the CHR, and shift the tiles to save space, then apply pixel offsets when drawing the sprite? I can't recall if any of the 200+ NES action games have done anything like this.

It would certainly save a good chunk of room with a run cycle I'm working on!
Note: Her gun-holding arm has already been split off, and optimized from the main sprite.

Image
Attachments
NotMetroid.chr
(32 KiB) Downloaded 237 times
Last edited by Alp on Sat May 21, 2016 2:47 pm, edited 1 time in total.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Newcomer to NES programming

Post by Sik »

Given the suggested way to save metasprites, I'd say that not only it's feasible, but allowing that is actually the fastest method. So yeah I'd say feel free to assume that's acceptable. I actually abused that a lot with the astronaut graphics I posted some time ago, the head is a single 8×8 sprite, as are the legs in the first frame.
User avatar
thefox
Posts: 3139
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Re: Newcomer to NES programming

Post by thefox »

Alp wrote:A question, is it at all feasible to split a larger sprite, consisting of 8x8 pieces into the CHR, and shift the tiles to save space, then apply pixel offsets when drawing the sprite? I can't recall if any of the 200+ NES action games have done anything like this.
If I understood you correctly, yes it's very feasible and done quite often. If you want to try that kind of stuff out, there's a metasprite editor in NES Screen Tool (make sure to read the README file).
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: Newcomer to NES programming

Post by Alp »

thefox wrote:If I understood you correctly, yes it's very feasible and done quite often. If you want to try that kind of stuff out, there's a metasprite editor in NES Screen Tool (make sure to read the README file).
Yeah! Pretty much that. Thanks for the quick response!
I hand optimized the tile data, and managed to get it from 80 tiles, down to 68.

Image
thefox wrote:If I understood you correctly, yes it's very feasible and done quite often. If you want to try that kind of stuff out, there's a metasprite editor in NES Screen Tool (make sure to read the README file).
What I mean, is to keep each tile of a sprite misaligned in the CHR to save space, and then re-align them in-game. I hope I did this right! O_O
Last edited by Alp on Sat May 21, 2016 2:48 pm, edited 1 time in total.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Newcomer to NES programming

Post by Sik »

If by that you mean being able to place each tile in a metasprite in a completely arbitrary position on screen, then yes, that's possible.
ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: Newcomer to NES programming

Post by ccovell »

I recommend listening to an interesting interview with the Pickford bros (who made Ironsword, Solstice, etc.) in which they explain how they "enjoyed" working on the NES, as well as how they (& RARE) really optimized sprite tiles on the NES in exactly the same way that we're discussing here.

link: http://retroasylum.com/ep-97-5-pickford ... interview/
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: Newcomer to NES programming

Post by Alp »

ccovell wrote:I recommend listening to an interesting interview with the Pickford bros (who made Ironsword, Solstice, etc.) in which they explain how they "enjoyed" working on the NES, as well as how they (& RARE) really optimized sprite tiles on the NES in exactly the same way that we're discussing here.
Wow! The Pickford Brothers! Thanks for the link! I wasn't aware that they been interviewed!
I gave it a listen, it was very interesting to hear their thoughts on the game industry. Their opinion about indie games more or less summarizes why I keep my distance from most pixel art sites.

I forgot to upload the picture, showing the intended use of the tiles. Everything is WIP:
Image
Last edited by Alp on Sat May 21, 2016 2:49 pm, edited 1 time in total.
User avatar
thefox
Posts: 3139
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Re: Newcomer to NES programming

Post by thefox »

ccovell wrote:Pickford bros (who made ... Solstice, etc.)
Mmm, I'm fairly sure they didn't make Solstice. There's that video about the creators of Solstice floating around on YouTube though, it's cool also. At least one other game that I can remember that Pickford bros made is Solar Jetman.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: Newcomer to NES programming

Post by ccovell »

Yeah, whoops! They made a lot of games, including Solstice II... but not the first one.

Here's their softography with comments on each page as to how much of the actual game they handled (sometimes just art, or Jon Pickford was merely the producer, etc.) http://www.zee-3.com/pickfordbros/softography/
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: Newcomer to NES programming

Post by Alp »

A long time since I've done an update-- I've been busy working the graveyard shift at work. Ugh.

I have a technical question, for a silly future project idea I have, that (might) be a first on the NES.
Assuming a map is sufficiently compressed, with a minimal tile index being stored--
(floors and walls. Information would be compared to neighbours, and indexed a metatile on decompression.)

With the use of 8K PRG-RAM, what is the general memory size a single decompressed game screen would use? I'm curious, for calculation purposes. I know that Mario 3 does this.

The idea, is to potentially program a fully functional rogue-like game on the NES.
Complete with seed-based level generation.

(A pseudo-random number would be generated, and would effect the behaviour of a "digger" set from a starting position, to carve out paths, and generate rooms/structures. The game would store these in an RLE-compressed format, de-compressing the map data into RAM, as needed)

I'll be posting some art for this project idea, as soon as I have more time to work on it.
Post Reply