Build Your Own Arcade Controls Forum
Main => Software Forum => Topic started by: Buddabing on February 07, 2005, 02:21:57 pm
-
Hello,
I've uploaded my MAME build version 0.91. I took the liberty of applying the u1 patch because it addressed an important bug.
If you just want the binary, download it here (http://cpmaker.mameprojects.com/files/MAME091.ZIP).
To compile BuddaMAME, do the following steps in order:
First, get MAME 0.91 and patch it up to u1. If you are compiling MAME I'll assume you know how to do this.
Download CPMLIBS.ZIP (http://cpmaker.mameprojects.com/files/CPMLIBS.ZIP) and extract it.
Download CPMSRC.ZIP (http://cpmaker.mameprojects.com/files/CPMSRC.ZIP) and extract it.
Download MAME091.ZIP (http://cpmaker.mameprojects.com/files/MAME091.ZIP) and extract it.
Compile!
To generate your own AVI movies, refer to the instructions on the first page of the MAME Movie Maker thread.
If you want to see the sample control panels I run CPMaker with, there are two additional zip files
Image Library (http://cpmaker.mameprojects.com/files/CPMIMAGE.ZIP)
Panel examples (http://cpmaker.mameprojects.com/files/CPMSUPPL.ZIP)
Regards,
Buddabing
-
so this means we can dowload the 0.91 source code and your patch will automatically add the u1 patch, or do we need to apply the u1 patch before applying your stuff?
-
so this means we can dowload the 0.91 source code and your patch will automatically add the u1 patch, or do we need to apply the u1 patch before applying your stuff?
I compiled in the u1 patch, it is not included in the source. If you want to compile your own, you can apply u1 before or after unzipping my code, ignore the warning about cpuintrf.h when patching.
I can do this because my code affects completely different files than the patch does. This is not true for u2, so I will not be compiling that patch into the code.
-
where can I download the u1 patch?
-
where can I download the u1 patch?
I got it here (http://haze.mameworld.info/). There's a link to the left.
-
Thanks.
I hadn't built MAME since 0.88 and it seems that the MinGW 2.0 environment doesn't work for compiling 0.91, so I need to upgrade to 3.1.0 first .
Edit: yup! upgraded to MinGW 3.1.0 from the mame download page and it's now building happily (hacen't applied your patch yet)
-
# uncomment next line to build the internal control panel artwork generator
CPMAKER = 0
I want the CP maker / viewer (the one where I see the CP when I pause the game) built in, is the line above right (according to the comment it is but I don't trust it) or should I change it to 1?
Edit: looks like the cpmaker source is missing from the patch altogether. no src/cpmaker.mak and no src/cpmaker directory.
-
I noticed a problem with cpmaker. When cpmaker is active certain games will not display full screen. The ones I have noticed are tekken3, simpson's bowling, and hyperathlete. The one thing I noticed that they had in common is that they change resolution during startup. Not sure if that is related to the issue?
-
# uncomment next line to build the internal control panel artwork generator
CPMAKER = 0
I want the CP maker / viewer (the one where I see the CP when I pause the game) built in, is the line above right (according to the comment it is but I don't trust it) or should I change it to 1?
Edit: looks like the cpmaker source is missing from the patch altogether. no src/cpmaker.mak and no src/cpmaker directory.
Papa:
You need the CPMaker source which are two seperate files.
Link to CPMaker source (http://cpmaker.mameprojects.com/files/CPMSRC.ZIP)
Link to library source (http://cpmaker.mameprojects.com/files/CPMLIBS.ZIP)
I split the source up back when I had limited disk space. I may reintegrate the CPMaker source with the strictly BuddaMAME source. Save your makefile before extracting the CPMSRC.ZIP, then uncomment the CPMAKER=1 line after extraction. IIRC it doesn't matter what the value of the variable is, if it is defined at all then CPMaker will be compiled in.
Popcorrin:
CPMaker does calculations at startup based on the games resolution to adjust the aspect ratio of the control panel image. So if the resolution changes, those calculations will be messed up. I'll have to correct that.
-
[You need the CPMaker source which are two seperate files.
Link to CPMaker source (http://cpmaker.mameprojects.com/files/CPMSRC.ZIP)
Link to library source (http://cpmaker.mameprojects.com/files/CPMLIBS.ZIP)
will do thank.
As far as unifying the source, it really depend on what the end user wants so there are advantages to both. I can deal with the multiple pieces now that I am aware of them.
IIRC it doesn't matter what the value of the variable is, if it is defined at all then CPMaker will be compiled in.
yeah I took a look at the makefile, but I still wasn't sure if there were multiples "modes" depending on the value of the variable.
-
You need to be careful to unpack CPMSRC.ZIP before you do the MMM one or src/windows/config.c will be wrong.
it looks like CPMSRC.ZIP is not in sync with 0.91u1
-
OK, I can't seem to be doing it right, the build always die during linking:
Linking mame.exe...
obj/mame/driver.o(.data+0x44fc):driver.c: undefined reference to `driver_gauntle
g'
obj/mame/driver.o(.data+0x4500):driver.c: undefined reference to `driver_gauntl1
2'
obj/mame/driver.o(.data+0x4504):driver.c: undefined reference to `driver_tenthde
g'
obj/mame/driver.o(.data+0x4508):driver.c: undefined reference to `driver_roadbur
n'
obj/mame/driver.o(.data+0x450c):driver.c: undefined reference to `driver_sfru204
9'
obj/mame/driver.o(.data+0x4510):driver.c: undefined reference to `driver_warfa'
obj/mame/driver.o(.data+0x4514):driver.c: undefined reference to `driver_nbashow
t'
obj/mame/driver.o(.data+0x4518):driver.c: undefined reference to `driver_nbanfl'
obj/mame/driver.o(.data+0x451c):driver.c: undefined reference to `driver_gauntdl
'
obj/mame/driver.o(.data+0x4520):driver.c: undefined reference to `driver_cartfur
y'
obj/mame/driver.o(.data+0x54f8):driver.c: undefined reference to `driver_monzagp
'
obj/mame/taito.a(qix.o)(.text+0x3c29):qix.c: undefined reference to `qix_discret
e_interface'
obj/mame/taito.a(qix.o)(.text+0x3d69):qix.c: undefined reference to `qix_discret
e_interface'
obj/mame/taito.a(qix.o)(.text+0x3ed9):qix.c: undefined reference to `qix_discret
e_interface'
obj/mame/taito.a(qix.o)(.text+0x4059):qix.c: undefined reference to `qix_discret
e_interface'
obj/mame/taito.a(qix.o)(.text+0x4219):qix.c: undefined reference to `qix_discret
e_interface'
obj/mame/taito.a(qix.o)(.data+0x15c):qix.c: undefined reference to `qix_dac_w'
obj/mame/taito.a(qix.o)(.data+0x19c):qix.c: undefined reference to `qix_vol_w'
collect2: ld returned 1 exit status
c:\MinGW\bin\make.exe: *** [mame.exe] Error 1
any idea? This looks related to the u1 patch because the games it complaints about are the games that were added to the patch.
I believe what I did was:
extract mame 0.91 source
apply 0.91u1 patch
extract CPMLIBS
extract CPMSRC
extract MMM (well, the file is called MAME091.ZIP form the link earlier in this thread)
make
Edit: now that I think about it, your comment about the u1 patch probably meant to apply it *after* you install all the sources (including yours), which is why you don't want us to apply u2. That makes sense, I'll give it a try.
-
Yes, the order of extraction turned out to matter. I've changed CPMSRC.ZIP to not have windows\config.c in it, which will allow it to be extracted independent of the source zips. Your compile error was related to mame.mak using the old 0.91 instead of 0.91u1. I changed MAME091.ZIP to use the 0.91u1 makefile, thus, so long as the patch is applied, the source code zips can be extracted in any order and it should compile.
I'll type up some compiling instructions and edit the first post of this thread.
-
All this source and compile talk has me wondering... the binary version should have CPMaker built in? Right? Or do I have to do something extra to it once I've downloaded it. I've downloaded the other bits and pieces of CPMaker, added them all to the correct directories and configured them as well as I know how, and when I pause your MAME binary, it's just a blank screen. I've read your docs, and I'm a fairly astute guy, are there any extra pointers you can share?
-
All this source and compile talk has me wondering... the binary version should have CPMaker built in? Right? Or do I have to do something extra to it once I've downloaded it. I've downloaded the other bits and pieces of CPMaker, added them all to the correct directories and configured them as well as I know how, and when I pause your MAME binary, it's just a blank screen. I've read your docs, and I'm a fairly astute guy, are there any extra pointers you can share?
The binary should have CPMaker built in.
Make sure you don't have artwork disabled.
You also need to have a cpmaker.ini which tells what panels you have. It's in the cpmaker\docs directory.
Also, put -intmakectrl 1 and -extmakectrl 0 in your mame.ini.
-
Ah, OK, I think I had the last 2 backward. I'll give it another go.
-
so it's now building with the following error:
Linking mameatxp.exe...
Compiling src/romcmp.c...
Linking romcmp.exe...
Compiling src/chdman.c...
Compiling src/chdcd.c...
Linking chdman.exe...
Compiling src/xml2info.c...
Linking xml2info.exe...
Generating gamelist.txt...
mameatxp.exe: not found
make: *** [gamelist.txt] Error 127
now my target exe really is called mameatxp.exe (Athlox XP optimized) and it does exist. This seems to somehow be a tools issue, if I add "./" at the start line 1260 of src/mame.mak the gamelist.txt file gets generated properly.
Just an academic issue really, since the exe is generated properly
-
Alright, one problem down. I DID have artwork enabled, but I didn't have Bezels enabled. Once I enabled bezels the controls.png graphic started popping up. Now I just need to get everything else working. I don't have very high hopes, though... seeing as how CPViewer has never worked on this machine, no matter WHAT I do... seems to be some windows 98 thing.
-
so it's now building with the following error:
Linking mameatxp.exe...
Compiling src/romcmp.c...
Linking romcmp.exe...
Compiling src/chdman.c...
Compiling src/chdcd.c...
Linking chdman.exe...
Compiling src/xml2info.c...
Linking xml2info.exe...
Generating gamelist.txt...
mameatxp.exe: not found
make: *** [gamelist.txt] Error 127
now my target exe really is called mameatxp.exe (Athlox XP optimized) and it does exist. This seems to somehow be a tools issue, if I add "./" at the start
-
I don't know much about compiling, so this may be dumb, but is it possible to compile cpmaker with older versions of mame (like v. 80)?
-
I don't know much about compiling, so this may be dumb, but is it possible to compile cpmaker with older versions of mame (like v. 80)?
Yes, but it requires a source edit. Basically, you have to take out the stuff I changed from the most recent versions and put that same stuff in the previous version.
What version did you have in mind?
Also keep in mind that Movie Maker will not generate sound with movies with any version of MAME prior to v0.85 or so when they put in the -wavwrite option.
-
Well, I've already run moviemaker using v90 and it works fine for movies, but when playing games like Galaga88 the sound stutters really bad. So I've downgraded to v80 for now. Still had a bit of a stutter with v.85. But I really am only looking to add the Cpmaker functionality (although, if I go this route, I may also want to add some other tweaks like the skip warning screen options from nomamemame).
-
Feb 10, 2005
New binary uploaded with enhanced MovieMaker functionality.
-
Will miracles never cease? After wishin, and hopin, and trying for the last year or so, I'm now able to get my machine to display the controls. I guess this time, I just had more patience. Took me about 2 days of trying various configurations of cpviewer, cpvw, cpmaker, etc, but now I can see the controls when I pause the game, or before, etc. For a long time I couldn't get any of these to work. I thought it was due to Windows 98 issues. PART of it was... you guys have made some enhancements. Part of the problem was my inabilty to RTFM, and of course... the complexity and number of files it takes to configure this stuff correctly.
Now I just need to figure out how to make different panels in CPMaker. I dont' really understand how or why it picks one panel over another. When I tried making a panel, and setting it as the default, Mame wouldn't run. It would load the rom, then stopp with a bad memory access / etc. error. If I take that out, everything works fine. User error... I'll sort it out eventually. Thanks for making the cool app.
-
Will miracles never cease? After wishin, and hopin, and trying for the last year or so, I'm now able to get my machine to display the controls. I guess this time, I just had more patience. Took me about 2 days of trying various configurations of cpviewer, cpvw, cpmaker, etc, but now I can see the controls when I pause the game, or before, etc. For a long time I couldn't get any of these to work. I thought it was due to Windows 98 issues. PART of it was... you guys have made some enhancements. Part of the problem was my inabilty to RTFM, and of course... the complexity and number of files it takes to configure this stuff correctly.
Now I just need to figure out how to make different panels in CPMaker. I dont' really understand how or why it picks one panel over another. When I tried making a panel, and setting it as the default, Mame wouldn't run. It would load the rom, then stopp with a bad memory access / etc. error. If I take that out, everything works fine. User error... I'll sort it out eventually. Thanks for making the cool app.
Creating panels is currently a difficult and tedious process. Eventually, I want to write a panel creator/config editor application.
The panel selection process is a bit complicated. First, it checks if you have a prefpanel selected for that game and uses that. Next, it figures out what controls the game requires and compares that to what controls each panels have. If you have a majority panel set, CPMaker will use that if it's controls are sufficient.
If no panel has the exact controls required, CPMaker will treat 8 way joysticks as 4 ways, it will treat 8 ways as 2 ways, and it will treat analog sticks as 8 ways to try to find a match. If no match is still found, it will use the majority panel if one is defined. If not, the first panel in the list is used.
I'm glad you are finally getting the controls to display. I wrote the sample panels for people to use as a template so it wouldn't be so difficult.
Howard had the idea for CPMaker last July, so I think this application has come a long way in such a short time.
-
PART of it was... you guys have made some enhancements. Part of the problem was my inabilty to RTFM, and of course... the complexity and number of files it takes to configure this stuff correctly.
Now I just need to figure out how to make different panels in CPMaker. I dont' really understand how or why it picks one panel over another. When I tried making a panel, and setting it as the default, Mame wouldn't run. It would load the rom, then stopp with a bad memory access / etc. error. If I take that out, everything works fine. User error... I'll sort it out eventually. Thanks for making the cool app.
Once you figure it out, could you please post a walkthru for those of us (me) that are too stupid to figure it out?
Thanks
-
I had considered it. I'm a developer too (though of the web variety), so I know what it's like to completely understand a process, and have everyone else scratching their heads. A lot of the "readmes" and docs folders are full of badly organized and nonsensical text files. Once you really look at them and analyze them, and sort out all of the irrelevant information you can finally get a sense of how you have to set things up. I'm not criticizing Buddabing here per se, just the process that naturally occurs with the development of simpleware, freeware, shareware apps. Developers need to spend their time developing... unfortunately without a staff the docs can't get finessed & tended to. When I create custom apps for clients, they don't get a manual and they're PAYING for my services, they wouldn't even get a phone call answered if I was doing it for free.