Menu

Marisa Matrix

White
2021-04-13
2021-04-19
1 2 > >> (Page 1 of 2)
  • White

    White - 2021-04-13

    Hello everyone, I'd like ask for some tips with a Visual Basic 5.0 game: "Marisa Matrix". Freeware, it's seriously one cute programming I think:
    https://ykkb.hatenadiary.org/entries/0000/00/05 (post about)
    https://www.vector.co.jp/download/file/win95/game/fh673119.html (game download)

    Some startup handling info (by screenshot 1):
    1. Fullscreen modes
    2. Windowed according to settings in 4.
    3. Performance stuff (Don't display effects/Don't draw real-time effects/Skip frames)
    4. Render resolution + Scanlines options (really nice too!)
    5. Don't play Sound/Music
    Remaining not numerated: CPU optimization and Vertical screen mode.

    After start it can take a moment to load even if it claims to be "complete" (screenshot 2), no reason to press anything yet (default buttons are Arrows and Z,X,C,V).

    Unfortunately with DxWnd not working at all, I received up to 3 errors depending on hooking (screenshot 3). Nevertheless, if it turns a difficult scenario I can run it alone more or less fine except for this: it doesn't play MIDI music. There's a \snd folder holding sound and music files as well as sound.exe which I don't know what it supposed to do. If started, gives an error (screenshot 4).

    For the moment music would be the most important to fix, I know MIDI playback is not really DxWnd niche but maybe someone will have an idea no matter if it can run with DxWnd or not. Thanks in advance!

     
    • huh

      huh - 2021-04-13

      According to the published website, this is VB6, not VB5.
      Some general advice about MIDI:
      -You can try to turn on the flag Sound-MultiMedia-Fix default MCI Id
      -You can try some virtualmidi (eg MUNT)
      -In the SND folder there is a very suspicious sound.exe file if is to blame you can try some Shared Hook + Ext hooking. Inject, own profile for sound.exe (possibly Menu Allow multiple hooks).

       
      • White

        White - 2021-04-13

        In so far 2/3 options will be only until it works with DxWnd at all (at the moment I can't find any configuration). I was thinking about virtualmidi option in past, maybe it's time for me to look more into that.
        Oh, and yeah, I noticed VB v6.0 there and some MS library link to download, yet at posting I followed the .exe signature stating it's VB v5.0. Whichever it is now, I don't know what exact dependencies it would mean anyway...

         
        • gho

          gho - 2021-04-13

          It is surprising that a game that works more or less perfectly in native mode on my Win10 (despite the color depth, the Japanese locale, the game age, the crazy resolution of 320x240) then brings so many problems when tried on DxWnd. But from VB games you should expect troubles. At first glance I would say it won't be an easy case!!

           
          • White

            White - 2021-04-13

            Just a small question for now, did MIDI music played for you on Win10? I think something could be expected on stage start or even already in menu (I don't have comparison for now but there are several music files there).

             
  • gho

    gho - 2021-04-13

    A first very partial result: I found a bug when the LoadImage wrapper was trying to translate the image path when it should have not. It's not worth distributing a patch because you can get the same result by disabling "Locale / Pathnames locale".
    This way the game does not crash BEFORE the configuration panel, it crashes immediately AFTER it. And the translation to Japanese Shift-Jis is not exactly perfect ....

     
  • gho

    gho - 2021-04-13

    This is how it should be, disabling DxWnd locale emulation and using Locale emulator (LEPROC.EXE)

     
  • White

    White - 2021-04-13

    This MIDI here is just the type of "media" problem everybody likes (I love it, to be sure). Key points:
    • of course I can play these MIDI files in Media player
    • during game (at Stage start) LAV splitter blinks for a second on tray icon like it attempts to play something but fails(?) and disappears

    I tried going through K-Lite Codec settings but all this stuff is study material for life... Above all MIDI is not mentioned or covered there at all, as I understand it's out of scope of K-Lite altogether, it remains a Windows thing.

     
  • White

    White - 2021-04-14

    I'll repost the sound.exe module error to also show a different one which happens only during game startup settings. Reading about DDE I've learned I probably won't find a solution for this in next 3 days. This will take some health, I expect a discount on my next vaccine Mr Gates.

     
  • White

    White - 2021-04-14

    Current state of investigation: I observed data send to MIDI port using this great virtual midi program:
    http://www.tobias-erichsen.de/software/loopmidi.html

    Some data is sent by game to the device and almost immediately stops: "Throughput /sec." spikes for a second and drops to 0. See screenshot, below "Vista MIDI Fix" used to direct Windows to the virtual device, taken here from:
    http://www.benryves.com/products/vistamidi

    This reflects the LAV Splitter behavior I mentioned in earlier post, I double checked K-Lite is not related to problem at all. Game is problem, maybe it uses some outdated MIDI instruction?

    (update)
    This might be worth mentioning yet: sound.exe + errors could be unrelated too, as far I see this module is used for... sounds, duh (meaning only the .wav files). It does run several times as process along the game and seems fine.

     

    Last edit: White 2021-04-14
  • White

    White - 2021-04-14

    Maybe I shouldn't post this but hell, ever noticed this prove that Microsoft are really clever people? The screenshot, that's "Language" selection from Microsoft page. Both Asian AND European languages.

    You can tell why this is genius, yes? I'm stunned each time I'm on this page.

     
    • huh

      huh - 2021-04-14

      I tried the game today on Win7 and I also don't have any music. I switched between MS General MIDI and MT-32 (Munt), but the music didn't play.
      I'll try again tonight, but hey, don't you have a translation of the settings?

       
      • White

        White - 2021-04-14

        don't you have a translation of the settings?

        Yeah, if you mean about the "Microsoft" thing then it's completely unrelated, I just had the urge to share this how it works on their page. If I can't read Japanese, how should select any other language there? Obviously I can't, at least not without workaround.

        Anyway, I would really appreciate help on those MIDI files here, they seem unique. I'm done for today ('till evening), just noticed this about them:
        - they don't play (are silent) on Windows Media Player default, only on Media Player Classic from codec pack
        - they sound somewhat "better" than any average MIDI of comparable size
        - I've managed to play them through Munt alone on some settings but the sound was garbage and I can't say much more for now, I'm new to Munt options

         
        • huh

          huh - 2021-04-14

          No, I meant translating the game settings.
          If you don't have it, I'll extract the text myself in the evening and translate it via the translator.

           
          • White

            White - 2021-04-14

            Oh, in that case I have them, screenshot from 1st post here and there they're described by the numbers.

             
            • huh

              huh - 2021-04-14

              Oh no! I didn't notice it at all. Well, I'll try yet something tonight.

               
  • gho

    gho - 2021-04-14

    This again is the setup panel as translated by ntlea on Win7. I know it's correct and identical to what you get with LEPROC (Locale Emulator) but the DxWnd coding and architecture is much more similar to that of ntlea than that of LEPROC, so this is my target: DxWnd should be able to run at least this way. Then, considered how the game works, I probably will never manage to run this VB game in a neat window.

     
  • huh

    huh - 2021-04-14

    Well, I don't have much. Both the game and sound.exe certainly use MSVBVM60.DLL and the game runs sound.exe with parameters.
    e.g
    sound.exe ch1 or sound.exe ch3
    I also started the game with DxWnd and created a protocol. I didn't have a screen, just a sound, but I still think the protocol is full of interesting things.
    e.g.
    CoCreateInstance: rclsid={93D8554C-EA5C-42AE-9B18-C0C335FD2ECB} UnkOuter=0 ClsContext=0x1 refiid={425A9672-D328-4FAC-8613-4254724EAF38}(UNKNOWN)
    CoCreateInstance: ERROR res=0x80040154(REGDB_E_CLASSNOTREG)
    CoCreateInstance: ERROR res=0x80004005(unknown)
    CoCreateInstance: rclsid={E21BE468-5C18-43EB-B0CC-DB93A847D769} UnkOuter=0
    CoCreateInstance: rclsid={777D0CFF-0375-43B9-8532-FB04A4903593} UnkOuter=0 ClsContext=0x1 refiid={7FEE9E9A-4A89-47A6-899C-B6A53A70FB67}(UNKNOWN)

    CoCreateInstance: rclsid={AB9D6472-752F-43F6-B29E-61207BDA8E06} UnkOuter=0 ClsContext=0x401 refiid={00000000-0000-0000-C000-000000000046}(IID_IUnknown)ClsContext=0x401 refiid={00000000-0000-0000-C000-000000000046}(IID_IUnknown)

    CoCreateInstance: rclsid={D51BD5A2-7548-11CF-A520-0080C77EF58A} UnkOuter=0 ClsContext=0x401 refiid={00000000-0000-0000-C000-000000000046}(IID_IUnknown)
    HookOLEClass: clsid={D51BD5A2-7548-11CF-A520-0080C77EF58A}
    HookOLEClass: class=MIDI Parser

    CoCreateInstance: rclsid={AB9D6472-752F-43F6-B29E-61207BDA8E06} UnkOuter=0 ClsContext=0x401 refiid={00000000-0000-0000-C000-000000000046}(IID_IUnknown)
    CoCreateInstance: ERROR res=0x80004005(unknown)
    CoCreateInstance: rclsid={07B65360-C445-11CE-AFDE-00AA006C14F4} UnkOuter=0 ClsContext=0x401 refiid={00000000-0000-0000-C000-000000000046}(IID_IUnknown)
    HookOLEClass: clsid={07B65360-C445-11CE-AFDE-00AA006C14F4}
    HookOLEClass: class=MIDI Renderer

    GetProcAddress: hModule=0x5f1c0000 idx=61((null)) proc=OPMGetVideoOutputsFromIDirect3DDevice9Object
    GetProcAddress: module=0x5f1c0000 proc=OPMGetVideoOutputsFromIDirect3DDevice9Object ret=0x5f1c5313
    GetProcAddress: hModule=0x5f1c0000 idx=61((null)) proc=OPMGetVideoOutputsFromHMONITOR
    GetProcAddress: module=0x5f1c0000 proc=OPMGetVideoOutputsFromHMONITOR ret=0x5f1ce015
    IDirect3DDevice9::GetDirect3D: d3dd=0x2898780
    IDirect3DDevice9::GetDirect3D: d3dd=0x2898780 d3d=0x30207e0
    IDirect3DDevice9::GetDirect3D: POSSIBLY UNHOOKED!!!

    Update:
    At Sound.exe is experiencing an error
    msvbvm60.dll RaiseException FLOAT_INEXACT_RESULT Flags: NON_CONTINUABLE Address: KernelBase.dll!RaiseException + 0x00000058

    but also for MARISAMATRIX09999b.exe
    MARISAMATRIX09999b.exe 2280 6244 msvbvm60.dll RaiseException FLOAT_INEXACT_RESULT Flags: NON_CONTINUABLE Address: KernelBase.dll!RaiseException + 0x00000058

    Other clues are wmp.dll and mfplat.dll via which the game is probably trying to use to play midi. Regarding midi, the game massively looks for keys in the registry (and usually doesn't find it).

     

    Last edit: huh 2021-04-14
    • White

      White - 2021-04-14

      A little worse even than I expected. I can make the MIDI play through Munt and I also see game .exe displays connected to Munt when attempting to play music, yet stops. Would the registry keys you mentioned something to look into?

      Could be some some optional Windows components, game was meant for 2000/XP and said to require Media Player 6.4. I'll keep trying things, I'll make this game play music even if it's the last thing it will do.

       
  • White

    White - 2021-04-14

    By the way @huh, you have a VM setup readily available as far I remember, could you see if it goes differently for Win2000 or WinXP? To know if this would be a waste of time or if the music works like this.

     
  • White

    White - 2021-04-14

    The previous game by Y-RNG ("Reincarnation") works perfectly fine and seems like it's build near identical. Damn :(

    https://web.archive.org/web/20140821181527/http://www.h3.dion.ne.jp/~jyujika/reincarnation_0_51a.zip

     
    • White

      White - 2021-04-15

      I stumbled upon something random earlier here:
      http://recordingmaninoz.blogspot.com/2014/03/vb5-vb6-vbnet-midi-in-and-midi-out.html

      There I spotted the note this program works on VB5 but doesn't work when compiled on VB6. Since I see these two games kind of undecided whether it was VB 5.0 or 6.0 a random idea came: later game was compiled differently where the MIDI function doesn't work.

      If I don't have source I can hardly rebuild it anyway. Tragic story, really sad. Developer blog looks active up to recently but err... not sure yet about asking for support with this.

       
      • huh

        huh - 2021-04-15

        could you see if it goes differently for Win2000 or WinXP?

        Yes, I can try it on real WinXP today. Be patient.

         
  • gho

    gho - 2021-04-15

    The former episode "Reincarnation" is quite interesting! Despite the similarities, the game doesn't crash when run by DxWnd, not even using the "Debug / Force Hot Patch" option.
    This is interesting for a precise reason: the trouble with VB6 games is that the msvbvm60.dll library is particularly "opaque": most of its methods are unnamed (se it's hard to guess what they mean) and its implementation is particularly rich (166 calls to kernel32, 238 to user32, 116 to gdi32!!!) so that it's very hard to imagine what's going on. But forcing the hot patch you can have any system call hooked by DxWnd and see what happens once you provide a debug wrapper for each call. It's a monumental huge work, but with some luck maybe we could understand what happens in general with VB6 games.
    I got a configuration that can run the game, hear the sounds and see some of the video rendering like some color transitions. It seems that some link is missing because nothing appears to screen, but the game is running, I even get the game FPS indication on the title bar. So, one step at a time, I hope to get some better understanding.

     
  • huh

    huh - 2021-04-15

    @White
    The first thing is that I can't unzip or copy the .mmr file in Japanese encoding on WinXP, but for the game doesn't seem to mind. The first time I ran it, I got an ActiveX error.
    The game started on the second run. The music plays when the START button in game is pressed. In WinXP I have to click the same windows with an error as in Win7 (mismatch error).
    I had part of the screen and sound with DxWnd in Win7, but it was unplayable. I'll upload the profile I used later, maybe it'll be for something.

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.