Multi-discrete mapper

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderators: B00daW, Moderators

User avatar
cpow
NESICIDE developer
Posts: 1089
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: Multi-discrete mapper

Post by cpow » Fri Nov 02, 2012 5:06 pm

tepples wrote: I don't know if it's a bug in NESICIDE or a bug in my test, but either way, it'd prevent Battletoads from running correctly.
Since I copied the mirroring setup from the buggy Verilog on the wiki, it could certainly be a bug. I will implement the behavior described not the Verilog. Look for a new release soon.

User avatar
cpow
NESICIDE developer
Posts: 1089
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: Multi-discrete mapper

Post by cpow » Fri Nov 02, 2012 5:34 pm

tepples wrote: I don't know if it's a bug in NESICIDE or a bug in my test, but either way, it'd prevent Battletoads from running correctly.
Ok think I got it matching the wiki behavior now. Download version 24 from the NESICIDE project page. Try it. Let me know. If it works I'll release it...it's got a few other fixes for other things.

tepples
Posts: 21713
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Multi-discrete mapper

Post by tepples » Fri Nov 02, 2012 6:08 pm

Findings:
  • The installer should offer to run the previous version's uninstaller instead of dumping the user back at the prompt.
  • Good news: Behavior for writing $80 then $01 matches what I expect (AA, AA, CC, F0).
  • Behavior for writing $01 then $80 will be added to the test later.

User avatar
cpow
NESICIDE developer
Posts: 1089
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: Multi-discrete mapper

Post by cpow » Fri Nov 02, 2012 6:12 pm

tepples wrote:Findings:
  • The installer should offer to run the previous version's uninstaller instead of dumping the user back at the prompt.
  • Good news: Behavior for writing $80 then $01 matches what I expect (AA, AA, CC, F0).
  • Behavior for writing $01 then $80 will be added to the test later.
I have hunted through Advanced Installer for an option to do just that but haven't found one yet. When I do you can bet I'll turn it on!

tepples
Posts: 21713
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Multi-discrete mapper

Post by tepples » Fri Nov 02, 2012 6:40 pm


natt
Posts: 76
Joined: Fri Oct 26, 2012 5:27 pm

Re: Multi-discrete mapper

Post by natt » Sat Nov 03, 2012 5:43 pm

I implemented mapper 28 in Bizhawk to-day. It seems to work well enough, but there's only that one test rom.

User avatar
infiniteneslives
Posts: 2097
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: Multi-discrete mapper

Post by infiniteneslives » Sun Nov 04, 2012 12:32 am

tepples wrote:If the registers are written in the order $80 then $01, then increasing bank modes from 00 to 03 are supposed to return AA, AA, CC, F0.
This is what I get on my cart. Sounds like AxROM mirroring works then since I'm getting 'AA' right?
cpow wrote:Since I copied the mirroring setup from the buggy Verilog on the wiki, it could certainly be a bug. I will implement the behavior described not the Verilog. Look for a new release soon.
What differences are you seeing? I've read over the behavior several times now and I'm pretty sure it's set up correctly. But I've missed things in the past ;)
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers

tepples
Posts: 21713
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Multi-discrete mapper

Post by tepples » Sun Nov 04, 2012 5:45 am

Perhaps it was copied from an old version of the Verilog.

I have been working on the test ROM, but I can only do so much while away from the house with my desktop PC that has NESICIDE on it, other than perhaps loading NESICIDE on someone else's PC, based on INL's revised Verilog or kevtris's untested Verilog. Hopefully thefox can get the PowerPak version working soon. I did manage to get the automated test to start running in FCEUX and display an error message.

I have a few questions about using NESICIDE as an IDE, which I'll bring up in the other topic.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Re: Multi-discrete mapper

Post by thefox » Sun Nov 04, 2012 7:57 am

infiniteneslives wrote:Additionally thefox should be able to take my verilog and dump it into mapper #28 of power pak mappers to allow for additional testing. The one thing to keep in mind when he does that though is default/startup values my code doesn't actually cover that, it's a setting in the fitting properties of Xilinx webpack.
Can't you do this in Verilog? At least for my FPGA projects, it picks up the initialization values from Verilog automagically, i.e.

Code: Select all

reg [5:0] prg_outer_bank = 6'hFF;	//sets PRG ROM A15-20
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi

User avatar
cpow
NESICIDE developer
Posts: 1089
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: Multi-discrete mapper

Post by cpow » Sun Nov 04, 2012 8:03 am

tepples wrote:Perhaps it was copied from an old version of the Verilog.
Perhaps so. I haven't gone back to look at the verilog since I got it working.
tepples wrote:I have been working on the test ROM, but I can only do so much while away from the house with my desktop PC that has NESICIDE on it, other than perhaps loading NESICIDE on someone else's PC, based on INL's revised Verilog or kevtris's untested Verilog. Hopefully thefox can get the PowerPak version working soon. I did manage to get the automated test to start running in FCEUX and display an error message.
Did you catch my note about unchecking the "bug icon" in the toolbar to disable some of the more intensive debuggers. Unfortunately it currently disables the breakpoint engine too but I'm thinking about leaving that in. If performance of the IDE is your main issue it'd be something to try.
tepples wrote:I have a few questions about using NESICIDE as an IDE, which I'll bring up in the other topic.
Great! In my experience [both professional and private], user feedback always leads to a better end product.

User avatar
infiniteneslives
Posts: 2097
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: Multi-discrete mapper

Post by infiniteneslives » Sun Nov 04, 2012 9:47 am

thefox wrote: Can't you do this in Verilog? At least for my FPGA projects, it picks up the initialization values from Verilog automagically, i.e.

Code: Select all

reg [5:0] prg_outer_bank = 6'hFF;	//sets PRG ROM A15-20
Perhaps you can with the FPGA, From what I understand it won't work for me on the CPLD. If it's worked for you in the past I say go for it. I found online where it said you had use the flag 'defparam' to initialize in the code. This is all dependent on the compiler/synthesizer not necessarily verilog 'rules' as far as I know.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers

zeromus
Posts: 13
Joined: Mon Jun 30, 2008 3:57 pm
Contact:

Re: Multi-discrete mapper

Post by zeromus » Wed Nov 07, 2012 1:39 pm

tepples wrote: I noticed that the nametable visualizer in NESICIDE reacts instantly when I press F8 to step to the next instruction. This is convenient; FCEUX's doesn't.
Doesnt this conflict conceptually with the idea of tying the nametable viewer update to a specific scanline? There would need to be a way to change the nametable viewer to refresh every time the debugger snaps, instead of at the specified scanline.

tepples
Posts: 21713
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Multi-discrete mapper

Post by tepples » Wed Nov 07, 2012 1:58 pm

zeromus wrote:
tepples wrote: I noticed that the nametable visualizer in NESICIDE reacts instantly when I press F8 to step to the next instruction. This is convenient; FCEUX's doesn't.
Doesnt this conflict conceptually with the idea of tying the nametable viewer update to a specific scanline?
True, both behaviors can't be enabled at once, but each behavior has its own uses.
There would need to be a way to change the nametable viewer to refresh every time the debugger snaps, instead of at the specified scanline.
For that, I'd recommend a radio button with options "Current" and "Scanline #".

Anyway, I'm working on adding tests for CHR RAM size (8K, 16K, or 32K) and tests to rule out a bunch of obscure misunderstandings of nametable mirroring that arose from an IRC discussion with kevtris. I had someone make me PowerPak mappers for both 8K and 32K versions based on kev's Verilog code.

tepples
Posts: 21713
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Multi-discrete mapper

Post by tepples » Sat Nov 10, 2012 8:00 pm

I've attached the new test ROM. Push Start to rich begin the automatic test.

PowerPak mapper based on kev's Verilog: Pass
NESICIDE: Pass until reset phase; emulator does not support soft reset
FCEUX SVN: Pass until reset phase; soft reset changes to last bank
Attachments
test28-0.03.zip
(39.94 KiB) Downloaded 1177 times

tepples
Posts: 21713
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

PowerPak version

Post by tepples » Sun Nov 11, 2012 8:30 am

thefox has given me the go-ahead through an IRC conversation to distribute PowerPak mapper files (MAP1C.MAP) based on the Verilog implementation by kevtris, which pass test version 0.03. The two versions differ in their CHR RAM size:
  • The 32K version of the mapper provides four 8192-byte pages of CHR RAM.
  • The 8K version of the mapper provides one 8192-byte page of CHR RAM.
To clarify (January 2017):
Well-behaved games should run fine with the 32K. A few games may require the 8K version due to having been tested only on the 8K or on emulators that behave the same way. If you're testing a game that you're developing, use the one that matches how your board connects CHR A14-13.
Attachments
MAP1C-kev-v4-32k.zip
PowerPak mapper with 32k CHR RAM
(18.37 KiB) Downloaded 1025 times
MAP1C-kev-v4-8k.zip
PowerPak mapper with 8k CHR RAM
(18.36 KiB) Downloaded 954 times

Post Reply