Author
| Dual display (MSX, Virtual Reality ready?) using the two VDP's of the MSX computers.
|
NYYRIKKI msx master Posts: 1503 | Posted: December 06 2007, 20:54   |
Yes, this feature is called DRAM mode. Originally it is meant to speed up bios calls in R800 mode, but it can be used also to patch BIOS. The program works like this: Check what CPU mode we are running. Switch to R800 ROM mode, patch CHCPU routine so that Z80 ROM = Z80 DRAM and R800 ROM = R800 DRAM, put 3D glass support to unused space left by cassette routines, patch the int routine so, that it will leave the joystic port2 alone, switch to R800 DRAM mode, switch to saved CPU mode.
This is pretty good way as after running the patch you can start game for example by software reseting the computer. If you want to experiment with this feature, use OpenMSX. BlueMSX unfortunately does not support DRAM mode at all.
|
|
ARTRAG msx master Posts: 1592 | Posted: December 06 2007, 21:03   |

newer used this feature!

TR offers more than I was thinking 
Any docs on this DRAM mode ? |
|
NYYRIKKI msx master Posts: 1503 | Posted: December 07 2007, 17:40   |
No, not really, but this should get you going... You can use CHCPU routine like this:
LD A,L00000MM
JP #180
L=1 Update CPU LED
L=0 Don't update CPU LED
MM=0 Z80 ROM
MM=1 R800 ROM
MM=2 R800 DRAM
If you need to access Z80 DRAM mode, use CHCPU to switch to Z80 ROM and then do:
OUT &HE4,6: OUT &HE5,32
ROM:s are in last memory mapper pages:
#FC = BIOS (0-0 #0000-#3FFF)
#FD = BASIC (0-0 #4000-#7FFF)
#FE = SUBROM (3-1 #0000-#3FFF)
#FF = Kanji ROM (3-1 #4000-#7FFF)
|
|
ARTRAG msx master Posts: 1592 | Posted: December 08 2007, 13:46   |
could you use this feature in order to include a small segment
of code that echoes the psg on the scc in a given slot?
WYZ showed that the effect can be great
main ideas are here
http://karoshi.msxgamesbox.com/index.php?topic=562.0
In this way we can have scc support in any psg only game!!!!!!
Just read the AY registers and copy them adjusting a bit
in the scc registers
this is the code to add to the interrupt:
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
the sole problem is the scc init, but it can be solved |
|
NYYRIKKI msx master Posts: 1503 | Posted: December 08 2007, 21:32   |
Quote:
| could you use this feature in order to include a small segment
of code that echoes the psg on the scc in a given slot?
|
Yes, go to http://www.msx.fi/nyyrikki/software.html and search for "PSG emulator for SCC Ver: 1.0"
Although this only patches BIOS routines it could be made to read PSG as well... How ever I'm not sure I can find the sources anymore... 10 years is a long time...
|
|
ARTRAG msx master Posts: 1592 | Posted: December 08 2007, 22:43   |
actually the difference are the CHORUS effects
that make the music a lot better
And if you read the psg you are sure that any
game will work.
moreover we could have the instruments vary
using a key....
|
|
NYYRIKKI msx master Posts: 1503 | Posted: December 08 2007, 23:13   |
So with "CHORUS" you mean detuning the voice and playing it one other channel, or do you mean something more complex?
|
|
ARTRAG msx master Posts: 1592 | Posted: December 08 2007, 23:20   |
that is chorus! even nicer when the two channels have also different waves
|
|
|
|
|