| |
Comos
Registered: May 2004 Posts: 73 |
Games that use VSP
Firts of all, I wanted to start this thread as a small research,coz during the years I encountered few game titles,that keeps crashing for a not well reason to me,but regarding VSP and especially VSP bug,that few years back was discovered seems it might have an explanation.
Here are titles, that Im aware of,that might use this technique,because of in game random crashes.
Creatures 1,Mayhem in Monsterland, Fred's Back 4
Creatures 1
Crashes mostly during starting of the game,when the screen scrolled horizontaly from right to left.Usually when I pass this, the game runs okay.
Mayhem in Monsterland
Besides, that the use of VSP is well known here I guess, this game crashes rarely during the character movement,atleast in my case.
Fred's Back 4 (Fred's in Troubles)
Maybe it's also related to whole Fred's Back series,but mostly I had problem with the last one.20 years ago,when I played this game, the game crashed for me everytime at the same level at the same place so I considered it as a bad swapper's copy.20 years later,when I wanted to try to finish the game,I tried again the AVT crack,that I had from the beginning,but a copy from csdb,but this time, the game crashed allmost immediately when the first level got loaded.I tested several other cracks,but had the same result.WTF?
The possibilities like kill cart,remove cart, remove everything have been considered,but still no luck.
Does anyone had similar issues or knows more games,that might crash? |
|
| |
chatGPZ
Registered: Dec 2001 Posts: 11350 |
"Another World" is the prime example i guess, it even constantly saves game progress, so you can reload and continue when it crashes =P
other than that, you could look at the vice log when "vsp bug" is enabled in x64sc - i think you will notice that even a lot of old stuff that doesnt explicitly use vsp triggers the bug |
| |
Comos
Registered: May 2004 Posts: 73 |
Quote: "Another World" is the prime example i guess, it even constantly saves game progress, so you can reload and continue when it crashes =P
other than that, you could look at the vice log when "vsp bug" is enabled in x64sc - i think you will notice that even a lot of old stuff that doesnt explicitly use vsp triggers the bug
Good idea, thanks for the tip ! |
| |
oziphantom
Registered: Oct 2014 Posts: 490 |
I think Misfortune is VSP |
| |
skull
Registered: Jun 2005 Posts: 6 |
I used VSP in Bomberland Preview |
| |
Jammer
Registered: Nov 2002 Posts: 1335 |
Obviously Mythos Preview, hidden in Krestage 3 ;)
Circling around the scroll topic, I always wondered how games like Flimbo's Quest or Hawkeye pull off that complex second plane ;) |
| |
Hein
Registered: Apr 2004 Posts: 942 |
Quote: Obviously Mythos Preview, hidden in Krestage 3 ;)
Circling around the scroll topic, I always wondered how games like Flimbo's Quest or Hawkeye pull off that complex second plane ;)
lda, sta.. that's it. And an obviously small game screen with a huge scoreboard.
As a sidenote: The original Hawkeye 2 (and the Onslaught version) used VSP too IIRC and Mario figured it crashed on some machines, so he decided to pass it on to his friends from X-ample. |
| |
White Flame
Registered: Sep 2002 Posts: 136 |
The original Hawkeye 2 that came to GTW did not have VSP, and was just a regular double buffer with lots of LDA/STA. I had the VSP idea as applied to parallax and added it to the Onslaught preview when I was reworking the code to relax timing constraints. There's no attempt to keep it "safe" on VSP bugged machines, so it's either bug-resistant real hardware or emu to run. |
| |
Hein
Registered: Apr 2004 Posts: 942 |
Quote: The original Hawkeye 2 that came to GTW did not have VSP, and was just a regular double buffer with lots of LDA/STA. I had the VSP idea as applied to parallax and added it to the Onslaught preview when I was reworking the code to relax timing constraints. There's no attempt to keep it "safe" on VSP bugged machines, so it's either bug-resistant real hardware or emu to run.
Ah, my bad. I mixed up two discussions with Mario then. |
| |
enthusi
Registered: May 2004 Posts: 677 |
@Jammer, paralax scrolling is a different beast.
Basically you keep aside a number of chars for the back-layer and scroll the content of those chars accordingly.
(usually be toggling charsets) |
| |
Jammer
Registered: Nov 2002 Posts: 1335 |
Yeah, I know what happens exactly in parallax ;) It's just such complex areas initially seemed to me like serious rastertime and charbook overhead (but still to be handled in one frame apparently) ;) |
| |
Hein
Registered: Apr 2004 Posts: 942 |
There are 3 frames available for updating the dubbel screen buffer, then 1 frame for updating the color ram. Quite doable, even rolled up, if the game screen isn't too high. Both Flimbo and Hawkeye don't have a multiplexer and sorting to do. H2 does have all that AND other cool features. So yeh, VSP is a good option to help with the fast 50fps scrolling. |
| |
White Flame
Registered: Sep 2002 Posts: 136 |
Quoting HeinAh, my bad. I mixed up two discussions with Mario then.
It could be that they discussed or attempted VSP internally, before the GTW version that was eventually distributed, so you might not be wrong. |
| |
Jammer
Registered: Nov 2002 Posts: 1335 |
Just for the record - VSP has to be updated every 8th line, right? :) |
| |
Digger
Registered: Mar 2005 Posts: 427 |
Quote: Just for the record - VSP has to be updated every 8th line, right? :)
Nope. You only need to trigger it once :) You basically trick the VIC with changing $d011 on the right cycle, depending on the desired offset. Check out LFT's thread New VSP discovery |
| |
Hein
Registered: Apr 2004 Posts: 942 |
Only the first badline if it's full-screen. Not each badline. |
| |
Scan
Registered: Dec 2015 Posts: 111 |
@Jammer: No, only at the beginning of where you want to trigger the VSP effect. Only drawback is that 3 weird blocks appear which you need to mask out (in Insert Name Here I did it using an invalid graphics mode, but sprites could be used as well, I guess). Here's a screenshot of a work in progress phase. The three blocks could be masked black (the lower 4 bits of the next instruction after VSP triggering determine the color, a cpx #$00 would have it turned black). Unfortunately I also triggered redrawing the last line. Since I didn't know how to cope with it I decided to mask it out using the invalid graphics mode described above.)
|
| |
Jammer
Registered: Nov 2002 Posts: 1335 |
Thx guys! I was curious being rather unsuccessful with oneshot triggering myself ;) |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
@scan: normally you'd line crunch away that first row of chars with a simple inc $d011 immediatly after the dec $d011 you did to start the vsp. Then mask the single line of pixels under the upper border |
| |
Count Zero
Registered: Jan 2003 Posts: 1920 |
Just to add to the examples above: Jim Slim +8FHP also uses VSP. |
| |
algorithm
Registered: May 2002 Posts: 705 |
Also Phobia by ratt used vsp. Great graphics, what a hard game it was however. |
| |
Hein
Registered: Apr 2004 Posts: 942 |
Quote: Also Phobia by ratt used vsp. Great graphics, what a hard game it was however.
Thanks for the tip, looks very cool. Hadn't seen it before. |
| |
Jammer
Registered: Nov 2002 Posts: 1335 |
Ok, I figured out it's 49/50th line where magic happens ;) |
| |
Oswald
Registered: Apr 2002 Posts: 5086 |
Quote: Only the first badline if it's full-screen. Not each badline.
afaik, VSP can only be done on an idle line, that is either top / bottom border, or tear yourself one with "fld".
caused me big headaches when I wanted a vsp also in the middle of the screen.
basically its a dec/inc d011 iirc, and the horizontal timing of it is where the first screen column should start (or offsetted if you want) around where the dec happens will be column 0. |