It is currently Tue Jun 25, 2019 3:15 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 73 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject: Re: Vs. DualSystem
PostPosted: Mon Dec 31, 2018 11:42 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8391
Location: Seattle
There is no mapper 0 Vs. System game. If you find one, it is a bad header.

The mapper 0 hardware is defined as "no PRG bankswitching, no CHR bankswitching" and that cannot happen on the Vs. System board: it is physically laid out such that you can't not have CHR bankswitching. It's not like putting an 8 KiB CHR ROM in a CNROM board and having a latch that does nothing: instead there are two physical sockets, and you can only put an 8 KiB (or smaller, but that was never done) ROM in each socket or fail to put anything in that socket: The result is still mapper 99 and the empty socket results in open bus.

It may work as mapper 0, in the same way emulators don't "have" to enforce bus conflicts on discrete logic mappers, but it's incorrect.


MAME's database is in https://github.com/mamedev/mame/blob/ma ... /vsnes.cpp
To convert common names to MAME codename, go to the bottom with the GAME macro.
To convert MAME codename into dipswitches, look for INPUT_PORTS_START( codename )
To convert MAME codename into ROM sizes and hashes, look for ROM_START( codename )


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 12:41 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3693
Location: Indianapolis
zeroone wrote:
I am looking at the Dipswitch definitions file in Mesen. The number of switches and options suggests that the VS. DualSystem games have 16 DIPs instead of 8 DIPs. Perhaps this is possible since there are 4 controller ports instead of 2?


Yes, for a DualSystem game there effectively are 16 dipswitches. Each CPU sees 8, mapped into the same location. Other than the shared RAM, the 2 sides are symmetrical. In a dual cabinet it can run 2 UniSystem games independently. The single monitor cabinets use the same board but only install one CPU/PPU.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 7:00 pm 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 914
Location: New York, NY
Do any of the VS games in GoodNES3.23b work in the current Mesen release? None of them seem to open.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 7:55 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 930
No. As mentioned before, you need to create them from MAME ROM sets.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 8:17 pm 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 914
Location: New York, NY
NewRisingSun wrote:
No. As mentioned before, you need to create them from MAME ROM sets.


Oh. Why are the GoodNES ROMs useless? There is absolute no way to run them? It's starting to sound like if I support the VS DualSystem, no one is going to have the games to play it.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 8:37 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8391
Location: Seattle
Historically, it's been impossible to encode Vs. DualSystem ROMs in iNES format because the iNES format implies exactly one chunk of PRG and one chunk of CHR.

The DualSystem requires two chunks of PRG and two chunks of CHR... NewRisingSun has lead the effort to define an official encoding of Vs. DualSystems into NES2.0, but that's very recent.

Supporting MAME romsets would be the most immediate way to make it easy for people to run.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 8:56 pm 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 914
Location: New York, NY
lidnariq wrote:
The DualSystem requires two chunks of PRG and two chunks of CHR...


The existing GoodNES VS DualSystem .nes files are twice the size as their regular counterparts. Is the PRG and CHR ROMs not just doubled up?


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Tue Jan 01, 2019 9:11 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8391
Location: Seattle
At the very least, the GoodNES 3.23b's Vs. System image for Balloon Fight is only one half. (The other half is named "(Player 2 Mode) [b1]" but it isn't a bad dump, it's the same hashes as in MAME).

Balloon Fight for NES/Famicom is a 16+8 game. Balloon Fight for the Vs. DualSystem is a 32+32+16+16 game. (Almost all DualSystem games are 32+32+16+16. Except Vs. Mahjong, which is 24+24+8+8)

There's no way for the original iNES format to mark whether the contents of the file is one PRG chunk or two. That's one of the things that NewRisingSun added in NES2.0.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Wed Jan 02, 2019 2:54 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 930
zeroone wrote:
It's starting to sound like if I support the VS DualSystem, no one is going to have the games to play it.
As more emulators add Vs. Dual System support, future versions of No-Intro and GoodNES (if there ever is one again) will likely include the proper NES 2.0 ROMs in their their datfiles and the associated collections, so I would say it's more of a temporary problem.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Wed Jan 02, 2019 7:43 am 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 914
Location: New York, NY
lidnariq wrote:
At the very least, the GoodNES 3.23b's Vs. System image for Balloon Fight is only one half. (The other half is named "(Player 2 Mode) [b1]" but it isn't a bad dump, it's the same hashes as in MAME).

Balloon Fight for NES/Famicom is a 16+8 game. Balloon Fight for the Vs. DualSystem is a 32+32+16+16 game. (Almost all DualSystem games are 32+32+16+16. Except Vs. Mahjong, which is 24+24+8+8)

There's no way for the original iNES format to mark whether the contents of the file is one PRG chunk or two. That's one of the things that NewRisingSun added in NES2.0.


Ouch. Those GoodNES files are going to confuse anyone who wants to play those games. For the emulators that support the VS DualSystem, those ROMs are going to create the impression that the support is incomplete or buggy.

NewRisingSun wrote:
As more emulators add Vs. Dual System support, future versions of No-Intro and GoodNES (if there ever is one again) will likely include the proper NES 2.0 ROMs in their their datfiles and the associated collections, so I would say it's more of a temporary problem.


This is the first time I heard of "No-Intro". Is it a better collection than GoodNES?

More importantly, I agree with your sentiment. Let me PM you with a proposal.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Wed Jan 02, 2019 1:55 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8391
Location: Seattle
No-Intro is a community-run effort to replace Cowering's GoodTools, especially after he took leave for a decade.

Currently their NES/FC set don't include headers: it's just hashes of known good dumps. Official headers might be included there after NewRisingSun / Kevtris release a canonical set.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Sat Jan 05, 2019 12:08 pm 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 914
Location: New York, NY
lidnariq wrote:
There is no mapper 0 Vs. System game. If you find one, it is a bad header.

The mapper 0 hardware is defined as "no PRG bankswitching, no CHR bankswitching" and that cannot happen on the Vs. System board: it is physically laid out such that you can't not have CHR bankswitching. It's not like putting an 8 KiB CHR ROM in a CNROM board and having a latch that does nothing: instead there are two physical sockets, and you can only put an 8 KiB (or smaller, but that was never done) ROM in each socket or fail to put anything in that socket: The result is still mapper 99 and the empty socket results in open bus.

It may work as mapper 0, in the same way emulators don't "have" to enforce bus conflicts on discrete logic mappers, but it's incorrect.


MAME's database is in https://github.com/mamedev/mame/blob/ma ... /vsnes.cpp
To convert common names to MAME codename, go to the bottom with the GAME macro.
To convert MAME codename into dipswitches, look for INPUT_PORTS_START( codename )
To convert MAME codename into ROM sizes and hashes, look for ROM_START( codename )


FCEUX contains a table describing each VS UniSystem game:

Code:
VSUNIENTRY VSUniGames[] =
{
   { "Baseball", 0x691d4200ea42be45LL, 99, 2, RP2C04_001, 0 },
   { "Battle City", 0x8540949d74c4d0ebLL, 99, 2, RP2C04_001, 0 },
   { "Battle City(Bootleg)", 0x8093cbe7137ac031LL, 99, 2, RP2C04_001, 0 },

   { "Clu Clu Land", 0x1b8123218f62b1eeLL, 99, 2, RP2C05_004, IOPTION_SWAPDIRAB },
   { "Dr Mario", 0xe1af09c477dc0081LL, 1, 0, RP2C04_003, IOPTION_SWAPDIRAB },
   { "Duck Hunt", 0x47735d1e5f1205bbLL, 99, 2, RCP2C03B, IOPTION_GUN },
   { "Excitebike", 0x3dcd1401bcafde77LL, 99, 2, RP2C04_003, 0 },
   { "Excitebike (J)", 0x7ea51c9d007375f0LL, 99, 2, RP2C05_004, 0 },
   { "Freedom Force", 0xed96436bd1b5e688LL, 4, 0, RP2C04_001, IOPTION_GUN }, /* Wrong color in game select screen? */
   { "Stroke and Match Golf", 0x612325606e82bc66LL, 99, 2, RP2C04_002, IOPTION_SWAPDIRAB | IOPTION_PREDIP, 0x01 },

   { "Goonies", 0xb4032d694e1d2733LL, 151, 1, RP2C04_003, 0 },
   { "Gradius", 0x50687ae63bdad976LL, 151, 1, RP2C04_001, IOPTION_SWAPDIRAB },
   { "Gumshoe", 0x87161f8ee37758d3LL, 99, 2, RC2C05_03, IOPTION_GUN },
   { "Gumshoe", 0xb8500780bf69ce29LL, 99, 2, RC2C05_03, IOPTION_GUN },
   { "Hogan's Alley", 0xd78b7f0bb621fb45LL, 99, 2, RP2C04_001, IOPTION_GUN },
   { "Ice Climber", 0xd21e999513435e2aLL, 99, 2, RP2C05_004, IOPTION_SWAPDIRAB },
   { "Ladies Golf", 0x781b24be57ef6785LL, 99, 2, RP2C04_002, IOPTION_SWAPDIRAB | IOPTION_PREDIP, 0x1 },

   { "Mach Rider", 0x015672618af06441LL, 99, 2, RP2C04_002, 0 },
   { "Mach Rider (J)", 0xa625afb399811a8aLL, 99, 2, RP2C04_001, 0 },
   { "Mighty Bomb Jack", 0xe6a89f4873fac37bLL, 0, 2, RC2C05_02, 0 },
   { "Ninja Jajamaru Kun", 0xb26a2c31474099c0LL, 99, 2, RC2C05_01, IOPTION_SWAPDIRAB },
   { "Pinball", 0xc5f49d3de7f2e9b8LL, 99, 2, RP2C04_001, IOPTION_PREDIP, 0x01 },
   { "Pinball (J)", 0x66ab1a3828cc901cLL, 99, 2, RCP2C03B, IOPTION_PREDIP, 0x1 },
   { "Platoon", 0x160f237351c19f1fLL, 68, 1, RP2C04_001, 0 },
   { "RBI Baseball", 0x6a02d345812938afLL, 4, 1, RP2C04_001, IOPTION_SWAPDIRAB },
   { "Soccer", 0xd4e7a9058780eda3LL, 99, 2, RP2C04_003, IOPTION_SWAPDIRAB },
   { "Star Luster", 0x8360e134b316d94cLL, 99, 2, RCP2C03B, 0 },
   { "Stroke and Match Golf (J)", 0x869bb83e02509747LL, 99, 2, RCP2C03B, IOPTION_SWAPDIRAB | IOPTION_PREDIP, 0x1 },
   { "Super Sky Kid", 0x78d04c1dd4ec0101LL, 4, 1, RCP2C03B, IOPTION_SWAPDIRAB | IOPTION_PREDIP, 0x20 },

   { "Super Xevious", 0x2d396247cf58f9faLL, 206, 0, RP2C04_001, 0 },
   { "Tetris", 0x531a5e8eea4ce157LL, 99, 2, RCP2C03B, IOPTION_PREDIP, 0x20 },
   { "Top Gun", 0xf1dea36e6a7b531dLL, 2, 0, RC2C05_04, 0 },
   { "VS Castlevania", 0x92fd6909c81305b9LL, 2, 1, RP2C04_002, 0 },
   { "VS Slalom", 0x4889b5a50a623215LL, 0, 1, RP2C04_002, 0 },
   { "VS Super Mario Bros", 0x39d8cfa788e20b6cLL, 99, 2, RP2C05_004, 0 },
   { "VS Super Mario Bros [a1]", 0xfc182e5aefbce14dLL, 99, 2, RP2C05_004, 0 },
   { "VS TKO Boxing", 0x6e1ee06171d8ce3aLL, 4, 1, RP2C04_003, IOPTION_PREDIP, 0x00 },
   { 0 }
};


The value to the right of the checksum is mapper number. Several games function outside of mapper 99. And a few are mapper 0.

If this is incorrect, does that mean that description of Mapper 99 on the wiki is incomplete since it needs to absorb characteristics of other mappers for certain games?


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Sat Jan 05, 2019 12:41 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 930
Mapper 99 is the CHR-ROM bank switch built into the Vs. System hardware. Since all games run on the Vs. System hardware, they will at minimum have mapper 99. Vs. Slalom merely has only one 8 KiB CHR-ROM bank, so not emulating the $4016 CHR-ROM switch by specifying mapper 0 amounts to the same result. But pedantically speaking, it's wrong. Other games do indeed bring their own mappers 1, 206, and 67/68. Mapper 151 is a duplicate of 75, meaning VRC1. Their existence does not mean that Mapper 99's description is incomplete, though.


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Sun Jan 06, 2019 9:27 am 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 914
Location: New York, NY
NewRisingSun wrote:
Other games do indeed bring their own mappers 1, 206, and 67/68. Mapper 151 is a duplicate of 75, meaning VRC1. Their existence does not mean that Mapper 99's description is incomplete, though.


Does the NES 2.0 header indicate the use of these other mappers?


Top
 Profile  
 
 Post subject: Re: Vs. DualSystem
PostPosted: Sun Jan 06, 2019 10:22 am 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 930
Of course. Just look at the Vs. System's ROM files...


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: kitrinx and 4 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