libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
192 stars 110 forks source link

new retropie forum thread #92

Closed markwkidd closed 6 years ago

markwkidd commented 6 years ago

Hello all. The retropie forum thread now is great, but I noticed that there are more than 460 posts! There is some misunderstandings about the relationship between the two cores which are based on the title of the thread and the early posts. Just one example of how it's out of date.

@Wilstorm or someone else, would you be willing to start a new thread with a title that includes the word "mame2003-plus"?

It could be anything. "mame2003-plus: brave new core (testers needed)", "mame2003-plus: brilliant advances and broken builds (testers needed)", "mame2003-plus: what does god need with a starship?"

Sometimes it's awkward for me to post a thread like this in the RetroPie forum when people realize I don't personally have/use RetroPie, just RetroArch.

If such a new thread exists, I'll immediately be on hand as with the existing thread.

ghost commented 6 years ago

@KMFDManic it seems elevator action return is crashing on windows at least in mame2003+ now i need to see if this is the core doing this sound changes that done this or something else we have changed it works in mame2003

KMFDManic commented 6 years ago

@grant2258 I tested the changes on my end. Yes, it appears other games crash, possibly as a result of the changes. Test out In the Hunt and R-Type LEO. I would suspect several other Irem Games to crash as well. Could be a conflict with the original encryption fixes. There is another potential workaround, that I would suggest, if other games are affected. Key in the rom set names, (ie: tron, rampage, etc) as triggers, and only allow the change for rom sets white listed within the context of that perimeter (input fix). I did just this for my personal Build and had great success. Also, I believe Battle Zone and Lunar Lander also have the timing issue, in general. It is an awesome change, regardless. I have applied it to many games and it is working excellent:)

ghost commented 6 years ago

@KMFDManic ill fix this or change it thanks for the input. I just need to change the condtions a little if that doesnt work will do it the mame2003 way. Thanks for the info on the other games!

KMFDManic commented 6 years ago

No problem, @grant2258, I am very aware of the "Butterfly Effect"":) But, check out Battle Zone and Lunar Lander, and any other games on those specific Atari driver/s, I, on my end, strictly white listed the Midway Bally Games, case by case, to effectively safeguard against any other breaks...at least for the time being:) When I post my Update today, I will shout-out to you. Thanks so much, again for the info on the timing input fixes:) And, anything you need tested, let me know. I have a few different builds, so can swap between them for any specific driver tests, whenever.

ghost commented 6 years ago

@KMFDManic i think i know where i went wrong i got lazy and just done the sample rate = framerate * 1000 this only needs applied it framerate is below 60 fps thanks for then mention!

KMFDManic commented 6 years ago

@grant2258 One thing I really want to be able to do. And, this will be a little time consuming. But, it is important to me to do, in the end:) I want to slowly but surely, in my readme files, instead of the generic label, Core by Libretro, I want to have Core by Libretro, Commits by: @markwkidd @grant2258 etc:) I don't want this old, Atari (generic label with the true victors being overlooked scenario going on:) I am very slowly but surely adding all the individuals who have worked on various commits for each of the amazingly respective Cores! I have to say @Twinaphex must never get any sleep with how often his name turns up, haha!

ghost commented 6 years ago

@KMFDManic Twinaphex, dankcushions and markwkidd are doing so much work you would think someone should be paying them!

markwkidd commented 6 years ago

@KMFDManic you're name is starting to join this list too!

Please submit PRs here any time. Again I'm glad to add some ifdefs to the source here for any modifications that you use that are platform-specific to the SNES Classic to make it easier to base your fork on this repository.

Also if you think you'd like to work directly in this repository it seems like you could probably get direct push access as well. Say something if this last idea sounds interesting to you!

ghost commented 6 years ago

If you have to whitelist certain games to only use the timing fix there are quite a few. The timing fix also fixed the parent version of Green Beret (couldn't coin up). Cinematronics and Atari (probably all Vector games) were fixed.

I hope it's not your timing fix. I found another game that no longer works on Plus, dungeonm (Dungeon Magic). It works on 2003. (But this game is 60 Hz so something else must have broken it ?)

ghost commented 6 years ago

This reminds me of when getting the sound to work in Denjin Makai it would break the sound for Cabal, the classic rob peter to then pay paul in the end as @KMFDManic suggested the workaround was to just isolate the code so only DM used it.

/ Denjin Makai definitely needs this at start-up, it never writes to the bankswitch / { if(strcmp(Machine->gamedrv->name, "denjinmk") == 0) seibu_bank_w(1,0); }

I suppose should we not be able to find general core timing values that all the games will like there is always the option of tagging on a per game basis.

KMFDManic commented 6 years ago

@ZappaUtopia Thanks for the Green Beret mention. @arcadez Yes, whitelisting can be a little time consuming. But, essentially, trying to find a median for all games can have so many more possibilities and unexpected outcomes. Imagine the one game that noone plays on MAME, for 5 years! Then, all of a sudden, it comes up in an issue (Hey, why is this game not working, it worked 5 years ago!) I tend to have a specific list of test perimeters, each time I do Updates (Irem Games most notably:) Then, down the list with Data East, etc! Butterfly Effect is awful when you change one thing for the better, and 10 things get broken in the process!

ghost commented 6 years ago

I would prefer to not whitelist for now so any bugs show up if thats ok if that has to change down the line its no problem doing it

KMFDManic commented 6 years ago

@grant2258 This is just my own personal safety net, until tests work out. Ideally, would like to be completely up to date with the main master, for sure! But, obviously, there are a few nuances to contend with on the Mini NES/SNES front, that are not as affected on the PC/Android front, due to their obviously far better CPU/GPU stability.

ghost commented 6 years ago

lemme try fix this mess up i made i was really an oversight by me i do apologize guys

KMFDManic commented 6 years ago

@grant2258 Mess-Ups can be good things, at times:) One thing that I exploited awhile back helped Sega System 32 Games run:) Don't forget, Slinky and Silly Putty, I believe, are also historical mess ups:) Oh, I forgot to mention, when I looked at your Bally-Midway Now Working list, wouldn't Root Beer Tapper be considered part of them? I don't believe I recall that being on the list.

ghost commented 6 years ago

I think the now working list is mainly Parent versions, the clones will probably work as well. Atari games are not on that list like Battlezone and Star Wars which previously didn't work but do now because of Grant's fix. Maybe All games below 47 Hz may now work that previously didn't regardless of Manufacturer, like Green Beret Parent version that I mentioned and also Big Run (but has graphical issues) and Cisco Heat.

markwkidd commented 6 years ago

If you do notice clones that are now working, it would be good to add them to the CHANGELOG as well. Folks are welcome to submit PRs or if you aren't comfortable doing that yet you can post an issue with what to add to the log.

Anything else that needs to get added to the CHANGELOG or README would be welcome as well.

ghost commented 6 years ago

that will be the case zappa im having github problems again i had to just reset my repo will try get them fixes done just reset my github page

ghost commented 6 years ago

just say any games below >47 fps now work like mame078 does you wont have to list all games that way

markwkidd commented 6 years ago

I think people want to test the games that weren't working, and maybe they don't know which games are less than 47fps. Until your work recently I didn't know! :) But yeah I think in reality an abbreviated statement is good lol

ghost commented 6 years ago

I don't use a full collection because that's overkill ! I generally have Parent games only unless the Parent doesn't work or there is a better clone version (English version or Joystick hack etc.) I think it's safe to say that games below 47Hz that previously didn't work or wouldn't coin-up now do. But a few are now not working but could be caused by anything (dungeonm , elvactr). If you use a MAME 0.78 frontend (I use EmuLoader) you can order the Full gamelist by Refresh Rate and see which is below 47 Hz.

KMFDManic commented 6 years ago

@ZappaUtopia And, of course games like Moonwalker, E-Swat, Choplifter, which require bootlegs. Thanks for the mentions of other games that potentially can work with the truly excellent fix @grant2258 applied. I would love to know any that run below 47 Hz., and will also look further into that.

ghost commented 6 years ago

hmmmf strange the sound wont start unless i set a sample_rate must have happened somewhere in the core changes think we missed a set Machine->samplerate set

ghost commented 6 years ago

ok guys its fixed was just a simpple one timing code is still good what romnames should i be testing ?

ghost commented 6 years ago

@KMFDManic

Thread 1 "retroarch" received signal SIGSEGV, Segmentation fault. 0x00007fffc61cab1e in IremGA20_update () from /home/grant/.config/retroarch/cores/mame2003_libretro.so (gdb) bt

0 0x00007fffc61cab1e in IremGA20_update () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

1 0x00007fffc5b8832a in streams_sh_update () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

2 0x00007fffc5b87efb in sound_update () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

3 0x00007fffc5b0d319 in updatescreen () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

4 0x00007fffc5b5f185 in cpu_vblankcallback () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

5 0x00007fffc5b6a2a0 in timer_adjust_global_time () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

6 0x00007fffc5b5f88a in mame_frame () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

7 0x00007fffc5b0acab in retro_run () from /home/grant/.config/retroarch/cores/mame2003_libretro.so

8 0x00005555555836cc in core_run () at core_impl.c:430

9 0x0000555555588f94 in runloop_iterate (sleep_ms=0x7fffffffe090) at retroarch.c:3261

10 0x000055555558212d in rarch_main (argc=1, argv=0x7fffffffe1a8, data=0x0) at frontend/frontend.c:131

11 0x000055555558218a in main (argc=1, argv=0x7fffffffe1a8) at frontend/frontend.c:154

did rtypeleo ever work with mame2003?

ghost commented 6 years ago

@ZappaUtopia @KMFDManic irem games fixed thanks for info that the games had problems

ghost commented 6 years ago

@markwkidd is there a easy way for me to pass this commit for irem to mame2003 as a pull req without redoing it for there. I need to leave for work will pass it alone to mame2003 when i get back in

markwkidd commented 6 years ago

You would fork mame2003-libretro to be grant2258/mame2003-libretro

Then you would do something like:

git clone http://github.com/grant2258/mame2003-libretro.git
cd mame2003-libretro
git checkout -b irem-fix

Then you need to get access to the mame2003-plus-libretro repository in order to do a git cherry-pick which will let you pull in just one commit from one repo to the other.

This is how I have brought mame2003-plus and mame2003 into sync periodically.

Something like:

git remote add mame2003-plus https://github.com/libretro/mame2003-plus-libretro.git
git fetch mame2003-plus

At that point you can git cherry-pick your commit, resolve any conflicts between the two versions, test, git commit -a, and submit your branch irem-fix as a PR to mame2003-libretro. In theory!

ghost commented 6 years ago

@markwkidd thanks for that . I think i would need access to mame2003 to do that ill just do it the old fashioned way. I swear i spend more time on git hub than programming lol

markwkidd commented 6 years ago

You don't need admin access to mame2003 for this process -- which I do not have either -- but you would be able to go over to github at that point and generate a PR to mame2003 that someone with admin access could merge.

Yes code management is its own hobby I've learned

ghost commented 6 years ago

@grant2258 I haven't built yet but did this also fix dungeonm (Dungeon Magic by Taito) ? It works on 2003 but not on 2003-plus.

ghost commented 6 years ago

@ZappaUtopia yes that game works on mame2003+

KMFDManic commented 6 years ago

@grant2258 I actually opened an issue last year on the Irem Games, due to encryption fixes not applying properly. The sound effects were particularly grating, hehe. But, the IREM Games are most certainly one of the best subsets of games to have fully working!

I will continue to test any merged changes or commits, and follow-up, accordingly:)

markwkidd commented 6 years ago

I now have things so that the nvram 'bootstrap' patch files aren't even needed for rungun and bubblem. It's integrated into the core.

At least it's working that way here in Windows.

If anyone wants to test on their platform: update mame2003-plus, delete any nvram files you already have in your save folder, and then start up rungun or bubblem.

ghost commented 6 years ago

@ZappaUtopia the fixes for irem or for 64 bit in particular. I wouldnt have even know about this unless someone told me there was issues. The reason there was problems on some game is because mark done some massive core work and he did a great job. We both done changes at the same time on a particular file and one line of code didnt make the cut its added back now.

KMFDManic commented 6 years ago

@markwkidd Awesome work on Rungun! Can't wait to check it out!

KMFDManic commented 6 years ago

@markwkidd @grant2258 @twinaphex Latest Addition to MAME 2003 Xtreme, on my end:)

SNES Classic - Out Run Arcade - Custom OST Support - Test Two Redux)

https://www.youtube.com/watch?v=G-YO7nJMKqE

markwkidd commented 6 years ago

These videos are so great so we can all actually see what's being described! Plus the music is rockin!

KMFDManic commented 6 years ago

@markwkidd @grant2258 @dankcushions I will be adding MAME 2003 Plus in Today's Update Release for the NES/SNES Classic Users. My preliminary ReadMe! will be as follows

Name: km_MAME 2003 Plus Experimental (4-30-18)
Creator: KMFDManic
Category: KMFDManic Experimental Core Set
-----------------------
=== MAME2003 Plus Experimental Core for RetroArch ===

Module adds support for MAME 2003 Plus Experimental

Bios must be inside game directory or via Bios Module where applicable

This Particular MAME Plus Experimental Variant offers the most current experimental
changes to MAME 2003. While generally stable in a PC Environment, you 
may be subject to various incompatibility issues in an NES/SNES Mini
Environment. Of course, User Feedback will be taken into account for Updates
on a near daily basis to further stabilize the Core for compatibility across
many different Platforms!:)    

Available executables and arguments to run Core:
- /bin/mame2003-plus <rom> <clover_args>

Core by libretro

libretro commits by: markwkidd/arcadez/dankcushions/twinaphex/hunterk/grant2258/gamez-fan/etc

Hakchi module system by madmonkey

NES/SNES Mini shell integration by Cluster

(c) 2016-2018

If any of you have anything to add to the ReadMe!, please let me know:) I will need to keep two MAME 2003s in my Core Set. Xtreme will be changes that are stable and work on the Minis with reliable functionality. Then, myself and many others will continue to test any and all changes to MAME 2003 Plus, and I will fill everyone in, accordingly:) Thanks so much for all of the truly amazing Commits! I will be sure to notate a few of them in the Release Notes, today!

andres-asm commented 6 years ago

I still don't know what you change for nes/snes mini and why those changes aren't pull requested to our repos

KMFDManic commented 6 years ago

@fr500 As I mentioned before, it is a WIP, and the integral part of it all is the program we use called Hakchi2 CE. RetroArch on PC/Android handles the Cores. Hakchi2 CE on Mini NES/SNES, is absolutely necessary to be able to use RetroArch on the Minis. There is quite a lot of developing going on. We just got WI-FI working on our end! But, in the end, the changes that are helpful, globally, across platforms...will be Pull Requested. The Custom OST ones, and a few other things I have noticed, have already been brought to the attention of @markwkidd @grant2258 and @twinaphex

The RetroKeyboard is fantastic, by the way:)

Now that I am in constant communication with those who work on MAME 2003 Plus, I will relay any information helpful to furthering the whole cause:) Thanks again!

PS: As you mentioned previously, I will try to get makefiles taken into account, as well!

andres-asm commented 6 years ago

The RetroArch and core changes have to be pushed back (or at least offered back) no matter if it's a WIP or not.

markwkidd commented 6 years ago

I have heavily rewritten the README file with new users in mind: https://github.com/libretro/mame2003-plus-libretro/blob/master/README.md

markwkidd commented 6 years ago

done!