Nope, still doesn't work.
I do something like the following:
1. Enable MMC64
2. Map MMC64 I/O to $df20 (so it can be written to without disturbing any Retro Replay present)
3. Enable MMC64 Clock Port
4. Map MMC64 I/O to $de00 (because the rest of my RRNet code is using this I/O space)
5. Test if NIC is present
6. If NIC found, go about my RRNet business, else:
7. Map MMC64 I/O to $df20 (to get the MMC64 clock port out of the way and make room for Retro Replay clock port)
8. Enable Clock Port on Retro Replay
9. Test if NIC is present
10. If NIC found, go about my RRNet business
The relevant code snippets:
Code:
NICDetect
lda #$0a
sta $df13
lda #$1c
sta $df13
lda #%00001001 ;Ext ROM + Map I/O to $df20
sta $df11
lda #$01 ;Enable Clock Port on MMC64
sta $df21
lda #%00000001 ;Ext ROM + Map I/O to $de00
sta $df11
<Read ProductIDCode from NIC>
<if read ok GOTO CSDetected>
<else:>
NoMMC64Nic
lda #%00001001 ;Ext ROM + Map I/O to $df20
sta $df11
;Enable Clock Port on RR
lda $de00
and #%11111010
ora #%00000001
sta $de01
and #%10011000
sta $de00
<Read ProductIDCode from NIC>
<if NOT read ok GOTO NoCS>
<else:>
CSDetected
<Do actual NIC detection stuff...>
jmp Exit
NoCS
<Print error message>
Exit
rts
And like you suggested I have also tried setting bits 1 and 2 in the $df11 writes, but without any effect.
I have been looking at the Browser code, but cannot seem to figure out why this doesn't work. You must be doing something wicked
