Made "CutScenes Introduction Screens" (for between Start Screen and Playable Screens)

Bucket Mouse

Active member
It gets the gears turning. In addition to cutscenes, you've demonstrated EXACTLY how to manipulate the spare flags to do pretty much anything, which holds possibilities.

ChangeObjectState could potentially be used to change the sprite -- change its colors or turn it into another sprite entirely.

And I have a theory we could get text boxes working in these by performing a JSR to the direct part of the code where a text box is generated (it either starts at "DrawTextBox' or 'DoDrawTextBox' depending on if the opening argument is important). The question is how we get the NES to load the right text. I'm hoping it's as simple as assigning a text group to the screen.

This might be important, from HandleObjectCollisions:
Code:
isAnNPC:
	;;;; do npc stuff.
	
	LDA gamepad
	AND #%00000010 ;; is b button pressed?
	BEQ skipShowingText
	
	LDA Object_ID,x
	STA stringTemp ;;  3 will be passed on to text routine
	;;;; it holds the number within the group to draw.
	
	;;; set a flag to handle this next frame
	LDA #$01
	STA textBoxFlag

Textboxflag may be an important flag. If so, we'd have to load that into A first, before JSR, to get everything working.

There's also the fact that the sprite of the man will disappear once the text box loads -- unless we can set up a BNE or BEQ routine to step around the HideSprites command for this specific instance. Sounds possible to me.
 

SeaFoodAndButter

New member
Bucket Mouse said:
It gets the gears turning. In addition to cutscenes, you've demonstrated EXACTLY how to manipulate the spare flags to do pretty much anything, which holds possibilities.

ChangeObjectState could potentially be used to change the sprite -- change its colors or turn it into another sprite entirely.

And I have a theory we could get text boxes working in these by performing a JSR to the direct part of the code where a text box is generated (it either starts at "DrawTextBox' or 'DoDrawTextBox' depending on if the opening argument is important). The question is how we get the NES to load the right text. I'm hoping it's as simple as assigning a text group to the screen.

This might be important, from HandleObjectCollisions:
Code:
isAnNPC:
	;;;; do npc stuff.
	
	LDA gamepad
	AND #%00000010 ;; is b button pressed?
	BEQ skipShowingText
	
	LDA Object_ID,x
	STA stringTemp ;;  3 will be passed on to text routine
	;;;; it holds the number within the group to draw.
	
	;;; set a flag to handle this next frame
	LDA #$01
	STA textBoxFlag

Textboxflag may be an important flag. If so, we'd have to load that into A first, before JSR, to get everything working.

There's also the fact that the sprite of the man will disappear once the text box loads -- unless we can set up a BNE or BEQ routine to step around the HideSprites command for this specific instance. Sounds possible to me.

Hey man since your gears are turning, tell me if you think this is workable.

Ok, so full screens and such are 128x128 (e.g., the Start Screen, Death Screen, and Win Screen, etc.). Those screens I think we all want. However, there are the same size tilesets that are for Menus, NPC screens, register screens, shop screens, etc. etc. I am not going to use many of those. So, I asking you if you think there is a way to use those screens as "cut-scenes." Watch the opening of this NES game: https://www.youtube.com/watch?v=QiwkOsUzrdQ&t=53s

Granted, this is like 1990 Sunsoft crazy stuff, but I am interested in the montage that starts the game off. Do you think it's doable to have your start screen boot up, then you press start, but instead of going directly to the overworld, you go to other screens (like the shop screen and menus screens that you don't need) and use them as a story base to start your game? Once you keep pressing start through these screens, then you start the game. I am will to give up a few full screens to tell my story to open up the game, rather than just pressing start and going into the game with no background. Can we link the start screens to these other screens and THEN go into the game?
 

Bucket Mouse

Active member
It's totally doable. Remember that we get to decide what happens when the player presses Start on the opening screen. We would just map that button to a specialized script that led to a screen like that. All we need is the script...and functional code for those other screens because as it is, they're not wired up yet and I wouldn't know how to do so.

In fact that's how Dale's cutscene code works. It doesn't do the same thing as what you want, but it works similarly, only it uses an actual in-game screen with a few input rewrites.
 

dale_coop

Moderator
Staff member
i wanted that too : Start screen > "press start" > Intro > "press start" (or another key) > Intro 2 > "press start" (or another key) > Intro 3 > ... playable game screen.
So I made this simple technique for the that purpose (if you look at my code you can even hide the player for those screens... I commented the lines to to that).
I know what the solution I propose is based on actual game screens (and not special screens), because it's the most easy to use right now. Without too much modifications that would be too hard to migrate to the next NESMaker update. Of course you could dig further, hijack more things that are not used, but...

Soon, Joe will propose a real serious solution to make cutscenes, introductions screens like the ones you want.
I would just suggest to prepare your screens (with shirt's tools) and wait.

My advice with NESMaker: Don't make definitive things here. Each new version of NESMaker add a lot of functionalities (we could before so we hijacked some other parts). Each new version of NESMker break or abandon some functionalities (we used to use in our games)...
So PLAY and EXPERIMENT... and start again each version (reusing some parts you already did if really needed).

Make real stuffs when NESMaker will be complete (in october)
 

Bucket Mouse

Active member
dale_coop said:
Soon, Joe will propose a real serious solution to make cutscenes, introductions screens like the ones you want.
I would just suggest to prepare your screens (with shirt's tools) and wait.
Here's the thing....not only did Joe NEVER promise cutscenes, he's told me repeatedly I have to code them on my own. Then when I ask any questions about how to make that happen, his response to me is usually "What? That's near impossible!" It's not exactly "give up" but it's close enough in tone. The users of this forum have been far more encouraging to me.

I hate to break it to you but cutscenes are never gonna happen natively in NESMaker, ever. We have to figure it out ourselves or it'll never be a thing.

dale_coop said:
My advice with NESMaker: Don't make definitive things here. Each new version of NESMaker add a lot of functionalities (we could before so we hijacked some other parts). Each new version of NESMker break or abandon some functionalities (we used to use in our games)...
So PLAY and EXPERIMENT... and start again each version (reusing some parts you already did if really needed).

Make real stuffs when NESMaker will be complete (in october)

It won't be ready by October.....I'm anticipating some delays, and there were also stretch goals that will take longer than that...for example I wouldn't expect Memory Mapping until 2019.
 

SeaFoodAndButter

New member
dale_coop said:
i wanted that too : Start screen > "press start" > Intro > "press start" (or another key) > Intro 2 > "press start" (or another key) > Intro 3 > ... playable game screen.
So I made this simple technique for the that purpose (if you look at my code you can even hide the player for those screens... I commented the lines to to that).
I know what the solution I propose is based on actual game screens (and not special screens), because it's the most easy to use right now. Without too much modifications that would be too hard to migrate to the next NESMaker update. Of course you could dig further, hijack more things that are not used, but...

Soon, Joe will propose a real serious solution to make cutscenes, introductions screens like the ones you want.
I would just suggest to prepare your screens (with shirt's tools) and wait.

My advice with NESMaker: Don't make definitive things here. Each new version of NESMaker add a lot of functionalities (we could before so we hijacked some other parts). Each new version of NESMker break or abandon some functionalities (we used to use in our games)...
So PLAY and EXPERIMENT... and start again each version (reusing some parts you already did if really needed).

Make real stuffs when NESMaker will be complete (in october)

I absolutely love the way you try and "problem solve". Trust me, I sat in bed thinking about how I could use warps and blacked out screens to do cutscenes, and I love the way you made it work.

Personally, I'm looking for a way to link the start screen to like 2-3 other full screen tiles sets before my game starts.

The other question I asked a while ago that no one answered is what about "credits"? I mean, a win screen is cool, but the story needs to finish and credits need to scroll. Yet, no one talks about this.

Don't get me wrong, I am absolutely THRILLED to be a part of this new community, but.....there have been MAJOR oversights by Joe and the "gang."

First off, music is the most important thing next to graphics and game controls, yet they seemed liked they completely put music on the back burner. I struggle daily to get my Famitracker music to import, and there's no music engine whatsoever. That makes NO SENSE AT ALL. I mean, no one in their right mind would try and make a movie and neglect music. Who would make a game with no music? I just don't understand why they left music capability - one of the most important things to a game - as an afterthought. Secondly, the options of drop drown codes is paltry. I mean, If I got over a quarter of a million USD I would take the time to look at the top, say, 125, NES games of all time and look at the things they did and find a way to make them "drop down" available to all my NESMaker customers. It's not that hard. All you have to do is put in the time. You could, for example, start a forum where people can come and ask for code. All you have to do is hire a team, provide people with what they need. You are $250k into this, and you could even charge a small service charge to help people code.

I mean, if you had time, I'd fly to Florida with a detailed business forecast and show that this thing could make so much $ AND make Soo MANY PEOPLE HAPPY!

The WHole point to NESMaker was to help people fulfill their dreams by making an NES game - just like you did.

PS I will work on an NESMaker review and try to publish it by Feb 2019. But I need people to 1) interview, and 2) samples of work accomplished through NESMaker. anyone interested can contact me. I'll research and compile fair data and make a fair and balanced report next Feb.
 

Bucket Mouse

Active member
SeaFoodAndButter said:
First off, music is the most important thing next to graphics and game controls, yet they seemed liked they completely put music on the back burner. I struggle daily to get my Famitracker music to import, and there's no music engine whatsoever. That makes NO SENSE AT ALL. I mean, no one in their right mind would try and make a movie and neglect music. Who would make a game with no music? I just don't understand why they left music capability - one of the most important things to a game - as an afterthought.

Wwwweeeeeeeeeeeeeelllllllllllllll........here's the problem. The staff is about three people at max. They could really only pick one thing and get it out there, and then handle everything else one module at a time. Everyone will have an opinion about what should have come first. For you it's music. Other people might disagree.

What miffs me is not the eventualities, it's the nevers. You will eventually get music, I will never get cutscenes. Partly, I'm told, due to differing ideas on what a "cutscene" is (Ninja Gaiden cinema scenes, or moving sprites and text, or whatever). They say "make them yourself" but when they actively discourage you, that argument has no foundation. Maybe I could do it if were not for the fact that I can't get any help. No one knows NESMaker better than them, but the only time you hear from them on a coding project is when they say "you won't get anywhere with how you're doing this." The advice ends there.

If I'm doing something wrong, I need to know what to do right. Because I'm not giving up and odds are I'll probably come to them with another wrong idea. So tell me how to GET somewhere with it. Lead me down the right path! Tell me where I should look instead, or where that crucial bit of assembly really is! I'm not asking much -- you probably don't have much free time anyway. Give me a good hint on cutscenes (and not just "learn ASM" -- that's as vague as you can get). Only you know these things, man! You made this!
 

dale_coop

Moderator
Staff member
Joe (TheNew8bitHeroes) is very busy... and he receive hundred of messages every day for asking something (save sytem, platformer, multipalettes sprite a la Megaman, cutscenes).
In the FAQ of the project , in videos, on FB, ... he explained all that.
Of course, he has already his idea on all those demands.

NESMaker is meant to be a toolbox to make game (like lego...)

And about MY introduction scenes system... I didn't make it to be native... I made it for the 4.0.0-4.0.6, just because I wanted to add some intro screeens to my 4.0.0-4.0.6 demo game. That's all.
I know a way better solution will come (by Joe or a good developper here).

Joe told me last week (replying to my cutscene system video):
There are easier and more versatile cut scene systems coming that use special screens, but it is GREAT to see these solutions popping up!

Advice for EVERYONE: give Joe some space, use/appreciate the current NESMaker tool, learn how to use it, handle all the concepts, ... have fun with the current NESMaker!
 

Bucket Mouse

Active member
dale_coop said:
Joe told me last week (replying to my cutscene system video):
There are easier and more versatile cut scene systems coming that use special screens, but it is GREAT to see these solutions popping up!

Advice for EVERYONE: give Joe some space, use/appreciate the current NESMaker tool, learn how to use it, handle all the concepts, ... have fun with the current NESMaker!

What the heck? He's been telling ME something completely different. Which statement is correct?
 

dale_coop

Moderator
Staff member
As I wrote, if you need something and it's not available... try making yourself.
Then, when Joe has time, he could try to make something better ;)
 

Bucket Mouse

Active member
HOLY HAMSTERS, I DID IT! I GOT TEXT TO DISPLAY AUTOMATICALLY!

I modified Dale's "change tiles" script from the Adventure Module forum:
http://www.nesmakers.com/viewtopic.php?f=27&t=763&p=4886#p4886

I rewrote it to subroutine to DrawNPCText.asm.....and it worked! Assign this script to a tile state....Put this under your character at the spot they load into a screen, and the text will appear first!

Using a Special Tile was the missing ingredient we were all looking for -- it is essential. But you can still use underSecret for something else. This routine seems to ignore changing the tile's graphics once it gets the Text instruction.

Code:
CPX player1_object
	BNE finishedWithAutoText
	
	ChangeTileAtCollision #$00, underSecret
	LDA #$01
	STA textBoxFlag
	JSR dodrawTextBox
	
finishedWithAutoText:

I DID IT! I DID IT! AAAAAAAH HA HA HA HA HAHAHAHAHAHAHAHA!!
 

SeaFoodAndButter

New member
Bucket Mouse said:
HOLY HAMSTERS, I DID IT! I GOT TEXT TO DISPLAY AUTOMATICALLY!

I modified Dale's "change tiles" script from the Adventure Module forum:
http://www.nesmakers.com/viewtopic.php?f=27&t=763&p=4886#p4886

I rewrote it to subroutine to DrawNPCText.asm.....and it worked! Assign this script to a tile state....Put this under your character at the spot they load into a screen, and the text will appear first!

Using a Special Tile was the missing ingredient we were all looking for -- it is essential. But you can still use underSecret for something else. This routine seems to ignore changing the tile's graphics once it gets the Text instruction.

Code:
CPX player1_object
	BNE finishedWithAutoText
	
	ChangeTileAtCollision #$00, underSecret
	LDA #$01
	STA textBoxFlag
	JSR dodrawTextBox
	
finishedWithAutoText:

I DID IT! I DID IT! AAAAAAAH HA HA HA HA HAHAHAHAHAHAHAHA!!


Can you upload a video or something to youtube. I want to see what it looks like!
 

Bucket Mouse

Active member
All right, I finally got to the point in my game where I could implement a cutscene with Autotext. The two programs work together with only one issue.

That issue is the fact that if you press the A button at any time while the text box is onscreen, it will glitch up the box and make the text appear in the HUD instead.

The lazy way out would be to just put a note in the game saying not to press A, but I think the input for A could be shut off in the MakeNPCText.asm code, much in the same manner directional inputs are shut off on cutscene screens.
 

Bucket Mouse

Active member
Rrrrgh, nothing's working. I don't know how to shut A off.

Code:
	LDA gamepad
	AND #%00000001
	BNE dontdoanything

dontdoanything:

We read the gamepad and see if A is being pressed. If so we branch to "dontdoanything." That's supposed to supersede whatever command was loaded into A before, right?
 

dale_coop

Moderator
Staff member
Where did you put that code?
In the script assigned to the "Press" "A" button?
Could you share the full code of this script?
 

Bucket Mouse

Active member
dale_coop said:
Where did you put that code?
In the script assigned to the "Press" "A" button?
Could you share the full code of this script?

I put it into "DrawNPCText" because the issue was with the text box. If you're saying I have to directly assign it to A, how would I make it only turn on during cutscene screens?

it's also worth mentioning I'm keeping the HUD on during this cutscene and not using the HUD shutoff code. Maybe if you do use that code, this issue doesn't come up. I don't know.
 

dale_coop

Moderator
Staff member
I can’t understand why the “A” button have an impact on your NPC text (should be “B” button)?
Or maybe you change that?
 

Bucket Mouse

Active member
I didn't change anything. The only thing I changed was that, like I said, I didn't use the HUD shutoff code.

All I know is when you hit A while the text box is onscreen, everything gets messed up.
 
Top Bottom