For most of the day I was digging through the GameHandler functionality, trying my best find better sets of values that would look better in lower resolutions.
I think I've pretty much got it looking .. presentable.. ? Is that the right word?
The Top n/Last n scoreboard can still get a little bit weird, spacing wise, but otherwise it seems a bit better than it did the day before.
The Calendar mode, though. .. Probably best not to use anything smaller than 640x480, especially if you're using ScaleMode 3.
.. That still ends up looking rather ratty, mostly because the little calendar circles tend to scale in all manner of sizes, and the font routine struggles to keep things looking nice as a result.
But, yeah, things look .. "better"
I did consider doing a complete rewrite of the Calendar menu, though. I still might do that, though likely do it as a secondary option.
To be honest, there's other menus I oughta try to build, too. Like the "pick a number" menu system, or the "unlock levels on a long path, with 3 stars each" menu system, and other such things.
But that's a crazy spiral of coding that I'm not really in the mood to delve into.
..
yet!
Meanwhile..
So I'm sitting here in the middle of the day, wondering which of my giant list of things I should tackle next.
I've already tried to enhance the Tilemap on numerous occasions, so I don't think I'll be attempting that again any time soon.
There was one little thing I was trying to do with the tilemap, and that involves a ton of scaling and rotation, to draw a scaled and rotated tilemap onto a separate buffer.
But the maths kept on confounding me, especially in the current heatwave.
I wondered, then, what if I draw a small tilemap onto the BG buffer.. Then I can draw THAT onto the new buffer, and do what it was that I wanted to experiment with.
Could that work?
So I tried that.
This is something I've wanted to be able to do for YEARS, but have never quite found a language that could do it.
I mean, it should be simple, right? numbers, maths, images, bob's your uncle.
But no matter which language I've tried, there's never been a simple way to achieve the effect.
But.. I've got my own language here.
Surely it can't be THAT hard to code the effect that I've been trying to do.
.. Right?!
So..
Step one : Draw the tilemap to the BG buffer.
That's easy enough.
Step two : Create a new buffer and draw the BG buffered tilemap onto the new buffer, at a specific co-ordinate.
This was tricky, and was a lot of complexity, and took bloomin' ages.
The tricky part was pinpointing the exact pixel on BG buffer, ensuring that pixel is at the correct pixel on the new buffer, then rotating the BG buffer around that co-ordinate, whilst still retaining the correct point on both buffers.
Yikes!!!
Step three : Line by line, copy lines from New Buffer to Normal Screen buffer, gradually scaling each line a little bit bigger as you go.
The first question, is can I actually manage all the maths
The second question.. is how FAST can I manage all that maths..
So, I gave it all a go.
It took all day.
It took ALL day.
A whole lot of maths.
A TON of maths.
And then came the testing.
The Quest 3 is one of my slower devices, insofar as JSE goes, and on that I was managing 60fps, with only about 30% "Stress" level, so.
.. I think that means it's ok.
I should probably dig out the Samsung Bag'o'Crap to test on there, too.
I might do that later on today.
But then, I might not.
Who knows.
As for the "why", I'm not really sure. Like I said, it's a technique I've always wanted to try out, but have never had the chance to.
Will I even use the functionality?
I couldn't say for sure.
There's "the obvious game", but other than that.. Who knows.
Was it even worth adding the function into JSE?
Probably not.
Will I document it?
Maybe.
Is the command staying?
Sure. Because why not!?
Let me know if you think I should do any very specific game using the new command, which is demonstrated in the code below.
// Mystery Code!?
// by Jayenkai
// Created 2025/5/12
Symbol 0,"02_y?xyyxy_yxy_yxyyxy_yxy_yxyyxy?";
Symbol 1,"0__3_5!335!335!335!335!335!3_";
Symbol 2,"01_R?SRRSR_RSR_RSRRSR_RSR_RSRRSR?";
Symbol 3,"2__0_0_0_0_0_0_0_0_0_0_0_0_00I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I.0_0_0_0I.0_0_0_0I.0_0_0_0I.0_0_0_vB.v0_0_0.B.0B.0B.0_0_B.0B.0B.0_0_B_B?0_0_B_B?0_0_00vB@v0_0_0?v0B.0v0_0_0/vB.v0_0_0_W.0_0_0@W@0_0_0?cW@c0_0_0,xcvvW.vvcx0_0_0x0ccv!cc0x0_0?vv0x00c_c00x0vv0_0x!c_cx!0_0xx0_0_xx0_0vv0_0_vv";
Symbol 4,"2__0_0_0_0_0_0_0_0_0_0_0_0_00I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I.0_0_0_0I.0_0_0_0I.0_0_0_0I.0_0_0_vB.v0_0_0.B.0B.0B.0_0_B.0B.0B.0_0_B_B?0_0_B_B?0_0_00vB@v0_0_0?v0B.0v0_0_0/vB.v0_0_0_W.0_0_0@W@0_0_0?cW@c0_0_0,xcvvW.vvcx0_0_0x0ccv!cc0x0_0?vv0x00c_c00x0vv0_0vvx.c_cx.vv0_0vv0_0_vv0_0xx0_0_xx";
Symbol 5,"2__0_0_0_0_0_0_0_0_0_0_0_0_00I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I@0_0_0!I.0_0_0_0I.0_0_0_0I.0_0_0_0I.0_0_0_vB.v0_0_0.B.0B.0B.0_0_B.0B.0B.0_0_B_B?0_0_B_B?0_0_00vB@v0_0_0?v0B.0v0_0_0/vB.v0_0_0_W.0_0_0@W@0_0_0?cW@c0_0_0,xcvvW.vvcx0_0_0x0ccv!cc0x0_0?xx0x00c_c00x0xx0_0vvx.c_cx.vv0_0vv0_0_vv0_0vv0_0_vv";
Symbol 6,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0vv0x?0!x?0vv0_0vvx0_0/xvv0_0vvx!0!x!vv0_0xx0_0_xx";
Symbol 7,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0xx0x?0!x?0xx0_0vvx0_0/xvv0_0vvx!0!x!vv0_0vv0_0_vv";
Symbol 8,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0vv0x?0!x?0vv0_0x,0_0/x,0_0x@0!x@0_0vv0_0_vv";
Symbol 10,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_00;?0_0_0@;/0;?00;!0_;_;_;_0.;_;_;_;;0,;_;_;_;;0?;_;_;/";
Symbol 11,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0.;;0!;.0_0@;_0;!00;.0@;_;_;@0?;_;_;_;0.;_;_;_0!;_;_;/";
Symbol 12,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_00;.0/;.0_0!;/0?;!0_;_;?0;_0/;_;_;@0!;_;_;@0@;_;_;?";
Graphics 800,600,1
px=64-50
py=64
pang=0
SetBuffer BG
CLS;ResetDraw;AA False
SetSize 0.25
for x=0 to 127
for y=0 to 127
s=2
c=0
if x>64 then c=c+2
if y>64 then c=c+3
d=Round(Pyth(63-x,63-y))
if d==48 or d==53 then s=1;c=Rand(0,7)
if d==49 or d==50 or d==51 or d==52 then s=0
SetRot Rand(0,3)*90
DrawImg x*8+4,y*8+4,s,c
next
next
SetBuffer FG
bgx=0
cloudx=0
repeat
cls;ResetDraw;AA False
SetGradient 100,180,255,40,70,160
Rect 0,0,jscrw,jscrh*0.35
ResetDraw
SeedRnd 3717
for m=0 to 49
f=(m*0.01)+0.7
dx=Wrap(Rand(0,2048)+(cloudx*f),0,2048)-512;dy=Rand(0,jscrh*0.3)-32
SetSize f*3
DrawImg dx,dy,Rand(10,12)
next
ResetDraw
SetSize 1.25
SetRot pang
Mode7 px*8,py*8,jscrh*0.3,jscrh,1,4 // First quick test. Functionality may change
if GamePad(ButtonA) then px=px-Sin(pang)*0.3;py=py-Cos(pang)*0.3;rev=Wrap(rev+0.2,0,3)
rx=(GamePad(ButtonRight)-GamePad(ButtonLeft))
pang=pang-rx
cloudx=(cloudx-1)-(rx*2)
ResetDraw
SetSize 3
DrawImg jscrw*0.5,jscrh*0.8-12,6+Floor(rev)
SetSize 4
DrawImg jscrw*0.5,jscrh*0.8,3+Floor(rev)
ShowFPS
Flip
Forever
[verse]
A curious new command has appeared,
I wonder what it might achieve.
Will it be something amazing or not?
I hope that it is. I really believe.
[chorus]
What might it do?
What could it accomplish?
I click the run button,
Has it already finished?
i wonder its point.
I don't understand,
Why it does what it does.
Is this how it was planned?
[verse]
It's a strange sort of function,
And I wonder what it does.
Will it be kind of useful,
Or be lost in the mud.
[chorus]
What might it do?
What could it accomplish?
I click the run button,
Has it already finished?
i wonder its point.
I don't understand,
Why it does what it does.
Is this how it was planned?
[bridge]
As I try it again and it does nothing new,
I find myself trying it out once again.
But it doesn't seem like it is all it should be.
Should I try to make use of it within a new game?
(or will all of it's purpose seem lame?)
[chorus]
What might it do?
What could it accomplish?
I click the run button,
Has it already finished?
i wonder its point.
I don't understand,
Why it does what it does.
Is this how it was planned?
[A TV crew has set up inside the shop. Reporter Millie Harper holds a microphone]
Millie: I'm here with Dave, owner of Dave's Games and ScrunchCakes, where queues have been stretching around the block. Dave, what's the secret?
Dave: Well, Millie, it all started because my friend Greenie likes the taste of sausages, but wanted something with more variety.
Millie: So you baked him a cake?
Dave: It seemed like the obvious thing to do.
Millie: I'm not sure many people would've tried to bake a sausage "inside" a cake.
Dave: No. The hardest part was that I had to find a way to levitate the sausage inside the cake mix whilst it's cooking.
Millie: So, you invent as well as cook?
Dave: Everything's an invention Millie. You just have to know where to stash your coke.
[Millie signals to the camera crew]
Millie: I'm sorry, what?
[Green hops into view, wearing a bunny costume]
Green: He means cola.
Millie: Ah, ok. Can we do a re-take?
Dave: [oblivious] Sure ok.
Millie: So, you invent as well as cook?
Dave: I have to. Nobody else makes delicious ScrunchCakes!
Millie: But Sausages... in cakes? What an odd combination.
Dave: It's the scrunch surprise! Though it's only surprising the first time.
Millie: And your store is also a gaming history museum of sorts, is that right?
Dave: It's not really supposed to be a museum, but I don't think anyone likes cassettes any more.
Green: [hopping past] Purple, Purple, Purple, Purple
Millie: I see.
Dave: It's nice to be surrounded by quality retro things, but also the new and exciting world of ScrunchCakes.
Millie: [lifting a purple ScrunchCake from the table] And it seems the local community are rallying around your latest creation.
Dave: [grabs one, too] They sure are! Here's to more purple!!
[End credits roll as Dave and Millie both take a bite of purple]
Views 56, Upvotes 3
Daily Blog
,
Jse
New games every week!
Places
Archives
Site credits : If you can see it, Jayenkai did it.
(c) Jayenkai 2023 and onwards, RSS feed
92