This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

iNES 2.0 Games

iNES 2.0 Games
by on (#193327)
Are there any homebrew games (or even basic examples) out there that require use of the iNES 2.0 header? I've looked and have come up blank.

It's kinda hard to try to implement 2.0 directives into an assembler when I can't find anything to test it with. (I'm willing to convert custom header insertion routines into what I'm trying to make).
Re: iNES 2.0 Games
by on (#193342)
The MMC3 big CHR RAM test and the FME-7 big PRG RAM test both need NES 2.0 to be able to specify more than 8KB of CHR RAM and PRG RAM, and both have source code included. You would have to port it from ca65 to asm6 though, if you're looking for something you can build under a modified asm6.

I think most of the other homebrew programs that require it (Haunted '86, Pulsar, PR8) are closed source.
Re: iNES 2.0 Games
by on (#193349)
nicklausw wrote:
I can't find anything to test it with.

You could check your headers with Quietust's header editor:
https://www.qmtpro.com/~nes/tools/nes2edit.zip

I think some of Neil Baldwin's music tools might require it for either RAM size or battery backing specification? (Edit: PULSAR specifically has an iNES 2 header.)

The Mystic Searches beta might require 32k CHR-RAM as well. (Edit: this ROM does not have an iNES 2 header, maybe 32k CHR-RAM is presumed by the iNES 1 mapper definition, or maybe I'm wrong about it.)

Other than that, there's a number of iNES 2 submapper test ROMs here:
http://wiki.nesdev.com/w/index.php/NES_2.0_submappers
Re: iNES 2.0 Games
by on (#193351)
nicklausw wrote:
Are there any homebrew games (or even basic examples) out there that require use of the iNES 2.0 header?

In addition to what Nova mentioned:

  • Most simulation games by Koei use the SOROM and ETROM boards, which have two 8 KiB WRAMs: one not battery-backed and one battery-backed. A few use EWROM, which has one 32 KiB WRAM.
  • Final Fantasy I & II by Squaresoft uses the SXROM board, which has four 8 KiB banks of WRAM.
  • The forthcoming Action 53 volume 3 needs at least 16 KiB of CHR RAM. Otherwise graphics in Sinking Feeling will be corrupt. There's also a test ROM for this.

Current emulators may be recognizing the Koei and Square games by a PRG ROM hash value and overriding the header.
Re: iNES 2.0 Games
by on (#193370)
Startropics 1 & 2 should apply them to tell an emulator to use MMC6 compatible register writes.

With regard to NES 2.0 mappers, there seems to be something of a difference between the assignments made by Kevin Horton and assignments given in the NESDev wiki. I made a spreadsheet giving the assignments I as could determine them for games that could require submappers. Sheet 1 list the games that should be assigned submappers according to kevtris, Sheet 2 list the games that should be assigned submappers according to the wiki.
Re: iNES 2.0 Games
by on (#193372)
NovaSquirrel wrote:

I was able to replicate that header with:
Code:
.inesprg 4
.inesmap 4
.nes2chrram 9

So unless that's incorrect, looks like this is going somewhere.

Great Hierophant wrote:
With regard to NES 2.0 mappers, there seems to be something of a difference between the assignments made by Kevin Horton and assignments given in the NESDev wiki. I made a spreadsheet giving the assignments I as could determine them for games that could require submappers. Sheet 1 list the games that should be assigned submappers according to kevtris, Sheet 2 list the games that should be assigned submappers according to the wiki.

Thanks for this!
Re: iNES 2.0 Games
by on (#193373)
Great Hierophant wrote:
submappers.ods
Little typo in the first sheet: the two mapper 34 games are incorrectly listed as mapper 32.
Re: iNES 2.0 Games
by on (#193376)
Great Hierophant wrote:
Sheet 1 list the games that should be assigned submappers according to kevtris, Sheet 2 list the games that should be assigned submappers according to the wiki.

Kevtris had proprosed a few submappers which ultimately seemed to be unnecessary, the most prominent example being MMC1 where many of the "submappers" were already a requirement as a result of various CHR size settings.

I don't believe anything on the wiki disagrees with Kevtris' original proposal, just some are omitted for lack of information or necessity. The redundant MMC1 submappers are deprecated but explicitly kept in the definition to avoid conflict with Kevtris' proposal. Though I don't know why Kevtris' set should be definitive-- he never published an emulator or ROM set that uses them. They're just some (rather rough) list he came up with years ago.

Ideas that seemed to have not enough information to explain or demonstrate, or are not yet fully formed, or in particular have no test ROMs to validate against were moved to as separate page:
http://wiki.nesdev.com/w/index.php/NES_2.0_submappers/Proposals

I made this separation in the Wiki so that emulator authors could specifically focus on the set of things that is well described and implementable. i.e. "here's exactly what these submappers mean, which games you'd need to implement them for, and here's some ROMs to validate against".

If you've got information on submappers that are "missing" from the Wiki, please contribute it. What do you know about the "Karaoke" games? kevtris' document didn't really say much about what this submapper is supposed to be. There's also stuff on "page 1" that clearly belongs on "page 2", e.g. why have you omitted the Quatro games from page 2? (Is it based on a much older version of the wiki page?)
Re: iNES 2.0 Games
by on (#193390)
lidnariq wrote:
Great Hierophant wrote:
submappers.ods
Little typo in the first sheet: the two mapper 34 games are incorrectly listed as mapper 32.


Fixed

rainwarrior wrote:
Great Hierophant wrote:
Sheet 1 list the games that should be assigned submappers according to kevtris, Sheet 2 list the games that should be assigned submappers according to the wiki.

Kevtris had proprosed a few submappers which ultimately seemed to be unnecessary, the most prominent example being MMC1 where many of the "submappers" were already a requirement as a result of various CHR size settings.

I don't believe anything on the wiki disagrees with Kevtris' original proposal, just some are omitted for lack of information or necessity. The redundant MMC1 submappers are deprecated but explicitly kept in the definition to avoid conflict with Kevtris' proposal. Though I don't know why Kevtris' set should be definitive-- he never published an emulator or ROM set that uses them. They're just some (rather rough) list he came up with years ago.


His custom firmware for the Analogue Nt Mini, for which he designed the hardware, uses NES 2.0 definitions.

I am not sure either whether they are in conflict or not.

rainwarrior wrote:
Ideas that seemed to have not enough information to explain or demonstrate, or are not yet fully formed, or in particular have no test ROMs to validate against were moved to as separate page:
http://wiki.nesdev.com/w/index.php/NES_2.0_submappers/Proposals

I made this separation in the Wiki so that emulator authors could specifically focus on the set of things that is well described and implementable. i.e. "here's exactly what these submappers mean, which games you'd need to implement them for, and here's some ROMs to validate against".

If you've got information on submappers that are "missing" from the Wiki, please contribute it. What do you know about the "Karaoke" games? kevtris' document didn't really say much about what this submapper is supposed to be. There's also stuff on "page 1" that clearly belongs on "page 2", e.g. why have you omitted the Quatro games from page 2? (Is it based on a much older version of the wiki page?)


I know little about the Karaoke Studio except that it uses has a base unit and custom expansion cartridges and its own microphone. Bandai was fond enough of the idea to try something similar with the Datach Joint ROM system and again with the Sufami Turbo for the SNES.

Speaking of add-ons, Nantettatte!! Baseball is a cartridge which can accept a pair of update add-on cartridges. The main game's mapper is 68, so I assume that the expansion ROMs are also 68, but Nestopia assigns them to mapper 4 (and they don't work). I would also note that Nestopia disagrees with some of the mapper assignments for the Namco and Bandai games, but it may be a bit behind the times.

Finally, about those speech chips. They can be found in cartridges using Mapper 3, 18, 72, 86, 92. The cartridges using 86 and 92 always have speech chips but the cartridges using 3, 18 and 72 may or may not have speech chips, and one cartridge uses a chip that is slightly different. Only one mapper 3 game has speech chips. Should a setting in NES 2.0 be added to distinguish those games in case the speech chips ever get dumped and emulated?
Re: iNES 2.0 Games
by on (#193394)
Great Hierophant wrote:
Speaking of add-ons, Nantettatte!! Baseball is a cartridge which can accept a pair of update add-on cartridges. The main game's mapper is 68, so I assume that the expansion ROMs are also 68, but Nestopia assigns them to mapper 4 (and they don't work).
It does? I just cross-referenced the current Nestopia UE NstDatabase against GoodNES 3.14 and only found a single entry for any Nantettatte!!. (What filename and sha1?)

Quote:
I would also note that Nestopia disagrees with some of the mapper assignments for the Namco and Bandai games, but it may be a bit behind the times.
w.r.t. mapper 210, Freij did his best to figure out what the difference was, but the difference is fairly subtle and there was no associated documentation. Naruko has since helped us out.

For mappers 16, 153, 157, 159 ... specific instances? Briefly cross-referencing I don't see anything obviously wrong.

Quote:
Should a setting in NES 2.0 be added to distinguish those games in case the speech chips ever get dumped and emulated?
There's no agreed-upon way to embed the audio data in the .nes file itself, so I'm not altogether convinced it's worthwhile to mark a file itself as being enhanced by external files...
Re: iNES 2.0 Games
by on (#193395)
Great Hierophant wrote:
His custom firmware for the Analogue Nt Mini, for which he designed the hardware, uses NES 2.0 definitions.

I thought this machine runs cartridges, not iNES ROMs. How do NES 2.0 definitions come into play?

Great Hierophant wrote:
Should a setting in NES 2.0 be added to distinguish those games in case the speech chips ever get dumped and emulated?

I don't really see the point in adding any additional iNES 2 specifications until they're dumped and there is a reference for emulating them.

The effort to clean up the submappers wiki page was done with this in mind. If there's a real case that we can build and test now, it should be there. If it's a "just in case" for the future, it can stay in the proposals subpage until it matures.

If you have information about needed submappers, please add to the proposals section.

Edit: fixed link.
Re: iNES 2.0 Games
by on (#193396)
The Nt Mini has a firmware update to make it run ROMs.
Re: iNES 2.0 Games
by on (#193397)
lidnariq wrote:
There's no agreed-upon way to embed the audio data in the .nes file itself, so I'm not altogether convinced it's worthwhile to mark a file itself as being enhanced by external files...

I think Nestopia will use a collection of WAV samples for some specific games, if you have them. It seems kludgey, but it's one way of doing it. It has its own database of metadata anyway, so didn't need to rely on the iNES 2 dream to do it.

Probably iNES 2 could use some kind of "extra data blobs" extension to support something like this, but the dumps haven't been done, so... is there a need to worry about it yet?
Re: iNES 2.0 Games
by on (#193399)
tepples wrote:
The Nt Mini has a firmware update to make it run ROMs.

Ah okay, here's the info:
http://atariage.com/forums/topic/242970-fpga-based-videogame-system/?p=3687219

He does have a submapper list in that ZIP file. I don't see anything conflicting the list on the Wiki, but includes the following extra ones:
NES Release Notes.txt wrote:
(sorry that some of these aren't very clear, I did this 8 years ago)

16.0 - Bandai mapper with WRAM
16.1 - Bandai mapper with Datach
16.2 - Bandai mapper with EEPROM (128 bytes)
16.3 - Bandai mapper with EEPROM (256 bytes)

19.0 - standard N163
19.1 - Mindseeker (different pinning)

74.0 - MMC3 with CHR RAM addon
74.1 - MMC3 with CHR RAM addon (different mapping)

83.0 - Cony mapper (1K CHR banks)
83.1 - Cony mapper (2K CHR banks)

116.0 - "Beauty Fighting AV"
116.1 - Rex Samurai Spirits

167.0 - Subor
167.1 - Subor alternate

188.0 - Karaoke Studio
188.1 - Karaoke Studio 256K

This is slightly better information than his original document, at least? (Again, if anyone's got the appropriate reference material please add it to the wiki's proposal page.)
Re: iNES 2.0 Games
by on (#193403)
16.0 - Bandai mapper with WRAM
= m153
16.1 - Bandai mapper with Datach
= m157
16.2 - Bandai mapper with EEPROM (128 bytes)
= m159
16.3 - Bandai mapper with EEPROM (256 bytes)
not moved.

74.1 - MMC3 with CHR RAM addon (different mapping)
I guarantee that's a duplicate of one of m191/192/194/195.

Sure would be nice if kevtris was able to explain what the laconic descriptions actually mean.
Re: iNES 2.0 Games
by on (#193411)
I used the information I found on the NES Cart db to assign the Bandai games based on what was on the board and the latest information on the wiki. Ditto for Sunsoft.

This page describes how Nantettatte's add-ons and the speech chips work in MAME (MESS) :

https://mamedev.emulab.it/etabeta/2013/ ... -nes-side/

and the Bandai expansion carts here :

https://mamedev.emulab.it/etabeta/2014/02/
Re: iNES 2.0 Games
by on (#193415)
Etabeta's writeups were from research shared with us by naruko on the forum here.
q.v. mappers 16, 153, 157, 159 and mapper 188.

I'm not entirely convinced that his choice to use multiple slots is correct for the Datach—after all, the internal 256B EEPROM is the only possibly shared data between multiple games, and we believe only one game uses that EEPROM.
Re: iNES 2.0 Games
by on (#193422)
From a file comparison, I see how the base Nantettate and Karaoke Studio ROMs differ from their expansion ROMs. Extra PRG-ROM is tacked onto the expansion ROMs, 128KB for Karaoke and 16KB for Nantettate. Essentially they are a Sonic & Knuckles + Sonic 1/2/3 situation. So :

Mapper 188
Karaoke Studio (Japan) - 128KB PRG-ROM
Karaoke Studio Senyou Cassette Vol. 1 (Japan) - 256KB PRG-ROM
Karaoke Studio Senyou Cassette Vol. 2 (Japan) - 256KB PRG-ROM

Mapper 68
Nantettatte!! Baseball (Japan) - 128KB PRG-ROM, 128KB CHR-ROM
Nantettatte!! Baseball Ko-Game Set '91 Kaimakuban (Japan) - 144KB PRG-ROM, 128KB CHR-ROM
Nantettatte!! Baseball Ko-Game Set OB All Star Hen (Japan) - 144KB PRG-ROM, 128KB CHR-ROM

The expanded Nantettatte ROMs were somehow designated Mapper 4, changing them to 68 got them to work in Nestopia. But the first time they start, all three Nantettatte ROMs will give you an error message in Japanese. When Nestopia makes a sav file and you restart, they will all work fine.

I thought I read somewhere that in the Nantettatte expansion carts was a custom security IC in addition to a ROM chip.
Re: iNES 2.0 Games
by on (#193424)
There is. Nestopia transparently adds the security IC when PRG is greater than 128 KiB:
Code:
               case 68:
                  if (prg > SIZE_128K)
                  {
                     name = "SUNSOFT DOUBLE CASETTE SYSTEM";
                     id = Type::SUNSOFT_DCS;
                  }


About two years ago, rdanbrook added support for signalling via submapper 1 also.
Re: iNES 2.0 Games
by on (#193539)
NovaSquirrel wrote:

This header was replicated with:
Code:
.inesprg 2
.ineschr 1
.inesmap $45
.nes2prgram 9

Seems about right.
Re: iNES 2.0 Games
by on (#193577)
I have become more ambitious and decided to identify all Famicom licensed 3rd Party games with non-Nintendo mappers. I have also included Nintendo's mappers and variant that never showed up outside of Japan. Finally, I have noted any game that is or was once assigned a NES 2.0 mapper. Here is the spreadsheet.
Re: iNES 2.0 Games
by on (#193578)
The Nantettatte!! expansions add no extra RAM, but I believe they do reuse the SRAM in the base cartridge.
Re: iNES 2.0 Games
by on (#193582)
lidnariq wrote:
The Nantettatte!! expansions add no extra RAM, but I believe they do reuse the SRAM in the base cartridge.


Yes, they do, and moreover, save data isn't compatible between the expansions (or between any expansion and the unexpanded game). If you insert a different expansion cartridge than the one you last saved a game with, a warning screen pops up and you have to choose to delete the save data or turn the Famicom off and change the expansion cartridge to the one matching the save data.
Re: iNES 2.0 Games
by on (#193590)
AWJ wrote:
lidnariq wrote:
The Nantettatte!! expansions add no extra RAM, but I believe they do reuse the SRAM in the base cartridge.


Yes, they do, and moreover, save data isn't compatible between the expansions (or between any expansion and the unexpanded game). If you insert a different expansion cartridge than the one you last saved a game with, a warning screen pops up and you have to choose to delete the save data or turn the Famicom off and change the expansion cartridge to the one matching the save data.


So that is what the message meant! That would explain the Nestopia behavior.

Anyway, I decided to keep the expansion carts distinct from the main cart to reflect what kind of hardware was in each physical object.

I could not find out which of the Datach games uses the EEPROM inside the unit. I know of the one game with its own EEPROM, Battle Rush. Emulating the barcode reader is required to make many of the games work. The Dragon Ball Z game was the pack-in and I think it is the game that uses the internal EEPROM.
Re: iNES 2.0 Games
by on (#199378)
Revised the spreadsheet based on new usage information of the VRC2 submappers and to fix the error regarding the Nantettatte expansions. I have also indicated where a game uses internal battery backed memory for saving (Namco 163, MMC6).

Attachment:
Re: iNES 2.0 Games
by on (#199383)
Great Hierophant wrote:
Revised the spreadsheet based on new usage information of the VRC2 submappers and to fix the error regarding the Nantettatte expansions. I have also indicated where a game uses internal battery backed memory for saving (Namco 163, MMC6).

Attachment:
Canonical Famicom 3rd Party Licensed Mappers NES 2.0.ods


Konami Wai Wai World should also be submapper 3 (it's in fact the only Konami game which specifically has to be emulated with VRC2 and not VRC4 or it'll misbehave)
Re: iNES 2.0 Games
by on (#199430)
I'm not sure how canonical that list is given its use of mapper 16 submappers, which are listed as deprecated. There certainly is no need for a submapper to denote the EEPROM size, as the PRG-NVRAM field holds that information. The only mapper 16 submapper information that I would consider useful is whether the IC is an FCG-1 or LZ93 type, as they may (or may not) differ in whether the IRQ counter value is latched or not.
Re: iNES 2.0 Games
by on (#199438)
Fixed Konami Wai Wai World, which was an oversight. All VRC2 games have a submapper 3 assignment. I also added a few other observations like chip variations where known.

I am aware that many of these submappers may be deemed redundant or unnecessary for emulation, but the point of the spreadsheet is to identify any NES 2.0 header usage, even if the usage is no longer necessary. Kevin Horton's Analgoue Nt Mini's flash cart functionality may use his Bandai assignments, so they are included. I included the "main IC" as well.

Attachment:


Update to include the arrangement information for Konami VRC2/4 games.
Re: iNES 2.0 Games
by on (#207914)
Many updates and corrections in the attached spreadsheet.