djh0ffman / PT1210

PT-1210 Amiga DJ Software
40 stars 3 forks source link

CD32 Control Pad support #23

Closed kikendo closed 3 years ago

kikendo commented 5 years ago

I started this and maybe it's close or it to work. I am using JOTD's CD32 pad code found in the JST source here: http://jotd.pagesperso-orange.fr/amiga.html

I included his code and I am just unable to wire it to the rest of the program. Hoffman will have to look at my version of the code when I send it to him.

I already devised a preliminary control scheme fr CD32 pad control. It involves shift keying:

L+R = shift keys Pad Left: Nudge - Pad Right: Nudge + Pad Up: BPM + Pad Down: BPM - R+Pad Left: Nudge Hard - R+Pad Right: Nudge Hard + R+Pad Up: Pattern Fwd R+Pad Down: Pattern Rwd Red button: Loop FX on/off Blue button: loop length cycle Green button: slip mode Yellow button: Set Loop In/Out/Off L+Yellow button: Repitch on/off Start button: Play/Pause L+Start button: Cue R+Start button: Set Cue

Of course this will need intensive testing and redoing.

I have a controller board to create a CD32 pad. I could even turn this into a bespoke controller!

dwhinham commented 5 years ago

pt1210-cd32test.zip

Hey @kikendo!

Here's a rough test build with CD32 pad support mapped according to the above (hoping I've understood it properly) along with up/down/fire on the File Selector for convenience.

It assumes the joystick connected to the gameport is a CD32 pad and does no intelligent detection yet (but the detection code is there and ready to be worked into the program it when I work some other things out).

You might see the odd bit of graphical corruption here and there as a result of unfinished os-friendly changes/other work-in-progress stuff that this is built on, so this is known, just wanted to get this to you earlier.

Play with the controls and try to break it, basically! 👍 The code for this is done similar to my new keyboard routines which later on should allow everything to be completely remapped by the user - even the L/R shift buttons.

kikendo commented 5 years ago

Holy molly! I'll test this today kamikaze style.

By the way, would it be hard to add another controller of the same type?

dwhinham commented 5 years ago

Awesome :)

I don't think it should be too hard; just need to get input.device to let go of the mouse port pins so we can do the CD32 bit-banging on that port too. The code is set up to work on either port once I have that bit figured out! 😄

kikendo commented 3 years ago

So currently this does not seem to work, having timing issues on real hardware making the interface randomly activate/deactivate elements as time goes on.

Here's an updated control scheme adding the shortcut I forgot about and changing loop cycling triggering:

L+R = shift keys

Pad Left: Nudge - Pad Right: Nudge + Pad Up: BPM + Pad Down: BPM -

R+Pad Left: Nudge Hard - R+Pad Right: Nudge Hard + R+Pad Up: Pattern Fwd R+Pad Down: Pattern Rwd

If we can do 3 key combos: L+R+Pad Up: File Menu (otherwise L+Pad Up: File Menu)

Red button: Loop FX on/off Blue button: loop length cycle + L+Blue button: loop length cycle - Green button: Slip mode Yellow button: Set Loop In/Out/Off L+Yellow button: Repitch on/off Start button: Play/Pause L+Start button: Play/Cue R+Start button: Set Cue

Test iso uploaded here: http://kikencorp.com/secret/cd32test.iso