Title Screen Hacking for the Gameboy with NO$GMB v1.3 By Catalyst Email: catalyst@bigpond.com Webpage: http://elite.romhacking.com (coming soon) ------------------- 0. History I. Introduction II. Things you need III. The Good Stuff IV. Documentation V. Palette Attributes VI. Another Thing VII. Greets & Thanx ------------------- 0. History ---------- v1.3 added webpage v1.2 added Palette Attributes and History v1.0 first version I. Introduction --------------- I spend about 3 or 4 days trying to find the title screen for Another Bible, so I could hack the menu there. Anywhere it wasn't until I was looking in the Help file for NO$GMB when I noticed something. The hex in the debugger was stored in banks, while in hex editors it isn't. I keep thinking that the address I was getting from the emulator was the one I was looking for in Hex Workshop when it turned out it wasn't. This document explains how I found the title screen with Hex Workshop with the help of the emulator NO$GMB. II. Things you need ------------------- Okay you will need the following things: - NO$GMB - Hex Workshop - knowledge of hexidecimal and binary III. The Good Stuff ------------------- This should save you time and trouble when looking for it, since I couldn't find and no one I talked to knew how to find it. First things first, open the rom up in NO$GMB, now when the title screen appears and the emulation halts for a couple of seconds (just like on the real GB). Press ESC and then go to BG Map Viewer under Window. A box should come up with the screen in it and a red box around it. That is the title screen. With the mouse highlight the tile you want to find and take note of the tile address on the right. Write it down or something because that is what you need. Closing that down go back to the emulator, click on the litte debugger window down the bottom and press Ctrl-G (Goto). Using this command the debugger when go to that location in the rom. Enter in the tile address with the 0: in front of it. The 0: represents the bank.. if it was 02: or 05: it would mean bank 2 and 5 respectively. After the debugger goes to that location, write down the hex values somewhere because we will be using that now. Write down 4 or 5 hex values. You can close down the emulator and open up Hex Workshop using the find command (Ctrl F) enter in the hex values you just took from the NO$GMB debugger. It should find the address at a totally different address then it did in the emulator, not to worry, it just means that the 0:9200 is in RAM when in the emulator and in the memory in Hex Workshop. Now you can edit the tile via hex, for more about this read below in the documentation section. IV. Documentation ----------------- Okay for those who aren't experienced with graphics hacking in hex, you should read both of the following documents relating to the subject. I know both are aimed at the NES, but the graphics in the GB are 2bpp as well. "Editing fonts without the aid of a Graphics Editor! A rather useless document!" by Neil_ - I would say it was the opposite of useless Neil_ "An Introduction to Understanding/Hacking 8 bit Graphics" by prez You can get both the documents at http://rpgd.emulationworld.com V. Palette Attributes ------------------- I've just discovered how to change the palette attributes.. Don't get this mixed up with palette hacking. Palette hacking is where you change the colour but palette attributes is where you change the tile attribute which is also the hex value that sets what background palette is being used for that tile. Any way open up NO$GMB and go to the BG Map Viewer and highlight the tile you want. If you look to the right where the Tile Details are, you should notice a number in the Attribute box which should be the same as the value in the Palette box. Okay this part might annoy you but I haven't discovered another approach yet. Go to the start of the line of tiles where the tile you want to change is in, and move from left to right along the tiles, writing down each number in the Attribute box. Make sure you can writing the whole value in the box, for example if 04 is in the box, don't write down 4 but write down 04. This is because you are now going to search for the values in Hex Workshop. In the find dialog box, enter in as many of those digits as you can, with Hex Values selected. And press enter. To make sure you have found the right spot press F3 to seearch again. If it appears again.. check the hex (that couldn't fit in the Find dialog box) with the values that are after the bit you search. If it is the right spot, you to the hex value you want to edit and change it to one of the other values that is used for Palette Attribute. VI. Another thing ---------------- It is important to note that the way prez and Neil_ say how 8bit graphics might be different in GB. I discovered while hacking the title screen of Another Bible that it was stored differently. Plane 2 was stored before Plane 1 and the top part of the plane was stored before the bottom, like it says in Neil_'s document. Shouldn't really matter, because if this is the case it is pretty easy to discover how it is stored by editing the tile and then testing it to see how the tile changed. VII. Greets & Thanx ------------------ Neil_ _ for explaining to me, 8bit graphics before I discovered his doc, and telling me that if I investigate I should find the addresses. prez - for his doc, helped immensely. Martin Korth - his brillant GB/GBC emulator NO$GMB and it's debugger. Catalyst (C) 2000.