SmartyPi –Emulation PCB replacement (SEGA edition)

smarty

Ready Player One
vacBacker
Feedback
12 (100%)
Credits
1,290CR
Wall_Street said:
Do you know if Gloc would be an option on the afterburner/thunderblade setup?

From testing a while back, I think G-Loc plays fine on this setup but... Using an After Burner cab you don't have the digital button attached to the speed controls for the 'AfterBurner' so I'm not quite sure how you would map things control wise, you've got Missile and Vulcan like in After Burner with no extra buttons available unless I'm mistaken?smarty2021-12-31 14:34:07
 
smarty said:
Wall_Street said:
Do you know if Gloc would be an option on the afterburner/thunderblade setup? 

From testing a while back, I think G-Loc plays fine on this setup but... Using an After Burner cab you don't have the digital button attached to the speed controls for the 'AfterBurner' so I'm not quite sure how you would map things control wise, you've got Missile and Vulcan like in After Burner with no extra buttons available unless I'm mistaken?

I've got an actual G-Loc cab so would it just be a case of building an adapter for toyr board to connect to the wiring harness? If so is this something you would be able to offer?
 

obitus1990

Newbie
Credits
8CR
Wow! Awesome work here. My original PCB works great, but, I want to buy one of these to add the other games, and preserve the original if I can. I'm hoping this is released soon!
 

berty

Newbie
Credits
26CR
I'm very keen to grab these when they become available. I have an Afterburner Commander cab and GLoc Deluxe if you want help with testing.
 

Stefan_Burger

Newbie
Credits
0CR
Hi Mart,

very interesting and impressive what you have achieved!

In December 2020 I started trying something similar with the attempt to have a working software/hardware interface to support a motorized Afterburner Deluxe cabinet, based on Mame emulation.

The following video is from my YouTube channel:

In the meantime I tried to resolve the bottleneck of the serial interface by using a GPIO based parallel interface instead. However this is still work in progress.

Best regards,

Stefan

IMG_2840b.jpg
 

smarty

Ready Player One
vacBacker
Feedback
12 (100%)
Credits
1,290CR
Hi Stefan, It's funny I watched your video over the weekend!

Great project and nice to see you designed a PCB :)

So I'm clear, I think I understand you modified the MAME driver to support you own interface and protocol. Is your end goal to remove the original motor drive PCB and motors, swap them for your PCB & new stepper motors to recrate the motion functionality?

I've subbed on YoutTube and will keep an eye on any updates you put out.
smiley20.gif
 

smarty

Ready Player One
vacBacker
Feedback
12 (100%)
Credits
1,290CR
Wall_Street said:
I've got an actual G-Loc cab so would it just be a case of building an adapter for toyr board to connect to the wiring harness? If so is this something you would be able to offer?

Yes I'd have to add the Rom and support it from my controller code, you could simply wire up the IO header pins on SmartyPi to your original wiring or I could make an adapter to plug right in like the other game adapters I have, that would be low priority but could be done in the future.
 

Stefan_Burger

Newbie
Credits
0CR
smarty said:
Hi Stefan, It's funny I watched your video over the weekend!

Great project and nice to see you designed a PCB :)

So I'm clear, I think I understand you modified the MAME driver to support you own interface and protocol. Is your end goal to remove the original motor drive PCB and motors, swap them for your PCB & new stepper motors to recrate the motion functionality?

I've subbed on YoutTube and will keep an eye on any updates you put out.
smiley20.gif

Yes I basically extented the Mame gamedriver of afterburner.

I accitentally tripped over the source code version of mame2003-plus libretro core.

In this version all necessary memory hooks are already implemented with some helfull remarks:

https://github.com/libretro/mame2003-plus-libretro/blob/master/src/drivers/aburner.c

When started in the first place I just had Mame cabinets in mind under the impression that original cabinets already have everything in place. That they of course might be in need of replacements just added a new dimension to it.

The communication between the game and the motor hardware consists of a couple of read and write accesses to specific virtual memory addresses:
read 16 bit from 0x140000 -> status of end stop switches

read 16 bit from 0x130000 -> read actual axis orientation/ potentiomenters
write 16 bit to 0x140002 -> motor power for horiz and vert axis
write 16 bit to 0x140006 -> set lamps on/off

I thought for building a Mame-based AB2 Deluxe cab from scratch big stepper motors would be an alternative as in such a setup potentiometers for axis orientation are not required.
 

John Bennett

Senior Member
vacBacker
Feedback
10 (100%)
Credits
4,992CR
I don't know if it's used in a feedback loop, but the game needs the potentiometers for safety, doesn't it? (the motor drive board doesn't care, it just looks at limit switches for protection).

The drive board input is very simple - 4-bit speed codes for each motor and feed back limit switch status.
 

chomponooch

Active member
Feedback
29 (100%)
Credits
9CR
My Outrun PCB has recently started to behave strange (finllay doesnt boot at all) - finding a functional original board is currently difficult (for reasonable money) - immpesive work @smarty! - hoping this is released soon - I'm in.
 

Stefan_Burger

Newbie
Credits
0CR
John Bennett said:
I don't know if it's used in a feedback loop, but the game needs the potentiometers for safety, doesn't it? (the motor drive board doesn't care, it just looks at limit switches for protection).

The drive board input is very simple - 4-bit speed codes for each motor and feed back limit switch status.

There is a continous control loop which is implemented on the software side and therefore part of the game ROM. During my early work on the project I did write a logfile to see what is goining on (excerpt):

[font="Courier New, Courier, mono"]aburner_motor_power_w( 0067 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( 88 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( 9a )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( 9c )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( ab )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 08 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_power_w( 0088 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 09 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_power_w( 009a )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( b0 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( a8 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_ypos( a2 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_xpos( 95 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 00 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 00 )[/font]

[font="Courier New, Courier, mono"]aburner_motor_status_r( 00 )[/font]

[font="Courier New, Courier, mono"]....[/font]

[font="Courier New, Courier, mono"]
[/font]
As you can see, the software initiates a motor movement (aburner_motoer_power_w) and then immediately asks for actual position (read out of axis potentiomenters -> aburner_motor_xpos/ypos) and also checks the end stop switches. The valueas are evaluated and result in the next motor movement command (aburner_motor_power_w).
 

Spacies

Newbie
Credits
0CR
This is truely awesome! Well done! If there are no ordering limits I'd love to be put down for:

1 x Outrun Sitdown (Motion) - Hoping that the interface to the motion driver board works at time of release (I'm happy to be a tester if need be)?

1 x Afterburner

1 x Super Hangon

1 x Enduro Racer

Cheers!

Gregg

Spacies Arcade

https://www.youtube.com/c/spaciesarcade
 

Pinballer73

Newbie
Credits
0CR
Awesome work @smarty what a great idea that will save so many games as the original boards fail. I've sent you a message requesting a board/to be added to your list. Is that all that's required to register interest?
 

Hackman

Newbie
Credits
0CR
Great job how can I buy two of these from u I need one for super hang on and one for out run please let me know how I can buy this from u
 

Cigaretteman

Newbie
Credits
0CR
WOW just saw this thread. Thank god for guys like you.

I have Afterburner Deluxe and Outrun Deluxe and would 100% buy if the motion cabs are supported in the future.

Thank you for this!

Looking forward to updates.
 
Top