Streemerz NES port

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

Post Reply
User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Sun May 13, 2012 7:54 am

Baby steps... I finished a preliminary version of the 4 channel arrangement of the main tune. I also wrote a small tool to convert Tilificator project files to corresponding sprite definitions and CHR files (for HUD faces). It'll take some time before I'll be able to actually start using the converted data, because cleaning up the project is the priority for now.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Wed Jun 13, 2012 8:07 am

Note to self: time to get back on this bandwagon soon if I want to finish it by the end of the summer. :)

tepples
Posts: 22013
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Wed Jun 13, 2012 8:41 am

If you need any help with this project, PM me here or catch me on #nesdev at EFnet.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Sat Jun 30, 2012 6:33 am

I've resumed working on this. I made a new git repo and I'm slowly moving stuff over from the old project, cleaning the modules and adapting them for MMC1. I'm currently using MMC1 because I need the WRAM, but hope to be able to switch to UxROM later, which should be a drop-in replacement because with MMC1 I'm using the 16K banking mode with CHR-RAM.

I've moved the map loading routine over and also wrote a new routine to load the nametable view. Previously I was using a routine from my multi-directional map scroller, which while works just fine, is unnecessarily generic/bloated for this project.

The remaining stuff (object handlers, sprite renderer etc) should be fairly straightforward to adapt to the new mapper.

User avatar
infiniteneslives
Posts: 2100
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives » Tue Jul 03, 2012 9:59 pm

Nice to hear you're back at it, keep it up!

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Wed Jul 04, 2012 5:42 am

infiniteneslives wrote:Nice to hear you're back at it, keep it up!
Thanks, I will!

The project is advancing nicely. I've moved most of the stuff over now. I've also added some new stuff like better state handler (for different game states like menu, game itself, HUD display etc) and more manageable banking (using CA65's .bank pseudo-op).

For those who don't know what .bank is, it basically allows one to assign a bank number to each segment in the linker config, then retrieve said number based on a symbol. So stuff like this is possible:

Code: Select all

lda #<.bank( someFunction )
jsr mapPRG
jsr someFunction
Definitely more manageable than specifying the bank numbers by hand every time. :)

Right now I have the level loading working again, with ability to scroll the levels horizontally and move up and down between screens using the controller.

One module that still desperately needs refactoring is objects.s: the object handlers. It has a bunch of references to some obsolete stuff which I've temporarily replaced with placeholders. But after that's all cleaned up I should be able to start working on some actual new stuff.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Sat Jul 07, 2012 6:57 am

Making progress once again. Let's see... *checks git log*.

Mostly I've been working on the "HUD", i.e. the textbox. It shows up properly, updates the nametable and the attributes, and uses sprite 0 hit to restore the level scroll afterwards. It can also display text already and as a quick mockup also displays Joe's face with some sprites. The only thing that remains to be implemented is restoring the level graphics (nametable + attributes) when the HUD closes (uploading stuff piece by piece when rendering is enabled is somewhat annoying...). I also need to implement some smaller stuff, like waiting for button press when text segment ends.

It's kind of ridiculous how it has taken me several days to implement something that probably took no more than 5 minutes on the original Flash game. :)

Oh yeah, I also did clean up most of the object handlers, so I have all the objects showing up in the levels once again.

The HUD faces will probably be what I'll be tackling next.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Sun Jul 08, 2012 10:19 am

thefox wrote:The HUD faces will probably be what I'll be tackling next.
And so I did. I have Joe's and Command's face animations converted, and wrote some code to upload the CHR tiles etc when the speaker changes. Still to be done are the palette updates and restoring the level sprite CHR tiles when the HUD closes. Restoring the tiles is once again kind of a bitch because it needs to be done over multiple frames in the NMI because rendering is enabled. I guess I should write some kind of generic routine to transfer a chunk of memory to PPU while rendering is enabled.

I also need to convert the rest of the face animations, but that's fairly straightforward manual(ish) work that I'm probably going to postpone for now and use the existing animations as placeholders for other characters.

I think I'll start working on the player next. First thing to do would be to dynamically upload the sprite tiles as the player animation changes. Then from there I'll do the player movement: walking, and of course, "streeming".

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Mon Jul 09, 2012 9:01 am

thefox wrote:First thing to do would be to dynamically upload the sprite tiles as the player animation changes.
Did this today. I'm really glad to get this finally done because I've been putting it off for a long time. It has a nice and simple interface, I simply tell it the frame number that I want to display and it takes care of the rest. Currently it uploads 8 tiles per frame and splits the upload to multiple frames if needed. Naturally the animation will lag behind if an upload takes more than 1 frame, but all sprite frames use less than 16 tiles so hopefully it will not be too noticeable.

User avatar
tokumaru
Posts: 11739
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Mon Jul 09, 2012 12:13 pm

thefox wrote:Currently it uploads 8 tiles per frame and splits the upload to multiple frames if needed.
Are you double buffering the player's tiles?

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Mon Jul 09, 2012 1:27 pm

tokumaru wrote:
thefox wrote:Currently it uploads 8 tiles per frame and splits the upload to multiple frames if needed.
Are you double buffering the player's tiles?
Yup. I have 64 tiles free in the sprite bank right now so there's plenty of space for that. I just hope I haven't forgotten about anything. :) I'm still kind of undecided whether I want to display score and deaths like in the original.

User avatar
Banshaku
Posts: 2377
Joined: Tue Jun 24, 2008 8:38 pm
Location: Fukuoka, Japan
Contact:

Post by Banshaku » Mon Jul 09, 2012 5:05 pm

Since this is becoming an interesting "log" of the state of the game, it would be great it during the progress some alpha build were available to see how it came from 0 to what it would be later. I love those things, to see the progression with my own eyes.

Am I the only one to think that way?

Denine
Posts: 398
Joined: Wed Feb 17, 2010 5:42 pm

Post by Denine » Tue Jul 10, 2012 2:46 am

Banshaku wrote:Am I the only one to think that way?
Nope.
So, thefox, any chances for some kind of "0.5"(half finished) version?

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Tue Jul 10, 2012 7:51 am

Denine wrote:
Banshaku wrote:Am I the only one to think that way?
Nope.
So, thefox, any chances for some kind of "0.5"(half finished) version?
Yes, I'll definitely consider it. I've been using version control for the entire duration of this project so I can actually go back and build any revision of the project at any time. So if need be, I could even show the intermediate builds after the project has been completed. :)

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Thu Jul 12, 2012 9:35 am

Last couple of days I've been working on the player logic. It's done for the most part, he can run and shoot the streamer, I just need to fine-tune the physics etc a little bit more to make sure everything works exactly like it does in the original.

Post Reply