Definitely better because ORing two data lines will yield nonsense data. Plus OR gate chips don't have 3-state buffers required for interfacing to a data bus.Yes, a multiplexer can be used too, maybe even better than adding those together with an OR (a+b). Thanks for the tip.
If I really wanted to make a new cart of this I'd sooner hack the menu to work with simpler hardware, or write another one. Hacking the mapper could get it down to 3 or 4 extra chips instead of the large amount with the current inefficient design.
The decoding isn't very hard because you can take advantage of a pattern:
Code: Select all
rockman size 1 2m/cram -- pad prg and use for menu 2 2m/cram 4 4m/cram 6 4m/cram 3 2m/2m -- pad chr 5 2m/2m - 4m/2m -- unused, undecoded - 4m/2m -- unused, undecoded
$000000: MM1 and menu
Values written to 161:
Code: Select all
3210 $6000-$7FFF: PRG ROM bankswitch |||| |||+- Select half of 512 KiB bank (ignored when bank size is 512 KiB) |++-- Select 512 KiB bank |+--- Set PRG ROM bank size (0: 256 KiB; 1: 512 KiB) +---- Select CHR chip (0: CHR RAM; 1: CHR ROM)
PRG A20-A19: 161 D2-D1
PRG A18: MMC3 A18 if 161 D2 is true else 161 D0
PRG A17-A0: From MMC3
CHR A18: From 161 D0
CHR chip enables: Decoded from 161 D3
In addition to the 161, I see an inverter to decode the CHR ROM enable (unless your CHR ROM has a positive enable), a multiplexer to generate PRG A18, and some sort of power-on-reset circuit to force 0 into the 161 on boot.
While it also suffer of some slowdown (it's the original game, not an patched ROM) it's not even close to the slowdowns I had with the MMC3 patched Rockman rom.
If anyone feels like testing, play the 1st part of Iceman stage and try to put many enemies on the screen.
Code: Select all
unromsetbank: ; as might have been used in Mega Man tay sta busconflict,y ; 6 cycles so far rts busconflict: .byt 0, 1, 2, 3, 4, 5, 6, 7 mmc1setbank: ; as might have been used in Mega Man 2 sta $E000 lsr a sta $E000 lsr a sta $E000 lda #0 sta $E000 sta $E000 ; 26 cycles so far rts mmc3setbank: ; as might have been used in Mega Man 3-6 asl a ldy #6 ; Reg 6: PRG bank $8000 sty $8000 sta $8001 iny ; Reg 7: PRG bank $A000 sty $8000 ora #$01 sta $8001 ; 24 cycles so far rts
If the IRQs were firing I think you'd experience something worse but I'm not sure. Or maybe they bothered to alter the IRQ routines to disable it if they did fire. I didn't study the hacked versions much.
l_oliveira wrote: If anyone feels like testing, play the 1st part of Iceman stage and try to put many enemies on the screen.
Just wanted to add a piece of informations someone may find useful (or not).jpx72 wrote: Since I don't have original Rockman 1 at hand and I don't remember if the slowdown in case of many enemies on screen should be so visible, if not, it may be an issue of this multicart.
Since I have two (2) different carts of that Rockman 6in1 I tried to find out if there are any differences, but just before that I'd like to personally say I think all of them Rockmans suffers some kind of slowdowns when there is like too many things on the screen at the particular time (i.e. just try to "collect" as many bees as you can right at the beginning of the "Hardman" stage in Rockman 3, you'll notice that right away), so it's kinda "natural" I'd say, as for that "Iceman" stage from Rockman 1 I haven't noticed anything unusual, maybe just a little slowdown l_oliveira, but there is this one enemy on some other stage in Rockman 1 (I don't exactly remember where it was...), flying rocket or something, when you hit it, it explodes with massive blast radius causing a huuuuuge slowdown, that is something, or hell even while firing "electro shot" you can experience something little bit similar.
Now, on to the differences. Right of the bat not only the casing is different but also a PCB and a menu screen :
"Regular" Rockman 6in1 cart >> http://img535.imageshack.us/img535/3084/r6in1.jpg
and it's PCB (hi-res) >> http://img812.imageshack.us/img812/3319/r6in1b.jpg
"Other Rockman 6in1 cart >> http://mwk.netne.net/006.jpg
it's PCB (hi-res) >> http://img233.imageshack.us/img233/4350/r6in1a.jpg
and game select screen >> http://img825.imageshack.us/img825/1850/r6in1scr.jpg
What's also kinda weird is this "Loading..." screen that appears for like noticeable half a second right after choosing any game. It's like all the games are packed or something and they're need to be decrunched, I dunno, but I always enjoy watching that flashy quickie load screen
I believe that Sony chip from the back side is just a regular SRAM, but the "main" one is that "MX29L3211MC-10 - 32M-BIT [4M x 8/2M x 16] CMOS SINGLE VOLTAGE PAGEMODE FLASH EEPROM - Macronix International" >> pdf here, so that glob-top seems to be only just a mapper (with/without menu screen), correct me if I'm wrong.
As for the games, all Rockmans aren't "screwed up" with extra lifes, only copyrights have been removed from Rockman 3, the rest is fine... but, yeah, one big thing that affects the entire, sweet cake that multicart is... unfortunately at precise point of Rockman 1 (that waterpipe at the beginning of the 3-rd (I believe?) part of Dr.Wily's stage, right after water flushes in) game suddenly (!) switch back to the title screen like nothing ever happen
Believe me, I've tried everything on like 4 or 5 different consoles (including famiclones).
Sad sad thing it is.
Anyway, I hope all this will help somehow.
Rockman resetting could be for many reasons. Maybe they just did a poor job of hacking.