MiSTer-devel / NES_MiSTer

GNU General Public License v3.0
171 stars 73 forks source link

About mapper 153... #333

Open mopplayer opened 1 year ago

mopplayer commented 1 year ago

Hi, I just simplified the code, which did not support EEPROM and Save states. Testings with 16/159 games are OK. But 153 is not (Famicom Jump II ).

I only change those lines, and remove useless blocks:

reg eeprom_scl; //remove eeprom_sda

'hd: eeprom_scl <= prg_din[5]; //Only need eeprom_scl to control RAM for 153

assign prg_dout = (!mapper153 && prg_is_ram) ? 8'h00 : 8'hFF;

Did I miss something? EEPROM should not influence the rest of the code, right?

paulb-nl commented 1 year ago

What are you trying to do?

What is the problem with Famicom Jump II?

There is a note about the game here: https://www.nesdev.org/wiki/INES_Mapper_153

When booting with WRAM filled with zeroes, Famicom Jump II will freeze with a black screen. Simply soft-resetting the console will then always run the game properly unless WRAM is zeroed out again

mopplayer commented 1 year ago

@paulb-nl Yeah, I have found the problem.

Whatever I have done with RAM initiation, the ROM of "Famicom Jump II - Saikyou no 7 Nin (J) [!].nes" will not work. I think the core is not done with any other special handling.

Then, I use "Famicom Jump II - Saikyou no 7 Nin (J).nes" without [!] , it works.

Could you explain what is the difference between [!] and no-[!]? and [hFFE]? [a1]? [b1]? [o1]?

Thank you very much.

paulb-nl commented 1 year ago

[!] means verified good (header can still be wrong) , [a1] is alternate I think, [b1] bad, [o1] over (too big).

I think the ROMs that are not working are set to the wrong mapper number in their header. You should check it.

mopplayer commented 1 year ago

@paulb-nl Oh, I see.

I check the header of [!] ROM, which is ines[6]=0x02 and ines[7]= 0x10. The header is wrong.

But I don't know this difference, wast my time to debug...bad ROM.

Moreover, what's that meaning of [hFFE] ?

Thank you very much.