It is currently Mon Jun 17, 2019 4:23 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Thu Jan 10, 2019 7:45 am 
Offline

Joined: Thu Jan 10, 2019 7:37 am
Posts: 1
I'm very new to NES homebrew development, but I saw this NESDev competition (https://forums.nesdev.com/viewtopic.php?f=34&t=17743) ending at the end of January that I'm very interested in trying to get an entry into. One of the requirements for the competition is that the game is Mapper 28 compatible which I've gathered is so that the multicart they create at the end of January works right with multiple games on it. What I haven't figured out is how you make a game Mapper 28 compatible? It also says that there can be no PRG-RAM, do they mean that I can't bank switch to access more memory or use the NRAM on the cart? (Also if that last sentence makes no sense can someone also help with my understanding of bank switching and NRAM?)

Thank you!


Top
 Profile  
 
PostPosted: Thu Jan 10, 2019 8:22 am 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 614
Location: Central Illinois, USA
paetramon wrote:
I'm very new to NES homebrew development, but I saw this NESDev competition (https://forums.nesdev.com/viewtopic.php?f=34&t=17743) ending at the end of January that I'm very interested in trying to get an entry into. One of the requirements for the competition is that the game is Mapper 28 compatible which I've gathered is so that the multicart they create at the end of January works right with multiple games on it. What I haven't figured out is how you make a game Mapper 28 compatible?



If you make your game to use one of the mappers that it mentions, you'll generally be ok:
NROM
CNROM
BNROM
UNROM
AOROM

Quote:
It also says that there can be no PRG-RAM, do they mean that I can't bank switch to access more memory or use the NRAM on the cart? (Also if that last sentence makes no sense can someone also help with my understanding of bank switching and NRAM?)


You can bank switch, and use ROM from multiple banks, but you can't use a mapper with expansion RAM (other than CHR-RAM). SRAM or additional WRAM, for example, are not allowed.

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


Top
 Profile  
 
PostPosted: Thu Jan 10, 2019 8:38 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21440
Location: NE Indiana, USA (NTSC)
paetramon wrote:
What I haven't figured out is how you make a game Mapper 28 compatible?

Two ways.

  1. The simpler way is to use one of the supported discrete mappers: NROM (0), UNROM (2), CNROM (3), AOROM (7), BNROM (34), or UNROM (Crazy Climber variant) (180).
  2. The other, more flexible way is to use Action 53 mapper (28) directly. This method lets your game switch nametable mirroring among horizontal, vertical, and 1-screen. A compo entry using this approach must write to the outer bank register ($81) only once during hardware init; this allows the game to run by itself in an emulator while allowing the menu builder to patch out the write for multicart inclusion. When it writes to $80, bits 5 and 4 must also specify the correct game size, which in the case of compo entries is usually $1x for 64 KiB.

paetramon wrote:
It also says that there can be no PRG-RAM

It means your program should not read or write $6000-$7FFF, as the production cartridge does not have RAM there.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Thu Jan 24, 2019 8:29 am 
Offline

Joined: Wed Jan 23, 2019 8:58 am
Posts: 4
Thanks for the answer, wrapping my head around this issue is one of the reasons why I've joined this forum in the first place. Now, I'm going to the next issue: actually understanding how RAM works...


Top
 Profile  
 
PostPosted: Thu Jan 24, 2019 11:46 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11369
Location: Rio de Janeiro - Brazil
Hokum_52 wrote:
Now, I'm going to the next issue: actually understanding how RAM works...

Each byte of RAM has an address you use to access it (i.e. $0000, $0001, $0002, ..., $07FF), and you can write and read values to/from these addresses. These values are used by your program to keep track of the state (i.e. everything that changes) of your game. Some CPU instructions write to RAM, others read from it, and others don't access RAM at all. This is basically all there is to know about RAM. :wink:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 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