L Break Into Program (@breakintoprogram.co.uk) reply parent
World of Illusion is supposed to be really good. That and James Pond.
Blog: http://www.breakintoprogram.co.uk YouTube: https://www.youtube.com/BreakIntoProgram Ko-fi: https://ko-fi.com/breakintoprogram Software developer & electronics dabbler. Restoring & programming vintage computers from Acorn Atom to ZX81.
3,574 followers 1,525 following 9,510 posts
view profile on Bluesky L Break Into Program (@breakintoprogram.co.uk) reply parent
World of Illusion is supposed to be really good. That and James Pond.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Seem to have gone to the other extreme these days. Spend a good few minutes each day playing hunt the hidden scrollbar.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Hahaha! Indeed.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Yeah, the Sharp CPU in the original is more like an 8080 than a Z80 so doesn’t have the index registers IX and IY or the alternate register set. Less suited for C than the Z80. But they’ve done it, and also the 6502, which is even less suited IMHO.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Yeah, I normally use the winding method. The Elite data is stored differently with face normals. It's more an exercise in bloody mindedness at the moment. And recalling all the relevant vector maths from years ago like dot products.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Hahaha!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Incredible! I know from experience how limited the CPU is on the DMG compared to a stock Z80.
L Break Into Program (@breakintoprogram.co.uk)
Thanks to @markmoxon.bsky.social I * think * I understand why my backface culling routine is not quite working. I'd oversimplified my routine due to misunderstanding how the face normals worked. Shouldn't take long to fix. Job for tomorrow.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Yeah, I would assume so. That's what I'm trying to write at the moment, the optimised library, not so much a game yet. Out of curiosity, does it work on the original Gameboy?
L Break Into Program (@breakintoprogram.co.uk) reply parent
Are you writing it mostly in C at the moment? There are obvious things I'm optimising in asm, like the line draw and using trig lookups. This is quite maths heavy, so coding in a high level language first does make a lot of sense.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Happy Birthday!!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Hahaha!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Plus I've just fixed Mrs B's laminator by giving it a hard stare.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I do really like this approach. Figuring out how the code should work in a high level language then optimising the bits that need speeding up works well with my brain. Occasionally in assembler I get stuck in the minutiae. That's the ex-8-bit games programmer in me I suppose.
L Break Into Program (@breakintoprogram.co.uk) reply parent
And the corresponding C code now to rotate a point around 3 axis is much tighter. This in turn will be optimised into a single asm function at some point when I can be bothered.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Busy day being dad's taxi, dropping youngest off at a camp down Wrexham way. Then food and gym. Though this morning I did optimise the 3D rotation stuff so that it is now mostly in assembler. It's so much smaller and neater than the C generated code...
L Break Into Program (@breakintoprogram.co.uk) reply parent
It's not too bad you know - there's some interest from the agencies re my skill set, and I'm doing some other stuff to fill the gaps. Plus it's nice to be a kept man for a change!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Ah yes, nothing to report.
L Break Into Program (@breakintoprogram.co.uk)
Getting used to stack frames in z88dk this morning. I wanted to pass and return a struct (Point8 - 3 bytes). It kind of makes sense in a weird 'let's get C running on a Z80' kind of way.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Thank you! There’s more to come.
Mark Moxon (@markmoxon.bsky.social) reposted
I've just released the Elite Compendium Addendum for the BBC Micro B+. It contains two bonus versions of Elite for lucky owners of the B+, including musical BBC Master Elite for the B+128. See elite.bbcelite.com/hacks/elite_... for details. #retrogaming #retrocomputing #bbcmicro #8bit #elite
L Break Into Program (@breakintoprogram.co.uk) reply parent
It is my favourite BASIC in all incarnations, so when I was asked by Bernardo to implement BASIC on the Cerberus, I picked it. And the Agon naturally followed.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Funnily enough I'm writing Gnome Man's Sky.
L Break Into Program (@breakintoprogram.co.uk)
Scrubbed all references to . Am using my own fastSin and fastCos asm routines that use table lookups. Still plenty of room for improvement on speed yet this has helped me iron out a couple of bugs in the maths. There's still a glitch with the back-face culling, but it's the same glitch.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Oh haha, yes I get that occasionally, and no problems.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Just read your post again - I've never had issues debugging a SNA or NEX file. I use DeZog in Visual Studio Code to handle that, and ZEsarUX/CSpect as my emulators of choice.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I'm building a NEX file.
L Break Into Program (@breakintoprogram.co.uk) reply parent
It's sjasmplus (a Z80 assembler)
L Break Into Program (@breakintoprogram.co.uk) reply parent
Links for downloads on this page. I'd also recommend the SDL version for a more feature rich version.
L Break Into Program (@breakintoprogram.co.uk)
There are console mode editions of BBC BASIC on a number of platforms. I used to use it regularly on the Tatung Einstein to create lookup tables for Spectrum and Amstrad games. Modern versions are available for Linux, Windows and even MacOS. So why break the habit of a lifetime...
L Break Into Program (@breakintoprogram.co.uk) reply parent
I'm normally up for an episode like this and there are a handful of episodes in the Star Trek universe that deal with the crew finding ancient Earth tech floating about. This episode is just the worst, mostly because of the stereotyping.
L Break Into Program (@breakintoprogram.co.uk)
Got the ST:NG episode "Up the Long Ladder" on in the background. Completely forgot that Colm Meaney was in this episode.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Not specifically, yet. The model was available online and is instantly recognisable.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Wow!
L Break Into Program (@breakintoprogram.co.uk) reply parent
That picture would be perfect if the adjacent kite was a bowl of petunias.
L Break Into Program (@breakintoprogram.co.uk)
Usual Sunday shenanigans, though the chores were done yesterday so just coffee and crossword this morning.
L Break Into Program (@breakintoprogram.co.uk) reply parent
That's really quite impressive. Handy if you've got limited desk space or are a mobile worker.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Be that guy!
L Break Into Program (@breakintoprogram.co.uk) reply parent
I know how to greet people, order beer, and apologise, in several European languages.
L Break Into Program (@breakintoprogram.co.uk)
I’m that guy, and if I’m not that guy, I probably know a guy who is.
L Break Into Program (@breakintoprogram.co.uk)
Went for a nice five mile stroll with the local ramblers society around Tatton Park this morning. Wish I’d taken my big camera.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Japanese vehicles are in my experience pretty much bulletproof. We’ve had many a Toyota that have just sailed through MOTs year on year. And my Honda CB600 bike was pretty much zero maintenance.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Awesome!!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Thank you! Still a way to go with the pushing too!!
L Break Into Program (@breakintoprogram.co.uk) reply parent
There’s a gunsmith in our village.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Wish I’d have known that earlier. The Previa that this replaced did nearly 150,000 miles before a gasket blew and took the engine out.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I think Vauxhall send a letter of sympathy.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Hahaha!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Doesn’t seem that long ago it was an uncouth youth.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I am indeed, though tend to avoid Facebook these days.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Better get my Spectrum Next out to see this running on real hardware…
L Break Into Program (@breakintoprogram.co.uk)
A minor visual improvement this afternoon - ten minutes of coding and I've almost got hidden line removal working. Still some glitches to work through.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Yeah, I sometimes make a note on my phone. And sometimes the note still makes sense in the morning.
L Break Into Program (@breakintoprogram.co.uk)
I'm good at solving problems in my sleep. Remember the graphics glitch I was having last night with the rotating Cobra ship from Elite that I temporarily bodged by using floats? Turns out I can use an assembler function I wrote for the clipping to do it much quicker.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Nice!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Thank you!
L Break Into Program (@breakintoprogram.co.uk)
Forgot to mention last night that the model data was sourced from this website, courtesy of @markmoxon.bsky.social. Mark’s done a sterling job documenting the inner workings of Elite at the source level. Well worth a visit even if you don’t understand assembly language.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Okay folks, there was a quick fix - use a long in the perspective calculation and leave the rotation as int.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Ah nuts. I know that cafe well. This is the one, isn't it (not my photo).
L Break Into Program (@breakintoprogram.co.uk) reply parent
I can switch the offending code to use floats, but as you can see, the rotation slows down somewhat. Regardless, the z88dk maths libraries are doing a sterling job there. That's done partly using floats, and sin and cos from maths.h. It'll be much faster once I've given it the asm treatment.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Hehehe!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Now its time to supercharge the 3D maths.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I think the trick is to keep printing. I usually do all my labels in one long strip and cut with scissors later. Mine gives the option to not feed once its printed one thing. As soon as you do a feed, it leaves a large gap for the cutter.
L Break Into Program (@breakintoprogram.co.uk)
Got sick of seeing the cube. Figured it was time for an upgrade. The glitch is a maths error in the rotation, an overflow. That'll be fixed when I convert it to the optimised assembler lookup table version. Also need to do hidden face culling. The Elite data is stored differently. Easily done still.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Ah, I've got a Brother that'll take them. Might get some in for Mrs B for her teaching job. Also I know what you mean about tape wastage on them.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Oh wow! Those are fabulous!!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Not Pen Island then?
L Break Into Program (@breakintoprogram.co.uk) reply parent
That's already done (in an earlier thread). Just need to get the filled triangles clipped. Then, get a decent model in. Getting a bit fed up staring at that old cube.
L Break Into Program (@breakintoprogram.co.uk) reply parent
It's coming along nicely :-)
L Break Into Program (@breakintoprogram.co.uk) reply parent
Thanks - I'll check it out later.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Thank you :-)
L Break Into Program (@breakintoprogram.co.uk) reply parent
Cheers mate!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Oh there's hope I'll get more back then from HMRC beforehand.
L Break Into Program (@breakintoprogram.co.uk) reply parent
That was incredibly satisfying.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Did you get tax back then whilst getting repayments? I got hammered a bit on my payment in leu of notice due to three months going out in one tax month. Be nice to get some of that back before I do a tax return.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Yeah I’m going to sign on today.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Final payment from work and my P45 arrived this morning. End of an era. The whole process I had to go through made me feel a bit grumpy. Still, onwards and upwards.
L Break Into Program (@breakintoprogram.co.uk) reply parent
This is now more or less at the stage I got the 3D engine at originally on the 48K Spectrum. Practically game ready. I never finished it. Though it was part of my portfolio that got me my first job at Software Creations.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I’ve got this! Bought it for my eldest as a gift from his baby sister when she was born. He was really into the Teletubbies when he was a toddler. He played it on my first gen PS2. Much loved, probably got the rest of the case somewhere…
L Break Into Program (@breakintoprogram.co.uk) reply parent
The bug, by the way, was a schoolboy error. A stackframe imbalance caused by me incorrectly declaring a parameter type as uint8_t (a byte) rather than int_t (a word). The single byte difference caused the stack frame to move by one byte every time the function was called. Mucho crasho.
L Break Into Program (@breakintoprogram.co.uk)
Couldn't sleep last night, head full of ideas, so did a late coding session converting the clipLine routine from C to asm. There was a bug I couldn't fix, so slept on it and identified it straight away this morning. I can now start on clipping filled triangles now clipLine is in the asm domain.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I did give it a go a couple of years ago and was quite impressed with the natural language parsing of ChatGPT itself. However, as I said at the end of the video, it has no understanding of what it is doing and it looks like nothing has changed since. My reaction today would be more critical.
L Break Into Program (@breakintoprogram.co.uk)
Ah grand, a new @curiousmarc.bsky.social video has dropped.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I've forgotten more about programming than they've learned.
L Break Into Program (@breakintoprogram.co.uk)
This older coder is most certainly not down with so called “vibe coding”.
Flippin' 'eck, Tucker! (@losttourist.social.chatty.monster.ap.brid.gy) reposted
BBC Breakfast this morning had a long segment about the 30th anniversary of Windows 95. So what vintage computer did they put in the studio as a handy prop? #windows95
L Break Into Program (@breakintoprogram.co.uk) reply parent
Well, everything else sucked in my day today, but the goggles were an unmitigated success.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Hahaha!
L Break Into Program (@breakintoprogram.co.uk) reply parent
Might end up going down that route.
L Break Into Program (@breakintoprogram.co.uk) reply parent
In other news, got fed up of my eyes being red and sore after long swimming sessions, so got some goggles.
L Break Into Program (@breakintoprogram.co.uk) reply parent
It’s all a bit dispiriting that’s all.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Early days yet. Have applied for a couple of interesting jobs that are less speculative.
L Break Into Program (@breakintoprogram.co.uk)
First job rejection today. It was a bit speculative, a job in the DWP, so not surprised. Got some automated feedback from them which may come in useful. Applied for a couple of other jobs.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Could not agree more with that, or him.
L Break Into Program (@breakintoprogram.co.uk)
A good morning spent chatting with the youngest about art and this came up. Not come across chindōgu before, yet got it immediately.
L Break Into Program (@breakintoprogram.co.uk) reply parent
It was by means of illustration, an extension of an earlier diagram. I'm not adding any horizontal edges in code, and mention earlier in the thread that clipping top and bottom is trivial.
L Break Into Program (@breakintoprogram.co.uk) reply parent
It's quite a fun problem to solve. Took me ages to work out an efficient method from first principles many years ago, pre-internet.
L Break Into Program (@breakintoprogram.co.uk) reply parent
I can't remember exactly how I wrote the code, though remember capping it at a handful of iterations if X didn't reach 0, and used the Y (in the example given) as a good estimate.
L Break Into Program (@breakintoprogram.co.uk) reply parent
Probably. I think I can fudge it due to the way I'm pre-rendering the triangles.