Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up --- Bug Reports --- Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)  (Read 1035 times)

0 Members and 2 Guests are viewing this topic.

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« on: November 08, 2019, 02:41:37 pm »
So far the last 3 weeks I am working on my Daytona USA 2 Deluxe Multi Racer cab, I started on this project about 4-5 years ago but gave up after my daughter was born as real life took over :)

So as we all know the projection screens are pretty bad so I took it out and replaced it with a 800x600 short throw projector which really helped in this project as now I can just send VGA from my pc into the screen, and this projector even works fine with the original pcb as it supports the 496x384 vga that the Model 3 pcb sends. (from the outside you don't notice anything different about the screen unlike those 16/9 lcd/plasma mods)

So firstly I based my work on BigPanik page (http://superusr.free.fr/model3.htm) which without I wouldnt even have started this, so I use an Arduino Mega 2560 Rev3 with https://github.com/NicoHood/HoodLoader2 firmware on it so I can use the 16u2 for the HID project usb gamepad (https://github.com/NicoHood/HID) my Arduino codes sends Mega2560 input code to the 16u2 at 250k bps serial with a start and end byte so I can add more bytes like the lights later on, I based the wiring on BigPanik thread (https://www.gamoover.net/Forums/index.php?topic=33274.0).

So I made a C# program based on MAMEInterop SDK v1.3 (http://forum.arcadecontrols.com/index.php/topic,62982.0.html) which I adjusted to being able to get Model3 Outputs and M2Emulator FFB codes, this way one program can collect all data and do things the way I want it to work, so I have some code in the program that checks if Outrun, Turbo Outrun or Outrunners is loaded and for these 3 I send custom FFB codes to the driveboard which works really well and more games can be added this way, all this is still very alpha though. It is handy to debug stuff with the two windows input/output and I added some buttons for the known FFB codes and also an input where you can test any HEX value to send to the drive board.



It can detect if M2emulator is running and it reacts accordingly what I still need is some kind of conversion table to convert Model 2 FFB to Model 3, for now, it just ignores all above 6F and all below 0x10 so it won't crash the driveboard and it does something but without the correct translations it won't be correct. (So not sure if SailorSat had these conversion tables already or not?)

So Daytona USA 2 Deluxe BOTE and PE work great, Scud race all versions also great, Sega Rally 2 does work but some FFB glitches, Emergency Call Ambulance and Dirt Devils work fine with the scud drive board in the rom and the Games.xml adjusted accordingly. Outrun, Turbo Outrun and Outrunners working well with my custom FFB command, I added Lemans24 today but I didn't test it yet.

I am using HyperSpin and Rocketlauncher to add all the stuff together and for now its 3 wheels, Mame, Model 2 and Model 3 in the final version I hope to merge all of them in one wheel.

I added some pictures below.





So if anyone can help with the FFB code conversion Model2->Model3 this would help a lot!

SailorSat

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1167
  • Last login:December 04, 2019, 10:55:21 pm
    • For Amusement Only e.V.
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #1 on: November 13, 2019, 12:04:15 pm »
If you can read Basic Code...

https://github.com/SailorSat/daytona-utils/blob/master/src/src/DriveTranslation.bas

See "TranslateDrive_M3"

*EDIT*
Sega Rally (Model2) can be translated, Sega Rally 2 (Model3) won't work that well, because it tries to read back data from the drive board.
« Last Edit: November 13, 2019, 01:22:40 pm by SailorSat »
I do all that stuff even without a Joystick ;)
Soft-15kHz, cabMAME, For Amusement Only e.V.


RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #2 on: November 13, 2019, 07:45:50 pm »
Ok good, thanks!

I already started myself and I had the basics working the roll left and roll right and some vibration coming from the m2emulator, but this should help for sure.

and I must say that I can play all Daytona versions, indy 500, stcc and overrev all with peeking at the same address, only sega rally is a pain.

Lemans 24 and also the same for Dirt Devils on Supermodel perfect feedback on my cabinet! Sega Rally 2 kinda works sometimes it feels good and other times not really, so could be the reading back as you say, should be possible to add though?

I just added some code to lock and unlock the car now when you start and exit a game so that the car is always unlocked when starting emulation and locks again when exiting a game, will build more on this init routines for sure.

Its good that I have this one program that includes M2, Mame, and Supermodel, will let it start automatically from Hyperspin I think, Hyperspin now working very well with the 3 emulators in place, starting to look good!

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #3 on: November 23, 2019, 07:55:03 pm »
Thanks a lot SailorSat, the translation really helped for Daytona and Sega Rally 1 and 2!

So I also added powerdrift wheel reactions on hit, a bit the same like on OutRun.

I am really happy with the OutRun 2 Coast to Coast force feedback, this game is great and thanks to the hack from Howard_Casto, I have Xforce connected to wheel centering and added hit wheel force when crashing left and right, also I added a rumble feature so the wheel vibrates when driving offroad and also depending on terrain.

So now my program can detect the following, Mame (OutRun, Turbo OutRun, Outrunners, Power Drift, Virtua Racing), Model 2 Emulator (All Daytona versions, OverRev, Sega Rally, Sega Rally Pro Drivin, Indy 500, STCC) , Super Model Emulator (Daytona 2, Daytona 2 Power Edition, Emergency Call Ambulance, Dirt Devils, Harley, Lemans 24, all Scud version, Sega Rally 2) and Daytona 2 Coast to Coast.

xbrunox

  • Trade Count: (0)
  • Full Member
  • ***
  • Online Online
  • Posts: 52
  • Last login:Today at 08:11:56 am
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #4 on: November 24, 2019, 05:02:02 am »
Hi Pls can u share how u have implemented FFB in mame games? For now I know only Boomslangz FFB plugin. But it work only for other games and for specific mame version.

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #5 on: November 24, 2019, 03:48:27 pm »
I use the outputs from mame, so use -output windows command-line option and then you can get the needed info and use that to create force feedback commands, the Boomslangz FFB plugin uses static addresses to make feedback in games so this is why it only works in certain versions of mame. The output way will work on all versions of mame that support the output command-line option.

So below a simple example where I check for the MA_Steering_Wheel_motor output from OutRunners and turn on/off the Vibration of the steering wheel.

case "orunners":
               if (e.Name.Contains("MA_Steering_Wheel_motor") && e.State == 1)
               {
                  SendFFBCommand(0x3f);
               }
               else if(e.Name.Contains("MA_Steering_Wheel_motor") && e.State == 0)
               {
                  SendFFBCommand(0x30);
               }
               break;

http://forum.arcadecontrols.com/index.php/topic,62982.0.html <- MameInterOpt is a good way to start.

Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 17900
  • Last login:Yesterday at 11:31:15 pm
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #6 on: November 24, 2019, 08:20:59 pm »
Yeah I keep telling people I hooked up the outputs for a few racing games in mame eons ago, but I guess they are afraid of mamehooker or something.  Unless you are competent enough to code your own program like RenegadeR, your only options are mamehooker and booms plugin. 

Boomslang

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 788
  • Last login:Today at 06:33:49 am
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #7 on: November 24, 2019, 10:17:06 pm »
yep ive said many times that I need to add output reading to FFB Plugin sometime but my attempts myself failed. It's all good if your app is written in c# but mameinterop sdk c++ examples etc don't work as they are and whenever ive asked for help regarding it I get no answers.

It's been awhile since I last looked but maybe I'll have to try again sometime soon

Zebra

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 425
  • Last login:Yesterday at 10:21:23 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #8 on: November 26, 2019, 02:03:51 pm »
Nice project!

Where is the projector mounted in the new set-up? Are you using an ultra short throw projector on the floor? Are you reusing the original fresnel lenticular screen from the rear projection monitor or did you switch to front projection?

You should look into putting a PS3 in there as well (if you don't already). It's an awesome machine for racing games. It's HD remake of Daytona and Sega Rally are the best versions of those games IMO and FFB is plug in and play. Plus, they are set up for network play.


RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #9 on: November 26, 2019, 04:41:46 pm »
Small update also Super GT 24H also working great now with perfect FFB :)

MameInterOpt v1.3 the C# version really works well for me, so not sure if there is a problem with the C++ version, so if you have problems with the C# I could help.

So as you can see below projector is mounted (still temp mount) inside the deluxe screen and it shines into the mirror and onto the original lens. The good thing about this short-throw projector is that it also works great with the original PCB at the 496 x 384 resolution and all the stuff I did is on destructive as I can just disconnect the PC and Arduino and reconnect the original PCB and all works fine again. So PS3 is not really an option for me, as I try to be as close as possible for the original Sega racers with the original steering wheel and FFB drive board.

Also working now on Dolphin emu I compiled a version where I exposed the rumble effect so when I get this connected up correctly I can play 18 Wheeler and Crazy Taxi and all other GC/Wii U racers.

Maybe also want to use Teknoparrot later, once I find out how the outputs work in this emulator.





Boomslang

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 788
  • Last login:Today at 06:33:49 am
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #10 on: December 01, 2019, 01:58:38 pm »
I can help if you need to implement teknoparrot games, I added several games outputs to them but I only added lamps so far but easy enough to add ffb stuff too (it's open source)

How did you get virtua racing working? I found only old versions of mame had the ffb digit0?

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #11 on: December 01, 2019, 02:16:33 pm »
Ah, I didn't know that teknoparrot was open source if you have the FFB part of the code that would help for sure.

I use the code below with Mame 0215_64bit so yes digit0 works in this version but be sure that the cabinet type is NOT set to STANDARD all other should be fine mine is set to UPRIGHT.

case "vr":
               filterBox.Text = "Virtua Racing Active!";
               if (e.Name.Contains("digit0"))
               {
                  filterBox.Text = "digit0 State:" + e.State;
                  byte convertedByte = ConvertModel1(Convert.ToByte(e.State));
                  if(convertedByte!=0) SendFFBCommand(convertedByte);
               }
               break;

public byte ConvertModel1(byte input)
      {
         if (input >= 0x00 && input < 0x10) { return (byte)(input + 0xC0); }
         if (input >= 0x10 && input < 0x20) { return (byte)(input); }
         if (input >= 0x30 && input < 0x40) { return (byte)(input - 0x20); }
         if (input >= 0x50 && input < 0x60) { return (byte)(input + 0x10); }
         if (input >= 0x60 && input < 0x70) { return (byte)(input - 0x10); }
         return 0x00;
      }

Boomslang

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 788
  • Last login:Today at 06:33:49 am
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #12 on: December 01, 2019, 02:30:08 pm »
Ah ok cool thanks

You inspired me to look back into mame interop sdk and I got the c++ version working now so will add output reading support to next ffb plugin

Teknoparrot isnt fully open source but the dll I made is for outputs amd then just tick enable outputs in the teknoparrot ui and it will run the dll if it's in game folder

I can add the ffb to it for all the games

We can

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #13 on: December 01, 2019, 02:45:29 pm »
Great that I could inspire you, I think the ffb plugin would benefit from this for sure.

That dll would be great for sure if it works with the interopt sdk? Teknoparrot has some great racing games which would be perfect for my racer setup.

Boomslang

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 788
  • Last login:Today at 06:33:49 am
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #14 on: December 01, 2019, 02:58:24 pm »
Yep should work fine with mame interop as its basically same code as supermodel emulator uses. That's where I got it from

Zebra

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 425
  • Last login:Yesterday at 10:21:23 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #15 on: December 01, 2019, 05:52:39 pm »
Small update also Super GT 24H also working great now with perfect FFB :)

MameInterOpt v1.3 the C# version really works well for me, so not sure if there is a problem with the C++ version, so if you have problems with the C# I could help.

So as you can see below projector is mounted (still temp mount) inside the deluxe screen and it shines into the mirror and onto the original lens. The good thing about this short-throw projector is that it also works great with the original PCB at the 496 x 384 resolution and all the stuff I did is on destructive as I can just disconnect the PC and Arduino and reconnect the original PCB and all works fine again. So PS3 is not really an option for me, as I try to be as close as possible for the original Sega racers with the original steering wheel and FFB drive board.

Also working now on Dolphin emu I compiled a version where I exposed the rumble effect so when I get this connected up correctly I can play 18 Wheeler and Crazy Taxi and all other GC/Wii U racers.

Maybe also want to use Teknoparrot later, once I find out how the outputs work in this emulator.




I'm all for keeping the experience as close to the arcade as possible. I'm certainly not suggesting that the PS3 would replace emulators, original PCBs and Teknoparrot. It's more of an "as well as" than an "instead of".

The PS3 is one of the best machines period for race fans (IMO of course). It's not just the high quality HD remakes of classic Sega arcade racers. It has a bunch of other awesome racing games to play with your awesome arcade controls. The process of mapping the output from a Logitech ffb PCB to real arcade ffb motors (and wheels) is well documented too. It might be easier in the long run than doing it on a game by game basis.

 If you have a choice of a port or near perfect arcade emulation, you go with the arcade version. If the emulation is unfinished or buggy, I usually go with whatever has the best version of that game.  Model 2 and Model 3 emulators fall in that gray area for me as the emulation is unfinished. When I output Daytona and Sega Rally on the PS3 to my crt arcade monitor in 384p (in classic mode), it looks an feels closer to the arcade to me.

Teknoparrot is different because it's not emulation. It's the game on real hardware with your own controls. It's the best thing to happen for arcade race fans in years (as well as light gun fans). I have plans for a dual Mario Kart DX cab when I move to my new place next week. It's fantastic!

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #16 on: December 01, 2019, 06:15:18 pm »
For me the force feedback is very important that's why I spend a lot of time on getting it as perfect as possible, I also have a fanatec wheel and racing seat here but it doesn't even come close to the effect I am getting on the real cabinet.
The latest Super Model emulator version feels very close to the original when comparing original PCB from my Daytona 2 and the Super Model version some small transparency issues but very minimal and the people that I let test don't notice any difference. It's not perfect but being able to play Scud Race on my Daytona 2 cabinet is great as the feedback is really spot on I like to play at 100% feedback force and after some games, you really feel it in your arms :)

Model 2 is also close enough aswell Daytona USA is great fun, I will try the teknoparrot games although I only want the games that can be played in 4:3 format and I don't think the newer games can do that?

Also working on using the RacerSpin for the front end instead of the default HyperSpin wheels I am using now,

Zebra

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 425
  • Last login:Yesterday at 10:21:23 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #17 on: December 02, 2019, 08:05:16 pm »
The thing that makes a real cabinet feel nicer is the more powerful motor and the quality permanent mounting of the wheel. That's always going to feel better than a plastic clamp holding a PC wheel to your kitchen table. I am not suggesting you stop using your cab with it's superior ffb motor. The purpose of wiring a Logitech ffb pcb to the arcade ffb motor and wheel is to get the benefits of the arcade ffb motor without the extra coding effort.

In games that are already set up to work with a Logitech ffb wheel, it would be plug in and play once you install the right drivers. You just turn in the ffb option. Perhaps that matters more to someone like me though. I can follow instruction to solder wires from one pcb to another but I never learnt to write code. I'm short on time these days too.

I don't know about every game in Teknoparrot but the ones I play allow you to input the resolution for each game in the options. I play House of the Dead 4 and Mariokart DX in 640 x 480 on my CRT monitors. I'm not sure about the latest games or if they offered a jamma / CRT cab option in the original arcade. My projector has a vertical stretch option anyway (for use with an anamorphic lens).

As a matter of interest, when you use the real Daytona 2 PCB, does it allow you to set the strength of ffb effects?

RenegadeR

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 12
  • Last login:Yesterday at 04:05:00 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #18 on: December 02, 2019, 08:21:17 pm »
So yes that Logitech PCB is interesting but I want to keep it original so can still use original PCB.

My idea is when my favorite games are working well I'm planning to add an option to use the real windows ffb into my Arduino code and translate the windows ffb into model 3 ffb so also other games can run.

And yes force can be set in the real PCB and it acts the same as in super model emu 50 to 100% with 80 being default.

gareth_iowc

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 9
  • Last login:Yesterday at 04:18:55 pm
  • I want to build my own arcade controls!
Re: Trying to build a Daytona USA 2 Deluxe Multi Racer cab :)
« Reply #19 on: December 03, 2019, 01:49:45 pm »
I can help if you need to implement teknoparrot games, I added several games outputs to them but I only added lamps so far but easy enough to add ffb stuff too (it's open source)

How did you get virtua racing working? I found only old versions of mame had the ffb digit0?

do you have any more information on the teknoparrot outputs? Very interested in hooking up some lamps