HELL YEAH! - arcade platform shooter (my first Z80 game!)

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.
Nienn Heskil
Microbot
Posts: 132
Joined: Tue Jun 09, 2020 6:14 am
Contact:

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Nienn Heskil »

presh wrote: Mon Oct 19, 2020 3:12 pm
TMD2003 wrote: Sun Oct 18, 2020 9:48 pm Better still, do it as +3, +D and Beta for good measure!
I've no idea how, but if this is requires a simple change to the LOAD_LEVEL routine and someone wants to help guide me through it if I get stuck then sure ;)
I think it might just be possible to cram it all in a single 48K load somehow. At least, that level data seems to compress rather well (I got just under 4K using exomizer). And there's a big enough buffer to serve as a temporary unpack-space. :) Granted, I've only looked at the code briefly, and I realize it might not be possible due to other factors.

An easier option is to use the 128K extra memory. After the main code loads, test if it's a 128K, and in that case, continue to load all the level data into the 128K pages. Likewise in your level loader, call the tape routine if on a 48K, but LDIR from a page on a 128K.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2641
Joined: Mon Nov 13, 2017 3:16 pm

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Ast A. Moore »

Einar Saukas wrote: Mon Oct 19, 2020 4:11 pm This is probably the most impressive "my first Z80 game" ever. Congratulations! :)
Hear, hear!
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
Ast A. Moore
Rick Dangerous
Posts: 2641
Joined: Mon Nov 13, 2017 3:16 pm

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Ast A. Moore »

presh wrote: Mon Oct 19, 2020 3:12 pm
Ast A. Moore wrote: Dang it, I’m usually not a fan of character-based movements in Speccy games, but this one looks great!
Well, a lot of that's down to you my friend - I'd never have known about floating bus display sync otherwise, and the scrolling looked godawful without it!
Glad my little writeup came in handy!
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
Joefish
Rick Dangerous
Posts: 2058
Joined: Tue Nov 14, 2017 10:26 am

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Joefish »

This is really good. I like it a lot. I like the colourful graphics.

To be picky or other suggestions...

Again, sticking to a moving platform would be an improvement. And if you can't go down, a 'duck' / 'lie-flat' move to dodge enemy fire would be good. Though having a 'jump-down' option is a rare luxury in itself!

Personally, I'm also not keen on constantly respawning enemies, particularly during the stand-off boss fights (though those are pretty well done). I'm a big fan of Probotector on the GameBoy (though I can't get on with any of the other Contra games), and this reminds me a bit of that.

Some control in the air when jumping would help with the platforming bits, though I get that's not so easy with character movement. It's hard to apply the sort of inertia calculations that prevent you from just changing direction willy-nilly in mid-air. But it would be nice if you could jump straight up, then move just one or two characters over before you land. Or take a running jump but pull it up short if it looks like you're going to overshoot. Does it make you fall forever diagonally if you miss your landing point? Maybe making it just drop straight down after you've covered a certain distance would look more realistic.

Also, in 'keyboard' controls, you can just have the entire half-row of keys operate FIRE. That way you get M or SPACE.
presh
Manic Miner
Posts: 237
Joined: Tue Feb 25, 2020 8:52 pm
Location: York, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by presh »

Nienn Heskil wrote: Mon Oct 19, 2020 4:59 pm I think it might just be possible to cram it all in a single 48K load somehow. At least, that level data seems to compress rather well (I got just under 4K using exomizer). And there's a big enough buffer to serve as a temporary unpack-space. :) Granted, I've only looked at the code briefly, and I realize it might not be possible due to other factors.

An easier option is to use the 128K extra memory. After the main code loads, test if it's a 128K, and in that case, continue to load all the level data into the 128K pages. Likewise in your level loader, call the tape routine if on a 48K, but LDIR from a page on a 128K.
I figured the levels would compress nicely, there's a lot of repeated whitespace / patterns for starters. Space on 48K is the biggest problem though, the upper area of memory is used for the various display/attribute buffers and collision map (about 10KB). There definitely isn't 4KB free, that's for sure! :(

I didn't even have room for an interrupt table, which is one reason there's no AY music - the other being that the display routine now manipulates the stack pointer, so interrupts are disabled for this reason (and also for additional speed).

I had considered a 128K version, but figured most folks would be playing on emulator where multiload wouldn't be so much of an issue. Even so, I tried to keep the load times down (less than 30 sec) for the "realists" out there. :)

If I do a "v2" then no doubt I'll have a play with 128K paging though, as that's still on my list of currently unchartered territory!
Last edited by presh on Mon Oct 19, 2020 8:12 pm, edited 1 time in total.
User avatar
cmal
Manic Miner
Posts: 629
Joined: Fri Jun 05, 2020 1:05 am
Location: California

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by cmal »

Great work, [mention]presh[/mention] ! You made some good use of the lockdown time. I'm still getting used to playing the game and not dying so quickly but I can tell it's a piece of excellence. For a "First Z-80 game" it's amazing!

Only issue I've found so far is the platforming thing as others have mentioned.
User avatar
cmal
Manic Miner
Posts: 629
Joined: Fri Jun 05, 2020 1:05 am
Location: California

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by cmal »

Ast A. Moore wrote: Mon Oct 19, 2020 6:12 pm
presh wrote: Mon Oct 19, 2020 3:12 pm Well, a lot of that's down to you my friend - I'd never have known about floating bus display sync otherwise, and the scrolling looked godawful without it!
Glad my little writeup came in handy!
That's still on my list of things to do...read through Ast's floating bus doc.
presh
Manic Miner
Posts: 237
Joined: Tue Feb 25, 2020 8:52 pm
Location: York, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by presh »

Joefish wrote: Mon Oct 19, 2020 7:22 pm And if you can't go down, a 'duck' / 'lie-flat' move to dodge enemy fire would be good.
This was in my original spec, but I couldn't get the graphics to look any good... plus the whole "ran out of memory" thing happened. So yeah, I feel ya!

Some control in the air when jumping would help with the platforming bits, though I get that's not so easy with character movement [...] take a running jump but pull it up short if it looks like you're going to overshoot.
You're 100% correct about character cell movement making it difficult to pull of any kind of inertia without it looking jagged.

I settled with this: You can turn around in mid-air, which stops horizontal movement. You need to do this to get certain pickups safely, in fact. ;)

Does it make you fall forever diagonally if you miss your landing point? Maybe making it just drop straight down after you've covered a certain distance would look more realistic.
Yes. I did try building this in, but there's a few places where you can take a gigantic daring leap from the top and avoid some real hassle... and when I tested it with in these parts, the player just ended up falling short, plunging into lava/spikes/etc and it just felt really annoying, so I took it back out again :)
User avatar
Einar Saukas
Bugaboo
Posts: 3097
Joined: Wed Nov 15, 2017 2:48 pm

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Einar Saukas »

[mention]presh[/mention] I sent you a PM a while ago...
User avatar
MrClump
Microbot
Posts: 112
Joined: Sun Aug 16, 2020 7:12 pm
Location: Torbay, Devon, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by MrClump »

The ZX Spectrum Next doesn't seem to like the TZX file at all, there are no loading sounds when you try to load it and then no other TZX files will load until you do a cold reboot of the computer. It's almost as if it's causing the Pi to crash. Is it possible to get a TAP version?
User avatar
ketmar
Manic Miner
Posts: 697
Joined: Tue Jun 16, 2020 5:25 pm
Location: Ukraine

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by ketmar »

presh wrote: Mon Oct 19, 2020 3:12 pm
TMD2003 wrote: Sun Oct 18, 2020 9:48 pm Better still, do it as +3, +D and Beta for good measure!
I've no idea how, but if this is requires a simple change to the LOAD_LEVEL routine and someone wants to help guide me through it if I get stuck then sure ;)
for +3 is is very easy, it has nice file i/o API. it may conflict with interrupts and 128K mapping in the future, tho. but for now it should be as easy as calling "open file, read bytes, close file". +3 manual has +3DOS API documentation.

with Beta you will need some memory for sector buffers (at least 256 bytes, and you may prolly need to write your own directory parsing code). it is much harder, because TR-DOS documentation sux, and its API sux too.

dunno about +D, it should be quite easy too.

i'd recommend to start with +3, as it is the easiest of all -- basically, being one of standard configs, and with manuals.
presh
Manic Miner
Posts: 237
Joined: Tue Feb 25, 2020 8:52 pm
Location: York, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by presh »

MrClump wrote: Mon Oct 19, 2020 9:30 pm The ZX Spectrum Next doesn't seem to like the TZX file at all, there are no loading sounds when you try to load it and then no other TZX files will load until you do a cold reboot of the computer. It's almost as if it's causing the Pi to crash. Is it possible to get a TAP version?
Strange! Here's a .tap version:

HELL YEAH! v201018.tap.zip
User avatar
Manu128k
Dizzy
Posts: 83
Joined: Tue Aug 13, 2019 9:45 pm
Location: Spain
Contact:

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Manu128k »

Congrats! It's a nice shooter and a great first ASM game.
+3code

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by +3code »

Nice and colourful game. Great!
Nienn Heskil
Microbot
Posts: 132
Joined: Tue Jun 09, 2020 6:14 am
Contact:

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Nienn Heskil »

Figured out the powerup at the beginning (hint: backtrack moar), and... yep, quite a few secrets in there it seems. I also can almost make it to the end of LV2!

Meanwhile, here's a quick TR-DOS version. Hope you don't mind. :)
User avatar
MrClump
Microbot
Posts: 112
Joined: Sun Aug 16, 2020 7:12 pm
Location: Torbay, Devon, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by MrClump »

presh wrote: Mon Oct 19, 2020 10:22 pm
MrClump wrote: Mon Oct 19, 2020 9:30 pm The ZX Spectrum Next doesn't seem to like the TZX file at all, there are no loading sounds when you try to load it and then no other TZX files will load until you do a cold reboot of the computer. It's almost as if it's causing the Pi to crash. Is it possible to get a TAP version?
Strange! Here's a .tap version:

HELL YEAH! v201018.tap.zip
That did the trick, loaded fine and half an hour later I am still playing! Just got the bouncing skulls, jeez this is tough and I'm on easy!
User avatar
Juan F. Ramirez
Bugaboo
Posts: 5133
Joined: Tue Nov 14, 2017 6:55 am
Location: Málaga, Spain

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Juan F. Ramirez »

just tried it and I must say it's a very nice shooter.

Great first work. Keep coding mate!!!
User avatar
Morcar
Microbot
Posts: 155
Joined: Sun Jan 28, 2018 12:55 am
Location: UK
Contact:

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Morcar »

michellekg
Drutt
Posts: 35
Joined: Tue Nov 14, 2017 9:54 pm
Location: St. Petersburg
Contact:

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by michellekg »

Such a nice game! It's a shame there's no loading screen though. Maybe you can ask someone like Andy Green for help? He's a great artist and very productive one. Or maybe someone from this forum can help with this task?
User avatar
Andre Leao
Bugaboo
Posts: 3149
Joined: Mon Nov 13, 2017 9:28 am
Location: Portugal
Contact:

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Andre Leao »

Filipe Veiga's review of Hell Yeah! (in portuguese)

https://planetasinclair.blogspot.com/20 ... -yeah.html
presh
Manic Miner
Posts: 237
Joined: Tue Feb 25, 2020 8:52 pm
Location: York, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by presh »

Right, time to resurrect this thread :D

I found some unused code and binned it, giving me enough space to fix the platform "bug" (so the player "sticks" to them instead of having to run alongside them!)

I've also got some engine improvements lined up thanks to [mention]cmal[/mention]'s suggestion here.

There may be a few cosmetic updates too, to make things look a bit snazzier (if what I have planned looks ok!)

May even get some AY music in there! If I can get it sounding ok without interrupts... :?
presh
Manic Miner
Posts: 237
Joined: Tue Feb 25, 2020 8:52 pm
Location: York, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by presh »

Made some good progress last night with engine optimisation... one of the main drawing routines now uses stack-based reading plus some self-modified code to make things a bit quicker.

Still need to optimise the other drawing routines but getting one of them working like this is a big step for me :)
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2641
Joined: Mon Nov 13, 2017 3:16 pm

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by Ast A. Moore »

Are you going to post an updated version for us to try out?
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
lovebug
Drutt
Posts: 29
Joined: Mon Jan 11, 2021 7:01 pm

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by lovebug »

totally amazing, congratulations
lovebug.ml
randomly changing stuff in your code until it works is "hacky" and "bad coding practice" but if you can do it fast enough its "machine learning"
presh
Manic Miner
Posts: 237
Joined: Tue Feb 25, 2020 8:52 pm
Location: York, UK

Re: HELL YEAH! - arcade platform shooter (my first Z80 game!)

Post by presh »

Ast A. Moore wrote: Wed Jan 13, 2021 3:31 pm Are you going to post an updated version for us to try out?
Eventually! :D
Post Reply