Wort to hear : SCC + SHIRU's replayer!
http://karoshi.msxgamesbox.com/index.php?topic=562.msg12172#msg12172
@WYZ,
How is going you work on the PT3+FX+SCC replayer ?
You promised to release the code, but since then I had
no news from you ... In holiday time I have a bit more of spare
time for msxing. Grin
Do you need some support ?
Hello
I'm finding that the SCC detection in WYZ seems to hang my code.
WYZ 's code is here:
http://karoshi.msxgamesbox.com/index.php?topic=562.0
and the SCC DETECT is this one
;DETECTA SCC **** PROVISIONAL DETECTSCC: LD BC,$0400 LD HL,$FCC1 JC3B8: PUSH BC PUSH HL LD A,[HL] BIT 7,A JR NZ,JC3C5 LD A,C CALL JC3E5 JR JC3C8 JC3C5: CALL JC3D5 JC3C8: POP HL POP BC RET C INC HL INC C DJNZ JC3B8 LD A,$FF LD [SCCSLOT],A RET JC3D5: AND $80 OR C LD B,04 JC3DA: PUSH BC CALL JC3E5 POP BC RET C ADD A,$04 DJNZ JC3DA RET JC3E5: LD [SCCSLOT],A CALL JC401 ;PUSH AF ;SOLO SI HAY DISCO ;LD A,[$F342] ;LD H,$80 ;CALL $0024 ;POP AF JR NC,JC3FC LD A,[SCCSLOT] SCF RET JC3FC: LD A,[SCCSLOT] AND A RET JC401: LD H,$80 CALL $0024 LD A,02 LD [$9000],A CALL JC415 JR C,JC420 LD A,$3F LD [$9000],A JC415: LD HL,$9800 LD A,[HL] CPL LD [HL],A CP [HL] JR NZ,JC420 SCF RET JC420: OR A RET
Do anyone know why it does not work ?
Are you trying this on a machine/emu with diskdrives?. I'm telling you that because (looking at the comments) seems that the commented code is used when a drive is present...
I use bue/openmsx and C-bios, so no diskdrive
ok i think I see some light
This code (I guess) falls in the same page whee it is supposed to have the SCC registers.
A question to those worked with WYZ patch:
Doing a megarom, in order to play SCC music at each interrupt,
should I change slot to SCC slot each time i write to SCC registers
and than go back to my slot with my ROM ?
In case, it is a torture !!
should I use call 0x24 at each interrupt -twice- or there is a faster trick to
do the same (e.g. assuming no expanded slot and so on...)
Hello
can anyone tell me how the SCC works wrt slots and pages?
While doing a ROM, should I keep the area around 0x9800 free from my data?
or,
should I switch slot each time I access to SCC registers ?
(in this case using freely the area at 0x9800)
As far as I understand, yes. You must first locate the slot where the SCC is contained and then, everytime you want to access it you must enable this slot and write in the SCC memory area. I've never tried with SCC programming; so I'm not 100% sure about that, maybe there're tricks to speed up a bit its management.
You can find detailed info on the BiFi pages: Konami SCC Sound Chip
Ok, let me recollect.
SCC chip can be accessed using the area 9800h - 98FFh of page 3Fh of the slot where a Konami ROM with SCC is.
So, at boot time I need to locate the slot where the SCC is
Moreover, at each interrupt, I should:
1) enable the slot where the SCC is
2) set page 3Fh in Bank 3 of that Konami ROM (i.e. write 3Fh in (9000h) )
3) access to area 9800h - 98FFh
4) set back my own slot
I'm using an ASCII 8 mapper for my game, what about moving to different mapper, e.g. Konami5 ?
If I understand, using a the ROM mapper Konami with SCC means that all I need to do is to
1) set page 3Fh in Bank 3 of that Konami ROM (i.e. write 3Fh in (9000h) )
2) access access to area 9800h - 98FFh
3) set back Bank 3 to its previous value
Can anyone confirm if this is the correct way of acting ?
Moreover, at each interrupt, I should:
1) enable the slot where the SCC is
2) set page 3Fh in Bank 3 of that Konami ROM (i.e. write 3Fh in (9000h) )
3) access to area 9800h - 98FFh
4) set back my own slot
You only need to do step 2 once (i.e.: in SCC detection rutine). Next time you select the SCC slot, the SCC registers bank will be active.
I'm using an ASCII 8 mapper for my game, what about moving to different mapper, e.g. Konami5 ?
Just change ASCII8 banks register address with Konami ones (#6000, #6800, #7000, #7800 -> #5000, #7000, #9000, #B000)
If I understand, using a the ROM mapper Konami with SCC means that all I need to do is to
1) set page 3Fh in Bank 3 of that Konami ROM (i.e. write 3Fh in (9000h) )
2) access access to area 9800h - 98FFh
3) set back Bank 3 to its previous value
Can anyone confirm if this is the correct way of acting ?
Yes, it is right.