Football Fever (aka - Games with smooth "1" pixel multi directional scrolling.)

Started by sigh, 14:48, 23 April 12

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

sigh

Quote from: Gryzor on 18:58, 07 July 12
*Is* there a game supporting simultaneous 4-player play on the CPC?

There were many 4 player games made by codemasters such as BMX Simulator 2 (4 player), Grand Prix simulator 2 (3 player I think), Jet Ski Simulator and also a football game too. The interference weren't to bad on the racing games., but I'm not too sure how the 4 player mode faired on the football game.

Gryzor

Ah yes, I had forgotten about Codemasters.


Well, technically mayb it would be possible, but would it really be worthwhile?

sigh

Quote from: Gryzor on 10:20, 08 July 12
Ah yes, I had forgotten about Codemasters.


Well, technically mayb it would be possible, but would it really be worthwhile?

Personally - I don't think it's worth the programming headache. Also with the controls being a major issue, it would probably make the game far too frustrating to play.

It would be better to use that programming time for something else.

steve

If there is a need for two or four player games, it would be better for each player to have their own machines all linked by vn96, the machines are cheap enough now.

TFM

Quote from: steve on 22:21, 08 July 12
If there is a need for two or four player games, it would be better for each player to have their own machines all linked by vn96, the machines are cheap enough now.
I agree with that. Having had the same idea. But in reality you can do this only at meetings. Most people suffer space limitations (I don't know why, but that's what they tell...). If s/o sells his CPC to have more space on Desk.... don't expect em to get a 2nd machine.
However... I have four computers running in my computing room in Munich. Three of them are CPCs, and I did some kind of experiments with a network too. But IMO the CPC-Booster is the better alternative. The VN96 needs a whole lot of CPU time - a critical thing in games.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Sykobee (Briggsy)

Clearly the solution is to have a serial or parallel link from the CPC to your PC, and then a bit of software on the PC to map between the PC's internet connection and the CPC's data. Maybe the software could perform "CPC discovery" as well, to find CPCers online to play with!


Then the game can either: Sync internal 1p/2p game state with the other CPC, or transmit virtual movements between CPCs. The idea is to try and not have too much overhead in the code on the CPC side of things.


So for a Super Sprint style game, you would be transmitting something along the lines of P1x,P1y,P1r, P1s, and receiving P2x,P2y,P2r,P2s (player x,y,rotation, state (crashed, health, score, etc)). If a packet is lost or dropped, no big deal. Latency would be an issue, both ends would need low ping - might not be worthwhile.

TFM

If I need a PC to link the CPC to the internet, then there is no reason not to use the PC completely for everything, right??
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Carnivius

I think when you're theorising about connecting two entire CPC setups and possibly even a PC in there it's best to just stick with a 2 player game and have the 4 players just play as seperate teams in a tournament.  A four player connected mode like those theories would get even less used than the PlayStation 2's network adaptor (I use that example as I've bought PS3 HD versions of PS2 game series' recently such as Ratchet & Clank that have a multiplayer online mode from the PS2 that I never played cos nobody I knew including myself owned a PS2 Network Adaptor whereas they get much play now because every PS3 has network capabilities).  Doesn't sound worth the effort for the few people who might ever use it.
Favorite CPC games: Count Duckula 3, Oh Mummy Returns, RoboCop Resurrection, Tankbusters Afterlife

ralferoo

Quote from: fano on 17:28, 08 May 12
The problem is R9=0 is not compatible with CRTC 2 is my memory is good.Playing with R9 values on a character based rendering is good idea anyway.If i remember well , X-Out used R9=5 for example.
This is why I think we need a wiki page for CRTC tricks. I've seen this said many times, but it's not true. I know my demo that uses r9=0 works fine on every CPC I own (and was actually working on CRTC 2 before I managed to get CRTC 0 working)...

I definitely had problems when I was trying to use r4=0 and r9=0 at the same time on CRTC 2, but certainly r9=0 alone is fine.

arnoldemu

Quote from: ralferoo on 16:43, 09 July 12
I definitely had problems when I was trying to use r4=0 and r9=0 at the same time on CRTC 2, but certainly r9=0 alone is fine.
yes it's definitely r4=0 and r9=0 at the same time that is problematic.
other combinations work fine. I've tested that.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

fano

I'm going to test that , if this is correct that will be very usefull for my current project, thx !
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

arnoldemu

I tried to setup a split for crtc type 2 where it goes via vertical adjust time to go into r9=0 and r4=0.

so you need 2 areas of vertical adjust, where you switch into and out of r9=0, r4=0.

I didn't get the timing perfect so it didn't work, I need to do more tests.

I *think* I also had r9=0, r4=0, r5=1 working. but that's not good, because you have a line of border between each :(

I think the crtc is latching some stuff, so you need to work with it and not against it.

the idea being that going into vertical adjust, allows you to modify stuff while it's doing that.

(latch means it remembers some comparison, so even if you change some values it still remembers it).

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Gryzor

Quote from: ralferoo on 16:43, 09 July 12
This is why I think we need a wiki page for CRTC tricks.


Cool! Can you write it? I could help with the wiki part :)

fano

That really works , tested on a MC6845P, UM6845 (supposed to be a type 0 but demos find a type 2!) and HD6845SP , just need to test it on a UM6845R, Plus and type 4.
Thanks a lot ,you make my day !

ralferoo is right, we need a wiki page about CRTC as there are a lot of articles (mainly in french) everywhere but that would interesting to share all this knowledge on only one page.When you start to deal with CRTC , it seems so complicated and obscure and that would be usefull.I can help a bit on some basic things (adressing,basic split screen) if needed (and if someone feels able to correct my engrish)


Quote from: arnoldemu on 17:37, 09 July 12
I tried to setup a split for crtc type 2 where it goes via vertical adjust time to go into r9=0 and r4=0.

so you need 2 areas of vertical adjust, where you switch into and out of r9=0, r4=0.

I didn't get the timing perfect so it didn't work, I need to do more tests.

I *think* I also had r9=0, r4=0, r5=1 working. but that's not good, because you have a line of border between each :(

I think the crtc is latching some stuff, so you need to work with it and not against it.

the idea being that going into vertical adjust, allows you to modify stuff while it's doing that.

(latch means it remembers some comparison, so even if you change some values it still remembers it).

Luckily my problem was not so complex.There are 3 split screens , 2 regular with R9=7 and one with 16 lines with R9=0 (before that was 8*R9=1) and 2 lines with R9=7 so i never use R4=0.The problem for me was to save memory with linear addressing on theses 16 lines (score panel) instead of have 2 blocks of 8 lines.
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

arnoldemu

nice, my theory worked. so crtc 2 is no longer the poorer crtc ;)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

fano

Let's say some things are now accessible for all CRTC  ;)

That means too you can choose to have a linear addressing between 2 lines (R9=0,R4=1) instead to have a 2K gap between 2 lines (R9=1,R4=0), that may be usefull in some cases.

Speaking about 64K games in another thread, made just me think it could be usefull to save a bit of memory for theses too as we can have a main screen with R9=5 (12K simple buffer,24K double) and a panel with R9=0 (2K max).You can have for example a mode 1 resolution like 256*224 (192(main)+32(panel)) for 14K (26K double buffer and hard scrolling compatible) and keep linear addressing.
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

TFM

Can you advice a demo / (probably no game there...) which uses the R9=0 in a way that has no unwanted artefacts? Sorry, what I search is an example that runs on pretty much everything (maybe even other monitors / TVs). Any idea?
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

sigh

Quote from: fano on 12:45, 10 July 12
Let's say some things are now accessible for all CRTC  ;)

That means too you can choose to have a linear addressing between 2 lines (R9=0,R4=1) instead to have a 2K gap between 2 lines (R9=1,R4=0), that may be usefull in some cases.

Speaking about 64K games in another thread, made just me think it could be usefull to save a bit of memory for theses too as we can have a main screen with R9=5 (12K simple buffer,24K double) and a panel with R9=0 (2K max).You can have for example a mode 1 resolution like 256*224 (192(main)+32(panel)) for 14K (26K double buffer and hard scrolling compatible) and keep linear addressing.

The "bit of memory" that can be saved - how much are we talking? Is it dependant on the type of game or is it a dedicated amount of memory thats saved regardless of the game type?

fano

That may varies as using linear addressing helps to memory optimisation but the gain is not huge , something like 1K, maybe 1,5K in the best case (better than nothing, 1K is already 64tiles !).On a complete screen configuration like i wrote before (R9=5), compared to a classic configuration with hardware scrolling (R9=7), you can save up to 8K if you use double buffer (4K for simple buffer).
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

sigh

Hi guys,

I'm going to start on the front end which is the title and option screen. I'm still thinking about ways to achieve multi directional 1 "fine" pixel scrolling and wondering if it's possible to achieve this by scrolling the football pitch lines?

sigh

Quote from: sigh on 22:33, 17 May 12









For the past few months, I have been thinking about a method for scrolling on this game and came up with something. I don't know if this has been tested before but I would be very grateful if some could let me know.

Left and right smooth pixel scrolling: Swapping scrolling layers.

3 layers. These are the white lines of the pitch with each layer having it's own unique scroll value. The green part of the pitch should just be a static image with the white lines scrolling to give the illusion of a moving field:

Layer 1 = Normal software scrolling at 4 pixels (2 mode 0 pixels).
Layer 2= Continuos scroll layer at 2 pixels (1 mode 0 pixel). This scrolls from left to right.
Layer 3=Continuos scroll layer at 2 pixels (1 mode 0 pixel). This scrolls from right to left.

These layers would have to be active at all times, but only one of these layers can be visible at any one time depending on the action happening in the game:

Ball is rolling slowly to the right =  Swap to Layer 2
Ball is rolling quickly to the left =Swap to Layer 1
Ball is rolling slowly to the right = Swap to layer 3
Ball is stationary =Swap to Layer 1
Ball is in 3/4 of the pitch area near the goal = Swap to Layer 1.........

So the layers of the white lines would be constantly swapping.

Is this possible?

EgoTrip

No idea about the technical aspects sorry, but the screenshots look really good. I hope you can get this finished.

TFM

Are you using Mode 0? Yes? So just use two layers for scrolling in X. Because you only need one pixel difference. And you can move the screen in X for one byte by using one particular CRTC register. And for using in two byte steps you use like usual the CRTC address registers.

So two layers are enough! Try not to make it toooo complex.


Good luck!!!
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

sigh

Quote from: TFM/FS on 16:51, 25 April 13
Are you using Mode 0? Yes? So just use two layers for scrolling in X. Because you only need one pixel difference. And you can move the screen in X for one byte by using one particular CRTC register. And for using in two byte steps you use like usual the CRTC address registers.

So two layers are enough! Try not to make it toooo complex.


Good luck!!!

Yes - the game is in mode 0.
So just to clarify your suggesting in using 2 layers and not 3:

Layer 1 = Normal software scrolling at 4 pixels (2 mode 0 pixels).
Layer 2= Continuous scroll layer at 2 pixels (1 mode 0 pixel). This scrolls from left to right and from right to left. (?)

So the only thing that would be needed is to make sure that both layers have the same starting point when they swap over, so that it looks continuous.

Is this correct?

TFM

Didn't even think that complex.

Both layers scroll two pixel everytime.

But layer one shows pixels 1,2,3,4,5,6 and so on
While layer two shows pixels 2,3,4,5,6,7 and so on

The difference between them is exactly one pixel.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod