Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

threads for previous weeknight 'developer' sessions
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by Arcadian »

As the new games and demo coding sections of the forum are currently very active, we are now hosting weeknight "Dev sessions" on Zoom, that are primarily focused on the development of new games and graphics/music demos for Acorn computers as well as development tools, emulators and debuggers.

They take place the week in-between the 2 x Tuesday night 'general' sessions on the Thursday evening, between 7pm and 10pm.

The sessions are intended for developers to share progress updates and request/offer help and feedback. We hope that these sessions will help motivate and encourage developers to see projects through to completion.

Just to be clear - these sessions are open to everyone: programmers, graphics artists and musicians, even if you've just got an interest/appreciation of - or ideas for - new games and demos, please come along for moral support - there may be opportunities to beta-test new versions of upcoming projects :). There really isn't a limit to the number of places available - well, the maximum we can host in a Zoom meeting is 100 but it's unlikely we'll ever get anywhere near that figure!

If there are any issues you'd like help with - or would like to demonstrate something - please leave details in the thread and we'll add them to the lists of items to be covered.

If you are new to Zoom, forum member JudgeBeeb has written a handy guide to getting set up and logged in.

I've already sent invites out to most of the Dev Night regulars, but should anybody else want to attend - or if you haven't received the Zoom logins - please post in this thread and I will send them to you.

Attended:
  1. Arcadian (Dave)
  2. kieranhj (Kieran)
  3. RobC (Rob)
  4. sPhilMainwaring (Phil)
  5. MarkDRyan (Mark)
  6. tricky (Richard)
  7. dudleysoft71 (James)
  8. BigEd (Ed)
  9. oss003 (Kees)
  10. DaveFootitt (Dave)
  11. chrisb (Chris)
  12. IanS (Ian)
  13. billcarr2005
  14. dominic (Dominic B)
  15. Pernod (Nigel)
  16. chrisn (Chris)
  17. dp11 (Dominic)
  18. JIM (James) with son (Lewis)
  19. ChrisSawer (Chris)
  20. EdwardianDuck (Jeremy)
  21. SarahWalker (Sarah)
  22. flibble (Peter)
  23. Tom Williamson
  24. damiensturdy (Damien)
  25. Leonardo Vettori
  26. Francesco Fiorentini - http://retromagazine.net
Please subscribe to the ABug YouTube channel!
User avatar
kieranhj
Posts: 1103
Joined: Sat Sep 19, 2015 11:11 pm
Location: Farnham, Surrey, UK
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by kieranhj »

After a few months away from the (retro) keyboard, my new year's resolution is to start on some new projects and do some more Masterclasses.

To that end, I've prepared An Intro to CRTC Registers (part 1) for Thursday evening. In this session we can cover:
  • A high-level overview of what the CRTC actually does
  • CRTC registers and how to program them
  • Custom modes / changing screen dimensions to save RAM
  • Hardware scrolling and CRTC address wrap around
If all goes well I'm planning to do a follow up session to cover some more advanced techniques, namely Vertical Rupture and Smooth Vertical Scrolling, but one step at a time!

Look forward to seeing you all there. :)
Bitshifters Collective | Retro Code & Demos for BBC Micro & Acorn computers | https://bitshifters.github.io/
User avatar
ChrisB
Posts: 547
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by ChrisB »

As requested by Arcadian I can come along (but only after 9pm) to give an update/brief demo of my Untitled Dungeon Game.
Castle Defender, Untitled Dungeon Game, Night Ninja, Wordle, Waffle, Acorn Island, Beebchase, Ghostbusters
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by Arcadian »

Ah that's fantastic thanks Chris.

So as for the schedule it's still quite open, but let's go with the following for now:

7:00pm - 7.30pm: General Chat

7.30pm - 8.00pm: BBC Micro co-processor graphics compression (Dudleysoft71 - James Watson)

8.00pm - 9.00pm: An Intro to CRTC Registers - Part 1 (kieranhj)

9.00pm - 9.15pm: New 3D Bomb Alley-inspired game (JIM - James Watson)

9.15pm - 9.45pm: Untitled Dungeon Game update (Chris B)

9.45pm - 10.00pm: New Rally X update (Tricky)

Would anybody else like to take a slot, either to demo their project(s) or to ask for help/advice on what you're currently working on?
Please subscribe to the ABug YouTube channel!
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by Arcadian »

Ok super I've put you in for 9.45 - 10.00pm - is that ok?

If anybody else would like a slot, we can make one available 7.45pm - 8.00 ...
Please subscribe to the ABug YouTube channel!
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

I don't really need a slot, but I could give a quick demo of my ray tracing demo i did.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
User avatar
BigEd
Posts: 6261
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by BigEd »

dudleysoft71 wrote: Wed Jan 13, 2021 12:02 am I don't really need a slot, but I could give a quick demo of my ray tracing demo i did.
It might be interesting to talk about your VDU handler running on the host: that's 6502 code, it's small (presumably) and any saved cycles will help performance.
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

I can definitely do that, it's a fairly simple system, but it's probably possible to speed it up a bit more, it's been a while since I wrote the 6502 code so it might definitely benefit from a couple more eyes on it.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
markdryan
Posts: 267
Joined: Sun Aug 20, 2017 11:37 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by markdryan »

BigEd wrote: Wed Jan 13, 2021 9:17 am It might be interesting to talk about your VDU handler running on the host: that's 6502 code, it's small (presumably) and any saved cycles will help performance.
It might also be interesting to show the code that installs the 6502 handler on the copro side. For some reason I'd assumed that this would be really complicated to do but it turns out to be pretty straight forward. It's just a matter of issuing a few sys calls from the copro side.
User avatar
hoglet
Posts: 12663
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by hoglet »

dudleysoft71 wrote: Wed Jan 13, 2021 9:27 am I can definitely do that, it's a fairly simple system, but it's probably possible to speed it up a bit more, it's been a while since I wrote the 6502 code so it might definitely benefit from a couple more eyes on it.
Is your library published anywhere?

Ed and I took a quick look at it a few days ago (by running the host side in the ICE and single stepping throught it).

From memory, the inner loop was:

Code: Select all

.loop
LDA &FEE1    / 4
STA &XXXX,X  / 6
INX          / 2
DEY          / 2
BNE loop     / 3
There is one small optimization you could do. If you sent each block of data backwards, you could do away with one of the loop counters, which reduces the loop from 17 cycles to 15 cycles.

Dave
Last edited by hoglet on Wed Jan 13, 2021 11:55 am, edited 1 time in total.
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

Yeah, I have thought about that, I've just updated my code to remove the INX, and to send the block backwards, my new code is actually 1 byte shorter than the previous code.

I haven't published it anywhere yet, I want to tidy it up a bit, it's still referencing specific stuff from BAGI, including some host library code which needs to be separated out into it's own ASM source file, and needs turning into a proper library with it's own makefile. Those are on my TODO list, but life keeps getting in the way of doing it.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
User avatar
tricky
Posts: 7694
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by tricky »

I'm not sure what size these transfers are, but would it be worth unrolling the loop 2X and jumping into the middle if it is an odd number?
Obviously, it can be unrolled as many times as you like, but the jumping in gets a little more expensive.
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

I've just had a bit of a sort out of the code, I've made a few changes both host and parasite side, the practial upshot of this is that the screen transfer routine should be a lot faster, I've changed the following things:
  • Changed blocks are sent in reverse order, this removes the INX call, reducing the inner loop by 2 cycles.
  • Changed code 128 to send a new start address, this allows skips larger than 127 bytes to happen quicker than sending 2 skip instructions.
  • Parasite code has been changed to ignore any changes between the last change and the end of screen memory, meaning it wont send lots of skips down to the end of screen memory.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

tricky wrote: Wed Jan 13, 2021 12:19 pm I'm not sure what size these transfers are, but would it be worth unrolling the loop 2X and jumping into the middle if it is an odd number?
Obviously, it can be unrolled as many times as you like, but the jumping in gets a little more expensive.
The address is self modifying so it would take more overhead to sotre and increment both addresses, since the largest block is 127 bytes it seems like a lot of extra code for not a lot of saving, I'm not sure of where the breakeven point would come with this change.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
User avatar
BigEd
Posts: 6261
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by BigEd »

From a learning perspective, it would be really good to see both the before and the after code, dudleysoft. If you could just put this code in a gist or a git repo, that would be a great record of what can be done and how to do it.
dp11
Posts: 1757
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dp11 »

unrolling a few times will be a certain win even with self modifying code. Another option to consider is to interleave the data for example to receive 1K you end up with :

Code: Select all


.loop
LDA &FEE1    / 4
STA &3000,X  / 6

LDA &FEE1    / 4
STA &3100,X  / 6

LDA &FEE1    / 4
STA &3200,X  / 6

LDA &FEE1    / 4
STA &3300,X  / 6

INX          / 2
BNE loop     / 3

User avatar
tricky
Posts: 7694
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by tricky »

dudleysoft71 wrote: Wed Jan 13, 2021 12:47 pm
tricky wrote: Wed Jan 13, 2021 12:19 pm I'm not sure what size these transfers are, but would it be worth unrolling the loop 2X and jumping into the middle if it is an odd number?
Obviously, it can be unrolled as many times as you like, but the jumping in gets a little more expensive.
The address is self modifying so it would take more overhead to sotre and increment both addresses, since the largest block is 127 bytes it seems like a lot of extra code for not a lot of saving, I'm not sure of where the breakeven point would come with this change.
For 2X
Calc addr as usual, but when storing first addr, store second as well.

Code: Select all

sta odd+3+1 ; 4
sta odd+3+2 ; 4
tya ; 2
lsr A ; 2
bcs odd ; 2.5

.loop
LDA &FEE1    / 4
STA &XXXX,X  / 6
DEY          / 2
.odd
LDA &FEE1    / 4
STA &XXXX,X  / 6
DEY          / 2
BNE loop     / 3
So, one off overhead for loop is 14.5 (14 or 15) and saving is ~1.5Y (3*(Y-1)/2) so it is cheaper for > 10 bytes - unless I have miss-calculated.
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

I'd have to check how much space I've got left for the code, I'm trying to keep it in one page at &C00, I'm trying to leave as much of the normal low memory as possible, to allow the parasite to use whatever features of the host, and since its doing it's own rendering i felt that the UDCs were the best place for the host code.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
dp11
Posts: 1757
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dp11 »

show us your code :) :) compressing the other 200 odd bytes to get space to speed up the transfer sounds fun. You can also put the transfer loop in zero page and the self modifying code becomes faster as the address being modified is in zero page
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by Arcadian »

Sounds like we may need to dedicate a chunk of time to James (dudleysoft71) as there is clearly a lot of interest and potentially questions!

Shall we put down 7.30pm - 8.00pm? (And if there are any coding help requests - which there haven't been any of so far - could be moved to 7.00 - 7.30pm?)
Please subscribe to the ABug YouTube channel!
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

dp11 wrote: Wed Jan 13, 2021 1:55 pm show us your code :) :) compressing the other 200 odd bytes to get space to speed up the transfer sounds fun. You can also put the transfer loop in zero page and the self modifying code becomes faster as the address being modified is in zero page
I've just created a github repository for the project here which has the latest build.

I'm not sure how much zero page is available while using the tube host, I notice that the tube itself is using some of ZP for it's own code.

The code for the host is here.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
User avatar
BigEd
Posts: 6261
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by BigEd »

Many thanks for sharing!
dp11
Posts: 1757
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dp11 »

If you want to spin of a new thread that is fine. Can you send the pallet data backwards too? and the length *2
User avatar
dudleysoft71
Posts: 298
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by dudleysoft71 »

dp11 wrote: Wed Jan 13, 2021 3:16 pm If you want to spin of a new thread that is fine. Can you send the pallet data backwards too? and the length *2
I have done, you can find it here.
James Watson - DudleySoft

BBC Model B 32K - PiTubeDirect, Pi1Mhz, Smally Mouse, Gotek, DFS/ADFS, 4xSWRAM.
User avatar
kieranhj
Posts: 1103
Joined: Sat Sep 19, 2015 11:11 pm
Location: Farnham, Surrey, UK
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by kieranhj »

I’m hoping my session will be closer to 30 minutes than an hour but I’ve yet to run through it all. There are some slides but want to make sure there’s more time spent on practical examples. This may or may not generate questions depending on whether I’m lecturing to the already knowledgeable!

EDIT: Hopelessly optimistic, it's probably an hour. :lol:
Bitshifters Collective | Retro Code & Demos for BBC Micro & Acorn computers | https://bitshifters.github.io/
User avatar
IanS
Posts: 2535
Joined: Mon Aug 31, 2009 7:02 pm
Location: UK
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by IanS »

Arcadian wrote: Thu Dec 10, 2020 11:23 pm I've already sent invites out to most of the Dev Night regulars, but should anybody else want to attend - or if you haven't received the Zoom logins - please post in this thread and I will send them to you.
Can you send me an invite, I will try and join a bit later on.
User avatar
oss003
Posts: 3849
Joined: Tue Jul 14, 2009 12:57 pm
Location: Netherlands
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by oss003 »

@Dave, are the invitations already sent for tonights meeting?

Greetings
Kees
User avatar
billcarr2005
Posts: 1840
Joined: Fri Sep 09, 2005 4:01 pm
Location: UK
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by billcarr2005 »

Arcadian wrote: Thu Dec 10, 2020 11:23 pm I've already sent invites out to most of the Dev Night regulars, but should anybody else want to attend - or if you haven't received the Zoom logins - please post in this thread and I will send them to you.
I might get chance to drop in sometime during proceedings, if i could get myself a login :)
User avatar
Arcadian
Site Admin
Posts: 4223
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Weeknight 'Virtual' Dev session #9, Thursday 14th January 2021, 7pm - 10pm (GMT)

Post by Arcadian »

Hi

Kees yes the invites to Dev Night regulars were issued 10th December, I've checked and you should have received one. There have been plenty of acceptances so far.

IanS and BillCarr I will PM you the meeting info now. If you'd like to regularly receive the Dev Night invites let me know.
Please subscribe to the ABug YouTube channel!
Post Reply

Return to “past weeknight 'developer' sessions”