How Do People Make Tools To Modify Roms? (NGP)

Started by LoveFist, March 03, 2019, 12:01:01 AM

Previous topic - Next topic

LoveFist

 I'm struggling with neo geo pocket games, mnainly ,SNK vs Capcom MOTM, and it seems like the emulators are limited. With emulators such as visual lboy advance, I can debug, disable multiple graphical elements, display them separately in a map viewer etc, and I can't seem to find something like that for neo geo pocket. The closest thing was the memory viewer in bizhawk. I wasn't able to figure out how to disable background layers, or sound layers to the point where i could get the sounds necessary at least. Viewing the rom through programs like tile molester is confusing. I get to what is an obvious sprite but can't seem to line them up and display correctly How do people figure this stuff out?

KingMike

Supposedly NGP(C) is a rather poorly documented system, which would limit the tool and emulator selection.

At least from what I've read byuu has been looking into it recently and has not come up with much.
"My watch says 30 chickens" Google, 2018

Psyklax

#2
It sounds like you've got the wrong idea about ROM hacking. Why do you need to disable graphics and sound layers and the like? How will that help? Are you actually hacking or just trying to rip graphics and sound for your own benefit?

Assuming you actually want to hack a game rather than do what you described, we don't write our own tools. A hex editor, Tile Molester, a good debugging emulator: these three things alone are usually enough to get results. Though it sounds like NGP doesn't have much on the emulator front.

EDIT: damn, I just noticed that the NGP has just one single complete translation on this site! This is very tempting for me, as I do like to explore new systems. Hmm...

#

-

Gorganzola

Quote from: LoveFist on March 03, 2019, 12:01:01 AM
I can debug, disable multiple graphical elements, display them separately in a map viewer etc, and I can't seem to find something like that for neo geo pocket.
Hi, there is multi system emulator with support for Neo Geo Pocket Color and a debugger called vdmgr. See this link (In Japanese). You will need BIOS file to use this emulator.
Quote from: Psyklax on March 03, 2019, 02:09:39 AM
EDIT: damn, I just noticed that the NGP has just one single complete translation on this site! This is very tempting for me, as I do like to explore new systems. Hmm...
Good idea! I think the NGPC has 2 complete translations: Card Fighters 2 and Ni-Ge-Ron-Pa. Some very interesting games for the system that are Japan-only like Biomotor Unitron 2, Ogre Battle gaiden game, Neo Poke Kun and Cool Cool Jam, try them, you may like them! ;)
Also very very bad translations for games like Evolution and Dark Arms. (Dark Arms is better but it doesn't make sense why you are in the game world)

Psyklax

I couldn't resist having a go at Rockman Battle & Fighters, since the best translation of it appears to be a quick and dirty one from a few months ago:



Bizhawk wouldn't show me the VRAM so I had to resort to the old fashioned relative search, and it worked a treat. I'll have a look at that emulator mentioned, though.

LoveFist

#6
Quote from: Psyklax on March 03, 2019, 02:09:39 AM
It sounds like you've got the wrong idea about ROM hacking. Why do you need to disable graphics and sound layers and the like? How will that help? Are you actually hacking or just trying to rip graphics and sound for your own benefit?

Assuming you actually want to hack a game rather than do what you described, we don't write our own tools. A hex editor, Tile Molester, a good debugging emulator: these three things alone are usually enough to get results. Though it sounds like NGP doesn't have much on the emulator front.

EDIT: damn, I just noticed that the NGP has just one single complete translation on this site! This is very tempting for me, as I do like to explore new systems. Hmm...

Pretty much both of those things. I'm looking to help fill in sprite sheets and sounds to fill in some online databases while also using them for animation purposes. I haven't been having any luck on either front unfortunately. Another thing I remembered were the game specific tools for the gba pokemon games I used back in the day

I've been looking into figuring out how to change the HP, attack damage, backgrounds, or sounds but I haven't had any luck with anything. I would expect the HP value to at least be noticeable in the RAM memory. If not, then I'm lost looking through the ram. Using a program like tilemolester to extract sprites is more difficult than I thought it would be

Psyklax

Quote from: LoveFist on March 04, 2019, 10:35:20 AM
I would expect the HP value to at least be noticeable in the RAM memory

It is: it's at $961. I just used the RAM search in Bizhawk and it was there. :) Change it to 01 and watch your health go right down.

LoveFist

#8
Quote from: Psyklax on March 04, 2019, 12:35:12 PM
It is: it's at $961. I just used the RAM search in Bizhawk and it was there. :) Change it to 01 and watch your health go right down.

How did you even find that? I've been coming across a lot of things except for that  >:(

I don't see the $961 but i just see 960 in bizhawk. I'll work on looking for the opponent's now

Psyklax

Quote from: LoveFist on March 04, 2019, 01:28:36 PM
How did you even find that? I've been coming across a lot of things except for that  >:(

I don't see the $961 but i just see 960 in bizhawk. I'll work on looking for the opponent's now

I played the game in Bizhawk, opened the RAM search, did a few searches equal to previous, then got hit, did search for NOT equal, got hit again, lather rinse repeat, and there were a bunch of different things remaining and I just figured that $961 was the right one (not $960 though).

Also, I just tried vdmgr and although it has a nice looking debugger, I can't figure out how to set a read breakpoint for memory. Execution breakpoints for instructions are fine I think, but I need to see when the game reads text, so without a read breakpoint I'm not sure where to go.

LoveFist

#10
I don't understand why I can't view the that offset.

tlp turns out to be the best thing i've used so far for graphics, but the only downside is the way the game displays the characters and backgrounds in multiple parts. Seems easy to modify everything except for the character and their moves. I have no idea how to put those things together yet. I suppose my last latest task would be just figuring out how to disable the backgrounds to a blank color and import different graphics into tile layer pro while figuring out how to put the characters and bg back together

Here's what I've been able to get so far
https://imgur.com/a/cix867b

Psyklax

Quote from: LoveFist on March 05, 2019, 04:26:02 PM
I can't view the that offset.

I don't get it. What do you mean you can't view it? That makes no sense. Go to Tools->Hex Editor, and make sure you choose Options->Data Size->1 Byte, since by default it shows it in 4 Byte (32-bit) format. I think that may be where you went wrong. I'm not sure why Bizhawk defaults to 32-bit since I think the NGP uses a 16-bit CPU, but whatever. If you're looking for stuff like health and whatnot, always search in 1 Byte format.

By the way, your opponent's health is at $AE1. ;)

Quote from: LoveFist on March 05, 2019, 04:26:02 PM
tlp turns out to be the best thing i've used so far for graphics, but the only downside is the way the game displays the characters and backgrounds in multiple parts. Seems easy to modify everything except for the character and their moves. I have no idea how to put those things together yet. I suppose my last latest task would be just figuring out how to disable the backgrounds to a blank color and import different graphics into tile layer pro while figuring out how to put the characters and bg back together

Actually, you might be onto something with that: if you want to capture sprites, don't bother putting them together in TLP, just find the background and replace them with one single colour, and that will give you a similar effect to disabling the background layer. :)