Ghost 'n Goblins for GFX9000 - First steps

Ghost 'n Goblins for GFX9000 - First steps

by assembler on 24-01-2013, 21:07
Topic: Development
Languages:

Spanish MSX group ASM, that we know from their recently announced game Losaben Akel for the Graphics 9000, has recently been working on an experiment to remake Ghost 'n Goblins for the GFX9000.

Using the same engine as Losaben Akel, there is a proof of concept video on their blog that showcases the smooth scrolling. Omnidirectional scrolling is already implemented (but not in the demo). The engine is designed to run on MSX turbo R, but ASM is certain they can also make it run on MSX2 in 25 fps.

The current demo only moves horizontally and lacks collision detection, but according to ASM that is very easy to add. Their blog also contains some sample code snippets that, as they themselves say, "is not very clean and optimized but a quick test to make the video".

Relevant link: Ghost 'n Goblins test

Comments (45)

By SkyeWelse

Champion (470)

SkyeWelse's picture

24-01-2013, 21:24

Wow, looking pretty nice there!

-Thomas

By Randam

Paladin (739)

Randam's picture

24-01-2013, 21:39

Those level gfx look darn sweet! Keep up the good work.

By supmsx

Master (142)

supmsx's picture

25-01-2013, 08:40

Could be a very good step,keep going

By msd

Paragon (1297)

msd's picture

25-01-2013, 19:25

Cool

By saccopharynx

Expert (93)

saccopharynx's picture

25-01-2013, 23:46

Congratulations !!! Indeed, it looks like we (MSX users) are finally going to have a more than decent version of GnG, for not saying what we have always been looking for. The colour combination and the forest depth look just great. Keep going and I hope to see this work finished...

CJ

By mais1976

Master (168)

mais1976's picture

26-01-2013, 14:52

Very Nice! Smile

By PingPong

Prophet (2834)

PingPong's picture

27-01-2013, 11:51

Why msx2? if gfx9000 can be compatible with a plain msx1 with 64k why not make it available also to msx1 users?

By assembler

Champion (348)

assembler's picture

27-01-2013, 13:23

Thanks for your comments.

The only problem would be the lack of memory mapper, but making the game in ROM format would not be needed. Yes we could do to make it work in a MSX1.

By Oscar

Guardian (541)

Oscar's picture

27-01-2013, 13:25

I think if you have a gfx9000 you are not using a MSX1 as base machine... I think MSX needs at least a few games that take profit of all power available Smile

By Manuel

Ascended (13163)

Manuel's picture

27-01-2013, 14:14

...begin nitpick...
assembler: MSX2 and having a memory mapper are not the same thing. There are MSX1's with memory mapper (e.g. Yamaha CX5MII/128) and MSX2's without (e.g. Sony HB-G900P).
...end nitpick...

By Jorito

Mr. Ambassadors (1718)

Jorito's picture

27-01-2013, 14:35

PingPong wrote:

Why msx2? if gfx9000 can be compatible with a plain msx1 with 64k why not make it available also to msx1 users?

Why MSX1? MSX1 users don't have a gfx9000 so it's completely pointless. Period.

By DanySoft

Champion (377)

DanySoft's picture

27-01-2013, 21:30

For Jupiter! Big smile Big smile

You were very good!

By what method did you convert the stage1 in a fixed image or pattern to make a map?

I made ​​a lot of progress to make equal the stage1 in a map with a maximum of 16K (in 8x8 for patterns).
The fact is that they can't are able to automatically fill in the pieces of the puzzle in a stage1 map in memory of MSX!

I searched all over the internet: convert an image (map) in the same pattern for 8x8 screen!

The only program I could find and convert to 8x8 is this link: site parallex

But unfortunately it has a limit of 256 characters!
Screen 5 supports up to 768 cells (256x192 in screen5)
So you can not handle all these 256 patterns ....

I wish you every success with the project GNG x v9990!
A greeting. ;)
DanySoft

By assembler

Champion (348)

assembler's picture

27-01-2013, 22:38

We are using a bitmap with 31 colors. Then, we order the palette and choose the first 15 colors and make a new image, and other image with the rest.
The bitmaps are converted with a program made specifically for GFX9000 by me: it generates G9B files with the tiles (max 256 per file) as many as needed, and MAP files with the tile information, divided into blocks of 16KB max.

By DanySoft

Champion (377)

DanySoft's picture

28-01-2013, 18:52

but? Question
have not used the P1 or P2??
This saves space on the VRAM instead of image size!

Even if you are as it is, but it can go the other areas of the game?
I have it all figured out, one of these stages is too large to fill the memory, then there is no room to add more sprites!

I stopped at the point of problem:
convert the original map in 8x8 map, I could not!

greetings Wink
DanySoft

NB: P2 may be the solution for the entire screen including
the stages 2,3 and 4 and can also all the sprites.
I'm working on but I always stop at the point of problem!

By assembler

Champion (348)

assembler's picture

28-01-2013, 18:55

Of course, we use P1.
The bitmap is the base to calculate the tiles and the map.

First stage only uses horizontal scroll, but the multidirectional scroll is ready for the next stages.

By assembler

Champion (348)

assembler's picture

28-01-2013, 20:08

Each layer in P1 has 64x32 tiles, 512x256 pixels. This is not enough to fit the whole map in either case for this game.

So the map is divided into blocks of 16 KB that fit in a memory slot. I select the slot that corresponds to the area I want to display in screen.

i.e. If the whole map has 8192 pixels wide, a slot has information for 8 lines of the map.
8192/8=1024 tiles width
1024x2=2048 bytes each line
16384/2048= 8 lines in each slot

If this map has 512 pixels height:
512/8 = 64 lines
64/8 = 8 slots

We need 128KB of memory to display a map with 8192*512 pixels.

By DanySoft

Champion (377)

DanySoft's picture

28-01-2013, 21:11

But, you see these numbers, which I have already calculated the size of the stages:

[stage1_parte1 e 2]
oriz: 448
vert:  28
stima: 448 x 24 = 10752 bytes

[stage2_parte1 e 2]
oriz:   124 + 69 + 195 + 58 =446
vert:    60 + 28 +  60 + 28 =    60
stima: 447 x 36 = 16092 bytes

[stage3]
oriz:   194 + 23 + 159 + 71 = 447
vert:    28 + 53 + 116 + 28  = 116
stima: 447 x 36 = 16092 bytes

[stage4]
oriz:   384
vert:    28
stima: 384x24 = 9216 bytes

[stage5] *
oriz:     96
vert:  148
stima: 96x148 = 14208 bytes

[stage6] *
oriz:   64
vert:  148
stima: 64x148 =  9472 bytes

[stage7 - Finale boss]
oriz:   32
vert:   28
stima: 32x24 = 768 bytes

But do not think all of you!?
I can do all by yourself with Gfx9000 but the problem is the emulator openmsx, sometimes it works and sometimes it does not work ....

I wish for a successful development of the project to v9990.
Maybe I'll give you some advice in more '.

greetings Tongue

DanySoft

By assembler

Champion (348)

assembler's picture

28-01-2013, 21:44

Each tile in gfx9000 uses 2 bytes, so the memory used is doubled, and in my case, i use 2 planes at the same speed, so the memory need to be doubled again.

I forgot the second plane in my numbers, but 4096x512 is big enough for a map.

To simplify the procesing, the lines length are rounded to the next pow of 2

By Sarcasmic

Master (149)

Sarcasmic's picture

29-01-2013, 18:48

Looks nice how did you get the GFX?? When is the release?? Maybe thinking of selling my small collection of big MSX stuff Hannibal

By msd

Paragon (1297)

msd's picture

29-01-2013, 18:59

Hey Sarcasmic: Don't sell it Wink

By DanySoft

Champion (377)

DanySoft's picture

29-01-2013, 20:07

assembler wrote:

Each tile in gfx9000 uses 2 bytes, so the memory used is doubled, and in my case, i use 2 planes at the same speed, so the memory need to be doubled again.

I forgot the second plane in my numbers, but 4096x512 is big enough for a map.

To simplify the procesing, the lines length are rounded to the next pow of 2

Exactly! Because the table is in word and not in bytes as in screen1
with 768 cells 8x8 (but divided in three parts from 0 to 256).
This operation can use more than 256 (up to 4096 patterns in
SCR_A and 4096 in SCR_B !

There is a trick to use in just 16K but
no need to use double single but, in the position of the map
1 = 0x00, 0x01 = 1 ... 255 = 0xFF
in the first part of the stage1 will be used only from 0 to 256,
in the second part of the stage1 will be using from 256 to 512.
This does not need to be loaded from the disk to the second part of stage 1. memory has 512K and can use all the patterns but divide in groups of 256!

Sorry, but sometimes they are a little smarter than you!

greetings Wink
DanySoft

By PingPong

Prophet (2834)

PingPong's picture

29-01-2013, 21:59

Jorito wrote:
PingPong wrote:

Why msx2? if gfx9000 can be compatible with a plain msx1 with 64k why not make it available also to msx1 users?

Why MSX1? MSX1 users don't have a gfx9000 so it's completely pointless. Period.

they can get it.
And the power is on GFX9000 not in msx2 or msx1 hw. They are, equals in power, except for gfx. But in this case, we are using v9990, so msx1 power == msx2 power.

By msd

Paragon (1297)

msd's picture

29-01-2013, 22:09

And then they want to have g9k stuff released on tape Tongue

By Huey

Prophet (2626)

Huey's picture

29-01-2013, 22:44

msd wrote:

And then they want to have g9k stuff released on tape Tongue

I kind of agree with PingPong this time. If I would make a gfx9000 game I would make it MSX1 compatible too.
Diskdrives and MMC/SD interfaces and flash cartridges do work on MSX1 too.

By DanySoft

Champion (377)

DanySoft's picture

29-01-2013, 23:24

Ok huey!

MSX is possible to use DISK or ROMflash to launch the game with v9990! Big smile
greetings
DanySoft

By hit9918

Prophet (2581)

hit9918's picture

03-02-2013, 20:30

I wondered what about a 9990 game is "MSX2".
There is one thing that is MSX1: the bios does not init mappers.
So, at startup of your app init the RAM mapper to default values. This also makes sense for apps who actualy not use the mapper.

This one is not so much "funny requests of low end users", it is more like "programming the much expandable MSX".

By DanySoft

Champion (377)

DanySoft's picture

04-02-2013, 16:28

Even at times you can use the ROM as a resource to make the game with v9990, then you can mount on MSX1 or MSX2 for you to have a minimum of memory 8K or 16K of RAM.
Sprites do not use the MSX1 but the chip v9990, which in horizontal row 16 sprites! (use P1 o P2). Wink

Greetings
DanySoft

By guantxip

Paragon (1569)

guantxip's picture

08-04-2013, 11:25

By Manuel

Ascended (13163)

Manuel's picture

08-04-2013, 13:07

Wow, very impressive! GFX9000+tR power!

By syn

Paragon (1527)

syn's picture

08-04-2013, 16:50

looks very good.. keep up the good works! Big smile

By JohnHassink

Ambassador (4803)

JohnHassink's picture

08-04-2013, 17:49

Very nice! Smile

By iamweasel2

Champion (454)

iamweasel2's picture

08-04-2013, 22:13

Wow, looks really great. What machine is it running? I trust the music will require MoonSound in order to have the best sound experience, right? Smile

We can only imagine what nice games we would have now if ASCII did the right thing and released Turbo-R with V9978 (V9990 + V9958 compatibility)... Maybe MSX would stay in the market some more years as a commercial platform...

By assembler

Champion (348)

assembler's picture

09-04-2013, 17:23

It's an TurboR GT, emulated in openMSX.

For now, the sound effect is not fully determined, but for now is winning the SCC option.

By Manuel

Ascended (13163)

Manuel's picture

09-04-2013, 21:51

You did check on real hardware right? The GFX9000 emulation is not very accurate yet.

By giuseve

Paladin (711)

giuseve's picture

19-04-2014, 10:41

Uhmm, a year without news.
Have someone got any info about this?

By o.geerdink

Champion (485)

o.geerdink's picture

19-04-2014, 21:16

iamweasel2 wrote:

Wow, looks really great. What machine is it running? I trust the music will require MoonSound in order to have the best sound experience, right? Smile

We can only imagine what nice games we would have now if ASCII did the right thing and released Turbo-R with V9978 (V9990 + V9958 compatibility)... Maybe MSX would stay in the market some more years as a commercial platform...

MSX was loosing that battle anyway. But now because PC's are so fast and overtaken by consumers the MSX is ready for a second life. MSX is so different now to me I can see myself using it the rest of my life. Making good software for MSX is an art, on a PC it's too easy nowadays. I hope many people feel the same way and other past MSX-ers will rejoin the cult.

By guantxip

Paragon (1569)

guantxip's picture

19-04-2014, 22:06

Assembler has continued with this game. A work of Assembler is the development of midi2tmu to add themes .tmu in the game.

By syn

Paragon (1527)

syn's picture

20-04-2014, 04:24

o.geerdink wrote:
iamweasel2 wrote:

Wow, looks really great. What machine is it running? I trust the music will require MoonSound in order to have the best sound experience, right? Smile

We can only imagine what nice games we would have now if ASCII did the right thing and released Turbo-R with V9978 (V9990 + V9958 compatibility)... Maybe MSX would stay in the market some more years as a commercial platform...

MSX was loosing that battle anyway. But now because PC's are so fast and overtaken by consumers the MSX is ready for a second life. MSX is so different now to me I can see myself using it the rest of my life. Making good software for MSX is an art, on a PC it's too easy nowadays. I hope many people feel the same way and other past MSX-ers will rejoin the cult.

I think it is funny that one of your first posts here on mrc was that you were thinking about selling your msx collection since you didnt do anything with it... and now you ended up buying even more stuff Smile

By Prodatron

Paragon (1778)

Prodatron's picture

24-04-2014, 15:29

o.geerdink wrote:

MSX is so different now to me I can see myself using it the rest of my life. Making good software for MSX is an art, on a PC it's too easy nowadays. I hope many people feel the same way and other past MSX-ers will rejoin the cult.

I totally agree Cool

By giuseve

Paladin (711)

giuseve's picture

07-06-2015, 21:16

Any news about this game?
If yes, what about a 9958 version with scc and no gfx9000?

By assembler

Champion (348)

assembler's picture

08-06-2015, 09:19

https://www.youtube.com/watch?v=CAgLEqI_84c

I wish I had time to make different versions: GFX9000, V9958, V9938, even for v9918. But this is a big game in which you have to consider many things. Make a v9958 version involve reprogramming every object, redefine and reduce graphics. Too much work and too little time.

By assembler

Champion (348)

assembler's picture

08-06-2015, 09:37

This is the current state of development.

http://youtu.be/bz-xBlzYOiE

By guantxip

Paragon (1569)

guantxip's picture

08-06-2015, 09:59

Good job, the end in near. Big smile

By Prodatron

Paragon (1778)

Prodatron's picture

08-06-2015, 10:08

Very impressive!

By ray2day

Champion (408)

ray2day's picture

08-06-2015, 12:43

Respect!

My MSX profile