SofaRun v2.0 bug report thread

Page 24/33
17 | 18 | 19 | 20 | 21 | 22 | 23 | | 25 | 26 | 27 | 28 | 29

By Louthrax

Prophet (2093)

Louthrax's picture

03-09-2017, 12:15

gdx wrote:

Hi Louthrax,
Can you add Fat16 support or at least make sure Sofarun doesn't destroy the Fat16 partitions? Crying

So that was not a bug (see here). SofaRun can be safely installed on FAT16 :)

By gdx

Prophet (3091)

gdx's picture

03-09-2017, 12:28

Yes, Sofarun works fine. it was a bad manipulation on my part.

By sd_snatcher

Prophet (3093)

sd_snatcher's picture

28-09-2017, 02:28

I found a bug in the latest version of SofaRunIt:

It disables the MSX-Audio BIOS v1.3 and re-enables the internal MSX-Music of the MSX Turbo-R.

Steps to reproduce:

1) Connect a cartridge that has the MSX-Audio BIOS v1.3 (tested here with a DalSori v2) to an MSX Turbo-R
2) Run OPLLOFF. This will disable the TR's built-in MSX-Music.
3) Use SRI.COM to load the game Rune Master 2

results: The MSX-Audio BIOS v1.3 cartridge will be ignored, and the soundtrack will be played on the OPLL.

EDIT: It's very likely that the same issue happens with the original MSX-Audio BIOS on the Panasonic FS-CA1.

By Louthrax

Prophet (2093)

Louthrax's picture

02-10-2017, 14:00

Looks related to the SofaRunIt initialization process (an MSX-DOS environment has to be re-created), I guess some hooks are not setup correctly... Will check that.

By Grauw

Ascended (8516)

Grauw's picture

02-10-2017, 14:33

Might be relevant;

https://www.msx.org/forum/msx-talk/hardware/turn-off-msx-mus...

sd_snatcher wrote:

It works by disabling the expansion flag of the slot-0 from EXPTBL and removing all references to the MSX-Music BIOS from the SLTATR table. The YM2413 chip itself is still active (*1), but it just can't be found because it's write-only. Obviously, this trick has its limits: if an external MSX-Music cartridge is inserted, that BIOS will be found and the direct I/O to the YM2413 ports will make both the internal and external chips play simultaneously.

*1: AFAIK there's no way to disable the YM2413 chip in the Turbo-Rs, but if anyone knows different please detail here how that works

By Louthrax

Prophet (2093)

Louthrax's picture

03-10-2017, 17:25

sd_snatcher wrote:

I found a bug in the latest version of SofaRunIt:

It disables the MSX-Audio BIOS v1.3 and re-enables the internal MSX-Music of the MSX Turbo-R.

Steps to reproduce:

1) Connect a cartridge that has the MSX-Audio BIOS v1.3 (tested here with a DalSori v2) to an MSX Turbo-R
2) Run OPLLOFF. This will disable the TR's built-in MSX-Music.
3) Use SRI.COM to load the game Rune Master 2

results: The MSX-Audio BIOS v1.3 cartridge will be ignored, and the soundtrack will be played on the OPLL.

EDIT: It's very likely that the same issue happens with the original MSX-Audio BIOS on the Panasonic FS-CA1.

I checked that today, that's really weird:

  • The MSX-Audio BIOS v1.3 does not seem to be disabled by SofaRunIt. Launching an MSX-DOS disk with SofaRunIt, going to BASIC and entering "CALL AUDIO" works, and a PLAY #2,"aaa" command output sounds to the Music Module.
  • OPLLOFF.COM seems to work too. Launch OPLLOFF.COM, then launch Rune Master 2, you'll get PSG only sounds.
  • Rune Master 2 works with Music Module if you add the /M option to SofaRunIt (that just performs the magic pokes at #FFCA and #FB20).
  • As you described, if you disable FM-PAC with OPLLOFF.COM and launch Rune Master 2 with Music Module + MSX-Audio BIOS v1.3, you get the FM-PAC sounds...
  • But if you do the same thing with the Panasonic FS-CA1, you get PSG sounds only (this point was not tested on a real machine but on openMSX).
  • Finally, if you boot in MSX-DOS 1, launch OPLLOFF.COM and then boot Rune Master 2 from a real disk with CALL SYSTEM, you get the Music Module sounds (everything works as expected in this case). If you do not launch OPLLOFF.COM before, you'll get sound on both internal FM-PAC and Music Module!

I'm a bit puzzled for now... Seems like there are some differences between the standard MSX-AUDIO BIOS and your version, but I guess that this is expected. Maybe the signatures in the ROM header are different... That still does not explain why it works with a real disk and not in SofaRunIt.

Ah, I also noticed that the bios v1.3 prevents my turboR from booting in some configurations (when put in slot 1 and that my FunRice IDE interface is in a slot expander in slot 2, but it works if my FunRice cartrdige is inserted directly in slot 2).

By Louthrax

Prophet (2093)

Louthrax's picture

04-10-2017, 00:27

Louthrax wrote:
  • Finally, if you boot in MSX-DOS 1, launch OPLLOFF.COM and then boot Rune Master 2 from a real disk with CALL SYSTEM, you get the Music Module sounds (everything works as expected in this case). If you do not launch OPLLOFF.COM before, you'll get sound on both internal FM-PAC and Music Module!

The last sentence here was wrong: if you do not launch OPLOFF.COM before, you only get sound on Music Module (I plugged an audio cable on my Music Module to check if it was emitting sound, but just forgot that the Music Module is also emitting sound through the MSX output !).

By sd_snatcher

Prophet (3093)

sd_snatcher's picture

04-10-2017, 02:49

Quote:

I'm a bit puzzled for now... Seems like there are some differences between the standard MSX-AUDIO BIOS and your version, but I guess that this is expected. Maybe the signatures in the ROM header are different... That still does not explain why it works with a real disk and not in SofaRunIt.

The difference is easy to explain: The MSX-Audio BIOS has the "OPLL" signature and the FMBIOS compatibility calls.

1) In the original MSX-Audio BIOS, after Rune Master 2 can't detect it via EXTBIO, it won't play on the internal OPLL because it won't find the "OPLL" signature anywhere

2) In the MSX-Audio BIOS v1.3, after Rune Master 2 can't detect it via EXTBIOS, it will find its "OPLL" signature when searching for the MSX-Music BIOS. After that, the game proceeds to play the OPLL soundtrack via direct I/O. If it used the INIOPL/WRTOPL BIOS calls, the sound would be routed to the OPLn instead.

So in both cases the problem is that the MSX-Audio BIOS EXTBIO handler is somehow being disabled, but the v1.3 gives the game a "second chance" via OPLL.

And CALL AUDIO on MSX-BASIC is still working because it doesn't use the EXTBIO calls, as those are meant for user programs.

By Louthrax

Prophet (2093)

Louthrax's picture

04-10-2017, 10:11

Makes sense, let's fix it!

By Louthrax

Prophet (2093)

Louthrax's picture

04-10-2017, 15:38

Louthrax wrote:

Makes sense, let's fix it!

... or not Sad

I'm begining to remember some of the issues related to EXTBIO now: the problem is that the Nextor interface is also using the EXTBIO hook. My understanding is that the devices using EXTBIO are kind of "chained" on that hook. When a new device installs itself, it must backup the hook in order to call it again if the call is not addressed to it.

Nextor does use this hook, and stores the backup value of the hook in high RAM area (somewhere below #F380). That RAM area can't be maintained with MSX-DOS1 (probably wouln't work anyway, and the code for that trick would be incompatible with other devices or Nextor versions).

I was thinking about removing the Nextor device from that hook chain, but again, that can't be done in a reliable way.

Anyway, the /M option of SofaRunIt works, at least for the games using MSX Audio I know of. Snatcher, do you see any game or application that would not work with it (the trick used by the /M option is quite restrictive)? If yes, an option in SofaRunIt could be to selectively call initializations routines again on user-specified slots after MSX-DOS has been initialized.

Page 24/33
17 | 18 | 19 | 20 | 21 | 22 | 23 | | 25 | 26 | 27 | 28 | 29