Bubble Bobble

Show us your work, thrill and amaze us :)

Moderator: Programming Moderators

dave18
Posts: 186
Joined: Tue May 30, 2017 1:06 am
Location: Bristol, UK

Re: Bubble Bobble

Postby dave18 » Mon Jul 06, 2020 1:06 pm

Changing the games output is a lot of work as the screen addresses are all hard coded,. I'd probably end up writing a separate parser to read any addresses between 7600 and 7fff and convert them to an offset of a base EQU. That way I could produce a separate .nex for each offset.

smurphboy
Posts: 20
Joined: Wed May 06, 2020 7:06 pm

Re: Bubble Bobble

Postby smurphboy » Mon Jul 06, 2020 3:20 pm

I'm losing the top 5 or six pixels in 60HZ despite using

Code: Select all

.displayedge
to sort out all my 60Hz screensizes. So I think it might be a little high in 60Hz mode.

User avatar
SevenFFF
Posts: 565
Joined: Mon Jun 05, 2017 5:30 pm
Location: USA

Re: Bubble Bobble

Postby SevenFFF » Mon Jul 06, 2020 6:06 pm

Software has to be specially written to be aware of .displayedge. All .displayedge does is write a resolution into a config file. It's up to programs to read the config file and adapt their screen layout to match.

If some of your software is being clipped on your display, you should ask the authors of that software to do this. Note that they still may say no. It's hard work to write flexible user-friendly software, and different devs have differing ideas about what is important to them and their users.
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel NXTP ESP Update ESP Reset CSpect Plugins

User avatar
SevenFFF
Posts: 565
Joined: Mon Jun 05, 2017 5:30 pm
Location: USA

Re: Bubble Bobble

Postby SevenFFF » Mon Jul 06, 2020 6:23 pm

dave18 wrote:
Mon Jul 06, 2020 10:55 am
60hz is always stretched vertically for some reason.
The reason is the historical NTSC TV standard, which has 262.5 video lines instead of PAL's 312 lines. If displays didn't space NTSC lines out equally over the vertical height of the picture, the picture would appear severely squashed and circles wouldn't be circular. Tilemap's 256 pixel vertical resolution is so close to that 262.5 figure that some displays crop at the top or the bottom. TV generally has a safe area and an overscan area, and some of the tilemap falls into the NTSC overscan area which display manufacturers consider unsafe.
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel NXTP ESP Update ESP Reset CSpect Plugins

dave18
Posts: 186
Joined: Tue May 30, 2017 1:06 am
Location: Bristol, UK

Re: Bubble Bobble

Postby dave18 » Mon Jul 06, 2020 6:55 pm

I think that makes sense for RGB output but the same timings seem to be used for VGA which at first glance seems strange. On a VGA monitor I think the picture could do with some squashing, at 60hz circles currently become oblongs that are taller than they are wide so if the vertical size was squashed to fit the missing pixels I think it would also give the correct aspect ratio. But this is just from a layman's point of view.

User avatar
varmfskii
Posts: 287
Joined: Fri Jun 23, 2017 1:13 pm
Location: Stone Mountain, GA USA

Re: Bubble Bobble

Postby varmfskii » Mon Jul 06, 2020 7:09 pm

Picking nits, but for PAL its 312.5 lines per half frame for really standard signal.
Backer #2741 - TS2068, Byte, ZX Evolution

smurphboy
Posts: 20
Joined: Wed May 06, 2020 7:06 pm

Re: Bubble Bobble

Postby smurphboy » Mon Jul 06, 2020 7:46 pm

SevenFFF wrote:
Mon Jul 06, 2020 6:06 pm
Software has to be specially written to be aware of .displayedge. All .displayedge does is write a resolution into a config file. It's up to programs to read the config file and adapt their screen layout to match.
Understood - I was using it to make sure it wasn't my monitor or OSSC out of alignment. Most 60Hz modes needed a little tweak to show the top and bottom green edges correctly whereas the 50Hz modes were all spot on.

User avatar
SevenFFF
Posts: 565
Joined: Mon Jun 05, 2017 5:30 pm
Location: USA

Re: Bubble Bobble

Postby SevenFFF » Mon Jul 06, 2020 7:52 pm

dave18 wrote:
Mon Jul 06, 2020 6:55 pm
60hz circles currently become oblongs that are taller than they are wide so if the vertical size was squashed to fit the missing pixels I think it would also give the correct aspect ratio.
From the point of view of the display, it has to space the lines out vertically otherwise a circle in a NTSC TV picture would be wider than it was tall. That's what I meant. The display can't have one set of rules for TV pictures and another set of rules for computer pictures. It's literally all the same thing as far as the display is concerned.

If you want the display to stretch vertically, you can tell the display to do that in its OSD menu. But that isn't something the Next can do. The Next doesn't do stretching, it emits pixels according to precise vertical and horizontal clocks, and in 60Hz modes it's doing that with timings that meet the NTSC standards. If it emitted them in different timings it might conceptually result in more circular circles, but those different timings would mean it was no longer NTSC standard and your display would stop even trying to show a picture.

Now you might reply "then it should stretch the picture horizontally so that my circles become wider and more circular". It could theoretically do that, but that would involve extending the horizontal timings so that it was no longer an accurate Spectrum. There would be the wrong number of T states in a line and in a frame, and a vast number programs would stop working as expected. Since the original Spectrum models are so well understood, programs often "chase the beam", which means they change the contents of video RAM at precise timings that correspond with when each pixel is emitted (or when the electron beam was pointing to that X,Y coordinate on the CRT surface).

So the horizontal timings have to be rigidly adhered to to match the Spectrum model, and the vertical timings and number of frames per second have to be rigidly adhered to to match the TV standards (or modern digital codifications of them) that displays are willing to show.

I think people fundamentally understand what is going on when a TV or monitor is displaying a picture without any intermediate scanbuffer wizardry. Most of the criticisms or requests for it to be changed boil down to "I want it to be completely standard, except I want it to be nonstandard".

The real reply is that a 60Hz Spectrum in an unnatural aberration, and you shouldn't ever want to force it into that mode. But unfortunately people do, because so many modern displays are crappy at displaying 50Hz timings, and they want convenience. And because devs want to port 60Hz arcade or US games to the Next, and those games would be compromised in a 50Hz port. 60Hz mode partly exists for that compromise convenience, and partly because the Next can also be configured as a Timex Sinclair model, which legitimately always had 60Hz timings. Again for convenience, the Next will let you run a Timex program on a Timex model at 50Hz if your display can handle it, but timing-wise it is equally an aberration as what we've been discussing.
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel NXTP ESP Update ESP Reset CSpect Plugins

smurphboy
Posts: 20
Joined: Wed May 06, 2020 7:06 pm

Re: Bubble Bobble

Postby smurphboy » Mon Jul 06, 2020 8:37 pm

smurphboy wrote:
Mon Jul 06, 2020 7:46 pm
SevenFFF wrote:
Mon Jul 06, 2020 6:06 pm
Software has to be specially written to be aware of .displayedge. All .displayedge does is write a resolution into a config file. It's up to programs to read the config file and adapt their screen layout to match.
Understood - I was using it to make sure it wasn't my monitor or OSSC out of alignment. Most 60Hz modes needed a little tweak to show the top and bottom green edges correctly whereas the 50Hz modes were all spot on.
Solved my own problem. Just adjusted the V-backporch to move the image down and now all good. So I have a 50Hz profile and a 60Hz profile. Happy to share if anyone else is using OSSC to upscale / convert to HDMI.

alanspec
Posts: 19
Joined: Thu Jun 08, 2017 9:10 pm

Re: Bubble Bobble

Postby alanspec » Wed Jul 15, 2020 3:09 pm

Bit late to this party but well done and thanks - this is awesome.


Who is online

Users browsing this forum: No registered users and 1 guest