wondering how smb3 would look like on msx1

Page 33/33
26 | 27 | 28 | 29 | 30 | 31 | 32 |

By retrocanada76

Champion (480)

retrocanada76's picture

09-12-2011, 18:50

What are you proposing is not easy, and I think since MSX1 has no hardware support, impossible. Not if I want to add all visual appeal of SMB3.

Look I would need to make the 1 pixel the only speed allowed in the game. Nothing can move more than 1 pixel per frame. So, the maximum speed would be 60 pixels per sec for NTSC and 50 for PAL. Right now, mario moves 2 or 3 pixels depending on speed. What are you proposing is skipping frames to control the speed.

I spend some time updating patterns for sprites and flipping coins. Those things are performed in hardware by the NES memory mapper. No to mention there is no sound yet, so more CPU is needed. Also, I need to copy the name tbl and flick the sprite table to overcome MSX1 limitations.

Such game speed would demand the state of art in assembly. I understand your demand, but the game would be ridiculously harder to do.

By hit9918

Prophet (2911)

hit9918's picture

09-12-2011, 19:34

I could not resist making a BASIC demo Smile

It turns out my camera stop formula was wrong, no "+4" in there.

The red sprite is meant to be a tile, the blue sprite shows the internal 1 pixel accurate view of the tile. Pressing cursor keys simulates mario pushing the scroller. Scroller snaps to 8x8 positions.

objects can refere to the internal view just like in a normal 1 pixel game.
Mario would run completely unsnapped.

When I press cursor keys short, Marios sprite shows he got it, but I can make short clicks forever, he never moves. Is this mario physics or is it snapping business? At the end of the level, as scroller stops, he starts moving in 8 pixel jumps. Again looks like wrestling with snapping rules.

Maybe the 1 pixel scroll world position + scroller snap can added just to Mario if you do not want to mess the rest.

And: imagine a tile makes an 8 pixel jump in 200 milliseconds.
Imagine it will jump in 200 milliseconds, and after 100 milliseconds you hit 4 pixels away from the tile. Well the ghost tile will be already there. See BASIC demo. I suspect this may improve 8x8 gaming accuracy.

p.s.
The demo also shows another thing: doing smoothscroller in this style,
the size of a colorclash error block is not 8 pixels wide, but 4 pixels wide.

10 DEFINT A-Z
20 COLOR 15,1,1
30 SCREEN 2,2
40 A$=CHR$(255)
50 FOR I = 1 TO 32 : S$=S$+A$ : NEXT
60 SPRITE$(0)=S$
70 'scrolpos somewher in the map
80 SX =100 : SY =100
90 'provoke scroll snap
100 DX = 1 : DY = 1
110 '---
120 A = STICK(0)
130 ON A GOTO 150,160,170,180,190,200,210,220
140 GOTO 230
150 DY =-1 : GOTO 230
160 DX = 1 : GOTO 230
170 DX = 1 : GOTO 230
180 DX = 1 : GOTO 230
190 DY = 1 : GOTO 230
200 DX =-1 : GOTO 230
210 DX =-1 : GOTO 230
220 DX =-1 : GOTO 230
230 '---
240 SX = SX + DX
250 SY = SY + DY
260 'scroller snap stop rule
270 IF((SX) AND 7)=0 THEN DX=0
280 IF((SY) AND 7)=0 THEN DY=0
290 'tile x and y positions
300 TX =(SX + 4)/8
310 TY =(SY + 4)/8
320 '"255-", show sprite the way tiles would go
330 PUT SPRITE 0,(255-TX*8, 255-TY*8),6,0
340 PUT SPRITE 1,(255-SX,255-SY),4,0
350 GOTO 110

By hit9918

Prophet (2911)

hit9918's picture

09-12-2011, 19:47

What are you proposing is not easy, and I think since MSX1 has no hardware support, impossible.

Misunderstandings.

Imagine a C64 game. Imagine the scrollregister breaks. Then the tiles wobble on 8x8 positions.
But the sprites will still move like there was a smoothscroller.
And the sprites making tile tests will work like before, because they do not test the content of the rasterbeam.

The BASIC demo shows what I mean.

By retrocanada76

Champion (480)

retrocanada76's picture

09-12-2011, 19:58

Magical Kid Wiz makes a good scroller:

http://www.youtube.com/watch?v=W5IJBTvrrXk&feature=related

But as I said: things detach from the ground. When moving up or down is even more evident.

By hit9918

Prophet (2911)

hit9918's picture

09-12-2011, 20:35

Now I think that Mario moves are more interesting than Turtle moves.
What do you think about Mario relating to a 1 pixel accurate scrollx,scrolly variable (like SX,SY in BASIC demo).
And the scroller (i.e. said 1 pixel accurate varuables) only stops on modulo-8 positions.
Done that, Mario moves can be programmed like on a pixelscroller machine.

By retrocanada76

Champion (480)

retrocanada76's picture

09-12-2011, 20:38

not that simple as mario has momentum, he never stops when you released. Also, it doesn't start moving right away because of friction.

By hit9918

Prophet (2911)

hit9918's picture

09-12-2011, 20:59

not that simple as mario has momentum, he never stops when you released. Also, it doesn't start moving right away because of friction.

Well imagine you do all this to a naked sprite. Totaly simple.

Then, as that sprite hits the scroller bounding box, it starts moving a 1 pixel scroller variable.
That move done to scroller variable is to be subtracted from mario position.
Now he will stay "somewhat in the middle of the screen".

Then, said 1 pixel scroll variable only halt on modulo-8 positions.
Because the charset display shows said 1 pixel scroll variable in modulo-8 steps.

Then, program all mario physics like there was no 8x8 problem.

By hit9918

Prophet (2911)

hit9918's picture

09-12-2011, 21:03

Did you see the BASIC demo?

By retrocanada76

Champion (480)

retrocanada76's picture

09-12-2011, 21:21

yep

By theNestruo

Champion (330)

theNestruo's picture

28-04-2012, 18:37

Problems with scrolling? Super Mario doesn't need it!
Check "A Super Mario Summary" (it's a flash game)
(not that I want Retrocanada to remove the scroll of his version; simply it made me remember about this thread ;) )

Page 33/33
26 | 27 | 28 | 29 | 30 | 31 | 32 |