Yeah, ripping the graphics basically.
I'm using a workaround by hacking the palette in VBA's memory viewer so I can rip the graphics/sprites while playing the game, but if possible I'd rather rip them through a tile editor since I think it'll provide a more complete sprite sheet (as NPCs might only use half the sprites in their sprite sheet)
LZ77 decompressors I've tried are...
- Nintenlords LZZ77 Compressor
- NLZ GBA Advance
- GBADecomp
- GBAmdc
- unlz-gba
unLZ-gba, I've already gone through thoroughly and as far as I can tell it only finds garbage.
NLZ GBA Advance (which is I think the best one), crashes while trying to read the file (index out of range error), and I have tried using it on all files (none of which are cracked or bad roms or anything.
I've located where the palettes are in the rom, but that doesn't help much with finding the graphics either.
[edit]
With a bit of fiddling I've also worked out how to change the playable character, though this only allows me to access a small number of the games sprites.
Also I'm not sure if anyone if familiar with
this tutorial, but I also tried that to locate the graphics through VBA-SDL-H and just in case it'll help here's the output I got by following the tutorial.
D:\\>vbasdl\\vba vbasdl\\rom.gba
VisualBoyAdvance version 1.7.2 [SDL]
Searching for file VisualBoyAdvance.cfg
Searching current directory: D:\\
Searching user profile directory: C:\\Users\\Low Lines
Searching executable directory
Reading configuration file.
Searching for file vba-over.ini
Searching current directory: D:\\
Searching user profile directory: C:\\Users\\Low Lines
Searching executable directory
vba-over.ini NOT FOUND (using emulator settings)
Color depth: 32
R00=0203d4f5 R04=00000000 R08=00000000 R12=00000001
R01=08738a00 R05=00000008 R09=00000b01 R13=03007d94
R02=08738648 R06=20000000 R10=00000005 R14=030001b4
R03=00000008 R07=00000001 R11=00000001 R15=03000248
CPSR=2000001f (..C.... Mode: 1f)
03000240 e2599001 subs r9, r9, #0x1
> 03000244 1afffffc bne $0300023c
03000248 eaffff75 b $03000024
debugger> bpw 06016c00 10
Added break on write at 06016c00 for 10 bytes
debugger> c
Breakpoint (on write) address 06016c00 old:00000000 new:00000000
Breakpoint (on write) address 06016c04 old:00000000 new:00000000
Breakpoint (on write) address 06016c08 old:00000000 new:00000000
R00=00008400 R04=00000000 R08=00000000 R12=00000000
R01=06016c00 R05=03001328 R09=00000000 R13=03007d68
R02=020399b4 R06=00000001 R10=00000000 R14=08006acf
R03=040000d4 R07=0203da28 R11=00000000 R15=0800786a
CPSR=0000003f (......T Mode: 1f)
08007866 8158 strh r0, [r3, #0xa]
> 08007868 4770 bx lr
0800786a b508 push {r3,lr}
debugger> mw 00000038
00000038 e14fb000 e92d0800 e20bb080 e38bb01f ..O...-.........
00000048 e129f00b e92d4004 e1a0e00f e12fff1c ..)..@-......./.
00000058 e8bd4004 e3a0c0d3 e129f00c e8bd0800 .@........).....
00000068 e169f00b e8bd5800 e1b0f00e 0000009c ..i..X..........
00000078 0000009c 0000009c 0000009c 000001f8 ................
00000088 000001f0 000000ac 000000a0 000000fc ................
00000098 00000168 e12fff1e e1a03000 e1a00001 h...../..0......
000000a8 e1a01003 e2113102 42611000 e033c040 .....1....aB@.3.
000000b8 22600000 e1b02001 e15200a0 91a02082 ..`". ....R.. ..
000000c8 3afffffc e1500002 e0a33003 20400002 ...:..P..0....@
000000d8 e1320001 11a020a2 1afffff9 e1a01000 ..2.. ..........
000000e8 e1a00003 e1b0c08c 22600000 42611000 ..........`"..aB
000000f8 e12fff1e e92d0010 e1a0c000 e3a01001 ../...-.........
00000108 e1500001 81a000a0 81a01081 8afffffb ..P.............
00000118 e1a0000c e1a04001 e3a03000 e1a02001 .....@...0... ..
00000128 e15200a0 91a02082 3afffffc e1500002 ..R.. .....:..P.
debugger>
My guess is the sprites are imported differently as the tutorial states...