MMM rebooted

Page 1/4
| 2 | 3 | 4

By inchl

Resident (33)

inchl's picture

20-07-2020, 23:44

In 1996 NOP released a preview of their first game named 'The incredible micro mirror men'. The game was never finished, but its development was rebooted in 2019. Since we gained over 20 years of coding experience the bar was set at the highest level in recreating our beloved game...

Via this topic we will post relevant development progress and "funny" test game graphics. To view, test or play any of the public released concept versions via webmsx, please visit our website.

http://nopmsx.nl > development > mmm rebooted
Last update: 20200720

Login or register to post comments

By Manuel

Ascended (17061)

Manuel's picture

20-07-2020, 23:51

Finally! Smile

By erpirao

Paragon (1101)

erpirao's picture

21-07-2020, 00:11

Yes, yes, yes

By hamlet

Scribe (3253)

hamlet's picture

21-07-2020, 00:21

Nice surprise!

By NYYRIKKI

Enlighted (5605)

NYYRIKKI's picture

21-07-2020, 05:08

I was pretty sad when I realized that MMM was cancelled. I liked the playable demo a lot and you had the bar pretty high already back then. Now it seems I can start waiting again, great! Smile

By Randam

Paragon (1037)

Randam's picture

21-07-2020, 07:59

This is amazing news. Can't wait for the game. Are you also gonna include a level editor for it?

By gdx

Prophet (3813)

gdx's picture

21-07-2020, 10:51

I doesn't know IMMM. What kind of game is it?

By Grauw

Ascended (9379)

Grauw's picture

21-07-2020, 10:58

The Incredible Micro Mirror Men is Lemmings for MSX! There is a demo from the 90s that you can play.

By Meits

Scribe (6042)

Meits's picture

21-07-2020, 11:00

How nice. Getting something brand new of which I have fond memories of a quarter century ago. That's something to look out to.
You go guys!

By inchl

Resident (33)

inchl's picture

21-07-2020, 13:38

The game is not edited, but programmed.

The level editor is very different than the one used in 1996. The 2020 'editor' is a windows console app that reads a json config file containing all graphics elements, sprites, audio but it also compiles several .asm code files on demand (using the glass compiler after parsing some custom instructions) for each specific level. These .asm files are in fact small programs each running 'simultaneously' and control, monitor and manipulate the game. For example: each sprite is controlled by such program and interacts with its environment. It checks if its allowed to walk to left, right, determines if its must fall down, stand-up etc. If you would like to have a door that opens or closes, you must write a small program for it.

The 'July 20, 2020' example on our website contains such small program to control a text balloon above the mmm sprite.

Main game loop:

			
		; create mmm
		call	sprite_create_SP
		dw	sprite_lemming_walk
		ld	(ix+struct_sprite..x),240
		ld	(ix+struct_sprite..y),231
		ld	(ix+struct_sprite..mirrorBits),4
		push	hl
	
		; create text balloon
		call	sprite_create_SP
		dw	sprite_text
		pop	hl
		ld	(ix+struct_sprite..follow+0),l
		ld	(ix+struct_sprite..follow+1),h

mainLoop:
		call	game_draw
		jr	mainLoop

Text balloon program:

bios:
		jp	initialize
		jp	cleanup

initialize:				

mainLoop:	
		; get mmm to follow
		ld	e,(ix+struct_sprite..follow+0)
		ld	d,(ix+struct_sprite..follow+1)
		ld	iyl,e
		ld	iyh,d
		; use its coordinates
		ld	e,(iy+struct_sprite..x)
		ld	d,(iy+struct_sprite..y)				
			
		; check which text to draw above the mmm	
		ld	hl,textTable-5
		push	hl
.find:		pop	hl
		ld	bc,5
		add	hl,bc
		ld	a,(hl)
		cp	255
		ret	z
		push	hl
		cp	(iy+struct_sprite..mirrorBits)
		jr	nz,.find
		inc	hl
		ld	a,(iy+struct_sprite..x)
		cp	(hl)
		jr	c,.find
		inc	hl
		cp	(hl)
		jr	nc,.find
		inc	hl
		ld	a,(hl)
		inc	hl
		ld	h,(hl)
		ld	l,a
		pop	bc
		jp	(hl)			
				
drawText1:	call	sprite_draw("text.png",0,0,109,20,2,-54,false)
		jr	mainLoop
								
drawText2:	call	sprite_draw("text.png",0,25,68,35,6,-54,false)
		jr	mainLoop

textTable:	db	4,0,50
		dw	drawText1	; grass foreground (walking left)
		db	0,0,20
		dw	drawText1	; grass foreground (walking right)
		db	0,45,70
		dw	drawText2 ; cool (walking right)
		db	-1
				
cleanup:	ret

By Manel46

Hero (601)

Manel46's picture

21-07-2020, 15:11

Two questions:
How do you get 130 colors? On each split screen, on each layer, is the palette changed?
How do you get 230 lines? Perhaps with set adjust vertical, R # 18?

Page 1/4
| 2 | 3 | 4