Page 42 of 60
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 31 Oct 2020 12:56
by arkadiusz.makarenko
CD32 gamepad button support has been implemented.
The only thing is that ATK doesn't detect it. (Buttos still can be tested though, but message on the bottom of the screen say not detected). It is looking at 7+ bits and is looking for gamepad id. I do provide it, but this still doesn't do the trick.
It don't think it is relevant to games anyway.
Now it is time to test it in real life.
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 31 Oct 2020 13:04
by matt020
Just letting you know that this thread so far has reached more than 32 thousand views!!!
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 31 Oct 2020 13:09
by theq
And if you have a board to spare, then I can relieve you of it (paid for, of course) ;)
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 31 Oct 2020 16:40
by arkadiusz.makarenko
matt020 wrote: 31 Oct 2020 13:04
Just letting you know that this thread so far has reached more than 32 thousand views!!!
... Yes 2/3 of this traffic is me reading left by TF notes, over and over again :D
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 31 Oct 2020 20:18
by arkadiusz.makarenko
Mouse clicks do not work in Syndicate (and Populus ... so I assume all Bulfrog games) for some reason.
It may be the same like with Turrican gamepad directions... some unusual math for button calculations.
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 01 Nov 2020 17:26
by arkadiusz.makarenko
OK, next weirdness solved!
Bullfrog games (and I assume old titles) might be looking for CIAAPRA values not in BFE001, but BFE0FF - which would be visible in my 5 Address decode as 3F... Took me a while to spot it, even if I did see Bullfrog example assembly to read clicks online, just failed my math, and I wrongly decoded address for 1F, not 3F ...
OK :) I have seen some more weirdness in ATK that this register might be located in shadow register under address BFE003 ...<- I will ignore this for now.
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 01 Nov 2020 20:14
by arkadiusz.makarenko
To get most floppy signals I need to do one more CIA register.
I am not sure about DSKINDEX and MTR0
Code: Select all
FLAG DSKINDEX* Disk index pulse ($BFDD00, bit 4). Can be used to
create a level 6 interrupt.
Code: Select all
22 INDEX* I/O Index is a pulse generated once per disk revolution,
between the end and beginning of cylinders. The
8520 can be programmed to conditionally generate a
level 6 interrupt to the 680x0 whenever the INDEX*
input goes active.
Code: Select all
BFE001 pra /FIR1 /FIR0 /RDY /TK0 /WPRO /CHNG /LED OVL
BFD100 prb /MTR /SEL3 /SEL2 /SEL1 /SEL0 /SIDE DIR /STEP
CHNG - CIAAPRA BFE001
INUSE - not connected
INDEX - _FLAF CIA $BFDD00
SEL0 - CIABPRB BFD100
MTR0 - _MTR ? CIABPRB BFD100
DIR - CIABPRB BFD100
STEP - CIABPRB BFD100
DKWD - STM32 pin
DKWE - STM32 pin
TK0 - CIAAPRA BFE001
WPRO - CIAAPRA BFE001
DKRD - STM32
SIDE - CIABPRB BFD100
RDY - CIAAPRA BFE001
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 01 Nov 2020 20:39
by terriblefire
Not sure you strictly need DSKINDEX but you would send it before you start sending data. its meant to help disks sync when they see an index MFM magic number from memory. i.e. start of a track ?
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 01 Nov 2020 21:16
by arkadiusz.makarenko
terriblefire wrote: 01 Nov 2020 20:39
Not sure you strictly need DSKINDEX but you would send it before you start sending data. its meant to help disks sync when they see an index MFM magic number from memory. i.e. start of a track ?
Based on this project :
http://aminet.net/package/docs/hard/cd3 ... y#contents
Index is generally not used except few cases...
cd32floppydrive.png
Similar with Motor On signal... we don't have motor so why we would need motor control signals :D
Re: TF CD32 Riser Revision 2 Design Complete
Posted: 01 Nov 2020 21:33
by terriblefire
arkadiusz.makarenko wrote: 01 Nov 2020 21:16
terriblefire wrote: 01 Nov 2020 20:39
Not sure you strictly need DSKINDEX but you would send it before you start sending data. its meant to help disks sync when they see an index MFM magic number from memory. i.e. start of a track ?
Based on this project :
http://aminet.net/package/docs/hard/cd3 ... y#contents
Index is generally not used except few cases...
cd32floppydrive.png
Similar with Motor On signal... we don't have motor so why we would need motor control signals :D
You can simply pulse the index before you start sending a tracks worth of MFM data. That would do the job.
Motor on would indicate that you should periodically pulse the index and send a tracks worth of mfm. Really its just used by drivers so they know data is coming.