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 Try the site in https mode Site News

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

  

Author Topic: Sega Monaco GP 1979/1980 - My Remake  (Read 270000 times)

0 Members and 18 Guests are viewing this topic.

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #560 on: June 24, 2025, 04:21:06 pm »
Hi Geecab!

Excellent news!  :applaud:

 I can't wait to see this video soon.

How lucky you are to be able to design projects like this!

 Bravo and thank you so much for sharing.

See you soon!
 :)

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #561 on: June 29, 2025, 04:27:13 am »
Hi GPForverer2024 and all!

Almost there! I have attached pics of the circuit I built, and a quick video (Its a pretty low quality video, I'll probably do a better one at some point).

All that remains is for me to tidy the code that enables this to run and write some instructions. I've made a new utility called "scoreboard_to_revcounter.exe". This runs on your PC, it reads the Rev values from a running MGPr game, and translates these to RPM values that get sent to the Arduino. I've also wrote a program that runs on the Arduino (Called arduino_rev_sim.ino) which receives these RPM values, and generates corresponding pulses to drive the physical revcounter. I'll provide the source code to both in a new MGPr package. It should be quite easy for anyone to modify scoreboard_to_revcounter & arduino_rev_sim to work with any game, not just MGPr. Hopefully I'll have this all ready and documented in a day or two.

The video shows scoreboard_to_revcounter.exe running in 'demo' mode, followed by it runnning in 'game' mode. In demo mode, MGPr doesn't need to be running, it just cycles though various RPMs so you can check you've specified the RPM range accurately. For example, I run scoreboard_to_revcounter.exe specifying an RPM range of 8000. Part 1 of the demo tests RPMs that increase at 25% steps of the range (0 RPM, 2000RPM, 4000RPM, 6000RPM and 8000RPM and back down). Part 2 of the demo tests RPMs that increase at 2.5% steps of the range (0 RPM, 200 RPM, 400 RPM etc...). If, say, I ran the demo and noticed the needle didn't quite reach the top of the range, I could specify a scoreboard_to_revcounter.exe RPM range to be something like 8100RPM until the needle hits the spot. When MGPr is running, scoreboard_to_revcounter.exe will convert MGPr's Rev value to an RPM proportional to your specified range. Hope that makes sense?


Regarding the circuit:

There are probably better ways to build this circuit (From what I read online, the TIP120 transistor and the 1N5400 diode are quite 'old' components these days, they can also handle lots more voltage/current that I'm going to put through them, so they're arguably a bit over-the-top). However, browsing for revcounter circuits, everyone seems to be using the TIP120/1N5400 arrangement and as these components are cheap and available, I thought I'd do the same.

I need to say a big thanks to 'tylerpeppy' who is a member of the Arduino forum. He's uploaded some very detailed Arduino projects to the site, including this revcounter one which I copied https://projecthub.arduino.cc/tylerpeppy/arduino-car-tachometer-simulator-no-simhub-f9fd0f. I actually used bits of his circuit diagram to make mine. My circuit is just a slightly rearranged version of his. You should be able to match my circuit diagram with what I built on the breadboard.

If you are buying a revcounter, be sure to get one that is compatible with a 2, 3, 4, 5, 6 or 8-cylinder Petrol engine, and runs off a 12v source.

I'm using a really old Arduino UNO board, but I think my arduino_rev_sim.ino program would run just fine on an Arduino Nano, Teensy board etc. (Anything compatible with the Arduino IDE, that you can upload *.ino files to should just work).

The Arduino sends the pulses to the revcounter out on Pin13. I picked Pin13 because it has an onboard LED connected to it. Thus without any circuit connected to Arduino, you can see the onboard LED flicker at a speed dependent on the pulses its trying to generate (So you can have confidence things are working before connecting it to any circuit). The pulses that output from the Arduino have 5v peaks. The revcounter needs a tacho source signal that has 12v peaks. The small Arduino signal pulses go into the base (B) of the TIP120 Transistor switching it on and off like a tap, As a result, the Transistor emits (E) larger 12v pulses.

There is no switch for the revcounter backlight light in the actual circuit I made (the yellow wire), its just permanently connected to 12v (I.e. Permanently on). But you could put a relay in there, switch the backlight on everytime you start a game perhaps?

You'll notice I'm using a 220 ohm resistor. Some people say use a 2.2K ohm resistor but it really doesn't matter. I've tried both and everything works fine. The resistor isn't there to protect the transistor, it is there to reduce current drawn from the Arduino. If you've got loads of other stuff connected to the other Arduino output pins then saving current might be important. As I've only got 1 output pin in use, this isn't a concern.

The legs of the transistor and diode were so thick I couldn't push them into my bread board. That's why you'll see I soldered thin wires to their legs.

The Diode (Which, at first, looks like its been placed the wrong way round) is there to protect the transistor when the +12v PSU is unexpectedly powered off. In normal operation (Where the +12v source is either greater than or equal to the Tacho source signal) the Diode acts as if it were open circuit. Should, however, the +12v supply be switched off when the revcounter is in full swing, then the Diode will conduct. Apparently, some revcounters act like inductors and build up charge. When the +12v PSU is unexpectedly powered off, the diode ensures any built up charge is routed away from the transistor and thus protecting it.


Regarding my KET105 Revcounter/Tachometer:

I do think it looks good and its needle movement is just about fast enough. The cylinder switch at the back (Allowing you to choose between 2,3,4,5,6 or 8 cylinders) works well.

Something worth mentioning (That I believe is quite common with most off-the-shelf revcounters), is that they have trouble reading very low RPMs. My revcounter needle moves oddly (bounces around) when you send it less than, 600 RPM at 2-cylinder. This is probably OK as most engines would stall if you tried to run them this slow. I did notice increasing to 8 cylinder vastly improved things (Where you'd only see the oddness starting at less that 150RPM. I worked around this in my software, you can set a 'Stall RPM' where anything below a particular RPM will just send no pulses to the revcounter (and its needle will just drop to zero).


Wow, probably too much information here! Well done if you made it to the end! :)




« Last Edit: July 01, 2025, 04:09:03 am by geecab »

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #562 on: June 29, 2025, 09:57:32 am »
Hi geecab!

What incredible work!!!
I'm amazed to see this result!

I'll send you a link to see if I can order this rev counter so it's compatible with your software, and I'll order the rest of the equipment.
I'm waiting for your reply.

Thank you, I can't wait.


https://a.aliexpress.com/_Eu4slUw

 ;)

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #563 on: June 29, 2025, 11:50:11 am »
Hi geecab!

What incredible work!!!
I'm amazed to see this result!

I'll send you a link to see if I can order this rev counter so it's compatible with your software, and I'll order the rest of the equipment.
I'm waiting for your reply.

Thank you, I can't wait.


https://a.aliexpress.com/_Eu4slUw

 ;)

Hi GPForverer2024! Its looks excellent, great price too! Its 12v, and supports 4,6,8 cylinders, the wiring looks the same too. The only thing I'd mention is that it doesn't specifically state its for Petrol or Diesel engines. It does state its "Universal" so I guess that's OK? For that price its kind of worth a punt :)
« Last Edit: June 29, 2025, 12:06:58 pm by geecab »

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #564 on: June 29, 2025, 12:06:35 pm »
OK, I've just read online that "Petrol revcounters work from electrical pulses taken from the ignition system. Diesel often work from the end of the alternator, mechanically or by pulses from a crank sensor".  The wiring diagram for your revcounter shows simply the green signal source wire going to the ignition coil. So I think its designed to work with petrol engines, so it should be fine with my circuit :)

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #565 on: June 29, 2025, 12:21:11 pm »
Hi Geecab!
Thanks for your quick response.
I've ordered all the equipment.

See you soon.

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #566 on: June 29, 2025, 12:28:26 pm »
Great stuff GPForverer2024!

I've put together debug version v1.5.1D3.

Monaco GP Remake v1.5.1D3 for Windows (Download via My Google Drive)
Please read the release notes HERE, there's a couple of new sections regarding the relays and revcounter utilities.
 
This debug version has the following modifications:

 - Added new Scoreboard To Revcounter utility source code and exe (Reads MGPr game Revs, and sends them to Arduino).
 - Added Arduino sketch "arduino_rev_sim.ino" (When running on an Arduino, it receives RPM values and generates a series of pulses as output).

:)
« Last Edit: June 29, 2025, 12:31:18 pm by geecab »

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #567 on: July 01, 2025, 04:16:56 am »
Hi GPForverer2024!

Whoops! I've found a bug in in my scoreboard_to_revcounter util (It was the reason for the strange RPMs I was seeing when I'd set my revcounter cylinder switch to 3,5,6 or 8-cylinder).

I actually think my KET105 revcounter is a good bit of kit now. I've modified the big post I wrote on Sunday to paint it in a better light.

I'll upload a new MGPr package in the next few days that has the fix :)

Swainy

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 39
  • Last login:July 12, 2025, 01:28:58 pm
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #568 on: July 01, 2025, 06:55:07 am »
Hi geecab,

I switched on the high score table on my set up last night (only spotted that feature when I was watching through some of your videos. Anyway, when I was pressing my accelerator pedal to select a letter, it wasn’t working. I have to have my pedal selected as inverted in the game options to get it working in game. Just thought I’d mention it so you can add it to the fix list. Cheers!

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #569 on: July 01, 2025, 01:13:36 pm »
Hi Swainy!

Thanks for letting us know, I'll get that fixed in the next package. In the mean time, if you have a button configured as the 'Start' button (I think its the '1' key by default), you should be able to press that to select a letter.

:)

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #570 on: July 02, 2025, 03:24:53 am »
Hi Geecab!

No worries.

I'm waiting to receive my equipment.

I can't wait to try it out! See you soon.
 ;)

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #571 on: July 02, 2025, 03:57:07 am »
Hi geecab,

I switched on the high score table on my set up last night (only spotted that feature when I was watching through some of your videos. Anyway, when I was pressing my accelerator pedal to select a letter, it wasn’t working. I have to have my pedal selected as inverted in the game options to get it working in game. Just thought I’d mention it so you can add it to the fix list. Cheers!

Hi Swainy!

Just done a quick test with my analog pedal but this seems to be working for me. Can I just double check your config settings are the same as mine:

    ACCELERATOR_DEVICE = "KEYBOARD/MOUSE/JOYSTICK STICK Y AXIS"
    ACCELERATOR_INVERT = "YES"
    ACCELERATOR_RANGE = "-1 to +1"

Also, please can you let me know what MGPr package version you are running, and also the name of the configuration file you are modifying.

BTW. To choose a letter when entering your name, you have to press and then release your pedal (Not just hold it down), its needs to see a complete 'press' if that makes sense?

:)


geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #572 on: July 02, 2025, 04:28:08 am »
Hi Swainy!

Me again! I think this is something I fixed last year, just checked the v1.5.1 package and the accelerator is broken during the Enter Your Name section as you describe. Sorry, I should have realised this earlier.

If you are running windows, you could try the debug version v1.5.1D3 I recently uploaded. I think it should be fixed in there.

:)

Swainy

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 39
  • Last login:July 12, 2025, 01:28:58 pm
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #573 on: July 02, 2025, 03:16:40 pm »
Hi Swainy!

Me again! I think this is something I fixed last year, just checked the v1.5.1 package and the accelerator is broken during the Enter Your Name section as you describe. Sorry, I should have realised this earlier.

If you are running windows, you could try the debug version v1.5.1D3 I recently uploaded. I think it should be fixed in there.

:)

Yep, that is working lovely! Cheers mate!

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #574 on: July 05, 2025, 06:28:25 am »
Hi GPForverer2024 and Swainy!

I've put together another debug version v1.5.1D4.

Monaco GP Remake v1.5.1D4 for Windows (Download via My Google Drive)
Please read the release notes HERE.
 
This debug version has the following modifications:

 - Fix bug in Scoreboard To Revcounter utility that was giving strange
   RPMs readings if you had set a cylinder value to 3, 5, 6 or 8 cylinder.
 - When the Enter Your Name screen first appears, ensure the player is off the
   gas before we start detecting pedal presses.

@Swainy - Just letting you know (No need to try this debug version if you're happy with v1.5.1D3) - I've fixed another silly bug I noticed when trying to recreate the Pedal/EnterYourName issue you mentioned before. That was, if I was stepping ON the gas just when the EnterYourName screen appears, then as soon as I stepped OFF the gas a letter would be selected (Which was too soon). Letter selections happen when the gas pedal moves from the ON to the OFF position. I've fixed this by waiting for the gas pedal be in the OFF position before I start detecting letter selections. Hope that make sense, probably too much information lol!

:)

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #575 on: July 13, 2025, 06:04:04 am »
Hi Geecab

I'm just giving you some news.

I'm missing a component to start the rev counter.

I expect to receive it next week.

 I'm really looking forward to it.

 See you soon.

 :)

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #576 on: July 13, 2025, 01:42:30 pm »
Hi Geecab

I'm just giving you some news.

I'm missing a component to start the rev counter.

I expect to receive it next week.

 I'm really looking forward to it.

 See you soon.

 :)

Cheers for the update GPForverer2024! Hope it all goes together smoothly and works first time! :)

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #577 on: Yesterday at 03:07:46 am »
Hi Geecab!

Here's the news:

Everything is connected, the speedometer lights up and is set to 8 cylinders.

When I launch the revcounter file with the correct  com port, it says "Arduino connected OK."

Then it can't find the game, which is launched, and then closes automatically.

Then I saw in your release notes that I had to set the game settings to "Scorboard to Export."

And now the game won't launch.

I think it's a configuration issue in the game.

Could you send me another example .bat file? For launching both programs?

I'm really sorry, I would have loved to tell you that it works the first time.  :-\

Thank you so much.

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #578 on: Yesterday at 08:22:30 am »
Hi GPForverer2024!

>>Everything is connected, the speedometer lights up and is set to 8 cylinders. When I launch the revcounter file with the correct  com port, it says "Arduino connected OK."


Sounds good!

>>Then it can't find the game, which is launched, and then closes automatically.

Ah, I think we had a similar issue when trying to get the scoreboard_to_relays tool working on your system? Can you make sure that mgpr.exe and scoreboard_to_revcounter.exe are both running in administrator mode? I really should have stated this in the release notes, sorry, lets hope that's all it is :)

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #579 on: Yesterday at 09:25:31 am »
Yes,

 I can confirm that both files are launched in administrator mode.

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #580 on: Yesterday at 09:59:49 am »
Hm, it has to be a problem with scoreboard_to_revcounter.exe not being able to see the shared memory that mgpr.exe creates.

Lets forget about scoreboard_to_revcounter.exe for a moment...

Can you run the dualscreen_pro_monaco_gp.bat file. That should automatically start an instance of mgpr.exe in export mode (for which you'll see a window with the game running in) an instance of mgpr.exe in import mode (for which you'll see a window with scoreboard information in). If these 2 instances run ok (I.e. you can play the game in one window, and see your scores and revcounter change in the other window), we know the shared memory is being exported ok.

GPForverer2024

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 85
  • Last login:Today at 03:27:31 am
  • I want to build my own arcade controls!
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #581 on: Today at 03:27:31 am »
Hi Geecab!

You were right.

I followed your advice by first launching the dual screen.
It didn't work.

After several searches, it was Windows that was blocking the application (for your information, all these new tests were done on another PC, not the one with my console).

Once the dual screen was launched, I manually launched my scoreboard rev counter .bat file with the following configuration:

scoreboard_to_revcounter .exe 10 game 8 8000 600

And to my great joy!!!! It works, wow!!!!

Great Geecab.   :applaud:

 Thank you, thank you, thank you!!

After several tests, only cylinder 8 works best.

However, the only drawback is that the needle rises too quickly, and when the car crashes, there's a delay before the needle returns to zero.

 Otherwise, congratulations, Geecab, once again, what an incredible job!

Looking forward to hearing from you soon.
 :)

geecab

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 345
  • Last login:Today at 05:10:29 am
Re: Sega Monaco GP 1979/1980 - My Remake
« Reply #582 on: Today at 04:53:18 am »
Excellent stuff GPForverer2024!

Congratulations regarding your electronic skills, so happy you've got it working!!

>>However, the only drawback is that the needle rises too quickly

Interesting. It sounds like your revcounter needle response time is much faster than mine. I can add an option to scoreboard_to_revcounter, so you choose a percentage that effects how much we 'dampen' the needle response time. Shouldn't be too tricky to do. I had to do that for the game's graphical revcounter because its needle response was obviously instantaneous (and looked like its was snapping to positions at first).


>>and when the car crashes, there's a delay before the needle returns to zero.

This is interesting too. I'm guessing the type of crash you are talking about is one where your car hits something and goes into spin, rather than one where you hit something and explode?

Do you see the same thing happen with the game's graphical revcounter (Or perhaps its not as noticeable with that because of the way I've dampened its needle response)?

:)