Cool "Streemerz" game from Action52 Remake Project

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Cool "Streemerz" game from Action52 Remake Project
by on (#76418)
I've just played through this Flash game several times:
http://www.kongregate.com/games/MrPodunkian/streemerz/

It's supposedly a remake of the Streemerz game from Action 52, but it's more of a Bionic Commando style action/puzzle game, complete with authentic 8-bit Engrish.

And some levels make Battle Kid seem easy.

by on (#76419)
Fun! A lot better than the original. :cry: :roll: :wink:


Thanks for the link!

by on (#76427)
Pretty cool game. The dialog is great! =)

I just wish these NES-like projects were actually made for the NES. That would make them so much cooler!

by on (#76436)
tokumaru wrote:
I just wish these NES-like projects were actually made for the NES. That would make them so much cooler!

Sometimes it's useful to prototype the game first on a "big" platform and then reduce it to the small platform. This lets the original developers concentrate on balancing the game itself, even with inefficient programming, and leave fighting the target platform's limitations to the port team. This can be seen in the "Hong Kong Originals" (common in the far east) and 16-bit to SMS ports (common in Brazil, as I understand it).

by on (#76441)
Problem is there's an awful lot of prototyping and very little porting! This Streemerz game would make a great homebrew.

by on (#76445)
i though that a 16 bit to 8 bit conversion was a very bad idea as seeing that some people tried to make super mario world for NES.

But seeing how someone made a perfect rickroll song on the NES and how tinytoons adventures had layering to make a better looking image im sure this is possible. to make a great port of a game.

by on (#76448)
gamax92 wrote:
i though that a 16 bit to 8 bit conversion was a very bad idea as seeing that some people tried to make super mario world for NES.

Some other ports, such as the HKO ports of Aladdin for Genesis and Aladdin for Super NES, would have been decent with a bit more polish in the play control. Also see any Game Boy Color game; the GBC is not unlike an NES with MMC5 and more RAM.

So I guess the next step is to contact the game's author to see if 1. he wants the game ported, and 2. he can offer any help with the port, such as design documents.

by on (#76454)
I just decided to play the game and i dont like part of the dialog "Don't touch master y's balls" dont you think that sound a little wrong? other than that the game is exciting and fun. I think porting this to the nes would work fine but i see a few parts where 5 colors were used instead or 4 colors. That might be an issue.

by on (#76457)
gamax92 wrote:
"Don't touch master y's balls" dont you think that sound a little wrong?

Yeah, but that's the point. The dialog is crap, like in lots of old games, to the point of sounding like sexual comments at times. The dialog in this game is half of the fun!

by on (#76458)
It's a pretty simple game, but it sure is fun! Too bad the resolution is wrong (320x240). Would love to see this ported over to the NES. Actually I'm kind of interested in doing that myself, because lack of graphics has always been the biggest problem with NESDev for me. However the levels would need to be re-designed or horizontal scrolling implemented because of the resolution.

by on (#76460)
hmm i didn't realize the resolution problem but it can be fixed by cropping the screens off a little bit or by making the level look the same but not exactly the same.

by on (#76466)
Or even...*gasp*... horizontal scrolling!

by on (#76468)
Just don't handle the camera like Lode Runner, where the player can't see much in front of his character. But the few screens I played through look like they could easily be modified for a 16x15 MT layout.

The web page linked at the top of the topic played a (fairly long) commercial for HP printers that print over the Internet, then a black screen. I had to reload the page to get it to load.

by on (#77297)
I actually started working on this after okaying it with the original author first. He sent me the player sprites but hasn't responded to my latest message where I asked for more assets (levels...). :)

Here's how it looks currently:
Image

"Streaming" (not fine tuned yet), physics, collisions etc are already done. Just need to implement the pie throwing clowns (pretty simple) and the fire candles. And a bunch of other stuff, but it's looking pretty good.

I was wondering if somebody would like to help with converting the levels? The job is simple but tedious: take screenshots of each screen in the Flash game and edit all sprites/etc out.

by on (#77303)
Cool!!!

by on (#77310)
I think it would be eaiser to get the level data out with some kind of Rom Corruptor to figure out where the data is, and what format it's in. Only thing is that I can't run the flash local, because it has host checking code, I'd need to turn that off first. I don't know of any good tools for hacking AS3.

by on (#77320)
Dwedit wrote:
I think it would be eaiser to get the level data out with some kind of Rom Corruptor to figure out where the data is, and what format it's in. Only thing is that I can't run the flash local, because it has host checking code, I'd need to turn that off first. I don't know of any good tools for hacking AS3.

Yeah I wasn't able to extract the game from the site. If somebody knows how to do it let me know.

by on (#77333)
Normally, I use SWFMill to parse a flash file, but it hits parse errors on the second DoABCDefine (Actionscript 3) block. Normally, you'd get something resembling a stack machine language if you disassembled the flash, but not with the bugs in SWFMill.

by on (#77337)
I was able to extract the images with Sothing SWF Decompiler 6.1, and it also can decompile at least some of the code in the game (might be helpful for finetuning). But couldn't get the level data. I hope the original author can send me those files, it's such a big waste of time trying to reverse engineer it.

by on (#77515)
I think that rather than just remaking it as it was, you should do more with it. An 8 or 9 level game.

by on (#82458)
Has anything happened with this?

by on (#82459)
Sivak wrote:
Has anything happened with this?

Unfortunately no. It came to halt when the author of the original version didn't respond to my queries about the level data. I was little bit surprised that he didn't seem interested at all. I simply hate repetitive work (i.e. converting the levels manually)...

The project isn't abandoned though, I've been working on my more advanced game engine, and should be able to transfer this project over to it pretty easily.

Sivak wrote:
I think that rather than just remaking it as it was, you should do more with it. An 8 or 9 level game.

I agree.

by on (#82460)
thefox wrote:
Unfortunately no. It came to halt when the author of the original version didn't respond to my queries about the level data. I was little bit surprised that he didn't seem interested at all.

You'd think that a person who made a NES-like game would be interested in seeing their game running on an actual NES, but apparently that's not the case here... Kinda sad.

by on (#82467)
tokumaru wrote:
thefox wrote:
Unfortunately no. It came to halt when the author of the original version didn't respond to my queries about the level data. I was little bit surprised that he didn't seem interested at all.

You'd think that a person who made a NES-like game would be interested in seeing their game running on an actual NES, but apparently that's not the case here... Kinda sad.


Probably because it sounds like ROM hacking, unauthorized stuff..? Gray area.

by on (#82469)
Zepper wrote:
Probably because it sounds like ROM hacking, unauthorized stuff..? Gray area.


Gray area? Please no! This is 100% new code, ain't it? This project is too awesome to stop. If you find no better way of extracting the levels, I'll see if I can lend a hand with the conversion process.

by on (#82473)
Of course, it's a flash version. Plus these games code for the A52 probably is some of the worst ever released in any game ever, nobody would that as a base. It's NESDev, not NESHack.

by on (#82477)
Actionscript is just C-like curly brace syntax. And variables don't need declaration, they automatically become members of the class or movie clip. Undeclared variables that haven't been used yet return "undefined".

So yeah, it's messy in that there's no explicit variable declaration, but the source code could easily be changed to C++ once you add in the variable declarations.

Then Actionscript 3 comes out and everything gets turned on its head, it's a whole different beast. I haven't seen any working free decompilers for AS3. Plenty for AS1/2 though.

by on (#89516)
In the notes for Alter Ego, Shiru wrote:
I had to completely redo all the levels to the NES attribute grid, only keeping overall design of the original levels.

Lode Runner's levels were also altered subtly to fit the smaller height of the NES playfield.

If you have screenshots of all the levels, I could probably write a tool to convert the screenshots into usable maps that can be re-edited to fit the design into the NES. I really want to see this NES remake continued even if only to provide some continuity from point A to point B.

by on (#89533)
Beat Master-Y in one sitting, after 241 painful deaths. I did wonder whether the death count would wrap after 255 just for nostalgia... :P

Loved the BC parodies of the game, still gotta see if I can beat it playing as Proffessor Tary :)

I too would love to see a NES port, if only to avoid being killed multiple times by browser lag...

by on (#90808)
tepples wrote:
I really want to see this NES remake continued even if only to provide some continuity from point A to point B.

Yeah that would be nice, not sure if I can fit the game in NROM though (not really interested in trying to optimize it for just that reason).

by on (#90834)
thefox wrote:
It's a pretty simple game, but it sure is fun! Too bad the resolution is wrong (320x240).

That's probably due to the weird fact that the NES (and System M/J generally) has non-square pixels. As computers usually use square pixels, 240 scan lines at a 3:4 aspect ratio gives 320 samples per line. Which happens to be QVGA. As a lot of EMUs scale their graphical output to QVGA (or another 3:4 size), it's not surprising that you see this sort of thing.

by on (#90845)
NTSC pixels are square if they're 7/12 of a color subcarrier cycle wide. (That's for 240p; for 480i, it's 7/24.) This is where we get the 8:7 PAR for the NTSC NES, because the PPU makes a dot every 8/12 of a color cycle.

Now for a recap
thefox wrote:
okaying it with the original author

Good.

Quote:
He sent me the player sprites

Good.

Quote:
hasn't responded to my latest message where I asked for more assets (levels...)

I think I know how to get screenshots of the levels by extracting them from a YouTube speedrun of the Flash game. Then I could use some basic image processing to figure out which metatile is in each position. That would give me a collection of 20x15 grids, ready to rework into 16x14 grids for this project.

by on (#90850)
Quote:
Quote:
hasn't responded to my latest message where I asked for more assets (levels...)

I think I know how to get screenshots of the levels by extracting them from a YouTube speedrun of the Flash game. Then I could use some basic image processing to figure out which metatile is in each position. That would give me a collection of 20x15 grids, ready to rework into 16x14 grids for this project.

Hah, I hadn't thought about that, sounds crazy enough to work. :) If you can get the screenshots for each level this way, I can do the post processing from that point onward (I have tools for optimizing the metatile sets etc etc). Also, I think it might be fine to use the 320x240 levels with horizontal scrolling for this. It's a little bit awkward yeah, but not too bad on the tests I've done.

by on (#90871)
Bit offtopic and maybe known already, but looking for that Flash playthrough mentioned made me realize that there also was a Streemerz sequel made.

Very short short though, pretty much a 1 level demo. But nevertheless pretty cool... doubt it'd be even possible to adapt to the NES though with all the rotations of the playfield as part of the gameplay :)

Download link here

by on (#90872)
Watching that video of streemerz 2. It's kind of annoying how every 2 seconds he tries to throw in a reference to something. It's more fun when it's at least a little subtle.

by on (#90873)
I agree most of it seems a little over-the-top, in comparison to the more polished first game. But hey, given how this was developed with a strict rule of working on the game 1 hour/day for one month, making it a 28 hours work effort, I'd say the result is pretty damn impressive.

by on (#90916)
Any chance I could convince you to implement vertical scrolling? I think it would improve the game a bit. Maybe I just suck (which, in twitch, I generally do), but some the screen transitions made it hard to avoid Mr. Y's Balls.

by on (#90929)
Karatorian wrote:
Any chance I could convince you to implement vertical scrolling? I think it would improve the game a bit. Maybe I just suck (which, in twitch, I generally do), but some the screen transitions made it hard to avoid Mr. Y's Balls.

Possibly, I have been thinking about it, and I already got a multidirectional scrolling engine done, so...

by on (#90930)
One of the pie-throwing clowns in the original flash game can't be dodged without switching screens to make his previous shots disappear.

by on (#91018)
Here are the maps extracted from a speedrun. Get them while they're hot:
http://www.mediafire.com/?pp201l5f3ufyshq

Caution: Looking at these maps may cause flashbacks to when NES games were in Nintendo Power.

by on (#91022)
There's also a bunch of "DefineBinary" tags in the flash file. Maybe some of them are maps.

by on (#91034)
tepples wrote:
Here are the maps extracted from a speedrun. Get them while they're hot:
http://www.mediafire.com/?pp201l5f3ufyshq

Caution: Looking at these maps may cause flashbacks to when NES games were in Nintendo Power.

Good work, I'll try to clean up some of these later today.

by on (#91040)
Dwedit wrote:
There's also a bunch of "DefineBinary" tags in the flash file. Maybe some of them are maps.

Do you know a way of dumping the binary blocks?

by on (#91043)
Here's all the DefineBinary tags ripped right out of the SWF file.

These are raw SWF tags, including the 2 byte header that specifies the tag type and size in bytes. Tags larger than 63 bytes get 4 more bytes for the size of the tag.

I looked at a few of them, many of them seem to be text. Binary122 is even a flash file, it's the Mak Gam logo.

by on (#91052)
Dwedit wrote:
Here's all the DefineBinary tags ripped right out of the SWF file.

These are raw SWF tags, including the 2 byte header that specifies the tag type and size in bytes. Tags larger than 63 bytes get 4 more bytes for the size of the tag.

I looked at a few of them, many of them seem to be text. Binary122 is even a flash file, it's the Mak Gam logo.

I took a quick look as well, there's a curious signature "CNC ARRAY" in some of them. Some googling led me to ClickTeam's forum, and then it hit me, CNC = Click 'n Create, i.e. one of those WYSIWYG game/multimedia tools. It looks like the game might have been made using one of the ClickTeam's tools, such as Multimedia Fusion (I didn't know it could produce SWF files until now).

Shouldn't be too hard to figure out the format of that file.

EDIT: Wasn't too hard indeed, seems to be like this:
Code:
CNC ARRAY format
----------------

signature: CNC ARRAY\0
unknown dword: 02 (version number maybe?)
dword: x dimension
dword: y dimension
dword: z dimension
dword: option flags
  lowest two bits indicate the type: 1 = numeric array, 2 = text array
  next bit is "base 1 index" flag
  next bit is "global to this application" flag

after that comes x*y*z ints


EDIT: The Flash version is not made in Multimedia Fusion, maybe the level editor was (there are references to FlashPunk in the SWF, which is a Flash game engine).

by on (#91069)
Good news -- the maps are indeed in the binary blobs. Here's a little Python script to parse the array out of one of them:
Code:
import struct

f = open( "binary004.bin", "rb" )

# Skip the Flash stuff.
f.seek( 12, 1 )

sig = f.read( 10 )
if sig != "CNC ARRAY\0":
    print "Signature didn't match"
    exit()
   
def readInt( f ):
    return struct.unpack( "<i", f.read( 4 ) )[ 0 ]
   
ver = readInt( f )
x_dim = readInt( f )
y_dim = readInt( f )
z_dim = readInt( f )
option_flags = readInt( f )

print ver, x_dim, y_dim, z_dim, option_flags
assert option_flags & 0b11 == 1

array = [ ]

for z in range( z_dim ):
    array.append( [ ] )
    for y in range( y_dim ):
        array[ -1 ].append( [ ] )
        for x in range( x_dim ):
            array[ -1 ][ -1 ].append( readInt( f ) )
           
# For each z, print each row.
for z in range( z_dim ):
    print "z = {}:".format( z )
    for y in range( y_dim ):
        print array[ z ][ y ]


Here's the tilemap that is used:
Image

The map from binary004.bin corresponds to map4.jpg in tepples' screen shots, which will certainly be useful later when making sure that things look the way they should.

BTW Dwedit, if you have a way of extracting all the media (pictures, audio) from the SWF file in some automated way, I'd appreciate that. Currently I have to capture these one by one manually.

EDIT: One more thing. There are three layers in the map files:
- z = 2 is layer where most of the background stuff is
- z = 1 contains some other stuff like the dead guy/whatever in map4 (tiles 99, 100)
- z = 0 contains the doors (tiles 117, 118) and some other stuff
Didn't figure out the exact purpose of these extra layers just yet.

by on (#91074)
Images from the game (You already got most of the tileset, everything else is sprites or other misc images)

Sounds from the game. I had to rename these by hand and delete duplicates. Most names are based on the export symbol names, but they're not identical.


edit: screwed up on one of the sound effects, oh well..

by on (#91075)
Heh, there's cheetahmen sprites inside! Is it an unlockable secret I didn't discover when playing the flash version, or is it one of those planned features that didn't make it to the end? In any case, it'd be fun to have them in your NES version... :)

by on (#91076)
Dwedit wrote:
Images from the game (You already got most of the tileset, everything else is sprites or other misc images)

Sounds from the game. I had to rename these by hand and delete duplicates. Most names are based on the export symbol names, but they're not identical.

Thanks! Ah, so the numbering in the map actually doesn't start from 1, I just accidentally cropped off the left and right border from the tileset image.

tepples, can you split the NES version related messages from this thread to a new thread under the Homebrew Projects forum?

by on (#91077)
The cheetahmen sprites appear when you replay the last area. You race against your ghost, and the ghost is a cheetahman.

by on (#91078)
Quote:
The cheetahmen sprites appear when you replay the last area. You race against your ghost, and the ghost is a cheetahman.


Ahh... I replayed the whole game with Professor Tary and with Master-Y, but So I guess the cheetahman will only appear if you replay the whole game with Superb Joe after beating it once?

by on (#91093)
thefox wrote:
tepples, can you split the NES version related messages from this thread to a new thread under the Homebrew Projects forum?

PM me with details and I'll do so. It's just hard to keep continuity in a split topic when I can't find a single run of posts that make the digression self-contained. And except for the first few posts, most posts in this topic appear to be about either the NES port or the REing of the Flash game to make the NES port. Otherwise, it might be easiest just to create a new topic in Homebrew Projects.

by on (#91096)
tepples wrote:
thefox wrote:
tepples, can you split the NES version related messages from this thread to a new thread under the Homebrew Projects forum?

PM me with details and I'll do so. It's just hard to keep continuity in a split topic when I can't find a single run of posts that make the digression self-contained. And except for the first few posts, most posts in this topic appear to be about either the NES port or the REing of the Flash game to make the NES port. Otherwise, it might be easiest just to create a new topic in Homebrew Projects.

Yeah, I made a new thread for it: http://nesdev.com/bbs/viewtopic.php?p=91095