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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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-
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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.
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.
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
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
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.
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.
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
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?
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
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
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
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)
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-
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
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.
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.
Can you post the NitrOS9 boot disk that you used here?
Last edit: Tormod Volden 2018-04-23
Anonymous (Curtis?), here is a disk image from Robert that includes DrivePAK drivers but not in OS9Boot so it cannot boot from DrivePAK.
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.