Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bounty: $10] improve compatibility with the NeoGeo Unibios 3.3 #225

Open
markwkidd opened this Issue May 22, 2018 · 26 comments

Comments

Projects
None yet
5 participants
@markwkidd
Copy link
Collaborator

markwkidd commented May 22, 2018

Bounty contributions make a difference - please donate at this link today to support this feature

Current situation

Currently there is a way to use UniBios 3.3 with mame2003-plus, but it is a hack. Please see KMFDManic's post later in this issue for details: #225 (comment)

Proposal

Full/normal support for Unibios 3.3, selectable like the other Neo Geo BIOSes via the core option with no workaround needed.

@markwkidd markwkidd self-assigned this May 22, 2018

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented May 22, 2018

I have just pushed a commit that enables the Unibios 3.3 for anyone interested in testing. @Wilstorm I should probably have tagged you in this Issue rather than the PR in case there is ongoing testing/discussion.

All a person needs to do in order to try this it to rebuild from a recent MAME or FBA collection or just go to the Unibios website and download 3.3: http://unibios.free.fr/download.html

Because mame2003-plus can load BIOS files by CRC theoretically you can just add the BIOS file as its named in their download. For maximum compliance, it should be renamed uni-bios_3_3.rom before being added to neogeo.zip or individual game romsets if you're using Full Non-Merged romsets.

@markwkidd markwkidd changed the title TODO: is the latest Neo Geo Unibios compatible? TODO: is the Neo Geo Unibios 3.3 compatible? May 22, 2018

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented May 22, 2018

@KMFDManic once this has gotten put through its paces, I believe the Unibios 3.3 would make it possible for SNES Classic users to emulate the Neo Geo console versions.

Not 100% sure if that is right or if it matters for SNES Classic but I do know 100% that the Neo Geo console has its own active fanbase in general.

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented May 22, 2018

screenshot 2018-05-22 17 11 44

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented May 22, 2018

Fantastic @markwkidd 3.2 Unibios was pretty much what it worked with, when I last tested. If 3.3 works now, even better:) I have already had 3.3 Unibios in my set for well over a year now. It was just ignored and 3.2 was used instead:) I will certainly test it and make this known for the next Update:) Thanks again:) I will give you some test results by tomorrow:)

Go figure:) My Unibios Test Video (About 2:40 seconds in:)

https://www.youtube.com/watch?v=TiQNJIwwRU0

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented May 23, 2018

minor update: my original implementation was pretty simplistic in that didn't have a very robust way to know what to do if the user had set the ST-V BIOS core option & the Neo Geo BIOS option at the same time.

Because there are some core configuration override scenarios where this might be a logical combination of settings, I implemented some more sophisticated logic earlier today

Unless you have been experimenting with all kinds of different combinations of settings trying to break the core options like I have been, the change should be unnoticeable :)

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented May 24, 2018

I like how you added the NEO-GEO BIOS Selector. Have you successfully tried loading into Uni-Bios yet? In the past, you'd typically have to hold down ABC+start (different combination depending on controller you are using) to access Uni-Bios, particularly on FBA. So, even though they are selectable in MAME 2003-Plus, I am wondering if they will even "load". Let me know if you have gotten them to work yet. I will run my own tests. Thanks:)

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented May 25, 2018

@markwkidd Results of preliminary Tests. Even though you get the UniBios Splash Screen for 3.3, etc, it still will not allow you to access the Dip Switches (A+B+C+Start). FBA 2012, 2016 have this issue, as well. BUT, what I did to get around it, was rename uni-bios to asia-s3.rom, then let it overwrite the current asia-s3.rom inside the neogeo.zip I just retested it, with this method...on FBA 2012, and holding down A+B+C+Start immediately pulled up Dip Switches, without issue...Just like in the above video. I tested it a few different ways on MAME 2003-Plus, and the A+B+C+Start had no effect. So, essentially, we may be getting the fixes, patches, optimizations, etc, but Dip Switches may not necessarily function. Will need to test a little further:) But, as of right now, they work perfectly with FBA 2012/2016 using the exact method I stated. Just not on MAME 2003 (Dip Switch wise:) I will retest your latest Coding tomorrow. But, that is where things currently stand:) Hopefully, we can get Dip Switches working with MAME 2003-Plus, somehow:)

@Wilstorm

This comment has been minimized.

Copy link

Wilstorm commented May 25, 2018

@KMFDManic - Thanks for sharing. I have never spent much time getting into the BIOS but I find this interesting hope to learn some new things and I appreciate you sharing your findings.

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented May 25, 2018

@Wilstorm No problem. I have been dealing with BIOSES for a long time:) If you went about 2:40 into the above Video, you will notice I am running 3.2 UniBios. FBA only supports up to 3.0 in the Core Options. The exploit I detailed allowed me to run 3.2, in my initial Tests. If we truly were able to pull up Dip Switches with A+B+C+Start in MAME 2003-Plus, we'd have a whole complement of new complement of fun features to play around with:)

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented May 25, 2018

I wonder if the Unibios 3.3 works in current MAME. Does anyone have a current MAME setup to easily check this on? I don't run anything more recent than 0.139 right now :)

@arcadez I've refrained from tagging you thus far but sometimes you have a way of just knowing the answer to something like this. Is there any reason you know why Unibios 3.3 wouldn't be receiving input from mame2003-plus?

I wonder if we could run Unibios 3.0 -- maybe whatever reason the BIOS is not getting the three-button + start input may be in common for us and FBA, and therefore if Unibios 3.0 works for FBA it would work here. I'll take a look at that soon.

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented May 27, 2018

@markwkidd I will run a few more tests, and see what I discover:)

@grant2258

This comment has been minimized.

Copy link
Contributor

grant2258 commented May 27, 2018

found this worth a try

So I've found that you can access the SoftDIPs like so:

When the game boots (during the UniBIOS screen), hold B + C + D. This is because the system is emulating an MVS (not AES) system, which holds the softDIP settings in its own NVRAM. Go to the appropriate option.

NOTE: I've found that timing on this plays a role. Sometimes the game name in the SoftDIP menu will be garbled; if you go into that, it will often be set to some ridiculously low defaults (difficulty level 1, etc.). If you let the game boot once, and then do a soft reboot (hold START + A + B + C to bring up UniBIOS menu, go down to "softboot" option), you can again hold B + C + D to access the soft DIPs properly.

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented Jun 1, 2018

@markwkidd @grant2258 @Wilstorm I got UniBios working by doing this:

Replace sp-s2.sp1 with uni-bios.rom (make sure to rename it to that file), and everything works great. Just loaded the Core, unibios worked immediately. I did same exploit on FBA replacing the asia-s3.rom with uni-bios.rom

So, in effect:

MAME 2003 = sp-s2.sp1 = swap with uni-bios.rom

FBA 2012/FBA = asia-s3.rom = swap with uni-bios.rom

All good now:) Dip switches and everything else working flawlessly on all Arcade Cores that support NEO-GEO, with this exact set-up I just outlined above.

It appears as if A+B+C is being used for both, as well. I am on a WII Controller, so can't be absolutely sure. But, pretty sure:)

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented Jun 1, 2018

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented Jun 1, 2018

Essentially, we are "Forcing" the Uni-Bios to be used, as they will load with the Default Core Settings. So, maintaining the file name integrity helps, in this respect, whereas crc checking, will be perfect if NOT using UniBIOS:) Glad things are all sorted out, and I can run everything with UniBIOS, now! Yes, the mirrored shader is really really excellent workaround. I will try to work that in, as far as showing people what to do in next Update or so. For now, I am gonna get this added, when I Update tomorrow:)

20180601_074914

Yes, we officially have DS now:) And, I am going to add to it by having it set up with this very nice Border, as an Add-On:) The picture is, in fact, the game running on SNESC, hehe.

@grant2258

This comment has been minimized.

Copy link
Contributor

grant2258 commented Jun 1, 2018

Mame2003+ has the option to load this bios as far as i know. Is strange the soft dips only work with sp-s2.sp1 filename could look for the reason but there is no need if this works

@grant2258

This comment has been minimized.

Copy link
Contributor

grant2258 commented Jun 1, 2018

@KMFDManic there was recently a thread on the retropie forus about the unibios and how they all have different crcs when people buy them. It might be worth checking you crc is matching mame/fba dat if it isint just rename the exactly as the emulator wants it not sure if fba and mame are using the same naming conventions though. it could be something else right enough.

ill do testing when i find the time and will let you know if i find anything if you like just for curious minds like me that like to know why 🔢

@grant2258

This comment has been minimized.

Copy link
Contributor

grant2258 commented Jun 1, 2018

@markwkidd we migh have to add one to the bios number from whats noted here just pasting this for when i do the testing.

ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(bios+1)) /* Note '+1' */

@Wilstorm

This comment has been minimized.

Copy link

Wilstorm commented Jun 1, 2018

@KMFDManic - This is great news! Thank you for the information so which unibios are you using or different versions for different options? Here's a list of unibios in 2003+ and FB Alpha 0.2.97.43 below. I think .43 just added uni-bios_3_3.rom in this newest version vs. .42. This morning I tried downloading lr-fbalpha from source in RetroPie but it installed .42 still and not .43. I am holding both sets until I know it's on the new version due a lot of changes between .42 and .43.

Here's what's in the 2003+ archive using the DAT:

<rom name="uni-bios_1_0.rom" size="131072" crc="0ce453a0" sha1="3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9"/>
<rom name="uni-bios_1_1.rom" size="131072" crc="5dda0d84" sha1="4153d533c02926a2577e49c32657214781ff29b7"/>
<rom name="uni-bios_1_3.rom" size="131072" crc="b24b44a0" sha1="eca8851d30557b97c309a0d9f4a9d20e5b14af4e"/>
<rom name="uni-bios_2_0.rom" size="131072" crc="0c12c2ad" sha1="37bcd4d30f3892078b46841d895a6eff16dc921e"/>
<rom name="uni-bios_3_3.rom" size="131072" crc="24858466" sha1="0ad92efb0c2338426635e0159d1f60b4473d0785"/>

Here's what's in FB Alpha 0.2.97.43 archive using the DAT:

<rom name="uni-bios_1_0.rom" size="131072" crc="0ce453a0" sha1="3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9"/>
<rom name="uni-bios_1_1.rom" size="131072" crc="5dda0d84" sha1="4153d533c02926a2577e49c32657214781ff29b7"/>
<rom name="uni-bios_1_2.rom" size="131072" crc="4fa698e9" sha1="682e13ec1c42beaa2d04473967840c88fd52c75a"/>
<rom name="uni-bios_1_2o.rom" size="131072" crc="e19d3ce9" sha1="af88ef837f44a3af2d7144bb46a37c8512b67770"/>
<rom name="uni-bios_1_3.rom" size="131072" crc="b24b44a0" sha1="eca8851d30557b97c309a0d9f4a9d20e5b14af4e"/>
<rom name="uni-bios_2_0.rom" size="131072" crc="0c12c2ad" sha1="37bcd4d30f3892078b46841d895a6eff16dc921e"/>
<rom name="uni-bios_2_1.rom" size="131072" crc="8dabf76b" sha1="c23732c4491d966cf0373c65c83c7a4e88f0082c"/>
<rom name="uni-bios_2_2.rom" size="131072" crc="2d50996a" sha1="5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c"/>
<rom name="uni-bios_2_3.rom" size="131072" crc="27664eb5" sha1="5b02900a3ccf3df168bdcfc98458136fd2b92ac0"/>
<rom name="uni-bios_2_3o.rom" size="131072" crc="601720ae" sha1="1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9"/>
<rom name="uni-bios_3_0.rom" size="131072" crc="a97c89a9" sha1="97a5eff3b119062f10e31ad6f04fe4b90d366e7f"/>
<rom name="uni-bios_3_1.rom" size="131072" crc="0c58093f" sha1="29329a3448c2505e1ff45ffa75e61e9693165153"/>
<rom name="uni-bios_3_2.rom" size="131072" crc="a4e8b9b3" sha1="c92f18c3f1edda543d264ecd0ea915240e7c8258"/>
<rom name="uni-bios_3_3.rom" size="131072" crc="24858466" sha1="0ad92efb0c2338426635e0159d1f60b4473d0785"/>
@Wilstorm

This comment has been minimized.

Copy link

Wilstorm commented Jun 1, 2018

Is the file (sp-s2.sp1) that gets replaced unused?

@markwkidd markwkidd changed the title TODO: is the Neo Geo Unibios 3.3 compatible? [Bounty] Improve compatibility with the NeoGeo Unibios 3.3 Oct 15, 2018

@markwkidd markwkidd changed the title [Bounty] Improve compatibility with the NeoGeo Unibios 3.3 Improve compatibility with the NeoGeo Unibios 3.3 Oct 15, 2018

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented Oct 15, 2018

@markwkidd we migh have to add one to the bios number from whats noted here just pasting this for when i do the testing.

mame2003-plus-libretro/src/drivers/neogeo.c

Line 1474 in eb805cb

ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_BIOS(bios+1)) /* Note '+1' */

@grant2258 I'm coming back around to this issue because there must be a way for this to work without such a hack. It seemed like maybe you were onto a clue with this post -- did you ever give it a try?

@markwkidd markwkidd changed the title Improve compatibility with the NeoGeo Unibios 3.3 [Bounty: $10 ] improve compatibility with the NeoGeo Unibios 3.3 Oct 22, 2018

@markwkidd markwkidd changed the title [Bounty: $10 ] improve compatibility with the NeoGeo Unibios 3.3 [Bounty: $10] improve compatibility with the NeoGeo Unibios 3.3 Oct 22, 2018

@markwkidd

This comment has been minimized.

Copy link
Collaborator Author

markwkidd commented Oct 22, 2018

@robertvb83 this is now abounty! :)

@markwkidd markwkidd added the bounty label Jan 7, 2019

@thatman84

This comment has been minimized.

Copy link

thatman84 commented Feb 7, 2019

@markwkidd @grant2258 @Wilstorm I got UniBios working by doing this:

Replace sp-s2.sp1 with uni-bios.rom (make sure to rename it to that file), and everything works great. Just loaded the Core, unibios worked immediately. I did same exploit on FBA replacing the asia-s3.rom with uni-bios.rom

So, in effect:

MAME 2003 = sp-s2.sp1 = swap with uni-bios.rom

FBA 2012/FBA = asia-s3.rom = swap with uni-bios.rom

All good now:) Dip switches and everything else working flawlessly on all Arcade Cores that support NEO-GEO, with this exact set-up I just outlined above.

It appears as if A+B+C is being used for both, as well. I am on a WII Controller, so can't be absolutely sure. But, pretty sure:)

Just wondering what whould you enter in a neogeo.ini for mame to read the sp-s2 unibios.
Giving this a try on the 197 core for android to gain support for unibios 3.3

It only natively supports 3.2

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented Feb 7, 2019

@thatman84 I made another neo geo thread last year, which is where this one stemmed from. But, essentially, that is the exploit I figured out and showcased for these guys. We did some recoding, on my end, so that MAME 2003 and FBA and Unibios could all be used simultaneously. It has been an absolute godsend.

@KMFDManic

This comment has been minimized.

Copy link
Contributor

KMFDManic commented Feb 7, 2019

Coding in action. I recommended this as a potential Core Option at the time. But, we ended up scripting it into RetroArch, instead. Absolute love a one solution to fit them all scenario, especially for Neo Geo.

https://youtu.be/uR39ou3u5KY

@thatman84

This comment has been minimized.

Copy link

thatman84 commented Feb 7, 2019

@KMFDManic thanks for the info,

I’m pretty new to unibios and FBA stuff but this exploit worked a treat for regular lr-MAME to get me going.

I managed to find the details for the ini file bios reference in the MAME/neogeo.cpp repo (bios stuff listed around line 2237ish)

i.e sp-s2.sp1 should be put as euro in a neogeo.ini file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.