marc.hull Posted December 8, 2011 Share Posted December 8, 2011 Ya know why red necks have their name on the back of their belts ? So they can remember their name when they pull their head of of their asses. I guess I need to get a belt with my name on it.... The MARVIN file I posted on my site was a preliminary version from a couple of months ago. Not what I intended to post. Sorry for the inconvenience. Hope you at least get a laugh on my dime. The completed demo is now posted. MARVINDEMO is the correct file. I am going to go and patch my self esteem back up and have a beer. Please download the correct files and forgive me my blunder. Hull Quote Link to comment Share on other sites More sharing options...
OX. Posted December 9, 2011 Share Posted December 9, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 9, 2011 Author Share Posted December 9, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Quote Link to comment Share on other sites More sharing options...
OX. Posted December 10, 2011 Share Posted December 10, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Have'nt got any real hardware, does'nt start up in MESS at all, don't think it's specifically a Classic99 issue as the previous demo version worked ok. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 10, 2011 Author Share Posted December 10, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Have'nt got any real hardware, does'nt start up in MESS at all, don't think it's specifically a Classic99 issue as the previous demo version worked ok. Hmmmm. I'm in Dallas for the weekend so I can't look at it till sunday but I am just really sure it runs on a TI. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 11, 2011 Author Share Posted December 11, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Have'nt got any real hardware, does'nt start up in MESS at all, don't think it's specifically a Classic99 issue as the previous demo version worked ok. the demo loaded and ran fine from a TI99 using the following loaders... MENU program loader DM2k program loader FW opt 3 loader EA Module opt 5 loader and TIW utility loader. I even loaded and ran it on a Geneve although there is a joystick issue (I think because of direct CRU testing.) Sorry, it appears to be an emulator problem. Quote Link to comment Share on other sites More sharing options...
OX. Posted December 11, 2011 Share Posted December 11, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Have'nt got any real hardware, does'nt start up in MESS at all, don't think it's specifically a Classic99 issue as the previous demo version worked ok. the demo loaded and ran fine from a TI99 using the following loaders... MENU program loader DM2k program loader FW opt 3 loader EA Module opt 5 loader and TIW utility loader. I even loaded and ran it on a Geneve although there is a joystick issue (I think because of direct CRU testing.) Sorry, it appears to be an emulator problem. I'm running it through EA 5 on Classic99 and the ship instantly explodes on game startup, so what is this joystick issue? Does it need solving at your end or the emulator as I've ran hundreds of games through my Gamebase project on Classic99 and not had the same problem. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted December 11, 2011 Share Posted December 11, 2011 (edited) I had the same issues. Runs fine with Win994a though. Edited December 12, 2011 by sometimes99er Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 11, 2011 Author Share Posted December 11, 2011 Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Have'nt got any real hardware, does'nt start up in MESS at all, don't think it's specifically a Classic99 issue as the previous demo version worked ok. the demo loaded and ran fine from a TI99 using the following loaders... MENU program loader DM2k program loader FW opt 3 loader EA Module opt 5 loader and TIW utility loader. I even loaded and ran it on a Geneve although there is a joystick issue (I think because of direct CRU testing.) Sorry, it appears to be an emulator problem. I'm running it through EA 5 on Classic99 and the ship instantly explodes on game startup, so what is this joystick issue? Does it need solving at your end or the emulator as I've ran hundreds of games through my Gamebase project on Classic99 and not had the same problem. Joystick issue only exists on the Geneve Computer, Unrelated to emulation. The problem you are getting is related to Classic 99. I suspect it is either how the address >8802 is treated or the VDP interrupt state at start up. At any rate there isn't anything I can do about it. I work with real hardware only and have no experience (or very little anyhow) with emulators. Sorry... Quote Link to comment Share on other sites More sharing options...
OX. Posted December 11, 2011 Share Posted December 11, 2011 (edited) Hi Marc, I can't control that ship at all! I press up on joystick to thrust and it moves up slightly then explodes (I'm using Classic99) what am I doing wrong? Sounds like a Classic 99 issue. Try it on real hardware or maybe MESS. Have'nt got any real hardware, does'nt start up in MESS at all, don't think it's specifically a Classic99 issue as the previous demo version worked ok. the demo loaded and ran fine from a TI99 using the following loaders... MENU program loader DM2k program loader FW opt 3 loader EA Module opt 5 loader and TIW utility loader. I even loaded and ran it on a Geneve although there is a joystick issue (I think because of direct CRU testing.) Sorry, it appears to be an emulator problem. I'm running it through EA 5 on Classic99 and the ship instantly explodes on game startup, so what is this joystick issue? Does it need solving at your end or the emulator as I've ran hundreds of games through my Gamebase project on Classic99 and not had the same problem. Joystick issue only exists on the Geneve Computer, Unrelated to emulation. The problem you are getting is related to Classic 99. I suspect it is either how the address >8802 is treated or the VDP interrupt state at start up. At any rate there isn't anything I can do about it. I work with real hardware only and have no experience (or very little anyhow) with emulators. Sorry... Hmmn, I suspect this isn't the case as I previously stated that over 2000 games in my Gamebase project http://www.atariage.com/forums/topic/191033-gamebase-ti994a-v10-is-finished/ never complained of such a problem, Over to you Tursi? Edited December 11, 2011 by OX. Quote Link to comment Share on other sites More sharing options...
Willsy Posted December 11, 2011 Share Posted December 11, 2011 Yeah, I could only get it to run in Win994A. It's REALLY Hard! couldn't get past level 1! DOH! Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 12, 2011 Author Share Posted December 12, 2011 Hmmn, I suspect this isn't the case as I previously stated that over 2000 games in my Gamebase project http://www.atariage....10-is-finished/ never complained of such a problem, Over to you Tursi? (Beats head on wall.) Hehe really ?? 1) Runs on the real gear (important term there !) 2) Runs on Fred's Emu.... 3) Doesn't run on Mike's Emu Add that up again . Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 12, 2011 Author Share Posted December 12, 2011 Yeah, I could only get it to run in Win994A. It's REALLY Hard! couldn't get past level 1! DOH! There is a bit of a learning curve on control of the ship huh ? Quote Link to comment Share on other sites More sharing options...
Tursi Posted December 12, 2011 Share Posted December 12, 2011 As always, the real hardware is my benchline, if it runs there, then that's the right answer. I took a quick look at it. It smelled like timing, and ultimately, yes, it is. Marc is using a very clever technique that does background character collision detection by creating an additional sprite whose pattern matches the background, and letting the hardware handle comparing the actual pixels (it's fun to watch the VDP table change for that). Thus, if any two sprites collide, you die. This actually works fine. The ship is made of more than one sprite (colors), and can't by definition move all at the same time - one sprite has to move before the other. That's just how the VDP memory access works. Since everything is synchronized to the vertical blank, there is a known amount of time during which it's safe to move the sprites. However, in Classic99 the screen draw and the vertical blank were not quite right. So what happens here is that you live only until Classic99 does a screen draw with only one of the sprites moved, and overlapping the other by a single pixel. The sprite collision flag gets set, and you die without visible cause. There was no good reason for this, save inexperience - I was using the interrupt bit to trigger the screen draw, instead of the other way around, and putting off any fixes for some future date when I did a scanline-based VDP. But this turned out to be pretty easy to fix (as noted above - draw the screen, then set the interrupt flag, not the other way around). So I'll put out a new build with this fix and the TurboForth blocks file fix. The reason most titles had no problem with this is that it's actually unusual for an assembly game to use the sprite collision bit, most do it themselves. Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 12, 2011 Share Posted December 12, 2011 I tried the game w/Classic99 but cannot get past the title screen. I played around with the joystick/keyboard setting options without any success. Suggestions, anyone? Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted December 12, 2011 Share Posted December 12, 2011 (edited) I tried the game w/Classic99 but cannot get past the title screen. I played around with the joystick/keyboard setting options without any success. Suggestions, anyone? And you tried Tabulator for fire ? Edited December 12, 2011 by sometimes99er Quote Link to comment Share on other sites More sharing options...
Willsy Posted December 12, 2011 Share Posted December 12, 2011 In classic99 joystick #1 is the cursor keys, and TAB for fire - at least, on my UK keyboard it is! Quote Link to comment Share on other sites More sharing options...
OX. Posted December 12, 2011 Share Posted December 12, 2011 (edited) Hmmn, I suspect this isn't the case as I previously stated that over 2000 games in my Gamebase project http://www.atariage....10-is-finished/ never complained of such a problem, Over to you Tursi? (Beats head on wall.) Hehe really ?? 1) Runs on the real gear (important term there !) 2) Runs on Fred's Emu.... 3) Doesn't run on Mike's Emu Add that up again . My apologies good sir, anyway if it was'nt for you "bug" Tursi would have been none the wiser with his joystick control code. The game is fantastic by the way, really addictive. Thanks Marc, Thanks Tursi. Edited December 12, 2011 by OX. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 12, 2011 Author Share Posted December 12, 2011 As always, the real hardware is my benchline, if it runs there, then that's the right answer. I took a quick look at it. It smelled like timing, and ultimately, yes, it is. Marc is using a very clever technique that does background character collision detection by creating an additional sprite whose pattern matches the background, and letting the hardware handle comparing the actual pixels (it's fun to watch the VDP table change for that). Thus, if any two sprites collide, you die. This actually works fine. The ship is made of more than one sprite (colors), and can't by definition move all at the same time - one sprite has to move before the other. That's just how the VDP memory access works. Since everything is synchronized to the vertical blank, there is a known amount of time during which it's safe to move the sprites. However, in Classic99 the screen draw and the vertical blank were not quite right. So what happens here is that you live only until Classic99 does a screen draw with only one of the sprites moved, and overlapping the other by a single pixel. The sprite collision flag gets set, and you die without visible cause. There was no good reason for this, save inexperience - I was using the interrupt bit to trigger the screen draw, instead of the other way around, and putting off any fixes for some future date when I did a scanline-based VDP. But this turned out to be pretty easy to fix (as noted above - draw the screen, then set the interrupt flag, not the other way around). So I'll put out a new build with this fix and the TurboForth blocks file fix. The reason most titles had no problem with this is that it's actually unusual for an assembly game to use the sprite collision bit, most do it themselves. I guess it's time to try CL99. A question Mike... When CL99 loads an EA5 executable does it turn the VDP interrupt off ? I ask because I know you don't yet use the FDC DSR and am unsure where the zero mask is made. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 12, 2011 Author Share Posted December 12, 2011 Hmmn, I suspect this isn't the case as I previously stated that over 2000 games in my Gamebase project http://www.atariage....10-is-finished/ never complained of such a problem, Over to you Tursi? (Beats head on wall.) Hehe really ?? 1) Runs on the real gear (important term there !) 2) Runs on Fred's Emu.... 3) Doesn't run on Mike's Emu Add that up again . My apologies good sir, anyway if it was'nt for you "bug" Tursi would have been none the wiser with his joystick control code. The game is fantastic by the way, really addictive. Thanks Marc, Thanks Tursi. No apologies necessary OX..... The joystick error only exists on the Geneve (which is an entirely different computer and not emulation) and unrelated to the past CL99 problem. I actually found it kind of funny that you were using the tail to wag the dog on this one. No harm done and lord knows I have done a bit of the wagging myself . Hull. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 12, 2011 Author Share Posted December 12, 2011 I tried the game w/Classic99 but cannot get past the title screen. I played around with the joystick/keyboard setting options without any success. Suggestions, anyone? I'm gonna say that this may be a bit above your head captain Geneve......... Stick with your simple DSR's and OpSys's. Hate to see you get hurt hehe.. Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 13, 2011 Share Posted December 13, 2011 I tried the game w/Classic99 but cannot get past the title screen. I played around with the joystick/keyboard setting options without any success. Suggestions, anyone? I'm gonna say that this may be a bit above your head captain Geneve......... Stick with your simple DSR's and OpSys's. Hate to see you get hurt hehe.. Har har. Willsy & Sometimes were right on target -- I was using the wrong keypresses ("Q" versus "TAB") in C99. So much for feigning my thorough read of Tursi's documentation Quote Link to comment Share on other sites More sharing options...
Tursi Posted December 13, 2011 Share Posted December 13, 2011 hehe. Marc's reading the joystick directly, the 'Q' being the same code as Joystick 1 Fire is actually a KSCAN artifact. When CL99 loads an EA5 executable does it turn the VDP interrupt off ? I ask because I know you don't yet use the FDC DSR and am unsure where the zero mask is made. The Classic99 DSR doesn't touch the system state, so it depends on the loader you use. Editor/Assembler starts an E/A #5 program with the 9900 interrupt mask at 0 (no interrupts). Since most programs assume that I'm not aware of any loaders that have interrupts enabled at startup. Quote Link to comment Share on other sites More sharing options...
OX. Posted December 13, 2011 Share Posted December 13, 2011 Hi Marc, I copied the files from the Mad Marvin Demo disk image on your web site onto a V9T9 image using Ti99dir and it now worked fine in MESS. Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 14, 2011 Share Posted December 14, 2011 I'm gonna say that this may be a bit above your head captain Geneve......... Stick with your simple DSR's and OpSys's. Hate to see you get hurt hehe.. Oh yea? Well, I hacked your joystick code now Mad Marvin has a new home on my Geneve. Put that in your pipe and smoke it. Or did you quit smoking after the last 9901 burnout? hehehe Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.