|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
Hello everyone,
I made a post on the MAME reddit page to let everyone know that I wanted to get Monaco GP on the working list for MAME. A user named Alternative_Glove_77 was kind enough to give me all the information I need to get started and wanted me to get on the bannister forums to help me in my journey.
My resume includes extensive experience with Electronics repair and design. I have a software engineering degree which includes the following programming languages; C++, C# Java, Visual basic, ASP, SQL and html with C# being my strongest language. I am teaching myself VHDL for some FPGA projects that I am working on for my side business named PinHead Electronics. I am currently a test Engineer for Orscheln LLC and they have a need for LabVIEW work, so I am in the process of learning LabVIEW as well. Unfortunately, my weakest language is C++ as I never used it professionally with any company I worked for and it's been 15 years since I used it in college, so I am a bit rusty to say the least. This means I will be hitting the books hard to get up to speed with C++.
I have always enjoyed MAME ever since its initial release and I have always wanted to contribute to the MAME community, but never took the plunge until now. I feel my experiences throughout the years have given me the required knowledge to finally give back to this great community. I think my biggest challenge will be the C++ part, so any help in this field will be greatly appreciated.
I initially looked at the DICE source code and I was able to understand a good amount of what I was reading. However, Alternative_Glove had me look at the Monaco GP driver and the Netlist cpp in MAME and I was not able to get a good grasp of what is being accomplished at this moment in time. I am hoping that a good design flowchart or document exists that I can read to help me to understand the MAME structure/design flow. I also looked at the pong files since this game is already functional in MAME, but I could not find where the connections for the ttl logic are defined for the game. I saw that DICE uses the SDL (Simple Direct Media Layer) for video translation and I am curious if MAME is using the same dll for the four emulated non cpu games. I also see that the device list for the TTL chips is much larger in DICE then it is in MAME. I haven't read the DICE license yet and I am wondering if it allows MAME to use some of those definitions for the TTL library outside of the DICE environment. I am assuming that the answer is no, because it probably would have been done otherwise.
I hear that Monaco GP has a mix of analog and digital circuitry, so I took a quick look at the schematics and saw that the A and B boards are digital, and the sound is analog. I haven't looked at the led board yet, but I assume it's mostly digital. That being said I am going to start with the A and B logic boards. Second, I will work on the Led output board. Then I will attempt sound. I am not sure how I want to attempt this yet, but I have thought of a few options. One would be to simply record each sound which would be the simplest way just to get it working but won't be very accurate. Another option would be to use an analog to digital convertor which would be a better option. My third idea would be to simulate the analog circuitry much like electronic simulators do with the SPICE engine. I think that could possibly be the best option, since it is open source and a well-developed engine. However, I was doing a little research and much to my surprise, actually found where another MAME user was talking about using SPICE for analog sound, but it was shot down without any explanation as to why. Licensing maybe? I am not sure. Please tell me if you know the answer.
I noticed that my board set is different than the board set schematics I downloaded. So far, I cannot find a set of schematics for my board set, so if anyone has them, please let me know. Otherwise, I will have to manually make a new set. For reference my board set is 97092-P and 97091-P. The MAME Monaco driver has my board set listed as Set B. Alternative_Glove said we only have one rom dump for this board set, so I might have to do a rom dump if it is a different version. I have a potential problem with dumping the roms because I removed the boards and noticed that only one chip has ever been changed, so I am hoping I can dump them while in circuit because I don't want to solder on a board that is near mint. I have never attempted dumping a rom before while it was in circuit, and I am curious if anyone has been successful dumping roms using this method? The problem I would foresee is that you would be powering all of the ttl logic and powering the entire data bus as well, which I think could be problematic.
So that's basically were I am at for the moment. I am excited to start on this project and I am open to absorbing as much knowledge and feedback as possible to help me through this venture. I will try to get some high-resolution pictures of the boards. I have an old Nikon D80 with a Macro lens, so I should be able to get some good pics. Also, can someone point me in the right direction to the file that contains the connection information for pong, so I can get a general idea of the methodology used to connect the ttl logic? I assumed it would be one of the netlist files I did not see it anywhere.
|
2 members like this:
=CO=Windler, ICEknight |
|
|
|
Joined: Jun 2001
Posts: 76 Likes: 8
Member
|
Member
Joined: Jun 2001
Posts: 76 Likes: 8 |
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
Yes, that's the one I am looking for, thanks.
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
I need to clarify what I am saying about my sound ideas in my initial post. I mentioned three ideas, one to record, one for ADC and SPICE. My first idea-record just means to record a sound coming directly from the speaker into a mic and record into a .wav file. The second idea-ADC would be to connect the original sound circuitry to the recorder before it gets amplified, which will give a cleaner more accurate result. After thinking about my 3rd idea using SPICE, I realize I didn't think that one through. SPICE can simulate the circuitry but then what do you do with that information? You still have to digitize it at some point, so we don't really gain anything. I saw an article stating that the MAME team already has come up with solution for analog circuitry using a static solver routine, which works in a similar way to SPICE. That being said it appears to me that a lot of the groundwork has been done already, which will make my job easier. I hear that this method is very cpu intensive, so that could be a potential problem.
|
|
|
|
Joined: Jan 2021
Posts: 171 Likes: 10
Senior Member
|
Senior Member
Joined: Jan 2021
Posts: 171 Likes: 10 |
Thanks for working at this game. MAME already contains a variant "Monza GP" that although still broken (no collision detection etc.) at least makes a picture. AFAIK it was a modified bootleg variant that replaced some of the game logic with a CPU, so the MAME code may help to get the Monaco GP TTL hardware running. I had played Monza GP as a kid in the entrance hall of an indoor swimming pool. I hacked it by wiggeling/replugging the mains plug until it crashed to freeplay mode (only LED displays showed segment garbage instead of score). Here is some info: https://www.vernimark.com/arcades/videogioco/monza-gp/
MAY THE SOFTWARE BE WITH YOU!
{weltenschule.de}
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
I will check out the source code. Thanks for the information.
|
|
|
|
Joined: May 2009
Posts: 2,208 Likes: 354
Very Senior Member
|
Very Senior Member
Joined: May 2009
Posts: 2,208 Likes: 354 |
You should probably ignore what Windler has to say, and focus on learning from the existing netlist source files. If you're the person simzy pointed here, then it does sound like you're far overthinking things before you have even taken the time to learn MAME's codebase. Try to walk before running - like being aware that MAME already has an mixed analog/digital solver like SPICE.
What you should do is implement the entire circuitry as a netlist, just like other existing TTL games supported by MAME - Pong and Breakout, mainly - have been. Be aware that the actual developers replying to you in that Reddit thread are telling the truth: It will be extremely slow, and unlikely to run full speed. You will also most likely have to add the occasional TTL chip, transistor, or op-amp model. It's still worth doing, but it's also important to have realistic expectations.
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
Thanks for the response, since I can't find schematics for set B I am going to write fresh schematics for it. I will be taking pics of the boards and I can upload them as well. Once that is done I will strip all of the parts from the boards and start connecting the dots. Once that is complete, I will start on the netlist. In the meantime, I see stunt cycle has a lot of work done on it already, so I will be studying that netlist to see if I can figure out some of the issues with it as well.
|
|
|
|
Joined: Jan 2021
Posts: 171 Likes: 10
Senior Member
|
Senior Member
Joined: Jan 2021
Posts: 171 Likes: 10 |
http://forum.arcadecontrols.com/index.php/topic,134445.0/all.html
This thread about making a remake of Monaco GP contains plenty of resources. Apparently the thread starter geecab does have arcade schematics. They mention that there was a version in MisFit MAME/HBMAME, but I don't know how accurate it was and if it was technically a real emulation at all.
Last edited by =CO=Windler; 08/15/23 02:00 AM.
MAY THE SOFTWARE BE WITH YOU!
{weltenschule.de}
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
To my knowledge they are both remakes. I did find schematics for Set A but I have Set B and I cannot find anything for Set B.
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
Update on current progress - I am currently writing the schematic for assembly A or 97091-P and I noticed that there appears to be some differences from my ROM set when compared to the two that are listed in the Monaco driver. Mine appears to be a combination of the two ROM sets. My board was made 1980 May 31st. Serial number 0149. I am thinking that my board might have been produced in between the other 2 sets, buts that's just a guess at this point. Is it possible to get some pics from the other 2 sets, so I can compare them and confirm whether or not we have a new set? Also, wondering if MAME devs prefer these updates to be placed in a new thread or if it is preferred to keep them all in a single post. I will post some pics when my phone is charged.
Last edited by Yorkfire; 08/19/23 06:01 PM.
|
1 member likes this:
wolfi |
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
I still need to verify all of this information is correct, but here are the differences on my board set. I assume the code is the same as the others and that it's just a board variation but again this is just an assumption at this point.
ROM SET C <type MB7132E, 24 pin & type 7641, 24 pin> Board 97091X ROM ID IC# PRc-01 (identical to PRb-01) IC59 PRc-02 (identical to PRb-02) IC65 PRc-04 (identical to PRb-04) IC71 PRc127 (identical to PRa127) IC77 PRc-03 (identical to PRb-03) IC84 PRc129 (identical to PRa129) IC91 PRc130 (identical to PRa130) IC98 PRc132 (identical to PRa132) IC111
PRm-39 <All Sets type 6331-1, 16 pin> IC105 PRm-38 <All Sets type 6331-1, 16 pin> IC115
Board 97092X ROM ID IC# PRc140 (identical to PRa140) IC12 PRc-12 (identical to PRb-16) IC17 PRc-10 (identical to PRb-10) IC30 PRc-11 (identical to PRb-11) IC51 PRc-05 (identical to PRb-05) IC64 PRc-08 (identical to PRb-08) IC99 PRc-07 (identical to PRb-07) IC106 PRc-06 (identical to PRb-06) IC113 PRc-09 (identical to PRb-09) IC120
|
|
|
|
Joined: Mar 2001
Posts: 17,180 Likes: 211
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,180 Likes: 211 |
There is no code in the ROMs for Monaco GP, they're all graphics patterns I believe.
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
There is no code in the ROMs for Monaco GP, they're all graphics patterns I believe. Yes, I am aware of that. When I said code, I just meant that the Byte code is most likely the same. I haven't dumped the ROMs yet to verify this yet.
|
|
|
|
Joined: Feb 2008
Posts: 167 Likes: 11
Senior Member
|
Senior Member
Joined: Feb 2008
Posts: 167 Likes: 11 |
I've been reversing stuff for probably 20 years so If you need specific help with reversing the board contact me directly and I can help you. For simple 2-layer boards like that one you won't need to remove the chips. Look at each chip individually one by one and stay on that chip until you have traced all connections to/from it. Then move to the next chip. Do not randomly jump around the board tracing random parts. Start at the top left corner and make the schematic with the pins you can see and always beep out each pin using a multimeter. For chips where pin connections are unknown use a very bright LED torch (typically one powered with an 18650 lithium-ion battery) and shine it through the board from the bottom side pointed up to the top side. Now look closely sideways at the chip pins at an angle using a magnifier (an 8X stamp magnifier works well) and you will see the inside edge of the chip pins under the chip. If the pin has no trace connected to it then it's a no-connect and mark that on the schematic. Otherwise visually note where the trace is going and use your multimeter to trace it to the end point. Correctly identifying no-connect pins is very important to ensure you have got every connection and are not wasting large amounts of time looking for a connection that isn't there. Making a schematic of that game would probably take a long time and unless you're like me and retired early it will likely not be done. If there is schematics of a board already just emulate that one first. But note schematics can be wrong so expect things to not work 100% even if the netlist is correct as per schematic. In that case you would have to purchase a board that matches the schematic version and verify the trace connections on the board vs schematic or make a schematic for your board. First option will possibly be difficult and expensive to obtain and the 2nd option will likely be months of work.
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
Thanks for the advice and information. Fortunately, my board set has the power rails running underneath the ICs, so I do not have to worry about finding any connections that go underneath the IC's. I know initially we spoke about removing all of the chips would make it easier to do, than if they were left in. But after looking at the board I decided that leaving the chips in would be ok just like you mentioned in your most recent post. The schematics available for download on this game suck and I can't find one that matches my board set and like you mentioned they most likely have errors which means I will have to hunt down the errors which will be time consuming as well. That is why I want to just redo the schematic and go that route. I know it will take a long time to get it done but I think it will be worth it in the long run. I wish I was retired as that would increase my chances of success. When I started this project, I told myself time would be my biggest challenge. Please check the PM I sent you earlier.
|
|
|
|
Joined: Jun 2009
Posts: 32 Likes: 2
Member
|
Member
Joined: Jun 2009
Posts: 32 Likes: 2 |
Does anyone have photos of the Set A or Set B of Monaco GP or know where the dumps and info came from? Yorkfire1 has a set that's a mix of A and B, and I got photos from Kevin Escbach of his set. But Kevin's set matches Yorkfire's, also a mix of A and B
|
|
|
|
Joined: Aug 2023
Posts: 11 Likes: 3
Member
|
OP
Member
Joined: Aug 2023
Posts: 11 Likes: 3 |
Anyone have a rom dump for Monaco GP set B? All I can find is set A.
|
|
|
|
Joined: Sep 2023
Posts: 1 Likes: 3
Member
|
Member
Joined: Sep 2023
Posts: 1 Likes: 3 |
Hi, signed up to let everyone here know that I'm working on reversing the Monaco GP boards (and others) publicly on GitHub: https://github.com/stonedDiscord/MonacoGPRight now i'm close to done with the Main Board and started with the Video Board. The plan is to eventually export a SPICE netlist, convert it using the MAME netlist tools and finally get this ancient game working. The pictures in the repo should match the ROM set. Pull Requests are difficult with KiCad projects, if someone wants to help out the LED, Score and Sound boards are still up for grabs. I hang out on the MAME Discord a lot, my name there is 岩 無秩序 ((it's an inside joke))
|
3 members like this:
wolfi, ICEknight, Foxhack |
|
|
Forums9
Topics9,308
Posts121,693
Members5,070
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|