+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  what about text hacking in neogeo or arcade game?!!
Pages: [1]
Author Topic: what about text hacking in neogeo or arcade game?!!  (Read 1 times)
Hesoka
Guest
« on: August 28, 2010, 08:17:15 am »

hi everybody!!
im working on metal slug 2(arabic version) neogeo version and i translate the some graphix in the rom like title screen




 but when i try to figured the text system in the game ... i cant find it i try relative serach in order to find the text but there was no luck ... so i hope someone help me how to find the text in the rom ...
i try also capcom system 1 and i face the same probelm i think this problem for all arcade game... i hope someone help me in the text outne in these system!!
BRPXQZME
Guest
« Reply #1 on: August 28, 2010, 01:43:36 pm »

It’s in there, in ASCII, actually, but you’ll see text like that scrambled like “sc\\P0erssB tuot n Aotf ri eht eug.n”.
Hesoka
Guest
« Reply #2 on: August 28, 2010, 04:02:11 pm »

ohhhhhhh!!! thx body!! thnx very match its work!!  :laugh:
but can u help me in figure this routine of text i think this have a routine in the games program see this ducument :
this from a source information of neo geo system :

Quote
Text format:
8x8 16 color tiles
Each nibble represents a pixel
The low nibble is left pixel of the two.
(eg. 1000 0001 0100 0010 would be 1824 on the screen.)

can anyone  help us to program a tool for this format .... or something else?!!

Maybe this would be in handy :
Quote
IGS PGM
PGM System (c)1997 IGS

Description
-----------

A flexible cartridge based platform some would say was designed to compete with
SNK's NeoGeo and Capcom's CPS Hardware systems, despite its age it only uses a
68000 for the main processor and a Z80 to drive the sound, just like the two
previously mentioned systems in that respect..

Motorola 68000 processor, clocked at 20.000MHz, for main code
Z80 processor, clocked at 8.468MHz, for sound code.

Resolution is 448x224, 15 bit color

Sound system is ICS WaveFront 2115 Wavetable midi synthesizer, used in some
actual sound cards (Turtle Beach)

Later games are encrypted.  Latest games (kov2, ddp2) include an arm7
coprocessor with an internal rom and an encrypted external rom.

Roms Contain the Following Data

Pxxxx - 68000 program
Txxxx - Text and background graphics (2 formats within the same rom)
Mxxxx - Audio samples (8 bit mono signed PCM at 11025Hz)
Axxxx - Sprite graphics data
Bxxxx - A Offsets and Sprite masks

There is no rom for the Z80, the program is uploaded by the 68000

68000 Memory Map
----------------

0x000000 0x01FFFF\tBIOS ROM (Read-Only)
0x100000 0x5FFFFF\tGame ROM (Read-Only)
0x700006 0x700007\tWatchdog?
0x800000 0x81FFFF\tMain Ram (Read/Write)
0x900000 0x903FFF\tBackground layer (Read/Write)
0x904000 0x905FFF\tText layer (Read/Write)
0x907000 0x9077FF\tRow scroll ram (Read/Write)
0xA00000 0xA011FF\tPalette ram (Read/Write)
0xB00000 0xB0FFFF\tVideo Regs inc. Zoom Table (Read/Write)
0xC00002 0xC00003\tSound latch 1 (Read/Write)
0xC00004 0xC00005\tSound latch 2 (Read/Write)
0xC00006 0xC00007\tCalander (Read/Write)
0xC00008 0xC00009\tZ80 Reset (Write)
0xC0000A 0xC0000B\tZ80 Control (Write)
0xC0000C 0xC0000D\tSound latch 3 (Read/Write)
0xC08000 0xC08001\tPlayer 1 and 2 controls (Read)
0xC08002 0xC08003\tPlayer 3 and 4 controls (Read)
0xC08004 0xC08005\tExtra controls (Read)
0xC08006 0xC08007\tDip switches (Read)
0xC10000 0xC1FFFF\tZ80 program ram (Read/Write)

Z80 Memory Map
--------------

0x0000 0xFFFF\t\tZ80 program ram (Read/Write)

Z80 I/O Map
-----------

0x8000 0x8003\t\tICS 2115 Interface (Read/Write)
0x8100 0x81FF\t\tSound latch 3 (Read/Write)
0x8200 0x82FF\t\tSound latch 1 (Read/Write)
0x8400 0x84FF\t\tSound latch 2 (Read/Write)

Graphics Data
-------------

Text format:
8x8 16 color tiles
Each nibble represents a pixel
The low nibble is left pixel of the two.
(eg. 1000 0001 0100 0010 would be 1824 on the screen.)

Background format:
32x32 32 color tiles
The data is arranged in 32 pixel rows.
Each row of pixels is packed into 20 bytes.

Sprite format:
32 color packed three 5 bit pixels to 2 bytes (x333332222211111)
Sprites also include a mask of 8 pixels per byte, A 1 bit indicates an omitted pixel.
Pixels that are marked as omitted in the mask are not included in the pixel data, and are
skipped over on the screen.
Sprites can be any size (multiple of 16(?) pixels wide, but also need to allow 3 pixels to be packed into 2 bytes, or have the non existent pixels marked as omitted in the mask).

Text/Background map format:
---- ---- Ffpp ppp- nnnn nnnn nnnn nnnn

n = tile number
p = palette
F = Y flip
f = X flip

Rom text tiles start at $C000.
Rom background tiles. Tile $0A00 = offset 65536 in T rom. This is based on:
$1A00 (Real tile number) * $280 (Size of each tile) - $400000 (Offset of game tile rom).

Text tile transparent color is 15.
Background tile transparent color is 31.
Text tilemap is 64x32
Background tilemap is 64x64

Palette format:
xRRRRRGGGGGBBBBB

Palettes:
0xA00800 0xA00FFF\tBackground\t(32 * 2 bytes x 32 palettes)
0xA01000 0xA011FF\tText\t\t(16 * 2 bytes x 32 palettes)

Scroll registers:
0xB02000\tBackground scroll Y register (WORD)
0xB03000\tBackground scroll X register (WORD)
0xB05000\tText scroll Y register (WORD)
0xB06000\tText scroll X register (WORD)

Sprites
-------

Sprite table is located at 0x800000 - 0x800A00

Sprite data format:
XXXX Xxxx xxxx xxxx
YYYY Y-yy yyyy yyyy
-Ffp pppp Pvvv vvvv
vvvv vvvv vvvv vvvv
wwww wwwh hhhh hhhh

X = X zoom ($8000 is default)
Y = Y zoom ($8000 is default)
x = X position
y = Y position
p = Palette
F = Y flip
f = X flip
P = Priority
v = Sprite data offset / 2 (in B rom)
w = Width / 16(?)
h = Height

Input Ports (Player 1 and 2 - 0xC08000, Player 3 and 4 0xC08002)
-----------

0x0001\tStart (Player 1 and 3)
0x0002\tUp (Player 1 and 3)
0x0004\tDown (Player 1 and 3)
0x0008\tLeft (Player 1 and 3)
0x0010\tRight (Player 1 and 3)
0x0020\tButton 1 (Player 1 and 3)
0x0040\tButton 2 (Player 1 and 3)
0x0080\tButton 3 (Player 1 and 3)
0x0100\tStart (Player 2 and 4)
0x0200\tUp (Player 2 and 4)
0x0400\tDown (Player 2 and 4w
0x0800\tLeft (Player 2 and 4)
0x1000\tRight (Player 2 and 4)
0x2000\tButton 1 (Player 2 and 4)
0x4000\tButton 2 (Player 2 and 4)
0x8000\tButton 3 (Player 2 and 4)

Extra Controls (0xC08004)
--------------

0x0001\tCoin 1
0x0002\tCoin 2
0x0004\tCoin 3
0x0008\tCoin 4
0x0010\tTest Player 1 and 2
0x0020\tService Player 1 and 2
0x0040\tTest Player 3 and 4
0x0080\tService Player 3 and 4
0x0100\tButton 4 (Player 1)
0x0200\tButton 4 (Player 3)
0x0400\tButton 4 (Player 3)
0x0800\tButton 4 (Player 4)
0x1000\tUnused?
0x2000\tUnused?
0x4000\tUnused?
0x8000\tUnused?

August 28, 2010, 05:47:48 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
hi body's again!!!
i face another problem ; when i try to change the text that i found and save the file like 241_p1.rom
the emulator aid that its not found the essential program 241_p1.rom of the game...
but im sure that i replace the 241_p1.rom correctly so what is the solve of this problem??!!

this is the only change i change....between the orginal file (above) and my copy (down).


and this is the error :


so anyone can help waiting....
« Last Edit: August 28, 2010, 05:47:51 pm by Hesoka »
Auryn
Guest
« Reply #3 on: September 01, 2010, 01:11:06 am »

Like it say in your document, later games are encrypted so it's not really easy to find the text...u need to figure the encryption first Tongue
Why it doesnt' find the file after u modify it, it's probably because of the checksum.
From what i know, mame uses sha or md5 to identify the files and after u modified them, it doesn't find it anymore because that file has an "unknow" value.
The work around is probably to edit the checksum list that mame uses or the correction of the checksum in the rom.
Other option is that u forgot to add the file to the zip after u modified it??
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC