Timesink - Fidling in sc6

Par BlueCrystal

Expert (113)

Portrait de BlueCrystal

11-05-2023, 23:31

As long time lurker I have opted to crawl out of the shadow and drop two recent youtube clips of a work of progress of mine. Please don't ask the why and its final purpose, as I still have to figure those out myself Tongue
If time allows I will come back with questions on programming. Things like memory management, directly loading data into vram and lots of other stuff are still unknowns.

It is screen 6, 1 bit graphic style and those are deliberate choices.
While working on the scrolling engine I observed that in both screen 6 (and 7) scroll by register 18 actually scrolls per 2pixels. It does make sense by reading the v9938 technical data book, but I did not encounter any direct documentation of the phenomenon.

https://www.youtube.com/watch?v=KRJULiqoRZw
https://www.youtube.com/watch?v=7hsXyptuyrk
Graphics by Kenney (credits where they belong)

Enjoy!

!login ou Inscrivez-vous pour poster

Par NYYRIKKI

Enlighted (6094)

Portrait de NYYRIKKI

12-05-2023, 17:05

BlueCrystal wrote:

While working on the scrolling engine I observed that in both screen 6 (and 7) scroll by register 18 actually scrolls per 2pixels. It does make sense by reading the v9938 technical data book, but I did not encounter any direct documentation of the phenomenon.

Yes, the scrolling is done in "SCREEN 5 pixels"... Also when you start fiddling with sprites you will encounter same problem although you can avoid it by having two similar sprites, one for odd and one for even pixels... According to my experience also screen can be "sub pixel" adjusted by fiddling with different VDP register bits, but I can't really say how compatible those kind of tricks really are and if they work with all machines / monitors / connection types on same way... At least they are not documented and none of them are supported by emulators. Unfortunately I can't really remember exact bits where I've noticed minor picture shift, but if they work on your setup, they should be relatively easy to find if you pay attention.

Par Manuel

Ascended (19691)

Portrait de Manuel

12-05-2023, 23:43

NYYRIKKI wrote:

none of them are supported by emulators.

100% sure? Is there a demo program that uses this so we can test this?

Par NYYRIKKI

Enlighted (6094)

Portrait de NYYRIKKI

13-05-2023, 16:05

Manuel wrote:

100% sure?

As I know you already from 90's and I know you attention to little details I was pretty much expecting you to jump into this discussion. Smile I like your style. Anyway no: I can't say for sure that these things are not emulated and I can't really point you to correct direction either. I only want to give a hint that there might be some space for investigation, IF someone wants to take a closer look.

Par NYYRIKKI

Enlighted (6094)

Portrait de NYYRIKKI

13-05-2023, 16:05

Manuel wrote:

Is there a demo program that uses this so we can test this?

Not really... Original version of my "Software corner demo" (http://msx.fi/nyyrikki/software.html) actually loosely used the "trick", but when I realized that most of the people use emulators where it does not work, I changed the code to use adjust register instead... I don't think I have the original version anymore as it was almost 25 years ago.

Par BlueCrystal

Expert (113)

Portrait de BlueCrystal

17-05-2023, 00:12

https://youtu.be/VZJIH02hVNs
Update.
Implemented a smooth edge scroll without use of sprites. 1 bit graphical approach allows edges hidden/shown by use of a logical operator. Bit flip -> palette color 0 <-> 1 (both black), 2 <->3 (black / white). Page flip timing is still poor. Scroll still not as smooth as I would want.
Black tiles are box fills. Sprites are disabled.
Whole pages are prepared (512x256), code for duplicate tile check still contains an issue.

@Nyyrikki, good idea on the sprites though not sure if needed.
Just want to put a bit more time in the scroll engine and then move on to sprites. Got some lined-up, huuray for itch.io. Still contemplating on actual use. Was originally thinking on a Warriods clone, might move from that. Just want to keep it short, simple and fun! Started on a documentation file to keep my thoughts organized. Did already decide it wont be a run n gun game (sorry Contra lovers), that would be too complex.

Par Bengalack

Paladin (805)

Portrait de Bengalack

18-05-2023, 12:18

BlueCrystal wrote:

Update.
Implemented a smooth edge scroll without use of sprites.

Nice! Smile We like smooth Smile

Par BlueCrystal

Expert (113)

Portrait de BlueCrystal

26-08-2023, 23:51

Just posting an update that work on this project has been halted. I noticed that it was getting too complex with my limited coding experience. As such it was opted to develop these skills by switching to a somewhat easier game, in this case a match 3 one. Latest youtube update on this can be found here.

Par ro

Scribe (5063)

Portrait de ro

27-08-2023, 10:39

Looks promosing, you still have six weeks to finish it Wink

The hi res screens take just too much throughput to be functional smooth scrolling. Xak did a fair job, but I won't call it smooth though.

Par BlueCrystal

Expert (113)

Portrait de BlueCrystal

29-08-2023, 23:03

Oh boy, 6 weeks. Not sure about that. The dev is a really nice exposure platform. Just the road is long on things to do. I am aware that perfection is the enemy good.

I like to think that for sc5 and 6 it is the same amount of bytes the VRAM needs to handle. Taking a 1 bit game approach (originality Smile) allows much more black tiles (block fills) on screen and thus gives a speed advantage. Using vertical line logical operator on the side gives the impression of smooth scroll and free's up sprites. Sc6 never got (any?) love, 4 colors uugh. GB had 4 colors, no-one complained (though that might be comparing apples and oranges). There is some sc6 stuff out there, a Xelasoft scc demo, NOP used it in UR, disk mags for displaying text, all very situational. Ow well maybe some day, time will tell.

With regard for the match 3 game, I am revising the hardcoded 8by8 game matrix towards a dynamic one. After that I have to start with how memory works, sure I'll come back here for questions. In the end I do want to implement a single player campaign, pvp and freeplay game mode. Lets just do it step by step.