Scuttlebutt

People are still making stuff for the Sinclair related machines. Tell us about new games and other software that runs on the Spectrum, ZX80/ZX81, Pentagon and Next.
User avatar
Morkin
Bugaboo
Posts: 3251
Joined: Mon Nov 13, 2017 8:50 am
Location: Bristol, UK

Re: Scuttlebutt

Post by Morkin »

...Cripes, first Davey Sludge and now another one, what's this obsession over bums and bum-based products... :lol:

Regardless of the content, just to re-iterate what a few people have said - I can't recall seeing a first attempt at a game which is this (technically) slick.

...Would be interesting to know how long it took you to learn to program to this level (assuming it was from scratch, but maybe it wasn't?)...

[Edit: also I wish I had the ability of being able to do cool graphics as well as program!]
My Speccy site: thirdharmoniser.com
Nomad
Manic Miner
Posts: 600
Joined: Thu Dec 28, 2017 12:38 pm

Re: Scuttlebutt

Post by Nomad »

Morkin wrote: Tue Feb 27, 2018 10:11 am Regardless of the content, just to re-iterate what a few people have said - I can't recall seeing a first attempt at a game which is this (technically) slick.

...Would be interesting to know how long it took you to learn to program to this level (assuming it was from scratch, but maybe it wasn't?)...

[Edit: also I wish I had the ability of being able to do cool graphics as well as program!]
This ^^^ :lol: Karl's has to win a mars bar award for the slickest first program/post (so far..).
KarlH
Drutt
Posts: 6
Joined: Mon Feb 26, 2018 1:19 pm

Re: Scuttlebutt

Post by KarlH »

Ralf wrote: Mon Feb 26, 2018 8:43 pm Great job! Funny and entertaining.

The music full of false notes suits it very well too :lol:
Thanks! The music is mostly fixed now, I believe. There was an incorrect pitch value for the note B in the AY-3-8192 documentation, which messed up my frequency tables. 1892 should have been 1812.

http://www.sinclair.hu/hardver/otletek/ ... 3-8912.htm

I've also added redundant controls for a joystick in port 1.

New game file: scuttlebutt.tap
KarlH
Drutt
Posts: 6
Joined: Mon Feb 26, 2018 1:19 pm

Re: Scuttlebutt

Post by KarlH »

Morkin wrote: Tue Feb 27, 2018 10:11 am ...Would be interesting to know how long it took you to learn to program to this level (assuming it was from scratch, but maybe it wasn't?)...
Well, I started learning Spectrum programming five weeks ago, but I've been building computer games for other platforms as a hobby for almost 35 years. That definitely helped.
KarlH
Drutt
Posts: 6
Joined: Mon Feb 26, 2018 1:19 pm

Re: Scuttlebutt

Post by KarlH »

Nomad wrote: Tue Feb 27, 2018 6:47 am Karl - you will have to forgive me; but as I have no shame, I will ask what others probably though... :lol:

Would you think of releasing the source code? There is a lot of technical skill that went into getting such a program to work in the way that it does. 8-) It reminds me of looking at an iceberg.

(meaning for the window-lickers/peanut gallery... there is much hidden depth to this program.)
I'd rather not do that just yet. The code is poorly structured and a good portion of the variables and subroutines have ... unpleasant names.

It took some experimenting, but none of it is rocket science. The vertical confinement of the two large sprites is what makes it possible to render the game at 50 fps without any flickering. Here is what I do after each "halt" call:
  1. Erase all the poop
  2. Perform the game logic
  3. Draw the poop that's in the top half of the screen
  4. Erase and redraw the man sprite
  5. Draw the poop that's in the bottom half of the screen
  6. Erase and redraw the butt
  7. If necessary, update the score and bucket fill level
This way nothing is being updated while the raster beam is working on it. The butt will be one frame out of sync with the other mobile objects, but since its exact location isn't important, it doesn't matter.
dfzx
Manic Miner
Posts: 673
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Scuttlebutt

Post by dfzx »

Ast A. Moore wrote: Mon Feb 26, 2018 3:22 pm Smooth, 50 fps masked sprites...
How do you know it's 50fps? Can you tell just by looking, or is there some other way you'd know that?
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: Scuttlebutt

Post by Ralf »

Thanks! The music is mostly fixed now, I believe.
Great! Actually I believed that it was intended :lol:
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Scuttlebutt

Post by Ast A. Moore »

dfzx wrote: Wed Feb 28, 2018 9:04 am
Ast A. Moore wrote: Mon Feb 26, 2018 3:22 pm Smooth, 50 fps masked sprites...
How do you know it's 50fps? Can you tell just by looking, or is there some other way you'd know that?
Both. (Trust me, I know a thing or two about writing games for the Spectrum, which run at 50 fps. ;) )

P.S. You use Fuse, right?
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
dfzx
Manic Miner
Posts: 673
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Scuttlebutt

Post by dfzx »

Ast A. Moore wrote: Wed Feb 28, 2018 9:23 am
dfzx wrote: Wed Feb 28, 2018 9:04 am How do you know it's 50fps? Can you tell just by looking, or is there some other way you'd know that?
Both. (Trust me, I know a thing or two about writing games for the Spectrum, which run at 50 fps. ;) )
OK, so for those of us without that experience, what's the other way?
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: Scuttlebutt

Post by Ast A. Moore »

dfzx wrote: Wed Feb 28, 2018 9:26 am
Ast A. Moore wrote: Wed Feb 28, 2018 9:23 am Both. (Trust me, I know a thing or two about writing games for the Spectrum, which run at 50 fps. ;) )
OK, so for those of us without that experience, what's the other way?
1. The intuitive way (requires experience, though): Slow your emulator down to 2 percent of the original speed.
2. The tedious but informative way: Break into the running program using your favorite debugger/monitor and single-step for the duration of one frame (approximately). (Most emulators have debuggers that display the current T state. Fuse, does, anyway.)
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
User avatar
danlucio
Drutt
Posts: 6
Joined: Tue Feb 27, 2018 3:02 am

Re: Scuttlebutt

Post by danlucio »

I loved the carton game style
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: Scuttlebutt

Post by Ralf »

How do you know it's 50fps? Can you tell just by looking, or is there some other way you'd know that?
Actually there is some hidden feature in Spin emulator which enables it. I don't remember the details but you have to press some obscure shortcut and extra buttons will appear. One of them is "advance emulator by one frame". So you pause the emulator first, then press the button, game advances by one frame and you see if something moved or not ;)
User avatar
Pegaz
Dynamite Dan
Posts: 1209
Joined: Mon Nov 13, 2017 1:44 pm

Re: Scuttlebutt

Post by Pegaz »

Interesting.
Maybe someone knows which shortcut activates this option.
Does SpecEmu have such a feature?
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: Scuttlebutt

Post by Ralf »

Maybe someone knows which shortcut activates this option.

Found it:
https://www.worldofspectrum.org/forums/ ... ent_141012
There's also the option to "frame advance" whilst paused - pause the emulation, then right click the pause button. The buttons will be replaced with a new set - debugger, full speed and frame advance. Clicking frame advance will emulate one frame and then stop.
dfzx
Manic Miner
Posts: 673
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Scuttlebutt

Post by dfzx »

Ralf wrote: Fri Mar 02, 2018 10:09 am Maybe someone knows which shortcut activates this option.

Found it:
https://www.worldofspectrum.org/forums/ ... ent_141012
There's also the option to "frame advance" whilst paused - pause the emulation, then right click the pause button. The buttons will be replaced with a new set - debugger, full speed and frame advance. Clicking frame advance will emulate one frame and then stop.
I'm trying to think what "frame advance" actually means. Does it mean "run as far as the next HALT instruction"? Or until the next interrupt fires? What actually would a frame advance be, in Spectrum terms?
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
User avatar
Kweepa
Manic Miner
Posts: 311
Joined: Sat Feb 03, 2018 6:14 pm
Location: Albuquerque, New Mexico

Re: Scuttlebutt

Post by Kweepa »

It could be as simple as 'run until 20ms (simulated) has passed'.
Post Reply