+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  [GBA] Need advice to learn graphic editing
Pages: 1 2 [3]
Author Topic: [GBA] Need advice to learn graphic editing  (Read 1568 times)
lastevil
Guest
« Reply #30 on: July 25, 2007, 04:37:44 am »

Yeah but if we don't place the bpw before natsume logo, it will not break the rom until we push start. PICture are alerady displayed at this moment of the game. Or do you mean if i place a bpw with 2 octets it will break 2 times ?

edit : it broke only once for me.
labmaster
Guest
« Reply #31 on: July 25, 2007, 04:47:44 am »

This is what happened for me, with your copy of the ROM:
Code:
[b]Paused on your splash[/b]
debugger> bpw 06016c10 1
Added break on write at 06016c10 for 1 bytes
debugger> c
[b]Natsume logo fades out[/b]
Breakpoint (on write) address 06016c10 old:00000000 new:c9c2cfcf
R00=02002204 R04=02002204 R08=00780000 R12=03006df8
R01=06013b40 R05=00000000 R09=03006de0 R13=03006dd0
R02=84000ed0 R06=03006df8 R10=03006de8 R14=08008ec1
R03=040000e0 R07=02001fb4 R11=00000000 R15=080d0f0c
CPSR=0000003f (......T Mode: 1f)
080d0f0a  4770 bx lr
debugger> c
Breakpoint (on write) address 06016c10 old:c9c2cfcf new:5446ddce
R00=02005d44 R04=02005d44 R08=02008b38 R12=03006df8
R01=06016c00 R05=00006cf0 R09=03006de0 R13=03006dd0
R02=84000070 R06=03006df8 R10=03006de8 R14=08008ec1
R03=040000e0 R07=02001fb4 R11=00000000 R15=080d0f0c
CPSR=0000003f (......T Mode: 1f)
080d0f0a  4770 bx lr
debugger> c
lastevil
Guest
« Reply #32 on: July 25, 2007, 06:01:04 am »

Ok. same for me. I was bpw the wrong adress.

So we need to continue with the secodn breakpoint i think since this is the one the closest from our picture load. isn't?

debugger> bpw 06016c10 1
Added break on write at 06016c10 for 1 bytes
debugger> c
Breakpoint (on write) address 06016c10 old:00000000 new:c9c2cfcf
R00=02002204 R04=02002204 R08=00780000 R12=03006df8
R01=06013b40 R05=00000000 R09=03006de0 R13=03006dd0
R02=84000ed0 R06=03006df8 R10=03006de8 R14=08008ec1
R03=040000e0 R07=02001fb4 R11=00000000 R15=080d0f0c
CPSR=0000003f (......T Mode: 1f)
080d0f0a  4770 bx lr
debugger> c
Breakpoint (on write) address 06016c10 old:c9c2cfcf new:5446ddce
R00=02005d44 R04=02005d44 R08=02008b38 R12=03006df8
R01=06016c00 R05=00006cf0 R09=03006de0 R13=03006dd0
R02=84000070 R06=03006df8 R10=03006de8 R14=08008ec1
R03=040000e0 R07=02001fb4 R11=00000000 R15=080d0f0c
CPSR=0000003f (......T Mode: 1f)
080d0f0a  4770 bx lr

On VBA > 080d00f08 stmia r3!, {r0-r2}

Seeing r3 > dma3 transfert (i guess)... and the next thing is same as usual, bpw on 02005d44

that give :

debugger> bpw 02005d44 1
Added break on write at 02005d44 for 1 bytes
debugger> c
Breakpoint (on write) address 02005d44 old:0000 new:0000
R00=08749924 R04=00000000 R08=02006bce R12=080d13d4
R01=02005d44 R05=00000001 R09=080d11cb R13=03007a60
R02=00000000 R06=00000009 R10=00000000 R14=080d13d4
R03=00000004 R07=03007a74 R11=000003d8 R15=080d152e
CPSR=0000003f (......T Mode: 1f)
080d152c  3e02 sub r6, #0x2

dissambler of vba >

020d1528 3102 add r1, #0x2
080d152a 800c strh r4, [r1, #0x0]
080d152c 3e02 sub r6, #0x2


« Last Edit: July 25, 2007, 06:11:32 am by lastevil »
lastevil
Guest
« Reply #33 on: August 04, 2007, 04:52:21 pm »

Ok. Long time i haven't post here.
Labmaster, i need some advice from you.

Look at x0D152C and try to change the octet for another. Look the result in the rom. Seems i have found something. Can't see nothing in graphical editor.

Found that by watching the DMA3 tranfert (looking where the palettes of 'Press Start' was coming from (since i can't find by looking the palette in hex > compressed). Then I saw a dma3 transfert with that in source and the x0601XXXX adress as saw in gba emulator debugging options (tile viewer).

anyway. If you are somewhere...
Spikeman
Guest
« Reply #34 on: August 04, 2007, 06:06:41 pm »

Sounds like your graphics are compressed. With this utility you can feed it a SWI log from VBA and it will spit out all the decompressed data, then you can open that in your graphic editor.
lastevil
Guest
« Reply #35 on: August 05, 2007, 04:02:42 am »

Unfortunaly, im sure they are compressed but that seems with another kinf od compression. There is no SWI between 10 and 15 (and according to GBATek doc, i should be able to see some SWI in that range if the game call a decompression bios routine.)
Now i think i will never be able to change all that graphical data because i suppose the only solution is to create a program with an asm decompression routine similar to the game (and another to recompress). I don't know either asm and C.

Last question. Just to be sure that my emulator can give me the SWI 10 to 15 correctly, I need a game name who use one of the three of them early in game, for example for the titlescreen.
Someone got an idea?
Spikeman
Guest
« Reply #36 on: August 05, 2007, 04:10:16 am »

Advanced Wars 2 does, in fact there is a thread somewhere on here where RadioShadow was walked through finding the data.
lastevil
Guest
« Reply #37 on: August 05, 2007, 04:16:16 am »

yeah but couldn't find the rom yesterday (im always looking on usenet binaries).

edit : got it - im going to try now.
« Last Edit: August 05, 2007, 04:23:41 am by lastevil »
lastevil
Guest
« Reply #38 on: August 05, 2007, 04:35:33 am »

Sorry for double post.

Just a post to say i have tried to look the SWI in this game and i got them. But i just have line like :

SWI: 00000012 at 0808aabc (0x0817da38,0x06008000,0x0808aabd,VCOUNT = 224)

SWI: 00000011 at 0808aac0 (0x0817e208,0x0201cc50,0x0808aac1,VCOUNT = 50)

(for example)

GBATEK :
SWI 11h (GBA/NDS7/NDS9) - LZ77UnCompWram
SWI 12h (GBA/NDS7/NDS9) - LZ77UnCompVram (NDS: with Callback)


But i don't have anything with LZ77UnComp on the log file (I mean VBA just put the line SWI: 00000011 at ....
I guess GBAmdc can't 'eat' my log id there are not here.

Anyway, that don't solve my problem, beacuse seems that VBA can show me the swi 10-15 line...


EDIT :
Another question about gba palettes. I know colors are in RGb with 31 depth (0,0,0 white and 31,31,31 black)
Vba can give rgb code and also give the Hex value of it, as used in palette in rom.

What i can't understand is how to convert rgb to hexa. I mean

In normal rgb 255 we put each value in hexa like 255=FF 0=00 and 100=64 so rgb(255,0,64) is xFF0064

But if i look for rgb 31, we also got 3 value (red blue green) but hex value took only 2 bytes.

Like for example : rgb31(22,5,5) > x14b6 or rgb(8,18,11) > x2E48.

forget that > found my answer in SNES Palette Format (Jay)

EDIT (again) : x74eb9c is the beginning of the natsume logo palette ^^
« Last Edit: August 05, 2007, 09:19:10 am by lastevil »
Pages: 1 2 [3]  


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