Jump to content
Jet Set Willy & Manic Miner Community

Manic Miner for Cerberus2080 (6502, new code)


Tuna

Recommended Posts

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 by Tuna
Fix links
Link to comment
Share on other sites

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:

mm.png

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

 

cerberus1.jpg

 

onto this platform:

 

cerberus2.jpg

 

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! 🙂

Link to comment
Share on other sites

@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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.