Games that work on MSX2, but not on MSX2+

Page 2/3
1 | | 3

By Grauw

Ascended (10061)

Grauw's picture

26-05-2014, 01:34

I don’t get it — if those games disregard subslot selection and just assume slot 0 to be unexpanded, and that FCC1H poke does not work so they are using direct I/O to the A8H primary slot select register… What’s the problem then? As long as the FM-BIOS subslot is not selected in any of slot 0’s pages, and as long as nothing touches that selection… it should just work, right?

Or are they using BIOS interslot calls after all (just not reading FCC1H), and there is some unspecified behaviour when calling into expanded slots without having the expanded slot flag set? I would presume in that case the BIOS would either call into subslot 0, or just the most recent subslot selection, both of which should work. Or it should di:halt (that’s what I would do Smile). But maybe it does something else, something weird…

By gdx

Enlighted (4693)

gdx's picture

26-05-2014, 03:10

Fixes for Desolator & Zaxxon: MSXgamesFix.zip

By mfeingol

Champion (291)

mfeingol's picture

26-05-2014, 07:33

Grauw: I had the same question.

gdx: working Desolator ftw!

Meits: thanks a lot for the link.

Two fun things with map2.com...

1) After booting to Nextor 2.1 alpha and running map2.com, Zanac-Ex (128kB cracked version) runs from HDD, whereas previously it would hang. Not that using the ROM isn't preferable, but that was my "oh, things don't really work well from DOS2" example, and now it works fine.

2) After booting to Nextor 2.1 alpha, and mapping feedback.dsk to drive E: using mapdrv.com, then running map2.com, running rundisk.com E: actually boots Feedback. That's fairly cool.

By mfeingol

Champion (291)

mfeingol's picture

26-05-2014, 07:34

Nyrikki: any reason map2.com can't just be run in autoexec.bat? I.e. will it break anything?

By gdx

Enlighted (4693)

gdx's picture

26-05-2014, 08:09

mfeingol wrote:

gdx: working Desolator ftw!

Desolator works better than before but it's not yet perfectly fixed. It did not seem to work on a secondary Slot.

By NYYRIKKI

Enlighted (5873)

NYYRIKKI's picture

26-05-2014, 10:40

Grauw wrote:

I don’t get it — if those games disregard subslot selection and just assume slot 0 to be unexpanded, and that FCC1H poke does not work so they are using direct I/O to the A8H primary slot select register… What’s the problem then? As long as the FM-BIOS subslot is not selected in any of slot 0’s pages, and as long as nothing touches that selection… it should just work, right?

Or are they using BIOS interslot calls after all (just not reading FCC1H), and there is some unspecified behaviour when calling into expanded slots without having the expanded slot flag set? I would presume in that case the BIOS would either call into subslot 0, or just the most recent subslot selection, both of which should work. Or it should di:halt (that’s what I would do Smile). But maybe it does something else, something weird…

The problem is usually always pretty much identical:

Program want's to know where is RAM, so it does RAM search:
- Hello slot 0-0, are you RAM?
- No stupid, I'm BIOS and I always will be ->
- Ok. Hello slot 0-1 are you RAM?
- Nope
- Ok. Hello slot 0-2 are you RAM?
- Nope
- Ok. Hello slot 0-3 are you RAM?
- Nope
- Ok. Hello slot 1-0 are you RAM?
- Nope
- Ok. Hello slot 1-1 are you RAM?
- Nope
.
.
.
- Ok. Hello slot 3-0 are you RAM?
- Yes
- Hey I've found RAM, now we can move on... I'll enable interrupts... snap crackle pop crash...

Quote:

Nyrikki: any reason map2.com can't just be run in autoexec.bat? I.e. will it break anything?

Only program that I know to hate map2.com is GEM Gameboy emulator... I have map2 in my autoexec.bat

By hit9918

Prophet (2905)

hit9918's picture

26-05-2014, 16:41

The RAM search in slot 0 leaves secondary slot register at 0-3. coz every primary slot has its own register.
it happens when the RAM search knows subslots, but the flip to bios doesn't.

but when poking fcc1 changes things, something else is going on.

By Grauw

Ascended (10061)

Grauw's picture

26-05-2014, 16:58

Ah, got it, thanks. Not much to do about that I guess other than patching the game.

By NYYRIKKI

Enlighted (5873)

NYYRIKKI's picture

26-05-2014, 16:59

hit9918 wrote:

The RAM search in slot 0 leaves secondary slot register at 0-3. coz every primary slot has its own register.
it happens when the RAM search knows subslots, but the flip to bios doesn't.

but when poking fcc1 changes things, something else is going on.

Yes, the crash is caused by RAM search leaving the slot 0 selection to 0-3 that causes interrupt handler to jump to empty slot. Poking to FCC1 does not have effect since these programs usually don't check the BIOS handled RAM-variables at all... When they need to find RAM they simply scan trough every possibility since from program point of view it doesn't really matter, if the RAM is found ie. from slot 2-0 or just from slot 2 as long as there is RAM. This is acceptable assumption, but these programs always tend to forget that if they scan trough slot 0 they can't expect BIOS / interrupt handler to be in place after that.

Especially among MSX1 computers it was almost a rule that slot 0 is not expanded, so the developers probably newer noticed that their program had this kind of bugs.

By NYYRIKKI

Enlighted (5873)

NYYRIKKI's picture

26-05-2014, 17:20

Grauw wrote:

Ah, got it, thanks. Not much to do about that I guess other than patching the game.

Some day I'm pretty sure, that I will test the jump-wire theory on my A1WX... but I'll use little resistor in between... just in case I'm wrong...

Page 2/3
1 | | 3