NES games handle their graphics in many different ways, but for practical purposes it will be best to focus only on the fundamentals to achieve your goal
There are mainly two types of screens:First there is the one that basically consists of a single block of data, which may or may not be compressed, but you will be happy to know that this is not the case:

Data Graphics
22010 | 24010
22E50 | 3F010
23530 | 3D010
23B10 | 3D010
Spoiler: Note 1: In
Djinn Tile Mapper you must add the
0x prefix to the pointers to use them in the
"Go To..." window,
Relevant link.
Note 2: Actually there is also the possibility that there is a screen made up of several of these blocks or that they have additional programming, but this is not the case...
Note 3: You can find the
X value of the hammer from the title screen at
0xC4EC, moving it will allow you to align the text
"Begin new game".
In the following tutorial
RoboCop Tilescreen, you will find relevant information to be able to correctly understand the attributes of palettes of this type of screen, although currently it is best to use
NES Screen Tool 2.51 to distribute the palettes and then export the data as follows:
In the
"Nametable" tab you must activate only
"+ include attributes" and save as binary with
"Save as binary".

You open the
.BIN file with your favorite
Hexadecimal editor and copy its data and insert it into the game with the emulator.
Let's talk about the second type, this can vary in complexity, but basically it is a structure formed by
"legos", here you are also lucky, since they are ordered in a simple way:

Going deeper, there are many blocks that are used to create the structures that make up each
background image, the most common thing to see is that they are used to build levels.
Here would go a long explanation. but better let's see its basic structure, which in this case is:
30bdd | 30c0d Palettes assigned to each block.
30C34 | 30DB4 Graphics.
30fb4 | 30fe3 Distribution of blocks on the game screen.
Surely there is a block intended to define the type of physics that each object will use, but that is not important for the purposes of this tutorial.
What you should know is that these data groups function as lists, in which each object inherits its attributes from the element in the same position as the following list.
In other words, the
1st palette is from the
1st graphic, the
2nd palette is from the
2nd graphic and so on.
Spoiler: In case you couldn't read the tutorial I recommended, remember that each palette attribute code stores the information of
4 different palettes, arranged in the following way:

Using clear, the four available
palettes:

Note: I give these explanations omitting all the data that is behind the operation of the concepts that I explain, so it is recommended that you inquire about this information, otherwise you will be limited when trying to do new things...