XRoar with MPI and two cartridges

Hardware Hacking, Programming and Game Solutions/Cheats
Post Reply
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

XRoar with MPI and two cartridges

Post by pser1 »

Hi all,
I am trying to get XRoar loading a DOS into slot 3 and Orchestra90cc into slot 0, but any other combination would be acceptable as well.
I simply don't know what should I do to accomplish that.
The longer command I have tried is this one
xroar -machine dragon64 -extbas d64_1.rom -altbas d64_2.rom -machine-cart mpi -mpi-load-cart 3=dragondos -mpi-load-cart 0=orch90 -mpi-slot 3 -force-crc-match -tape-fast -joy-left 0,0:1:0 -kbd-translate -lp-file ..\XRoar\sortida.txt
That one starts de DOS but any VDK I load is not read, the answer to DIR, after a while, is always ...
? LD ERROR
Another strange point, if I do:
POKE&HFF7F,0
in order to select slot0 then the Dragon hangs!

Any hint would be highly appreciated
thanks in advance

cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar with MPI and two cartridges

Post by pser1 »

Hello,
this one loads the DOS and reads the discs as it should, but it doesn't load the cartridge "orch90"
xroar -machine dragon64 -extbas d64_1.rom -altbas d64_2.rom -mpi-load-cart 0=orch90 -mpi-load-cart 3=dosPlus -force-crc-match -tape-fast -joy-left 0,0:1:0 -kbd-translate -lp-file ..\XRoar\sortida.txt
Under menu Hardware/Cartridge it shows the DOS one and nothing more ...

This is the stderr.txt file

Code: Select all

WARNING: Hitachi HD6309 support is UNVERIFIED!
Module init: Windows SDL UI
Module init: Windows file requester
Module init: SDL OpenGL video
Module init: SDL audio
	16-bit signed little-endian, stereo, 48000Hz
	1 frags * 1024 frames/frag = 1024 frames buffer (21.3ms)
Module init: SDL keyboard input
	No joysticks found
Machine: Dragon64 (last)
Loading ROM image: ./d64_1.rom
Loading ROM image: ./d64_2.rom
	32K mode BASIC CRC = 0x84f68bf9 (forced)
WARNING: Invalid CRC for combined BASIC ROM
	64K mode BASIC CRC = 0x17893a42 (forced)
WARNING: Invalid CRC for alternate BASIC ROM
Cartridge: DragonDOS
Loading ROM image: ./ddos40.rom
	CRC = 0xf444d57f
Loading VDK virtual disk: 40C 1H 18S (256-byte)
Reading Dragon BIN file
WARNING: Dragon BIN: short read
Writing VDK virtual disk: 40C 1H (6400-byte)
Module shutdown: SDL keyboard input
Module shutdown: SDL audio
Module shutdown: SDL OpenGL video
Module shutdown: Windows file requester
Module shutdown: Windows SDL UI
cheers
pere
sixxie
Posts: 1346
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Re: XRoar with MPI and two cartridges

Post by sixxie »

I think there's a problem with initial slot selection. In your first example, if you POKE &HFF7F,&H33 it'll work. I'll have a look into this...
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar with MPI and two cartridges

Post by pser1 »

Hi Ciaran,
that's interesting ...
I have made the POKE&HFF7F,&H33 to select bank 3 and then DIR works flawlessly, good!
But then if I want to start the Orchestra cartridge, I cannot enter
POKE&HFF7F,0 to select bank 0 because then the Dragon hangs.
Fortunately, while developping my extender, I made some small basic programs to change of slot / SDC bank.
I have used this one and worked for me. It seems that the change has to be done with interrupts disabled!

Code: Select all

100 DATA 1A,50,86,33,B7,FF,7F,7E,B3,B4,39
110 FOR I=0 TO 10:READA$
120 POKE&H7000+I,VAL("&H"+A$):NEXT
130 INPUT"SLOT #";SN
140 IF SN<1 OR SN>4 THEN130
150 X=17*(SN-1)
160 POKE&H7003,X
170 EXEC&H7000
cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar with MPI and two cartridges

Post by pser1 »

Hello Ciaran,
one and only one time of the many tests I have done, the POKE&HFF7F,0 has started Orchestra90, by luck for sure.
The other times it has just hanged, but calling a hard reset Orchestra90 is started OK.

Clearly that software was developped for the CoCo as the keyboard map must be changed to the CoCo or one goes mad!
But there are a lot of already written songs in DSK files or simple .asc (ASCII files) that would be nice to be able to load
and listen to or even modify them.
But it seems that the program is calling the CoCo DOS.
The commands 'D' to set Disk input/output and
'W filename' all end up with the error #7 (FILE I/O ERROR)
So it seems that in order to use it with the Dragon something must be patched ... or we should have to accept to work with casettes

cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar with MPI and two cartridges

Post by pser1 »

Hello Ciaran,
we are trying to make Orchestra90 work with Dragon Dos floppies (instead or RSDOS)
and wanted to make some tests.
We have two sound variants, one that uses the standard double 8 bit DAC on the Orchestra
cartridge and another that sends the calculated bytes to the Dragon internal DAC (6 bits)
I use a simple bat to start XRoar with MPI, DOS and Orchestra cartridge

Code: Select all

xroar -machine dragon64 -extbas d64rom1v31.rom -altbas d64rom2v31.rom -machine-cart mpi -mpi-load-cart 3=dosPlus50 -mpi-load-cart 0=orch90 -mpi-slot 3 -force-crc-match -tape-fast -joy-left 0,0:1:0 -kbd-translate -lp-file ..\XRoar\sortida.txt 
Those ROMs are copied in the XRoar folder and there I have a reduced config file containing

Code: Select all

machine dragon64
	machine-desc Dragon64
	machine-arch dragon64
	extbas d64rom1V31
	altbas d64rom2V31
	ram 64
cart dosPlus50
	cart-desc DosPlus 5.0 (3S)
	cart-type dragondos
	cart-rom dplus50
cart orch90
  	cart-desc Orchestra-90 CC
  	cart-type orch90
  	cart-rom orch90
  	cart-autorun
Once started Orchestra, I notice that the sound, while playing, varies too much, it fluctuates up
and down its own pace.
When I try this on my real Dragon64 and the Orchestra cartridge this doesn't happen, so
Could be this an MPI side-effect?
A big problem is that, using the MPI, with slot 3 selected for the disks and having the Orchestra
cartridge on slot 0, after running a program from disk that switches to MAP1 and copies
our own version of Orchestra that calculates the data to send to the cartridge at addresses
$ff7a-$ff7b then XRoar doesn't produce any sound at all!
I need to switch to slot 0 to get the sound, but this should not be mandatory.
/SCS must only disable the range $ff40-$ff5f so $ff7a should ALWAYS respond ...
This is what it happens with real hardware ... Maybe this is another MPI side-effect?

If you could give us any hint - advice it would be much appreciated
cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: XRoar with MPI and two cartridges

Post by pser1 »

Hi Ciaran,
the sound problem is absolutely related to my PC.
It has two sound output jacks, one of them works flawlessly but the other modulates
the sound at a very low rate. So I am using now the 'good' output and there is no more
up and down level changes, sorry!

But the fact that one has to switch to slot 1 to listen to the music is a problem because
this blocks the possibility of listening all of the songs of a disquet automatically.
Now I have to select slot 4 to load a score and then the slot 1 to play ...
Could you have a look for maybe there is a chance to make Orchestra 'receive' the data
on $ff7a-7b (despite its /SCS is not selected) and so outputting music?

thanks in advance
cheers
pere
Post Reply