Karoshi MSX Community
05 de Julio de 2021, 01:13:57 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2]
  Imprimir  
Autor Tema: PT3 Replayer SCC patch  (Leído 16813 veces)
0 Usuarios y 1 Visitante están viendo este tema.
WYZ
Visitante
« Respuesta #15 : 15 de Julio de 2007, 11:12:05 pm »

Not yet ARTRAG. I forgot it! In a few days I will upload a new versión which performs a search/patch rutine. (RAM)


Anyway the bugs reported to MRC was related to OpenMSX new version with improved SCC features and my own replayer ( It tries to read the SCC RAM) and now it's fixed.


meanwhile, check the music from Shiru's PT3.


Thanks to Shiru!! Grin


EDIT: **** update new version ****reupdated*** Grin


.txt modifies the file Huh
« Última modificación: 16 de Julio de 2007, 09:36:03 pm por WYZ » En línea
ARTRAG
Visitante
« Respuesta #16 : 16 de Julio de 2007, 12:34:26 pm »

 Cry

My current player works in ROM so your search/patch would not be very useful.
It is easier if you write few lines of comment in order to guide us to patch the pt3 player ourself.

Have you removed the issue about reading SCC ram ? Is this already reflected in the code at the beginning of this tread ?

What you mean referring to Shiru's replayer ?
Have you patched Shiru's replayer in order to work with the SCC ?
That would be great! This was my purpose from the beginning!

Can you release the asm ?

BTW the rom you attach seems corrupted
It hangs any msx i tried (I used bluemsx)

PS
I tried also openmsx, and it does not fits the correct size for 16K roms

PPS
 Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh  Cry Huh

EDIT2
WYZ
the new ROM "test2.rom" does not wok, BUT the newest ("test3.rom") rocks!!!!
« Última modificación: 16 de Julio de 2007, 09:35:38 pm por ARTRAG » En línea
WYZ
Visitante
« Respuesta #17 : 16 de Julio de 2007, 09:40:04 pm »

@Artrag I'm checking the AYFX code and I have a not fixed Shiru's replayer fixed with the Dioniso's code!!!!

So please don't use it in a Real MSX.

-->>> download this new one. Sorry!!! Sad <<<--

« Última modificación: 16 de Julio de 2007, 09:47:48 pm por WYZ » En línea
ARTRAG
Visitante
« Respuesta #18 : 16 de Julio de 2007, 09:52:51 pm »

I just reported that test3.rom works great!
Please keep it.
 Grin

Actually now both test.rom and test3.rom works great, what are you working on?
« Última modificación: 16 de Julio de 2007, 09:55:16 pm por ARTRAG » En línea
WYZ
Visitante
« Respuesta #19 : 16 de Julio de 2007, 10:01:15 pm »

Test3.rom don't avoid to write wrong values to PSG. I download the Shiru's code from the MRC first post and it was not updated. That's all
En línea
ARTRAG
Visitante
« Respuesta #20 : 01 de Agosto de 2007, 10:48:34 pm »

@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 ?
En línea
ARTRAG
Visitante
« Respuesta #21 : 03 de Agosto de 2007, 12:03:35 pm »

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
Código:
;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 ?

 Cry Cry Cry

EDIT
MY fault, my code is switched away by the SCCDETECT code
« Última modificación: 06 de Agosto de 2007, 04:32:38 pm por ARTRAG » En línea
ARTRAG
Visitante
« Respuesta #22 : 06 de Agosto de 2007, 09:33:42 am »

After try and errors, it is time to recollect about the SCC.

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 and Bank

I'm using an ASCII 8 mapper for my game, what about moving to different mapper, e.g. Konami5 ?

If I understand, using as ROM mapper "Konami with SCC" means that all I need to do is to
1) set page 3Fh in Bank 3 of the Konami ROM (i.e. write 3Fh in (9000h) )
2) access to area 9800h - 98FFh
3) set back Bank 3 to its previous value

I would save two slot swaps.
Moreover I do not need to detect the SCC as it is in my own slot...
Can anyone confirm if this is the correct way of acting ?

« Última modificación: 06 de Agosto de 2007, 04:33:07 pm por ARTRAG » En línea
ARTRAG
Visitante
« Respuesta #23 : 08 de Agosto de 2007, 06:24:45 am »

I've spotted a problem in the code of WYZ
It does not control the mixer in the SCC.
This is a issue, as when the PT3 player switches off
a channel, the SCC continues to play that note.


Here there is a patch to the WYZ's patch able to override the problem,
modify the code at the beginning of this tread with this routine:


Código:
            LD HL,AYREGS            ;REPRODUCE SONIDO EN PSG
   
_LOUT:      OUT (C),A
            INC C
            OUTI
            DEC C
            INC A
            CP  13
            JR NZ,_LOUT
            OUT (C),A
            LD A,(HL)
            AND A
            JP  M,SCCOUT
            INC C
            OUT (C),A

;CLONA SONIDO AL SCC

;CANALES PSG    SCC
;     A 1+4
;     B 2+5
;     C 3


SCCOUT:     ;FRECUENCIA

            ld  a,0x3fh
            ld  (Bank3),a

            LD  HL,(AYREGS+0)       ;REPRODUCE SONIDO EN SCC
            LD  (SCC_REG+0),HL
            DEC HL                  ;CHORUS EN CANAL 4 OPCIONAL
            LD  (SCC_REG+6),HL      ;*
            LD  HL,(AYREGS+2)
            LD  (SCC_REG+2),HL
            DEC HL                  ;CHORUS EN CANAL 5 OPCIONAL
            DEC HL
            LD  (SCC_REG+8),HL      ;*
            LD  HL,(AYREGS+4)
            LD  (SCC_REG+4),HL

            ;VOLUMEN

            LD      A,(AYREGS+8)
            LD      (SCC_REG+0x0A),A
            LD      (SCC_REG+0x0D),A
            LD      A,(AYREGS+9)
            LD      (SCC_REG+0x0B),A
            LD      (SCC_REG+0x0E),A
            LD      A,(AYREGS+10)
            LD      (SCC_REG+0x0C),A
           

            ;MIXER
            ld a,(AYREGS+AR_Mixer)
            ld  b,a
            xor a
            bit 0,b
            jp nz,noA
            or  00001001B       ; A-> ch 1 & 4
noA:        bit 1,b
            jp  nz,noB
            or  00010010B       ; B-> ch 2 & 5
noB:        bit 2,b
            jp  nz,noC
            or  00000100B       ; C-> ch 3
noC:        ld (SCC_REG+0x0F),a
           
            RET

« Última modificación: 08 de Agosto de 2007, 10:43:34 am por ARTRAG » En línea
ARTRAG
Visitante
« Respuesta #24 : 09 de Agosto de 2007, 07:37:35 am »

Replace the Mixer part with this code that is by far better (thanks to Vincent van Dam)

Código:
; MIXER

ld a,(AYREGS+AR_Mixer)
xor 7
ld b,a
and 3
add a,a
add a,a
add a,a
or b
ld (SCC_REG+0x0F),a
En línea
Páginas: 1 [2]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!