|
1. no difference, it will look exactly the same to the mapper.
2. I don't think there is a 1024KB MMC1 game. Dragon Warrior 4 was thought to be that size, but it was a bad dump. (it's 512KB)
3. Just write it like a normal register (LDA #$80 / STA $8000), it's seperate from the port.
4. It selects 4KB or 8KB banks. Just experiment with it a bit and you'll see how it works. I usually use CHR-RAM, so I don't know.
5. I'm not sure why it's called that. Should be safe to consider it the MSB of the PRG bank select (for a 512KB ROM).
6. It's pretty simple, really. First, you'd write #$80 to reset it, then take your 5-bit value and write it into bit 0 of the register, one bit at a time.
The port is shared between all the registers, but that only means you need to completely write one register before moving on to reset and write the next one.
I used the MMC1 once, here's the routine I used to write to the registers (reg0 and reg3 are bytes in RAM containing the 5-bit value):
mmc1write: lda #$80 tax sta $8000, x lda reg0 tax sta $8000, x lsr tax sta $8000, x lsr tax sta $8000, x lsr tax sta $8000, x lsr tax sta $8000, x
lda #$80 tax sta $E000, x lda reg3 tax sta $E000, x lsr tax sta $E000, x lsr tax sta $E000, x lsr tax sta $E000, x lsr tax sta $E000, x rts
Why the heck did I do so many TAX instructions, bus conflict paranoia? :S But that's what I used a couple years ago, and it works. Also, if you're putting it on a cart eventually, be aware that there are various revisions of MMC1. (MMC1a selects a random 32KB bank at startup.. I dunno about the others)
|