Dreamcast Adapter for MAPLE (Release)

megavolt85

DreamShell Developer
Refugee
Registered
Joined
Jun 17, 2019
Messages
91
Reaction score
152
AG User Name
megavolt85
AG Join Date
01.09.2015
Adapter for MAPLE (WIP)
I decided to feel the MAPLE bus and connect something to it
I originally planned to connect only the PlayStation controller, but in the process Wishlist (not only mine) grew and as a result, gamepads from Saturn and MegaDrive were sent to me for experiments

At the moment, the adapter can connect to DreamCast:

1) controllers from PlayStation 1 and 2 with vibration support
2) six button gamepads from SEGA MegaDrive / Genesis
3) six button gamepads from SEGA Saturn
4) keyboards with PS / 2 interface
5) PS / 2 mice
6) up to 16 VMUs, depending on the installed memory

limitations and bugs:

1) the adapter works only on the console without overclocking, in the future I will overclock the console to 220 MHz and make separate software for the console with overclocking
2) in the emulation mode of the keyboard in games sometimes buttons stick
3) VMU emulation in WINCE games does not work in mouse emulation mode

what remains to be completed:

There is very little to complete, I want the adapter to connect to the USB of the computer so that I can read / write the image of emulated VMUs

Device Diagram:

SMPMK2DC schematic.png

Features:

1) Very low cost
2) You can unlock extra blocks in VMU
3) Change of VMU banks by clamping hot keys on the controller

Disadvantages:
1) due to software emulation protocol does not work on overclocked consoles
2) not all PS / 2 mice work (partially solved, only one new low price mouse does not work)
3) the PS / 2 keyboard is not stable (most likely the problem is my old keyboard, beta testers don't have problems)

A little bit about VMU emulation:

only memory from the 25PE series is supported, this is not my whim, but a technical limitation
it is best to look for 25PE16, this is the maximum at which 16 VMUs will be emulated, for example, when using 25PE80 there will be only 8 VMUs, with 25PE40 - four, etc.

Hotkeys:

PS1 / 2:
L1 + R1 + SELECT + LEFT / RIGHT - previous / next VMU bank
L1 + R1 + SELECT + X - standard controller mode (default)
L1 + R1 + SELECT + [] - mode of all buttons and axes
If the controller supports pressing force, then L2 R2 will be sensitive to pressing

SATURN:
L + R + START + LEFT / RIGHT - previous / next VMU bank
L + R + START + A - standard controller mode
L + R + START + X - ASCII controller mode + two triggers (default)

MegaDrive:
MODE + START + LEFT / RIGHT - previous / next VMU bank
MODE + START + A - standard controller mode
MODE + START + X - ASCII controller mode + MODE as D button (default)

Keyboard:
lCTRL + lALT + lSHIFT + PAGE UP / DOWN - previous / next VMU bank

Mouse:
left + right + middle buttons + up / down wheel - previous / next VMU bank


Firmware for STM32F103C8T6


Program for reading / writing VMU banks via USB


Enter to USB mode occurs if you connect the adapter without inserted joysticks / keyboard / mouse, or if you set the Boot1 jumper to position 1 before powering up
In USB mode, the green LED will flash
 
Last edited:

Anthony817

AG Refugee
Refugee
Registered
Joined
Jun 2, 2019
Messages
224
Reaction score
284
AG Join Date
May 12, 2010
Wow nice work! I think it may also be good to look into having USB mice and keyboards connected, that is a huge thing people would want this for.
 

megavolt85

DreamShell Developer
Refugee
Registered
Joined
Jun 17, 2019
Messages
91
Reaction score
152
AG User Name
megavolt85
AG Join Date
01.09.2015
STM32F103 don't have USB host, it's can work only as USB device
 

darcagn

AG Refugee
Refugee
Registered
Joined
May 30, 2019
Messages
110
Reaction score
146
AG User Name
darcagn
AG Join Date
May 12, 2007
1) controllers from PlayStation 1 and 2 with vibration support
Is it possible to have the software emulate the 2nd analog stick on the PSX controller to the 2nd analog on the maple bus (for dual analog sticks)?
If so, this would be very useful for bleemcast, and any other homebrew software that wants to use dual analog
 

truemaster

AG Refugee
Refugee
Registered
Joined
May 31, 2019
Messages
193
Reaction score
143
yes yes those 2 games desparete needed 2 analogs. the gameplay experience will change to beeter now
 

FamilyGuy

2049 Donator
2020 Donator
2019 Donator
Refugee
Registered
Joined
May 31, 2019
Messages
255
Reaction score
263
AG User Name
-=FamilyGuy=-
AG Join Date
March 3, 2007
is alredy created :)
Quake 3 Arena use all buttons and both analog
Unreal Tournament use both analog
Any mod required or they already supported it?
 

megavolt85

DreamShell Developer
Refugee
Registered
Joined
Jun 17, 2019
Messages
91
Reaction score
152
AG User Name
megavolt85
AG Join Date
01.09.2015
is base functional for this games
need test more games

in TOY RACER don't work start button on "PRESS START" screen, adapter have hotkey for change mode standart controller or all button and axes
 

FamilyGuy

2049 Donator
2020 Donator
2019 Donator
Refugee
Registered
Joined
May 31, 2019
Messages
255
Reaction score
263
AG User Name
-=FamilyGuy=-
AG Join Date
March 3, 2007
is base functional for this games
need test more games

in TOY RACER don't work start button on "PRESS START" screen, adapter have hotkey for change mode standart controller or all button and axes
Were there developer controllers with dual analogs? Otherwise I wonder how they could test the feature properly.
 

Anthony817

AG Refugee
Refugee
Registered
Joined
Jun 2, 2019
Messages
224
Reaction score
284
AG Join Date
May 12, 2010
Well the maple protocol always supported 2X analogs, and 2X D-pads on the same controller at the same time, as well as a special unused "D" button. I guess that we just never really had the hardware to enable therm in games, as my thoughts have always been once we truly have adapters that allow dual analog sticks, we could simply hack the game executable to update the controls with modern layout. Bernie Stolar even said that Sega had always planned a dual analog controller from the start, hence ehy it is already built into the protocol, but the system never survived long enough for this to come to pass.

In my Retro-Bit controller thread I post many of the details about the unused extra inputs the system could theoretically use.

Analog inputs

Code:
/* Raw controller condition structure */
typedef struct {
    uint16 buttons;         /* buttons bitfield */
    uint8 rtrig;            /* right trigger */
    uint8 ltrig;            /* left trigger */
    uint8 joyx;         /* joystick X */
    uint8 joyy;         /* joystick Y */
    uint8 joy2x;            /* second joystick X */
    uint8 joy2y;            /* second joystick Y */
} cont_cond_t;
Digital inputs

Code:
#define CONT_C          (1<<0)
#define CONT_B          (1<<1)
#define CONT_A          (1<<2)
#define CONT_START      (1<<3)
#define CONT_DPAD_UP        (1<<4)
#define CONT_DPAD_DOWN      (1<<5)
#define CONT_DPAD_LEFT      (1<<6)
#define CONT_DPAD_RIGHT     (1<<7)
#define CONT_Z          (1<<8)
#define CONT_Y          (1<<9)
#define CONT_X          (1<<10)
#define CONT_D          (1<<11)
#define CONT_DPAD2_UP       (1<<12)
#define CONT_DPAD2_DOWN     (1<<13)
#define CONT_DPAD2_LEFT     (1<<14)
#define CONT_DPAD2_RIGHT    (1<<15)
I was hoping with the more modern rumored wireless dual analog version of the DC controller, the Home key could be mapped to D input maybe as a macro of Start+A, B, X, Y soft reset?

Also, those Retro-Bit controllers should also hopefully work with Bleem and right analog stick, problem is really not a ton of games utilized them correctly, but there is always hex editing the executable for our own preferences.
 

megavolt85

DreamShell Developer
Refugee
Registered
Joined
Jun 17, 2019
Messages
91
Reaction score
152
AG User Name
megavolt85
AG Join Date
01.09.2015
special unused "D" button.
D button used in Dreameye camera
i'm map D to SELECT on PSx controller and to MODE on MegaDrive gamepad
D can be mapped in Q3 arena and work as A button in Soul Calibur
 

Anthony817

AG Refugee
Refugee
Registered
Joined
Jun 2, 2019
Messages
224
Reaction score
284
AG Join Date
May 12, 2010
Wow I was always curious what D button was meant for. Now that explains it thanks!
 

megavolt85

DreamShell Developer
Refugee
Registered
Joined
Jun 17, 2019
Messages
91
Reaction score
152
AG User Name
megavolt85
AG Join Date
01.09.2015
I like Sega, love magic dates :LOL:
06.06.2020 - release day
 
Top