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

CutterCross said:
SeaFoodAndButter said:
@CutterCross Yeah, I'd love to see a tutorial how that was done (I'm subbed to your YT channel). I wanted to do something similar to the Journey to Silius opening on NES.

That would actually be easier to create than my animated cutscenes, since nothing is really animated in the Journey to Silius intro. All you'd need to do is make a few screens made of background tiles and find a way to move from one to the next without player input.

(Also, Journey to Silius in an EXCELLENT game. One of my favorites on the NES.)

A Video will be best so I can do Megaman styled custscenes that appear in the beginning of the game if it doesn't have input
 

SeaFoodAndButter

New member
I totally agree with you on all points, I didn't discover Journey until many years later but it is awesome! I think originally it was going to be released as Terminator but right before release the license was lost.

So, you're saying I can use screens in the overworld to make cut scenes? Ok, I finally understand! Right now I have a start screen with music. Once the player presses 'start' it goes directly to the game. So now I just need to find out how to make it go from my start screen, after the player presses 'start' to go to an over world screen that I made look like a cut scene with text. Then I need to figure out how the player could press 'start' to go to the next cut scene, and so on, until it finally takes them to the screen where the player starts.
 

Bucket Mouse

Active member
You know, when I set up my cutscene, there's a pause in the text every so often because the box disappears and the player has to hit A to manually trigger the next screen warp.

In the text box menu, there is an "End of Text Action" option that lets you set a trigger, open a shop, or load the win screen. Some of the things aren't functional yet (like opening a shop). It would be nice to rig "Open Shop" with the warp screen code instead -- that would be a great temporary fix for extended text. Then I thought, "maybe if I find the Win Screen code and swap it out with the warp screen code, I can use that!"

I went to HandleStateChanges.asm and did the deed, set my text box to "Win Game" upon disappearing, then tested it. Instead of an auto-warp, I got the same error you get when you run over 256 characters -- the spillover and repeat of text. Was it the new code?

It was not -- when I removed the warp screen material and reinstated the original Win Screen code, I got the same results. Guess what......."Win Screen," when it applies to text boxes, isn't rigged up yet either. Switching the box to "no action" removed the glitch.

So that was a dead end. But I have another idea. I will try it out tomorrow...
 

cargo

spam bots yandex
Hey Dale any particular reason why you chose flag 04? Any bit on ScreenByte01 would do right?

dale_coop said:
With the release of NESaker 4.0.6, I decided to modify my script to make it more versatile.
.
.
.
In the "Project Settings > Project Labels" , I rename the "Screen Flag 4" to "Cutscene screen".

01_Project_Settings.png


First of
 

dale_coop

Moderator
Staff member
cargo said:
Hey Dale any particular reason why you chose flag 04? Any bit on ScreenByte01 would do right?

Don't remember exactly why I choose the flag 04... Maybe I thought the first ones could be currenlty used by the engine. But any unused one should be fine.
 

Bucket Mouse

Active member
Good news -- we don't have to push a button to warp screens anymore.

Code:
LDA warpMap
adc #$01
STA temp
GoToScreen warpToScreen, temp
Inspired by CutterCross' Tower of Turmoil cutscene mechanics, I used this code to make a new tile type. Then I made an invisible enemy called Mr. Warpo and set him on the tile.

Why a monster? We cannot set the player on the warp tile because it needs to sit on the Autotext tile. And we can't use the existing warp tile because it includes a check to make sure the sprite crossing it isn't a monster. This code doesn't have that, so a monster can activate the warp.

The NESMaker engine loads the autotext box onscreen first, then draws the sprites afterward. Once the monster sprite is drawn, the screen warps. So....we can stitch these together seamlessly now (with the exception of the flash between screens).
 

cargo

spam bots yandex
Hey Dale do you know how to skip a cutscene programmatically? Say for example the player presses the start button during a cutscene. Then have the program warp immediately to the game's real starting screen. Hope I am making sense. I am guessing for this case I can't use the "Warp to Screen X,Y" property values because they are being used to point to the next screen in the cutscene.
 

dale_coop

Moderator
Staff member
In that particular case you should write a new script “warp to the starting screen” and assign it to the start button.
I am not at home now, I can’t try... but I can take a look tomorrow.
 

dale_coop

Moderator
Staff member
Here a script StartBtn_WarpToStartingScreen.asm:
Code:
	LDA ScreenByte01
	AND #%00010000  ;; check if a cutscene screen flag
	BEQ doNothingForWarpingToStartingScreen  ;; else we do nothing

	LDA #%11000000
		;7 = active
		;6 = 8 or 16 px tiles
	ORA #GS_MainGame
	ORA #%01000000
	STA update_screen
	LDA #%00000001
	STA update_screen_details ;; load from map 1
	
	LDA #$13			;;  <<----- HERE the screen number you want to warp to (it's a hex value, from 0 to 256, from #$00 to #$FF)
					;;                 in this example, it warps to the screen number 19 (coords X=3, Y=1)
	STA newScreen
	STA currentScreen
	LSR
	LSR
	LSR
	LSR
	LSR
	STA screenBank
	LDA #$02
	STA screen_transition_type

	ChangeObjectState #$00, #$02  ;; change to action step 0 (player's idle state)
	
	LDA #$00
	STA gameHandler
	
doNothingForWarpingToStartingScreen:
	RTS

Assign this script to your "Start" button, for example (then, when you are in a cutscene, and press the start button, you warp to specified screen).
And you could put a checkpoint tile at the location the player warps in (when he loose e life, he will come back here... until he loses all his lives).
 
dale_coop said:
Here a script StartBtn_WarpToStartingScreen.asm:
Code:
	LDA ScreenByte01
	AND #%00010000  ;; check if a cutscene screen flag
	BEQ doNothingForWarpingToStartingScreen  ;; else we do nothing

	LDA #%11000000
		;7 = active
		;6 = 8 or 16 px tiles
	ORA #GS_MainGame
	ORA #%01000000
	STA update_screen
	LDA #%00000001
	STA update_screen_details ;; load from map 1
	
	LDA #$13			;;  <<----- HERE the screen number you want to warp to (it's a hex value, from 0 to 256, from #$00 to #$FF)
					;;                 in this example, it warps to the screen number 19 (coords X=3, Y=1)
	STA newScreen
	STA currentScreen
	LSR
	LSR
	LSR
	LSR
	LSR
	STA screenBank
	LDA #$02
	STA screen_transition_type

	ChangeObjectState #$00, #$02  ;; change to action step 0 (player's idle state)
	
	LDA #$00
	STA gameHandler
	
doNothingForWarpingToStartingScreen:
	RTS

Assign this script to your "Start" button, for example (then, when you are in a cutscene, and press the start button, you warp to specified screen).
And you could put a checkpoint tile at the location the player warps in (when he loose e life, he will come back here... until he loses all his lives).
sure this will mimic the start screen or it's just a screen to use as a start screen? - if that's the case...I'll have to somehow do monster tiles to make this happen - would this work with CutterCross's warp to screen script and I can add in the first parts of splashes?
 

dale_coop

Moderator
Staff member
This script is specifically meant for my cutscenes system.
But like cutterCross one, you can use monsters, animated objects, warps,...
 
Top Bottom