Cant Find Game.nes file

PiXlE4rt

New member
I keep getting this error and cant test my own game.
 

Attachments

  • nesError.PNG
    nesError.PNG
    31.5 KB · Views: 2,581
  • Compile.PNG
    Compile.PNG
    11.3 KB · Views: 2,579

dale_coop

Moderator
Staff member
Your HUD is incorrect.
Check again that you set your hud elements correctly.
If you don't find... share screenshots of your hud settings ;)
(maybe you set an incorrect type for an element... you can use only "0: Var tiles" "1: hud asset", "2 Text, "3 number" or "None").
 

PiXlE4rt

New member
I dont see any errors
 

Attachments

  • Hud.PNG
    Hud.PNG
    22.8 KB · Views: 2,541
  • Hudd.PNG
    Hudd.PNG
    12.6 KB · Views: 2,541
  • huddd.PNG
    huddd.PNG
    16.7 KB · Views: 2,541
  • hudddd.PNG
    hudddd.PNG
    15.9 KB · Views: 2,540
  • huddddd.PNG
    huddddd.PNG
    13.9 KB · Views: 2,540
  • hudddddd.PNG
    hudddddd.PNG
    13.2 KB · Views: 2,540
  • huddddddd.PNG
    huddddddd.PNG
    11.8 KB · Views: 2,540
  • hudddddddd.PNG
    hudddddddd.PNG
    12.5 KB · Views: 2,540
  • huddddddddd.PNG
    huddddddddd.PNG
    11 KB · Views: 2,540

dale_coop

Moderator
Staff member
Make sure to set them only to "0: Var tiles" "1: hud asset", "2 Text, "3 number" or "None". Nothing else.
I see on your screenshot that your 5th element is "N/A" type, change it to "none"... and check all other ones to make sure they are correct.
 

dale_coop

Moderator
Staff member
Have you made a modification in the HandleObjectCollisions.asm script? If you did, could you share your script?
 

PiXlE4rt

New member
Yeah i did but i made a copy of the original script and i fixed the handle object collision but the last thing i need to fix is this
 

Attachments

  • last one.PNG
    last one.PNG
    39.2 KB · Views: 2,366

dale_coop

Moderator
Staff member
Looks like you modified (or removed) the original script that was assigned to the Handle Hud data element (in project settings > Script settings).
 

PiXlE4rt

New member
I Fixed That Now i Just Need help with This and If Im Correct It Should Be Fixed
 

Attachments

  • lastlastone.PNG
    lastlastone.PNG
    44.8 KB · Views: 2,333

dale_coop

Moderator
Staff member
Looks like you modified the HandleTextBox.asm script (in Basic\System), your script is not correct. I'd suggest to replace it with the original one. It should work.
 

dale_coop

Moderator
Staff member
The original script is in the nesmaker_4_1_5a.zip file ;) Available on the official website: http://www.thenew8bitheroes.com


Here's the script "HandleTextBox.asm":
Code:
HandleTextBox:

;; textboxHandler
 ; 7 - 6 - 5 - 4 - 3 - 2 - 1 - 0
  ;7 = Textbox is active.
   ;    6 = Black box is being created, will then create text.
    ;        5 = Attribute update to black.
     ;           4 = text is being created.
      ;             = loop to 5 if more text.
       ;             3 = Black box is being created, with then restore NT
        ;                 2 = Attributes to main NT
         ;                     1 = restore NT
          ;                          0 = check for "more" text.
			


	LDA textboxHandler
	AND #%10000000
	BNE textboxIsActive
	RTS ;; textbox is inactive.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
textboxIsActive:
	LDA updateNametable
	BEQ notAlreadyWritingToNT
	RTS
notAlreadyWritingToNT
	;HideSprites
;; DO TEXT BOX STUFF.
	;; Which text box stuff to do is determined by the textboxHandler byte.
	;; if it is active, but all other bits are inactive, that means we have just activated and we need to turn
	;; this system on.
	LDA textboxHandler
	AND #%01111111
	BNE textboxSettingsAlreadyOn
	;;; get textbox settings
 ;; skip resetting the offset.
	LDA #$00
	STA updateNT_offset
	STA updateHUD_offset

	STA updateNT_H_offset
	STA updateNT_V_offset
	
	;;; zero out the things offsets and start creating the blackout box.
	LDA #%11000000
	STA textboxHandler ;; flow right into the next.
textboxSettingsAlreadyOn:
	
	LdA textboxHandler
	AND #%01000000
	BEQ notCreatingBlackBox
	;;;; CREATE THE BLACK BOX.
	;;;; The frist phase is to create the black box.
	;;;; no matter what color the text box will be, or which palette it will use
	;;;; it will always first create a box of "blanks" so it can be changed to whatever
	;;;; background attribute you'd like without noticing the attribute change.
	JSR CreateBlackBox
	;;; now the black box has been created.
	
notCreatingBlackBox:
	LDA textboxHandler
	AND #%00100000
	BEQ notSettingTextboxAttributes
	JSR isWritingTextboxAttributes
	RTS
	
	;;; set textbox attributes.
notSettingTextboxAttributes:
	LDA textboxHandler
	AND #%00010000
	BEQ notUpdatingTextboxText
	;; updating textbox text.
	JSR isWritingTextToTextbox

	RTS
notUpdatingTextboxText:
	LDA textboxHandler
	AND #%00001000
	BEQ notErasingTextboxText
	JSR CreateBlackBox
	RTS
notErasingTextboxText:
	LDA textboxHandler
	AND #%00000010
	BEQ notRestoringNametables2
;	JSR CheckForEndOfTextString
;	LDA gameHandler
;	AND #%00100000
;	BEQ notRestoringNametables2 ;; because we have finished.
	JSR RestoreNametableData
notRestoringNametables2
	RTS
	

	
	
	
	
	
	
	
	
	
	
	
	
	
getUpdateTileOffsetPosition:
	LDA xScroll
	LSR
	LSR
	LSR
	LSR
	CLC
	ADC	#BOX_1_ORIGIN_X
	CLC
	ADC updateNT_H_offset
	STA tileX
	
	LDA #BOX_1_ORIGIN_Y
	CLC
	ADC updateNT_V_offset
	STA tileY
	JSR coordinatesToMetaNametableValue
	;;; spits out updateNT_pos as low and updateNT_pos+1 as hi of address to write.
	;;; right now, this is in terms of a single nametable, starting at $20 as the high top left corner high byte.
	
	

	
;;;; FOR HITE BYTE:
;;;; Take columnTracker and divide by 2 so you get a value 0-16
;;;; Add that number to BOX_1_ORIGIN_X.
;;;; If the sum is less than 16, this should stay in the same nametable.
;;;; Otherwise, it should cross nametables.
	Ldy columnTracker
	LDA columnTracker
	AND #%00001111
	CLC
	ADC #BOX_1_ORIGIN_X ;; plus offset of what tile you're drawing.
	CLC
	ADC updateNT_H_offset
	AND #%00010000
	BNE +
	;;; same nametable
	LDA columnTracker
	AND #%00010000
	BNE +++
	;; this started in even table,
	;; so it should stay in even table
	JMP updateIsEvenTable
+++	
	;;; this started in odd table
	;;; so it should stay in odd table.
	JMP updateIsOddTable
+
	;;; different nametable
	LDA columnTracker
	AND #%00010000
	BNE +++
	;; this started in even table
	;; so it should now be odd table.
	JMP updateIsOddTable
+++
	;;; this started in odd table
	;;; so it should now be even table.
	JMP updateIsEvenTable

	

updateIsEvenTable:
	LDA updateNT_pos+1
	AND #%00000011 ;; 0,1,2 or 3
	clc
	adc #$20
	STA updateNT_pos+1
	JMP gotHiUpdatePos
	
updateIsOddTable:
	LDA updateNT_pos+1
	AND #%00000011 ;; 0,1,2 or 3
	CLC
	ADC #$24
	STA updateNT_pos+1
	JMP gotHiUpdatePos
gotHiUpdatePos:

	RTS
	
	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
checkNTforNewTile:
	LDA temp3; updateNT_pos
	AND #%00100000
	CMP #%00100000
	BEQ newTileHasCrossedThreshold
	;; new tile has not crossed threshold.
	;; same nametable

	LDA columnTracker
	AND #%00010000
	BNE updateIsOddTable
	JMP updateIsEvenTable
newTileHasCrossedThreshold:
	
	LDA columnTracker
	AND #%00010000
	BNE updateIsEvenTable
	JMP updateIsOddTable
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;RTS ;; redundant, unnecessary
	
	
isWritingTextToTextbox:
	;;; already in bank 17.
	;; we need to get positioning.

	LDA xScroll
	LSR
	LSR
	LSR
	STA temp
	LDA #BOX_1_ORIGIN_X
	ASL
	CLC
	ADC updateNT_H_offset
	CLC
	ADC temp
	STA temp3
	AND #%00011111
	STA tileX
	
	LDA #BOX_1_ORIGIN_Y
	ASL
	CLC
	ADC updateNT_V_offset
	STA tileY
	
	JSR coordinatesToNametableValue
	JSR checkNTforNewTile
	;; temp has position value.
	;LDA temp
	;STA updateNT_pos
	
	
	
	LDY textVar ;; what string
	LDA screenText,y
	TAY
	LDA stringsTableLo,y
	STA temp16
	LDA stringsTableHi,y
	STA temp16+1
	LDY textboxOffsetHold
	LDA (temp16),y
	
	;; this is where we determine if this is a special character or a normal letter/number to update.
	CMP #_END
	BNE +
;;;; END:
EndText:
	;; this is and _END value.
	;; it turns off writing to the textbox.
	
	LDA textboxHandler
	AND #%01111111
	STA textboxHandler
	;;;;; textbox handler stays on the same state
	;;;;; but deactivates.
	;;;;; it will start again if bbutton is pressed again
	;;;;; on state 00001000, which will begin the 'turn off' process.
	
	JMP doneTextUpdate
+
	CMP #$FE ;; is it a new line?
	BNE notANewLine_text
;;;; NEW LINE:


	LDA #$00
	STA	updateNT_H_offset
	INC updateNT_V_offset
	INC textboxOffsetHold
	
	JMP doneTextUpdate
notANewLine_text:

	CMP #_ENDTRIGGER
	BNE notEndTrigger
	;; is an end trigger
	INC textboxOffsetHold ;; get the very next value.
	LDY textboxOffsetHold
	LDA (temp16),y
	STA temp
	;;;; this now has the trigger to change.
	TriggerScreen temp
	JMP EndText
notEndTrigger:

	CMP #_ENDITEM 
	BNE notEndItem
	;;; gives player an item.
	INC textboxOffsetHold ;; get the very next value.
	LDY textboxOffsetHold
	LDA (temp16),y
	TAY
	;;; this now has the bit to flip in BOSSES DEFEATED constant.
	LDA ValToBitTable_inverse,y
	ORA weaponsUnlocked
	STA weaponsUnlocked
	TriggerScreen screenType ;; will flip the current screen type
	;PlaySound #SFX_DO_TRIGGER
	JMP EndText
	
notEndItem:
	CMP #_MORE
	BNE notMoreText
	LDA #%10000000
	STA textboxHandler
	;; flip a more text flag.
	LDA #$01
	STA moreText
	INC textboxOffsetHold
	JMP EndText
notMoreText:
;;;; NORMAL VALUE
		;;;;; The look up was a normal letter, number, or other hud value.
	CLC 
	ADC #$C0
	STA updateHUD_fire_Tile	
	
	LDA updateNT_pos
	STA updateHUD_fire_Address_Lo
	LDA updateNT_pos+1
	STA updateHUD_fire_Address_Hi
	INC updateNT_H_offset
	INC textboxOffsetHold
doneTextUpdate:	

	RTS
	
	
	
	
	
	
	
	
	
	
	
CreateBlackBox	
	LDX #$00
	
;;; DRAW METATILE 1
	;; this macro SETS it to change on the next vblank update.
	;; starting at address hi-lo, with the tile in the third argument.
	;; if it sees #BLANK_TILE, it will create a meta tile of four blank tiles.
	;; if it sees any other value, it will create a metatile starting with 
	;; that index as the top left corner.
	
	;;;;;;; IF THE GAME DOES NOT SCROLL:
	;;;;;;; You can simply read the box value, do a little math, to get the offset
	;;;;;;; of the address for the top left corner, and skip the whole business of
	;;;;;;; finding the offset based on the scroll.
	
	;;;;;;; IF THE GAME DOES SCROLL:
	;;;;;;; YOu will need to get the offset value so it is at the box value position
	;;;;;;; compared to the CAMERA rather than zero.
	
	;;;;;;; Fortunately, we already have tables set up for columnTableLo and columnTableHi
	;;;;;;; which we use to handle the column for scrolling.  
	;;;;;;; we can use the columnTracker value to help determine the proper offset.
	
	;;;;;;; There can only be 32 columns.
	
	;;;;;;; And we will use updateNT_offset to continue this over frames, 
	;;;;;;; and to handle tile to offset.
	;;;;;;; this will be set to zero wherever HandleTextBox is activated.
	;;;;;;; It needs to, in some way, be boolean (like a key press, or using a boolean var).
	; LDA #$00
	; STA updateNT_H_offset
	; STA updateNT_V_offset
	;; THESE ALSO MUST BE SET IN THE BOOL VAR PLACE
	;; Whatever code is calling this must also set these to zero.

	
	
	
	LDA #$00
	STA tilesToWrite
	LDA #$04
	STA dummyVar2
DoLoopThing:
	JSR getUpdateTileOffsetPosition
	SetMetaTileToChange updateNT_pos+1, updateNT_pos, #BLANK_TILE

 	INC updateNT_H_offset
	LDA updateNT_H_offset
	CMP #BOX_1_WIDTH
	BEQ ++
	DEC dummyVar2
	LDA dummyVar2
	BEQ +
	JMP DoLoopThing
++ ;; width has been reached.
	;; now to test the height, and to move h pos back to the left.

	
	BEQ dontEndCreatingBlackBox
	JMP EndCreatingBlackBox
dontEndCreatingBlackBox:
	
	LDA #$00
	STA updateNT_offset
	STA updateHUD_offset
	STA updateNT_H_offset
	INC updateNT_V_offset


+	

	LDA #$01
	STA updateNametable  ;; turn on write.
	
	LDA updateNT_V_offset
	CMP #BOX_1_HEIGHT
	BCS turnOffCreatingTextBox
	
	LDA updateNT_H_offset
	CMP #BOX_1_WIDTH
	BEQ turnOffCreatingTextBox
	JMP EndCreatingBlackBox
turnOffCreatingTextBox:
	
	;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;; Setup text specifics
	LDA #$00
	STA stringGroupOffset
	STA updateNT_H_offset
	STA updateNT_V_offset
	
	LDA xScroll
	LSR
	LSR
	LSR
	STA temp
	LDA #BOX_1_ORIGIN_X
	ASL
	CLC
	ADC temp
	CLC
	ADC #H_PAD_TEXTBOX
	STA tileX
	LDA #BOX_1_ORIGIN_Y
	ASL
	CLC
	ADC #V_PAD_TEXTBOX
	STA tileY
	
;	LDA #$01
;	STA writingText ;; turn on writing text.
	LDA moreText
	BEQ +
	LDA #$00
	STA moreText
	JMP ++
+
	LDA #$00
	STA textboxOffsetHold
++
	STA updateNT_H_offset
	STA updateNT_V_offset

	LDA textboxHandler
	AND #%00001000
	BEQ continueToUpdatingAttributes
	;;; is turning textbox OFF, so no writing to text.
	;;; will have to allot for changing attributes back with the
	;;; bit 00000100
	LDA #%10101000 ;; turn on attribute update
	STA textboxHandler
	LDA #$00
	STA updateNT_H_offset
	STA updateNT_V_offset
	STA updateNT_offset
	STA updateNT_compensation

;	LDA xScroll_hi

;	AND #%00000001
;	BEQ oddToEven2
;	LDA #$27
;	JMP gotNtDeets2
;oddToEven2:
;	LDA #$23
;gotNtDeets2:
;	STA updateNT_tableLeft
;	STA updateNT_details

	;LDA columnTracker
	LDA #BOX_1_ORIGIN_X
	LSR
	TAY
	LDA attrColumnTableHi,y
	STA updateNT_tableLeft
	STA updateNT_details

	RTS
continueToUpdatingAttributes:
	LDA #%10001000
	STA textboxHandler
	LDA #$00
	STA updateNT_H_offset
	STA updateNT_V_offset
	STA updateNT_offset
	STA updateNT_compensation
	
	
;	LDA xScroll_hi

;	AND #%00000001
;	BEQ oddToEven
;	LDA #$27
;	JMP gotNtDeets:
;oddToEven:
;	LDA #$23
;gotNtDeets:
;	STA updateNT_tableLeft
;	STA updateNT_details
	
	;LDA columnTracker
	LDA updateNT_H_offset
	CLC
	ADC updateNT_offset
	ASL
	CLC
	ADC	columnTracker
	AND #%00011111
	LSR 
	TAY
	LDA attrColumnTableHi,y
	STA updateNT_details
	
	LDA #%10100000
	STA textboxHandler
	;;;;;;;;;;;;;;;;;;;;;;;;;;;
	RTS
EndCreatingBlackBox:	
	LDA #$01
	RTS
	
	
	
	
RestoreNametableData:

	

	;;; FIRST we need to find the metaNametale value from the ROM.
	;;;;;;;;;;LESSER PRIORITY;;;;;;;;;;;;;;
	;;; THEN we need to check it againt collision type to / screen state to see if it should be 
	;;; change (for instance, a tile that changes at night / saved / changes if no monsters, if there are no monsters, etc)
	;;; THEN, we should probably always just restore the hud at the end.
	;;; the problem is, the data we need to fetch is in bank 16, then screen bank, 
	;;; while we are currently in bank 17 with this routine.
	;;; so restoration of nametable, or at least analysis of whate tiles to write, will have to happen OUTSIDE of this routine
	;;; We handle it in HandleBoxes, which will populate updateTile00-03, and respect paths.
	;;; And we handle POSITION to update here.

	LDX #$00
	LDA #$00
	STA tilesToWrite
	
	JSR getUpdateTileOffsetPosition
	
	

	LDA updateNT_pos
	STA temp
	LDA updateNT_pos+1
	STA temp1
	

	SetTileToChange temp1, temp, updateTile_00
	LDA temp
	CLC
	ADC #$01
	STA temp2
	LDA temp1
	ADC #$00
	STA temp3
	
	
	SetTileToChange temp3, temp2, updateTile_01
	
	LDA temp
	CLC
	ADC #$20
	STA temp2
	LDA temp1
	ADC #$00
	STA temp3
	
	
	SetTileToChange temp3, temp2, updateTile_02
	
	LDA temp
	CLC
	ADC #$21
	STA temp2
	LDA temp1
	ADC #$00
	STA temp3
	
	SetTileToChange temp3, temp2, updateTile_03
	INC tilesToWrite
	LDA #$01
	STA updateNametable
	
	INC updateNT_H_offset
	LDA updateNT_H_offset
	CMP #BOX_1_WIDTH
	BNE dontReturnToGame
	LDA #$00
	STA updateNT_H_offset
	INC updateNT_V_offset
	LDA updateNT_V_offset
	CMP #BOX_1_HEIGHT
	BNE dontReturnToGame
	LDA #$00
	STA textboxHandler
	STA updateHUD_offset
	LDA gameHandler
	AND #%11011111
	STA gameHandler
	;ShowSprites

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; check to see if there is behavior after a text box.

;;;; THIS WOULD WARP YOU TO A SCREEN AFTER TEXTBOX.
	; LDA #$01
	; STA activateWarpFlag
	; PlaySound #SND_ENTER
	; LDX player1_object
	; LDA Object_x_hi,x
	; STA mapPosX
	; LDA Object_y_hi,x
	; STA mapPosY
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
	
	
dontReturnToGame:

	RTS
	
	
	
	
	
	
	
	
isWritingTextboxAttributes:
	;; handle all four quadrants of the attribute.
	
	
	RTS
 

Gecko1993

New member
I've encountered a similar issue like this before. I wanted to follow along with the 20 Minute Projects on NESMaker (more specifically, the Scrolling Platformer) as a means of getting started. I have had a similar situation like this happenCapture.PNG. Bear in mind, I had to re-download NESMaker 1.4.5 again, find and extract IT'S game.nes program (not to be confused with it's game.nes.deb counterpart). I even have this filepath going on: Capture2.PNG
Am I missing something here? Is there something I am doing wrong? Again, I went around, and looked for that game.nes in the folder I put it in, only for it to somehow vanish-like it never even happened. The Operating System I am currently implementing is Windows 7 (don't worry, I'm looking to upgrade that to 10 soon...).
 

dale_coop

Moderator
Staff member
Gecko1993, are you sure you selected a "Module" when you created your project?
If you don't know, don't remember, I'd suggest to reset it... Menu "Project" then "Import Project Module" then select the "BASE_ScrollingPlatformer.MOD" and validate (with all the default options).
Then you can try again...
Also, for the emulator, as explained in the tutorials, only the default one (keep all the fields empty) or FCEUX or MESEN would work (because they support UNROM512 - Mapper30 roms).
 

Gecko1993

New member
Yes, I did make sure I chose a module when creating said project. When I tried to do a different project (like for example, a sidescrolling shooter), I could not find game.nes again. It's like it disappears every time it's in use (weird). Capture1.PNG

Also, Bizhawk does support Mapper30; but I'm not sure if it supports UNROM512, but... https://wiki.nesdev.com/w/index.php/UNROM_512 more information was found here. I tried looking for the project modules with the path that was suggested; only for it not show up (unless I'm missing something?).

I have also did my own fair share of digging in regards to NESMaker. I noticed that it has 8x8 grid alongside it's 16x16 contemporary in the Pixel Editor, but what I found kinda egregious was the fact it couldn't select 8x8 tiles (reminiscent of Micro Mages), or 8x16 for meta tiles. Maybe it will be fixed in a future update (along with possibly more supported emulators)? I'm not sure. I do want to flex my muscles, showcasing the best graphics for the system since Megaman. I even made this as a sake of experiment for Sprite Stacking/Overlapping Sprites; but the pixel editor defaults to 16x16 pixels which throws me through a loop.

Trying not to sound ungrateful, I do LOVE this program, and I am finally getting around to using it-getting away from my busy schedule, to make room for making games on the system. Thank-You for all the help you give! I do appreciate it.
 

dale_coop

Moderator
Staff member
The errors you have looks like come files are not there, or not accessible when compiling. This is weird.
Have you moved or delete some files (scripts or folders)?

Maybe you have an antovirus that blocks all those scripts. Should try to disable it and try again (maybe you will need to reinstall the content of the "GameEngineData" folder... you can find it in the original zip file).
 

Gecko1993

New member
I went into MalwareBytes, and made an exception of checking all files except in the folder: NESMaker, and... I did it! It actually worked! Thank-You, Dale! Sorry for the late reply, I was busy the past few days.
 

Gecko1993

New member
I went into MalwareBytes, and made an exception of checking all files except in the folder: NESMaker, and... I did it! It actually worked! Thank-You, Dale! Sorry for the late reply, I was busy the past few days.
 
Top Bottom