It is currently Mon Jul 16, 2018 2:17 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 93 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 7  Next
Author Message
PostPosted: Thu Apr 05, 2018 8:09 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20249
Location: NE Indiana, USA (NTSC)
Another option uses a mapper with a timer (e.g. MMC3) and vertical mirroring.
Code:
 $2000                           $2400
 ___:___:___:___:___:___:___:___+___:___:___:___:___:___:___:___
|                                                               |
| Playfield 512x224             .                               |
|                                                               |
|                               .                               |
|                                                               |
|                               .                               |
|                                                               |
|                               .                               |
|                                                               |
|                               .                               |
|                                                               |
|                               .                               |
|                                                               |
|_______________________________._______________________________|
|_Status bar 256x16_____________|_Blank area_256x16_____________|

Rows 0-27 are the playfield: 512x224 pixels, 64x28 rows, or 16x7 attribute bytes.
Rows 28-29 are things that appear above the playfield.

Divide the screen into 4 horizontal strips from top to bottom

  1. A 16-pixel-high blank strip near the top, drawn using the bottom right 256x16 of the map
  2. A 16-pixel-high status bar, drawn using the bottom left 256x16 of the map
  3. The variable-height part of your playfield from the current scroll position to the end of row 27
  4. The remainder of your playfield starting at row 0

The screen then looks like this:
Code:
 ___:___:___:___:___:___:___:___
|_Blank area_256x16_____________|
|_Status bar 256x16_____________|
|                               |
| 256x208 chunk of playfield    |
|                               |
|                               |
|                               |
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|^^^ Skip status after IRQ      |
|                               |
|                               |
|                               |
|                               |
|                               |
|_______________________________|

You set an IRQ such that when the scroll is about to reach row 28/line 224 of the tilemap, where the status bar is, the scroll position is reset to the top of the tilemap.

This way, you can update entire 2 rows (16 pixels) of the map at a time without artifacts and without having to shift attribute nibbles, though you may need to combine nibbles from two different 32x32 pixel metatiles at the seam. Adding an additional strip of blank area at the bottom reduces visible area to 256x192, eliminating even that.


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 8:49 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
tokumaru wrote:
Tons of games packed an extra 8KB of WRAM for "ease of coding" though.
That's ... not true?

NesCartDB says 271 out of 1385 games had WRAM. Of those, 61 did NOT have a battery. It's not as extremely rare as the set that had 4-screen nametables, but it's still quite rare. Space for extra program state is also conspicuously more useful and can solve more problems than 4-screen nametables, for the same monetary cost.

thefox wrote:
It's a fun idea for sure... could even be prototyped on PowerPak with its 512 KB PPU-mappable RAM.
Mappers with ROM nametables (VRC6, N163) would already let you play with this using contemporary hardware, albeit at the loss of compression.


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 9:40 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1642
Location: Gothenburg, Sweden
4-screen might not have been common, but how is gauntlet "cheating"? (Other than its publisher falling from nintendos' grace that is).

To me, the NES is mostly an interesting interface providing a common centerpoint of expressions and experiences for its associated software. Every board except a NROM could in some way be considered as "cheating", be it battery backed ram, program bank switching, irq timers, or making use of that empty memory range for 1 or 2 more nametables, or some fill mode functionality, but the thing is this was always intended in order to extend the life of the console. To me, that's exactly what homebrewers are effectively doing: extending its life some more. You don't necessarily need to come up with new hardware tricks to do so, but.. i think anything goes.

If someone came up with a game + pcb that used nametable bankswitching to produce a virtually larger nametable space, i'd play that and be intrigued.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 10:41 am 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 2139
Location: DIGDUG
Why is Gauntlet cheating?

Because 4-screen makes the problem easy to solve. And we all know that something is only worth doing if it's terribly complicated.

Only half sarcastic.

Why climb a mountain when you can use the escalator?

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Last edited by dougeff on Thu Apr 05, 2018 10:53 am, edited 3 times in total.

Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 10:47 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
One argument that occurs to me is that Gauntlet literally just runs in a 64x60 world, the entire level is just stored in the nametable RAM, and there's no dynamic updates for scrolling.

It feels like the least interesting thing you could possibly do with 4-screen nametables while still technically using all of them.


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 10:52 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1642
Location: Gothenburg, Sweden
One side effect of that is that you can have a larger 'naturally occuring' wraparound of 2x2 screens' worth rather than 1x1, 2x1 or 1x2. Of course with software implementations you can have a wrap-around as big as you want if that's a feature of your design.

_________________
http://www.frankengraphics.com - personal NES blog


Last edited by FrankenGraphics on Thu Apr 05, 2018 10:52 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 10:52 am 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 2139
Location: DIGDUG
Would it be cheating to prerecord some PCM quality Audio and put a tiny mp3 player inside the cartridge, and feed it to some expansion audio port, to play independent of the game code?

We could do all sorts of crazy things these days and get it to work on a real NES.

I suppose the question is SHOULD we do things that most NES games didn't do?

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 10:57 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
dougeff wrote:
Would it be cheating to prerecord some PCM quality Audio and put a tiny mp3 player inside the cartridge, and feed it to some expansion audio port, to play independent of the game code?
IMO, yes.

But I'd say no if the buttons on the MP3 player were controlled by the 2A03.


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 10:59 am 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 2139
Location: DIGDUG
By "independent" I meant the CPU wouldn't have to waste any time processing the audio, just triggering it to play.

I suppose in that scenario, you would still have the 2A03 to play sound effects.

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 11:02 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1642
Location: Gothenburg, Sweden
In the case of an mp3 player, that'd pass one threshold i think is rather significant: the sound isn't processed in any way by the NES. It's just passively mixed. A side-point to that is it could be done with or without the internals; and both methods require some tampering. But on the other hand, the trigging of sounds is still some level of interaction between the unit, the player module, and the user.

(some comments on the last item were made just as i hit post)

Edit: expansion sound synths are also just passively mixed.

_________________
http://www.frankengraphics.com - personal NES blog


Last edited by FrankenGraphics on Thu Apr 05, 2018 11:04 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 11:04 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20249
Location: NE Indiana, USA (NTSC)
lidnariq wrote:
dougeff wrote:
Would it be cheating to prerecord some PCM quality Audio and put a tiny mp3 player inside the cartridge

I'd say no if the buttons on the MP3 player were controlled by the 2A03.

And it's especially not cheating if the MP3-playing MCU presents an interface to the 2A03 resembling that of the mapper of Moero Pro Yakyuu (the Japanese version of Bases Loaded).


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 11:06 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
I mean, an MP3 player isn't particularly different from streaming Red Book audio, and that's basically half of what's supported by the PCEngine CD, SegaCD, or MSU-1. Sure, the Famicom was the previous generation, but I don't think that's a big enough difference.


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 11:10 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1642
Location: Gothenburg, Sweden
It's more that mp3 files are a symbolic representation of the period between mid-90:s and most of the 00:s. So some might experience a cultural dissonance stemming from associations and categorizations. Which is kind of what i think if 4-screen is legit or not is stemming from, too.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 11:42 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 3090
Location: Tampere, Finland
dougeff wrote:
Would it be cheating to prerecord some PCM quality Audio and put a tiny mp3 player inside the cartridge, and feed it to some expansion audio port, to play independent of the game code?

It would be a little lame though since it wouldn't work without modifying the console. (Or without an audio passthrough dongle... and even with that not on NES-101.)

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi


Top
 Profile  
 
PostPosted: Thu Apr 05, 2018 11:48 am 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 408
Location: Central Illinois, USA
dougeff wrote:
Would it be cheating to prerecord some PCM quality Audio and put a tiny mp3 player inside the cartridge, and feed it to some expansion audio port, to play independent of the game code?

We could do all sorts of crazy things these days and get it to work on a real NES.

I suppose the question is SHOULD we do things that most NES games didn't do?


Asking "is it cheating" is inherently the wrong question. There are no "rules" for hobby homebrew games (other than if you consider legal rules about copyright). The question comes down to: What do YOU want to do?

Some people care about making (or buying, or playing) games that use only the technology available at nes release (NROM?)
Some people care about games that use technology that was common (or at least available) at the time.
Others just want to push their nes to do whatever they can make it do.

None of these goals are invalid, just different niches of the hobby, or different goals. I may not be interested in some goofy mp3 player cart, or an ARM chip that runs the game logic separately and shoves data into CHR-RAM, but that doesn't make those things somehow less worthy to exist. This is a hobby, and people can make what they want without being criticized for cheating.

_________________
My games: http://www.bitethechili.com


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: kikutano and 5 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:  
Powered by phpBB® Forum Software © phpBB Group