Jump to content
IGNORED

Pocket Platformer on the Sega Master System - is it possible?


r_chase

Recommended Posts

According to @haroldoop in another thread before this one, maybe.

I've been thinking of this ever since that Bitsy Converter was a thing: Pocket Platformer on the Sega Master System.
On the possibility of the conversion, here's what he said:

Quote

 

As for the possibility of using it for generating SMS games:

- Its tiles are 8x8, which is the same tile size SMS uses;

- Technically, it has no limits on how many tiles may be used, but as long as not a lot of them are used, conversion is possible;

- It uses more colors than the Sega Master System can cope with, but it is possible to reduce this automatically, with the usual caveats;

- It won't be possible to automatically convert the music, but it may be possible to give the user the possibility of informing their own SMS-compatible VGM files;

- Rotation won't be possible at all;

- Squish animations won't be possible to do in realtime on the SMS, but may instead be precomputed during the conversion.

 

Because of these considerations, it is possible.

For more information about Pocket Platformer, click here.

Uh...I think I'll let Haroldo take it from here, since idk how to describe in more specific terms.

Here you go, Haroldo, a separate thread to prevent clog. lmao

  • Like 1
Link to comment
Share on other sites

  

5 hours ago, r_chase said:

Great job doing your research. Glad we got ourselves a good basis for something. I do have a thought of SMS being superior in color compared to the later GameBoy Color...is that true?

In terms of color, the GBC has advantages in certain aspects, while the SMS has advantages in others; summarizing, from the top of the head:

  • On a Gameboy Color, each tile can only use four colors, while in the Sega Master System, each can use 16 colors;
  • The Game Boy Color has two 32 colors palettes, one for the background and one for the sprites, each further split into 8 four-color palettes; each individual background tile on the map can choose between any of the 8 background palettes, while each sprite can choose between one of the 8 sprite palettes;
  • The Sega Master System, on the other hand, has two 16 color palettes, one for the sprites and one for the background; the sprites can only use the sprite palette, while each individual tile on the map can choose between the background palette and the sprite palette;
  • Futhermore, on the GBC, each individual palette color can choose between 32768 colors, while in the SMS, they can only be chosen among 64.

So, essentially, the GBC can display more colors, but with greater limitations on how they can be used.

 

There are even GBC games that change color every scanline to achieve more than 2 thousand colors per screen; it requires lots of ROM space and CPU time, but it works:

 

 

On the other hand, there is a SMS tech demo that manages to change about 11 colors for every two scanlines:

 

 

 

As for the Pocket Platformer conversion, one possible downside is that games made in it could end up somewhat samey, just like hacks made using KiddEd still feel somewhat like AKiMW, even though they can still be pretty varied:

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, haroldoop said:

As for the Pocket Platformer conversion, one possible downside is that games made in it could end up somewhat samey, just like hacks made using KiddEd still feel somewhat like AKiMW, even though they can still be pretty varied:

 

To be fair, I've heard Alex Kidd in Miracle World is still a great game, miracle ball memes aside.

  • Like 1
Link to comment
Share on other sites

8 minutes ago, M-S said:

It seems like it's possible, how do you plan to do it? The GBC is based on an Intel 8088, so it seems like it would be possible to convert some of the code into Z80.

We're still in a planning phase, but one way to do it seems to be somehow converting Pocket Platformer's exported HTML file into code for an Sega Master System SDK. However, since this is JavaScript we're talking about, it might be a challenge.

  • Like 1
Link to comment
Share on other sites

20 hours ago, M-S said:

It seems like it's possible, how do you plan to do it? The GBC is based on an Intel 8088, so it seems like it would be possible to convert some of the code into Z80.

We are analyzing the viability of converting games made in "pocket platformer" (https://the-l0bster.itch.io/pocket-platformer) into Sega Master System ROMs. In theory, "pocket platformer" is currently limited enough that converting to tile based hardware like SMS, GBC, Genesis and SNES should be feasible. It would require extracting level and graphics data from the games, converting it to hardware-specific formats,  and code the entire engine from scratch (without editor, of course) in C.

 

Link to comment
Share on other sites

1 hour ago, M-S said:

I thought it was a PC editor with a GBC port, if it's not, then why the comparison?

Well, the comparison was between Sega Master System and the GameBoy Color. I asked @haroldoop about it because I wasn't too sure if any port to the Sega Master System would be viable. It's probably more viable for the GameBoy Color, considering that you were probably thinking GB Studio instead of Pocket Platformer, which are two different engines. GB Studio is made with GameBoy in mind and has many genre templates (including platformers) while Pocket Platformer is mainly for small platform games on the web.

However, I want to see if we can make convert Pocket Platformer games into other platforms, mainly starting with the Sega Master System (though the GBDK software that GB Studio is based on can in theory already make Sega Master System and even GameGear games) because I've seen it done with Bitsy games before. With my lack of experience, I might need help with that front.

So far, as haroldo said before, we could start by convert graphics and code from JavaScript into C, which probably has worked for some other people who really don't want to use Electron. Then again, converting Lua might be easier as demonstrated by the GBA port of Celeste Classic.

Edited by r_chase
  • Like 1
Link to comment
Share on other sites

5 hours ago, haroldoop said:

Starting to experiment with data extraction: https://github.com/haroldo-ok/pocket-platformer-exporter

 

The script above extracts the level/sprite data from the exported HTML into a JSON file (see attachment for example JSON).

generated.json 118.42 kB · 1 download

A JSON file is a start at least.

  • Like 1
Link to comment
Share on other sites

Just a reminder that I'm very glad that this is making great progress. I won't set any deadlines, but hopefully we'll get to the point where we could convert Pocket Platformer games to SMS games via SDCC compiler.

Also, one thing I should note is that I once wondered how JavaScript would work on a retro computer as well, such as the ZX Spectrum; obviously converting code is close enough though.

  • Like 1
Link to comment
Share on other sites

1 hour ago, r_chase said:

Just a reminder that I'm very glad that this is making great progress. I won't set any deadlines, but hopefully we'll get to the point where we could convert Pocket Platformer games to SMS games via SDCC compiler.

Also, one thing I should note is that I once wondered how JavaScript would work on a retro computer as well, such as the ZX Spectrum; obviously converting code is close enough though.

 

Instead of SDCC maybe someone could be convinced to keep working on ZX BASIC for the SMS.  That way we would get both another wonderful, easy BASIC compiler for consoles AND a platform game maker.

https://www.smspower.org/forums/12902-ZXBasicForSegaMasterSystem

 

..just sayiing :)

  • Like 1
Link to comment
Share on other sites

Unfortunately, it won't be possible to automatically convert JS to run on an 8-bit CPU at a decent speed.

Fortunately, "pocket-platformer" uses a fixed JS code for the engine; only the level data and the graphics change.

So, as long as the graphics/level data is extracted properly, it will be possible to reuse that for running it in a new engine.

Of course, this means that in order to make it run on a SMS via SDCC, it will be necessary to replicate all of the functionalities of the original engine from scratch in C.

Once that is done, it will be possible to combine the fixed C code with the converted level data.

 

In other words, "pocket-platformer" has a immutable JS part, that cannot be converted automatically, but it does not need to be converted.

The only part that actually changes is the graphics data and level data, but those can be extracted and converted automatically.

In order to make those graphics and level data be useful, it will be necessary to use C (or other suitable language) to write a reimplementation of the engine, a new immutable part, that can use the graphic and level data.

 

In other news, the engine can now convert the level objects, too:

 

level3.tmx

 

Tiled Level 3 Screenshot with objects.png

Edited by haroldoop
  • Like 1
Link to comment
Share on other sites

21 hours ago, Gemintronic said:

 

Instead of SDCC maybe someone could be convinced to keep working on ZX BASIC for the SMS.  That way we would get both another wonderful, easy BASIC compiler for consoles AND a platform game maker.

https://www.smspower.org/forums/12902-ZXBasicForSegaMasterSystem

 

..just sayiing :)

ngl, ZX BASIC would be nice, but I should note that there aren't that many external compilers for even Sinclair BASIC. Though, now I'm curious about that as well. Like...besides the SMS version, what is ZX BASIC anyway? Another thing is that more and more people are trying to switch to either Linux or Mac for their daily drivers...and yes, Chrome devices count as Linux, whether we like it or not.

Besides that, ZX BASIC would be neat for SMS.

  • Like 1
Link to comment
Share on other sites

7 minutes ago, r_chase said:

ngl, ZX BASIC would be nice, but I should note that there aren't that many external compilers for even Sinclair BASIC. Though, now I'm curious about that as well. Like...besides the SMS version, what is ZX BASIC anyway? Another thing is that more and more people are trying to switch to either Linux or Mac for their daily drivers...and yes, Chrome devices count as Linux, whether we like it or not.

Besides that, ZX BASIC would be neat for SMS.

 

In a way I was teasing haroldoop because he (or someone with a similar nickname) cobbled together a ZX BASIC port good enough for his SMS game projects.  Thought I might get him to continue working on it :)

 

https://www.smspower.org/forums/12902-ZXBasicForSegaMasterSystem

 

  • Like 1
Link to comment
Share on other sites

3 minutes ago, Gemintronic said:

 

In a way I was teasing haroldoop because he cobbled together a ZX BASIC port good enough for his SMS game projects.  Thought I might get him to continue working on it :)

That seems about right. I feel like he could continue ZX BASIC while still working on the VCS Game Maker thing and this very project, but I feel like he has enough projects as-is.

Link to comment
Share on other sites

1 hour ago, Gemintronic said:

 

In a way I was teasing haroldoop because he (or someone with a similar nickname) cobbled together a ZX BASIC port good enough for his SMS game projects.  Thought I might get him to continue working on it :)

 

https://www.smspower.org/forums/12902-ZXBasicForSegaMasterSystem

 

I made that initial version, though it was a little hack.

 

Paulo Silva also made a few (much cleaner) ZX-Basic experiments on the SG-1000 and SMS:

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

20 minutes ago, haroldoop said:

Maybe you could polish your own as well...? idk. I did post in the SMS Power forums for the first time though, saying that I hope it continues eventually.

Link to comment
Share on other sites

13 minutes ago, Gemintronic said:

It looks like the unmaintained source for Yuguzu is available in this thread:

https://www.smspower.org/forums/17569-SMSGameMakerMakeGamesWithoutCode?start=100

 

Yuguzu was shaping up to be a platform game maker for SMS.  Maybe y'all could tie the exported platform level data to a new build of Yuguzu and win.

That's crazy enough to might work.

  • Haha 1
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...