What Does "BIOS Enable" Do?

User avatar
Threepwood
Posts: 133
Joined: Mon May 25, 2020 9:14 am
Has thanked: 4 times
Been thanked: 23 times

What Does "BIOS Enable" Do?

Unread post by Threepwood »

I am not sure what the "BIOS Enable/Disable" option does. Can somebody please explain?
User avatar
theflynn49
Core Developer
Posts: 15
Joined: Sun Jun 07, 2020 9:14 pm
Has thanked: 9 times
Been thanked: 21 times

Re: What Does "BIOS Enable" Do?

Unread post by theflynn49 »

Hi,
There is a bios-replacement file in SMSBootLoader/smsboot.asm which initialize some ram and some registers if I remember correctly.
It does different things if SMS or GG is detected/selected.
Control is passed to the rom bios at reset.

If BIOS is disabled, this just doesn't happen. Some exotic games need this I guess.
hope this helps.
User avatar
Threepwood
Posts: 133
Joined: Mon May 25, 2020 9:14 am
Has thanked: 4 times
Been thanked: 23 times

Re: What Does "BIOS Enable" Do?

Unread post by Threepwood »

theflynn49 wrote: Sun Jun 07, 2020 9:21 pm initialize some ram and some registers if I remember correctly.
It does different things if SMS or GG is detected/selected.
Control is passed to the rom bios at reset.
Thanks a lot, that explains the function well :)

theflynn49 wrote: Sun Jun 07, 2020 9:21 pm There is a bios-replacement file in SMSBootLoader/smsboot.asm
Does the smsboot.asm need to be downloaded separate or is it baked into the core?

Also thank you for registering here and that you took the time to answer my question about the BIOS enable option.
User avatar
theflynn49
Core Developer
Posts: 15
Joined: Sun Jun 07, 2020 9:14 pm
Has thanked: 9 times
Been thanked: 21 times

Re: What Does "BIOS Enable" Do?

Unread post by theflynn49 »

It's embedded. The compile process generates the file mboot.mif, which is loaded during the core generation by Quartus into a memory array.
It's not the original BIOS, it has been rewritten.
Lancelot
Posts: 29
Joined: Mon May 25, 2020 4:56 am
Location: Campinas
Has thanked: 1 time
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by Lancelot »

Can custom bioses be used in the SMS core?
User avatar
theflynn49
Core Developer
Posts: 15
Joined: Sun Jun 07, 2020 9:14 pm
Has thanked: 9 times
Been thanked: 21 times

Re: What Does "BIOS Enable" Do?

Unread post by theflynn49 »

Honestly I do not fully understand your question.
As far as i know, there is no such thing as a 'custom bios', and I don't really see any reason to make or have one.
This bios just initialize registers and memory to make games work. I am not even sure that the original machine has a bios.
What could happen is that an exotic game does not work because it relies on a specific register value at start time which is not initialized properly.
In such a case, you'd just modify the .asm file as a developer to fix it, and that's the end of the story. I've done that many times in the past, especially because the GG machine has different init values than the SMS one, and a few games do mind.
Maybe tell me exactly what you want to achieve so I can give you a better advice ?
Lancelot
Posts: 29
Joined: Mon May 25, 2020 4:56 am
Location: Campinas
Has thanked: 1 time
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by Lancelot »

I would like to load other bios versions, EverDrive cart has the option to load different SMS BIOS versions and I really like the feature. I like to load the regional version from Brazil for nostalgic feelings. There are many bios released in the system life, most have different graphic/animation and sound. Would make my MiSTer more like my original Master System in 1990.
User avatar
Threepwood
Posts: 133
Joined: Mon May 25, 2020 9:14 am
Has thanked: 4 times
Been thanked: 23 times

Re: What Does "BIOS Enable" Do?

Unread post by Threepwood »

Lancelot wrote: Wed Jun 10, 2020 7:15 am I would like to load other bios versions, EverDrive cart has the option to load different SMS BIOS versions and I really like the feature. I like to load the regional version from Brazil for nostalgic feelings. There are many bios released in the system life, most have different graphic/animation and sound. Would make my MiSTer more like my original Master System in 1990.
You load them just like games. You would only see it when no cart is inserted anyways :) I think the behavior you are asking for is for the Master System to load such a BIOS or system ROM automatically when no cart is inserted.
Lancelot
Posts: 29
Joined: Mon May 25, 2020 4:56 am
Location: Campinas
Has thanked: 1 time
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by Lancelot »

Threepwood wrote: Wed Jun 10, 2020 7:25 am
Lancelot wrote: Wed Jun 10, 2020 7:15 am I would like to load other bios versions, EverDrive cart has the option to load different SMS BIOS versions and I really like the feature. I like to load the regional version from Brazil for nostalgic feelings. There are many bios released in the system life, most have different graphic/animation and sound. Would make my MiSTer more like my original Master System in 1990.
You load them just like games. You would only see it when no cart is inserted anyways :) I think the behavior you are asking for is for the Master System to load such a BIOS or system ROM automatically when no cart is inserted.
Yes, exactly, this action (bios chime first, then game) bring the core closer to the real experience I had with the native system. I can do it in EverDrive, can’t in MiSter.
User avatar
Threepwood
Posts: 133
Joined: Mon May 25, 2020 9:14 am
Has thanked: 4 times
Been thanked: 23 times

Re: What Does "BIOS Enable" Do?

Unread post by Threepwood »

Lancelot wrote: Wed Jun 10, 2020 7:33 am Yes, exactly, this action (bios chime first, then game) [...]
theflynn49 wrote: Tue Jun 09, 2020 2:12 pm [...] I am not even sure that the original machine has a bios. [...]
Quite a few versions actually. The early v1.3 even has a hidden game included (snail maze), while the later versions just loaded a game when no cart was inserted. Or would "system ROM" be a more fitting term? The Master System would play the logo chime from the system ROM and then load the cart (it is great that we do not need any dumped BIOS files to play, by the way, kudos for that).

Here a nice compilation of startup screens https://www.youtube.com/watch?v=6nSbt-GyJqY
Lancelot
Posts: 29
Joined: Mon May 25, 2020 4:56 am
Location: Campinas
Has thanked: 1 time
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by Lancelot »

Yes, mine was Safari Hunt + Hang On and a third hidden one (Snail Maze). I could play these three games booting the system without a cart inserted. When a cart is inserted, the bios chime (animated graphic + sound) plays before the game loads, this is the expected behavior I hope to see in MiSTer some day.

The best one in my opinion is the japanese on with the Space Harrier theme, that’s glorious but that particular bios (or rom) does not work when I try to load it. I load this on EverDrive sometimes just to listen to the soundtrack, glorious indeed.
User avatar
theflynn49
Core Developer
Posts: 15
Joined: Sun Jun 07, 2020 9:14 pm
Has thanked: 9 times
Been thanked: 21 times

Re: What Does "BIOS Enable" Do?

Unread post by theflynn49 »

Interesting.
There is a page in smspower with all the known bioses : https://www.smspower.org/Development/BIOSes

Some change could be made to Mister to add a bios load parameter, instead of loading the mboot.mif file by default, but that's some work because for the moment it's statically loaded.
User avatar
eightbit
Posts: 55
Joined: Thu Jun 18, 2020 7:05 pm
Has thanked: 1 time
Been thanked: 3 times

Re: What Does "BIOS Enable" Do?

Unread post by eightbit »

I was actually quite surprised as well not to have the ability to allow the SMS BIOS to launch before a game. Instead we have this static Sega logo...which I have never seen before. On a real Master System, the SMS BIOS would come up with the Sega chime before the game. Or, when you turned it on without a game, the BIOS would run and then run into the built in game(s) or to the "Enjoy" screen....which also had the built in Snail Maze game if you press "UP" + 1 & 2.
Lancelot
Posts: 29
Joined: Mon May 25, 2020 4:56 am
Location: Campinas
Has thanked: 1 time
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by Lancelot »

eightbit wrote: Thu Jun 18, 2020 7:09 pm I was actually quite surprised as well not to have the ability to allow the SMS BIOS to launch before a game. Instead we have this static Sega logo...which I have never seen before. On a real Master System, the SMS BIOS would come up with the Sega chime before the game. Or, when you turned it on without a game, the BIOS would run and then run into the built in game(s) or to the "Enjoy" screen....which also had the built in Snail Maze game if you press "UP" + 1 & 2.
This static Sega logo is a EU bios version, if I”m not mistaken. There are many official versions in each region. I was disappointed because Terraonion’s Mega SD also does not have this feature as it loads the game directly. I even asked them for for the feature but was ignored. Perhaps some dev can look at the Krikzz implementation for his EverDrive and replicate it on MiSTer, it would be awesome.
User avatar
eightbit
Posts: 55
Joined: Thu Jun 18, 2020 7:05 pm
Has thanked: 1 time
Been thanked: 3 times

Re: What Does "BIOS Enable" Do?

Unread post by eightbit »

At least if you have the BIOS files extracted to .sms ROM format you can load them that way in the core. That's how I sometimes play the snail maze game (and relive the nostalgia!).
antibolo
Posts: 99
Joined: Mon Jun 08, 2020 9:49 pm
Been thanked: 16 times

Re: What Does "BIOS Enable" Do?

Unread post by antibolo »

You can put a BIOS file in the SMS folder and rename it to boot.rom so it gets loaded at the core startup. It won't show up on subsequent games, of course, but that's good enough for me!

On a related note, it seems the Japanese v2.1 BIOS (the really cool Space Harrier-themed one) does not seem to work on MiSTer for some reason??
antibolo
Posts: 99
Joined: Mon Jun 08, 2020 9:49 pm
Been thanked: 16 times

Re: What Does "BIOS Enable" Do?

Unread post by antibolo »

Did some digging into the disassembly of the Japanese v2.1 ROM, turns out the cartridge detection code incorrectly detects a cartridge, hence why the demo screen never shows up.

A quick hack you can do to make it work on MiSTer is to open the ROM in a hex editor and change the byte at address 0x0118 to C9. This bypasses the cart detection routine completely.

And then put that modified ROM in the SMS folder as boot.rom, and presto! You get a neat splash screen for the SMS core!
User avatar
skooter
Posts: 65
Joined: Mon May 25, 2020 1:37 pm
Location: Brazil
Has thanked: 2 times
Been thanked: 19 times
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by skooter »

I used to leave the BIOS option on, but I was playing Psychic World yesterday and I noticed the animations before each stage were really slow. I disabled the BIOS option and it started working fine. I don't know if it's a bug or expected behavior.

I captured both the wrong behavior (with the BIOS option on) and the right one (with the BIOS option off) in this video:
https://youtu.be/aiXGHCZrDZE?t=522
User avatar
marcelosofth
Posts: 174
Joined: Wed Sep 22, 2021 10:03 pm
Location: Brazil - São Paulo
Has thanked: 8 times
Been thanked: 4 times
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by marcelosofth »

Hello friends, any updates on how to choose Bios at startup of each game?
masamunexc
Posts: 1
Joined: Tue Apr 19, 2022 4:40 pm

Re: What Does "BIOS Enable" Do?

Unread post by masamunexc »

I'm waiting for any updates on this issue as well. I'd like it to boot with the animated bios with the Se-ga jingle. This is probably the only misstep I have seen MiSTer make actually, I'm surprised this isn't easily done.
Lancelot
Posts: 29
Joined: Mon May 25, 2020 4:56 am
Location: Campinas
Has thanked: 1 time
Contact:

Re: What Does "BIOS Enable" Do?

Unread post by Lancelot »

masamunexc wrote: Tue Apr 19, 2022 4:42 pm I'm waiting for any updates on this issue as well. I'd like it to boot with the animated bios with the Se-ga jingle. This is probably the only misstep I have seen MiSTer make actually, I'm surprised this isn't easily done.
Me too, I hope some dev can give this some attention.
Post Reply