OPLLOFF

by sd_snatcher on 04-10-2011, 10:23
Topic: Software
Tags: Utilities
Languages:

OPLLOFF temporary disables the internal MSX-Music of the Panasonic MSX2+ and Turbo-R computers. This is meant to:

  • allow you enjoy the PSG soundtracks of many games that would otherwise feature music from the MSX-Music
  • have the games to detect the MSX-Audio BIOS v1.3 instead of the internal MSX-Music

Relevant link: FRS' MSX Page

Comments (17)

By NYYRIKKI

Enlighted (5776)

NYYRIKKI's picture

04-10-2011, 11:21

This program does not disable OPLL chip or the ROM, but disables MSX-Music CALL commands and makes expanded slot 0 to look like non expanded -> MSX-Music detection based on BIOS routines & RAM variables fails.

At least on Panasonic A1WX (MSX2+) there is even more solid possibility to disable detection of ROM: Set bit0 on address #7FF6 on MSX-Music slot. This switches off the begin of ROM making it impossible to find MSX-Music identification string. This trick also works after softboot because the "AB" header disappears.

I don't know if this trick or similar works on other Panasonic 2+ models.

By sd_snatcher

Prophet (3450)

sd_snatcher's picture

04-10-2011, 12:02

Thanks for the nice #7FF6 tip! Smile
Anyway, the current algorithm worked for every game I tried, as the MSX-Music signature will not be found by any sane detection algorithm. Maybe there are games that do blind subslot switching, by completely ignoring EXPTBL and the BIOS calls, but those are a minority and fundentaly broken.
But the #7FF6 tip is good for those cases, so I'll integrate it on future releases.

But what variables detection are you referring to? If there's such a method, I never heard of it or of any game that uses this. The MSX-Music BIOS don't setup any variables on boot, in fact it don't setup anything at all on boot as it is simply not called. All initialization of the MSX-Music is done solely by the CALL MUSIC command.

Do you have any examples of some software that use this method? I really like to have a look at those when I come back from my blackout period.

By Huey

Prophet (2673)

Huey's picture

04-10-2011, 12:14

Great! I prefer PSG over MSX-MUSIC in most cases (except MicroCabin and Falcom games).

By wolf_

Ambassador_ (9876)

wolf_'s picture

04-10-2011, 12:21

o_O

Got examples? (we want names! Smile )

How about Compile?

By Huey

Prophet (2673)

Huey's picture

04-10-2011, 12:48

Well. I dislike MSX-MUSIC in general. The sound is very 'empty' as with PSG and SCC the sound is feels 'warm'.

It's a personal fetish I think.

By NYYRIKKI

Enlighted (5776)

NYYRIKKI's picture

04-10-2011, 14:11

But what variables detection are you referring to?
I meant EXPTBL that you change with this program... Maybe variable was a bit misleading... and with "fails" I mean your program works. Smile

Thanks for the nice #7FF6 tip!
Actually I found this when I was trying to figure out why most MoonBlaster based games crashed on that computer... This was the reason. (FM-PAC initialization was done also for internal MSX-Music -> Not good idea Sad )

By sd_snatcher

Prophet (3450)

sd_snatcher's picture

04-10-2011, 14:26

@NYYRIKKI

Indeed, not a goot idea at all. BTW, you're a very experienced MSX programmer: what debugger do you use on real MSX hardware?

I currently use openMSX+debugger, and obviously do a lot of tests on real hardware. But for those times when the emulator and the real machine behave differently, on the real hw I only have the pre-historic way of printing messages (to a terminal on the RS-232C interface) to try to discover where my code is having problems. There should be something better/more productive than that.

By wolf_

Ambassador_ (9876)

wolf_'s picture

04-10-2011, 14:40

Tonight, manuel will ask you to cooperate to tweak those inconsistencies out of openMSX.. ^___^

By NYYRIKKI

Enlighted (5776)

NYYRIKKI's picture

04-10-2011, 14:45

For me there is only one debugger that I use and it is called: Super-X

(I also use it to write this kind of small programs :) )

By sd_snatcher

Prophet (3450)

sd_snatcher's picture

04-10-2011, 21:21

But can Super-X be used to debug a graphic game? I.e., when I was developing the FireHawk enhancement patch I had this problem, and the only solution I had was the mentioned printing on the RS-232 terminal.

By NYYRIKKI

Enlighted (5776)

NYYRIKKI's picture

04-10-2011, 23:36

For that I don't have any good ideas... RS-232 terminal sounds pretty good way to go... Maybe if you use Super-X together with 2MSX ...

By sd_snatcher

Prophet (3450)

sd_snatcher's picture

05-10-2011, 03:23

Humm, but 2MSX runs only on Turbo-Rs, which are pretty tolerant machines. I catch far more bugs with a picky machine like my Sony MSX2+ (HB-F1XDJ, btw).

Turbo-Rs are great machines for running finished MSX software as a end-user, but aren't a good choice for software stress testing for developers. It's the bad side of them being too stable.

By NYYRIKKI

Enlighted (5776)

NYYRIKKI's picture

05-10-2011, 07:23

I'm afraid there is no such a tool that you are looking for, but can you give an example of what kind of bugs you try to hunt?

For example timing related bugs can't be debugged with native MSX debugger, because the debugger affects the timing it self. Slot configuration related problems are more easy to debug with emulators. Also many features like OPLL, memory mapper and VDP registers are write only that limits quite a much the debugger possibilities to live along with something like complete games. = Debugger causes more unpredictable problems than it solves.

Custom debug routines are different thing, but I can't imagine general purpose native debugger for MSX1/2/2+ that would work with even most of the games.

Sure then there could be hardware aided solutions but that is only speculation...

By Sky_hawk

Champion (267)

Sky_hawk's picture

05-10-2011, 10:09

I'm working on a way to debug on real hardware using the nowind interface, I'm currenly experimenting with single-stepping instructions by enabling a vdp interrupt IE0/1 that I never acknowledge / clear.
This technique obviously will not work with games that use the same interrupt, however, dumping strings (or more complex data, like the entire memory) would be fairly easy I expect.

Greetings,

Jan

By Retrofan

Paragon (1262)

Retrofan's picture

16-12-2014, 13:16

Any chance to deactivate the FM-PAC as well with this tool? (I have FM-PAC build-in with FM-BIOS in my Sony HB-F700P MSX2)

By Meits

Scribe (6395)

Meits's picture

16-12-2014, 14:21

Darn, I must've been sleeping or totally uninterested when this topic started... I guess the latter because back then I could just pull the cartridge out...
Anyhoo... While it is possible to switch off the internal MSX-Music in those machines, is it possible to use a cartridge MSX-Music instead? I don't really like internal MSX-Music since its sound is distorted with VDP noise... My Panasonic computers just switch off my MSX-Music cartridge :/

By Retrofan

Paragon (1262)

Retrofan's picture

16-12-2014, 14:28

Just curious about Non-Panasonic models: which MSX-MUSIC will it take first? The external one or the internal? So, if the external one is used, the internal one is disabled?