Your game seems to be using $0700-$0702 for something. Whatever it is, it probably isn't too difficult to move.
So in GameData/Object_RAM.asm are all the defines for object RAM. NameOfByte .dsb totalnumberofobjects. What you should do (and, indeed, what NES Maker should do) is change every ".dsb 10" to ".dsb TOTAL_MAX_OBJECTS". Then by changing TOTAL_MAX_OBJECTS from #$0A to something else (like say #$10, or #16), all of the defines will be updated at once. (But don't change it to #16 yet.)
Before:
Code:
TOTAL_MAX_OBJECTS = #$0a
Object_status .dsb 10
Object_type .dsb 10
Object_physics_byte .dsb 10
Object_x_hi .dsb 10
Object_x_lo .dsb 10
Object_y_hi .dsb 10
Object_y_lo .dsb 10
;etc
After:
Code:
TOTAL_MAX_OBJECTS = #$0a
Object_status .dsb TOTAL_MAX_OBJECTS
Object_type .dsb TOTAL_MAX_OBJECTS
Object_physics_byte .dsb TOTAL_MAX_OBJECTS
Object_x_hi .dsb TOTAL_MAX_OBJECTS
Object_x_lo .dsb TOTAL_MAX_OBJECTS
Object_y_hi .dsb TOTAL_MAX_OBJECTS
Object_y_lo .dsb TOTAL_MAX_OBJECTS
;etc
That will make zero difference in your ROM, so no need to test.
However, all the RAM you need isn't contiguous. Some of the RAM the objects will use is at $0400-$05FF and some of it will be moved to $0700-$07FF. If you changed TOTAL_MAX_OBJECTS to 16 before moving some of the RAM, it would use 16*37 bytes and go beyond $05FF.
There are 256 bytes from $0700 to $07FF. If you had 16 objects (which is the goal), you'd need 16 bytes for every DSB. So it follows that you can fit 16 object DSBs in $0700-$07FF, because 256/16=16.
So you need to move 16 of those defines (it doesn't matter which 16) to $0700. (16 defines, 16 bytes each is 256 bytes, which will fit perfectly in $0700-$07FF.) Which is (for now) as simple as adding .enum $0700 above Object_table_lo_lo:
Code:
.enum $0700
Object_table_lo_lo .dsb TOTAL_MAX_OBJECTS
Object_table_lo_hi .dsb TOTAL_MAX_OBJECTS
Object_table_hi_lo .dsb TOTAL_MAX_OBJECTS
Object_table_hi_hi .dsb TOTAL_MAX_OBJECTS
;etc
(But this will break your game, since it seems you're using $0700-$0702. Did you add something? Are you able to move what you're added anywhere else? Alternatively, start the enum at the next free byte you haven't used ($0703?) and move only 15 DSBs instead of 16.)
Now. TEST! This alone shouldn't break anything (except for the $0700-$0702 thing which you have to find some way to deal with). If it works, just change
to
And TEST! This should only cause problems if NES Maker is using 10 or $0A instead of TOTAL_MAX_OBJECTS somewhere other than these defines. Which... it shouldn't? But it might.
Edit: Oh, something else to be aware of. 16 objects at four sprites each is 64 sprites. I don't actually know what NES Maker does when you go over or hit it exactly, but that's another potential issue.