Menu

#28 Cavewalker fails to run

none
open
nobody
Cavewalker (1)
5
2018-04-29
2017-09-08
No

Cavewalker runs under OS-9 level II from Microware but fails to run on a physical machine under NitrOS9 level II

Discussion

  • Robert Gault

    Robert Gault - 2017-09-08

    Barry,

    Cavewalker will not play directly under any LevelII version of OS-9 because the game was written for
    LevelI. I have not tried to use it with NitrOS-9 LevelI but it really does not matter.

    Mount the game as a disk on your Coco and from Basic, enter the command DOS . That assumes you
    have Disk Basic 2.1.

    Also I may have inadvertently changed your Bug entry as I could not figure out how to post an answer
    directly from your link.

    Robert

     

    Last edit: Tormod Volden 2018-04-23
  • David Ladd

    David Ladd - 2017-09-08

    Robert,

    CaveWalker actually does run on OS-9 L2 without problem and even takes advantage of RGB/Composite selection.

    CaveWalker when played on Level 2 does produce some interesting intentional color shifting between stages. Very sycadelic if you ask me lol.

    Though down to known testing I have done though:
    CaveWalker DOES play on OS-9 L2 V2.00.00

    CaveWalker does not play on NitrOS-9 L2 any version since public release on source forge.

    Thanks to Curtis Boyle who sent me a disk image from back when they were working on NitrOS-9 L2 before it was released to Boisy to test with. The problem even existed in that version. So at some point NitrOS-9 L2 broke compatibility with CaveWalker.

     
  • David Ladd

    David Ladd - 2017-09-08

    Rorbert,

    also as a side note to this Biosphere & Interbank Incident are also able to run on OS-9 L2 too as well.

    I do not have a copy of Biosphere, but I was able to test Interbank Incident and it would not run under NitrOS-9 L2 either. Yet works fine on OS-9 L2. So yes there is a issue.

     
    • Robert Gault

      Robert Gault - 2017-09-09

      David,

      You are looking at this the wrong way. I agree that if you boot OS-9 Level2, change to the
      Cavewalker disk, and enter cave the game will run. However, consider the following!

      Most of us will probably boot NitrOS-9 into an 80 column window as a /Term. These games are designed
      to start in 32 column VDG type screens for /Term.
      I just created a new NitrOS-9 Level2 v3.30 boot disk selecting rel-32 and term_vdg. All the files
      from the Cavewalker disk other than shell and grfdrv were copied to the new boot disk.
      When this new disk was booted, Cavewalker ran as normal. The game ran under NitrOS-9!

      Now if you are trying to stock a hard disk with game directories, boot NitrOS-9 L2 in an 80-col
      Window, and then start these games, you will have problems. That does not mean there is a bug in
      NitrOS-9 but rather that the games are not designed to be run this way. You can't even create a vdg
      screen, and try to run the games from it.
      Using Cavewalker as an example, the game hard codes /TERM in the program Cave. It may or may not
      hard code /D0 but I've not looked for that.

      You may be able to patch Cave changing /TERM to ex. /W5 (made into a vdg type) or /V1 (a vdg
      window) and get the game to run. Experiment with your games.

      In the meantime, just boot from a game disk instead of your main NitrOS-9 boot disk.

      Robert

       

      Last edit: Tormod Volden 2018-04-23
      • Robert Gault

        Robert Gault - 2017-09-09

        Just ran another test using VCC with NitrOS-9 L2 V3.3.0 installed on a VCC hard drive.

        The hard drive boots to an 80-col Window. I have a command to check for the first available window,
        convert it to a vdg type, and start a shell. There is a GAMES/CAVEWALKER directory on the hard drive.

        Cave was edited so that /TERM was changed from
        $54,45,53,4D,CD
        to
        $57,B1
        ie /W1

        My command vdg converted /W1 to a vdg type window and started a shell in it. I switched over from
        /TERM to /W1 and then entered cd games/cavewalker and cx /dd/games/cavewalker/cmds. I then
        entered cave to start the game.

        The game started perfectly. So now Cavewalker is running under NitrOS-9 L2 V3.3.0 from a hard drive
        after a boot to an 80-col /term.

        It would make more sense to change /TERM in Cave to a known free vdg type screen (maybe /V5) so that
        if several Windows were in use, you could still start the game. However, the best change probably
        would be to boot NitrOS-9 into a vdg /Term so that any game requiring that type of screen could be
        run without mods. One could always start 80-col Windows as needed.

        Robert

         
  • David Ladd

    David Ladd - 2017-09-09

    Robert,

    Did you do your test using VCC? If you did it works fine on VCC, but does not work on real CoCo 3 or MAME.

     
  • David Ladd

    David Ladd - 2017-09-09

    Robert,

    Right and you are using VCC. Using VCC and NitrOS-9 L2 and CaveWalker does work, BUT here is the BUT....It does not work on real hardware. I have tested this as Barry brought this up to me. We have already proven that VCC does not emulate the CoCo3 completely right.

    So if you happen to have a real CoCo 3 to test on please try your test on real hardware.

     
    • Robert Gault

      Robert Gault - 2017-09-09

      David,

      You are correct. While the Level1 V2 Cavewalker runs on MAME/MESS when booted from the game disk, I
      can't boot Level2 NitrOS-9 and run the game from a vdg Window as I can with VCC.

      I've tested with a real Coco3 and NitrOS_9 which also does not work from a vdg Window with an
      altered Cave file. I have not yet tried booting the Level1 V2 game disk on a real Coco3 or booting
      with NitrOS-9 into a vdg Term on a real Coco3 and starting the game.

      What might be useful would be to try it with MESS using the MESS debugger. If the debugger saves the
      code from the time one enters CAVE, we might be able to see where the failure occurs.

      Robert

       

      Last edit: Tormod Volden 2018-04-23
  • David Ladd

    David Ladd - 2017-09-10

    Robert,

    Curtis and I have been doing some testing/playing around.

    He looked at the trace log from MAME's debugger and saw NitrOS-9 got stuck in some form of loop and just kept looping.

    So he looked at what disassembly files I sent him and saw something interesting. He saw that Cave was writing to FF03.Looks like it enables VSYNC PIA IRQ?

    Curtis had me use DED and did these steps.
    Used DED and skip to $D
    Then go to on screen to $0D

    You should see $B7FF03

    Just for a test Curtis had me change that to $121212 which could create 3 NOP's.

    I then tested on a real CoCo 3 and MAME and it ran, but on a real CoCo 3 in ran about 50-75% faster than it should.

    Now at some point what ever code that was in OS-9 L2 to handle that IRQ has some how been removed??? Which is the reason it more than likely gets stuck looking for a IRQ it can't handle?

    So far this under the hood stuff of OS-9 L2/NitrOS-9 L2 is a bit beyond me right now. So maybe you might have a better idea than I where these IRQ's are currently processed and maybe know what might have been accidently removed between OS-9 L2 and NitrOS-9 L2?

     
    • Robert Gault

      Robert Gault - 2017-09-10

      I just tried NOPing out the STA $FF03 at $D0D in Cave and Cavewalker ran on both MESS and a Coco3.
      That included my change of /TERM to /W1 with /W1 as a vdg Window.

      Regards $FF03, programs that want to "play nice" with OS-9/NitrOS-9 should not change hardware in
      this manner. This is especially true for a Coco3 with a GIME chip where VSYNC is handled by the
      addresses $FF90-$FF93.

      I did not notice a change in game speed but have not compared the patched version vrs the stock OS-9
      Level1 V2 version or OS-9 Level2.

      The location of the code that monitors $FF03 in NitrOS-9 (if it exists) won't be easy to find. It
      most likely will be labeled PIA0Base+3 (ie. $FF00+3) but it may not be used at all. Look in IOMAN,
      KRN, and KRNP2 for starters. However that will mean looking at all the F calls included in the kernels.

      Now back to the original issue of a bug. I don't see this as a bug but rather a backwards
      compatibility issue. In any case, as the original gavme disk when booted will run on a Coco3 with
      enhanced memory and a 6309 cpu, there really is no problem.
      What you ought to check are all of the other games you mentioned. See if they also alter $FF03 and
      if they will run if the Store instruction is NOPed out.

       

      Last edit: Tormod Volden 2018-04-23
  • David Ladd

    David Ladd - 2017-09-10

    Robert,

    You are right games shouldn't have done that back then as far as setting up that stuff themselves in OS-9, but obviously they did and OS-9 L2 must have had a machanic setup to handle that in case they did.

    Just in NitrOS-9 L2 must have at some point removed that machinic to handle that. :(

    Just speaking from a compatibility standpoint. :P

    Now as far as the game speed, yes it runs about 50 to 75% faster. I wrote a quick couple utilities that I put in the 3rdparty area in my area. I called them slow and fast. I ran slow and CaveWalker ran at the speed it was suppose to, but there was a LOT of flickering which wasn't there if played on OS-9 L2 or OS-9 L1.

    So sadly CaveWalker does some how require that VSYNC for proper speed and graphics timing. (sigh)

    Got to love when people do things directly rather than using OS-9 calls. lol

     
    • Robert Gault

      Robert Gault - 2017-09-11

      David,

      I ran a test with Interbank Incident and it is not sufficient to change the $FF03 routine which is
      within ibi. See $21A0
      leax >L21b2,pcr
      os9 F$Icpt
      pshs cc
      orcc #$50
      lda #$35
      sta >$FF03
      puls cc,pc
      L21B2 cmpb #$02
      beq L21BB
      cmpb #$03
      beq L21BB
      clrb
      L21BB stb <u0013,u
      rti

      You would think that since NOPing out the sta $FF03 in Cavewalker let the program run under
      NitrOS-9, the same thing ought to work with Interbank Incident.

      I have not tried any of the other Level1 V2 games you mentioned.

      Robert

       
  • David Ladd

    David Ladd - 2017-09-12

    Robert,

    Thank you for letting me know. I will pass it along to Curtis.

    This is where I wish I understood the internal workings of OS-9 and how everything ties in together. :(

    Interesting trying to track down something that was intruduced 20+ years ago and wasn't found out till recently. (sigh)

     
  • Anonymous

    Anonymous - 2018-04-18

    If/when we get time, we should probably change these to use VIRQ calls (like FSII and the Sierra games do) to replace the hardcoded PIA routines in these games. -Curtis-

     
  • Robert Gault

    Robert Gault - 2018-04-18

    While using VIRQ calls in these games may be desireable, Cavewalker at least will run on a real Coco3 under NitrOS-9. You just need to run the game from a VDG (32-character) window.
    I have the game running on my Coco3 system from an emulated hard drive in a Roger Taylor DrivePak. In fact NitrOS-9 boot to an 80-character Window from which I start a VDG screen. The file CAVE in the games CMD directory was modified to use /W1 (my VDG screen) rather than the default /TERM.
    If you start NitrOS-9 in a 32-character /term, the game should play without any changes.
    Robert

     
  • Anonymous

    Anonymous - 2018-04-23

    You just need to run the game from a VDG (32-character) window.

    When I tried this on two different physical CoCo 3's and under MAME it failed to run. It only ran on VCC, which is actually a flaw in that emulator.

    The file CAVE in the games CMD directory was modified to use /W1 (my VDG screen) rather than the default /TERM.

    Yes, I know, that is probably the copy I patched. It only works under VCC under NitrOS9, on a physical machine or MAME, it fails under NitrOS9 but works under OS9 on my systems.

    I have the game running on my Coco3 system from an emulated hard drive in a Roger Taylor DrivePak.

    Can you post the NitrOS9 boot disk that you used here?

     

    Last edit: Tormod Volden 2018-04-23
  • Tormod Volden

    Tormod Volden - 2018-04-29

    Anonymous (Curtis?), here is a disk image from Robert that includes DrivePAK drivers but not in OS9Boot so it cannot boot from DrivePAK.

     
  • Robert Gault

    Robert Gault - 2018-04-29

    Minor correction to Tormonds post. The boot disk should work on a DrivePAK. What Tormond misunderstood was that it uses Drivewire rather than CoCoNET drivers to talk to a PC. It does indeed have DrivePAK drivers.
    The disk was created by doing a Cobbler while running NitrOS-9 on the DrivePAK.

     

Anonymous
Anonymous

Add attachments
Cancel