Tuna Posted August 26, 2021 Report Share Posted August 26, 2021 (edited) Hi, I've been working on tools for a new 8-Bit computer, the Cerberus2080, which has both a Z80 and 6502 processor (some details here: https://www.thebyteattic.com/p/cerberus-2080.html ) As part of this, I've developed an online IDE and emulator, and have used it to write a Manic Miner style engine for the computer in 6502 assembler. The code is written from scratch, with the level data using my own fairly efficient format (about 350 bytes/level, sprites are stored without mirroring). So far I have the first couple of levels working (no vertical guardians yet!) and I think it's fairly accurate to the original. You can see the source code and try it out in the emulator here (Chrome or Edge browser required): https://feertech.com/legion/cerberus.html?p=miner/rtz/&f=miner.asm,utils.asm,sprites.asm,graphics.asm,level1.asm,level2.asm I'd be very grateful for any feedback. Edited August 26, 2021 by Tuna Fix links Spider, jetsetdanny and Heracleum 1 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted August 26, 2021 Report Share Posted August 26, 2021 Welcome @Tuna 🙂 I had to use Chrome (as you mentioned) as it did not work in Firefox. I had a quick go on the first cavern, it plays nicely. It feels smooth in its action and the speed is about perfect. I like the 'loss of life' effect too, the top-to-middle and bottom-to-middle horizontal lines to effectively 'close' the game for that life. I'm attaching a small screenshot: One thing I did note and it may of been me, as I'd not read the documentation ☺️ was I had to assemble it first, simple enough just one more click then run. I'm sure others will be along soon to provide their thoughts too. jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
Tuna Posted August 26, 2021 Author Report Share Posted August 26, 2021 Thank you! I'm glad you like it. Cerberus is a black and white, character based machine, so getting it to work has been an interesting challenge. The bonus is that the play area is actually 40 characters by 20, so it's possible to define much bigger levels than the original game. There is no limit on the number of guardians, and conveyors can go both left and right in the level. The 'wipe' effect is a substitute for the original colour flash. I hope to get it working in Firefox at some point, but yes, the emulator does require that you click "Assemble" before you can run the game. jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted August 27, 2021 Report Share Posted August 27, 2021 Welcome to the forum, Tuna! 🙂 Thank you for sharing the info about your interesting project 👍. I have completed the two levels. They feel nice to play. One thing I would appreciate would be to be able to use Q for left and W for right, which are the keys I usually use to play MM and JSW games (plus Space to jump, which works in your version). One difference I noticed in comparison to the original, which actually affects the gameplay, is that in the original "MM" Willy can step down from this platform: onto this platform: safely, while if he tries to do it in your version, he drops down to his death. I am looking forward to the next levels! 🙂 Spider 1 Quote Link to comment Share on other sites More sharing options...
Tuna Posted August 27, 2021 Author Report Share Posted August 27, 2021 That is such fantastic feedback! Thank you! I'll take a look at what's happening with those two platforms and see if I can fix the fall. jetsetdanny and Spider 1 1 Quote Link to comment Share on other sites More sharing options...
Tuna Posted August 27, 2021 Author Report Share Posted August 27, 2021 Found the bug.. turns out the very last frame of the crumbling floor wasn't solid, so you couldn't complete the last step. One interesting (maybe!) feature of the engine is that the whole screen is a valid playing area (40x30 characters). escape.mp4 Heracleum and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Tuna Posted August 27, 2021 Author Report Share Posted August 27, 2021 17 hours ago, Spider said: Welcome @Tuna 🙂 I had to use Chrome (as you mentioned) as it did not work in Firefox. Which version of Firefox are you using (and which OS)? It works fine on mine (91.0.2 (64-bit) on Windows 10) Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted August 27, 2021 Report Share Posted August 27, 2021 Assembles and runs on Brave / Firefox / chrome / edge /opera. jetsetdanny, Tuna and Spider 2 1 Quote Link to comment Share on other sites More sharing options...
Heracleum Posted August 27, 2021 Report Share Posted August 27, 2021 @Tuna It's really good! 👌 The only tiny remarks I can make: looks like the conveyor belt animation is 2 times slower than the original (or 0.5 game clock) which isn't really a glitch at all, looks nice; Willy has a slight flicker (but might as well depend on how the machine work) For the rest it really feels and behaves like the ZX's version, also on the only thing I can't really stand: jumping in the opposite direction jumps up! Ugh Matthew why? 😅 That's why in my HTML5-canvas Manic Mission (thread) I definitely avoided that quirk, so you can zig-zag jump with more agility. I even changed the "walk/jump on conveyors" behaviour but I see you accurately adopted ZX's way. I'm curious: did you also faithfully follow the "whatever pixel a guardian collides it must be WIlly" rule? Btw two thumbs up for me 👍👍 I love monochrome games. Spider and jetsetdanny 1 1 Quote Link to comment Share on other sites More sharing options...
Tuna Posted August 27, 2021 Author Report Share Posted August 27, 2021 Thanks! The conveyor belt animation ended up as being what felt comfortable, I must admit I paid more attention to the overall speed of the guardians and air than to the belts! The slight flicker is a feature of Cerberus - the hardware video system is completely asynchronous to the CPU, so you can't avoid hitting the beam occasionally. In that sense, the video emulation in browser is 'faithful'! I tried to reproduce the behaviour for jumps and turns accurately in my code (though I note the original uses a table which somehow seems overkill for the actual logic), as the original was such a good template. There are frustrations like the turn/jump behaviour, but the levels tend to be designed around those oddities, so it doesn't hurt. For collision, I actually test for Willy hitting a guardian rather than the other way around. If nothing else, it's much faster as the guardians are just character cells, whereas Willy has to be pixel shifted into place, so I can test for collisions simultaneously with drawing him. It does make the logic around the penguin behind the exit in Level 2 a bit of a pain though. Spider and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.