+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Wonderswan Hacking Issues
Pages: 1 [2]
Author Topic: Wonderswan Hacking Issues  (Read 1093 times)
Dragonsbrethren
Guest
« Reply #15 on: August 18, 2007, 10:10:10 am »

Quote from: DarknessSavior on August 17, 2007, 02:18:03 pm
So, does this mean that there are no non-ASM ways to even find a table for a WS/WSC game? O.o

~DS

Depends on the game, JCE3000GT and I had absolutely no problems making a table for (And finding text in) FF4 back when we were planning on translating it.
DarknessSavior
Guest
« Reply #16 on: August 20, 2007, 01:01:14 pm »

And what ancient chinese secret did you use to find the table for that (seeing as thats a WSC game, and I couldn't even find the FONT in a WSC game, let alone the table values... >.<)?

~DS
taarna23
Guest
« Reply #17 on: August 20, 2007, 06:11:27 pm »

Well, if it's of any help to those willing to offer their help or advice, the game in question is Shinseiki (or Neon Genesis, it depends on where you look as to how the title is listed) Evangelion: Shito Ikusei (isn't that great? My spell checker hates all four of those words), and it would appear that absolutely none of the graphics in the game are compressed. I recall going through them some time ago, being able to recognize cut up and tiled bits of "cutscene" images, forms of Angels you can raise (contrary to the first post, the game is a life-sim type), rooms you can explore, menus, title graphics, font, everything. I suppose it just confuses me a little as to why only one part of it all would be compressed, but then, I am mostly a graphics person, not much of a romhacker.

Sorry for my long-winded and probably ultimately useless post, I'm a little scatterbrained today. I just wanted to try to get what I know about the game known to others.
Dragonsbrethren
Guest
« Reply #18 on: August 20, 2007, 06:23:39 pm »

Quote from: DarknessSavior on August 20, 2007, 01:01:14 pm
And what ancient chinese secret did you use to find the table for that (seeing as thats a WSC game, and I couldn't even find the FONT in a WSC game, let alone the table values... >.<)?

~DS

As I said, it depends on the game. FF4 stored its font in "Genesis" format and the table was easily built from looking at that.
Firlet
Guest
« Reply #19 on: August 21, 2007, 11:02:25 am »

Code:
Use subpar oswan-tracer.

Hit '.' at some dialogue to dump RAM.
Open 'ram.bin' @ $2500 with 2-bpp planar (Gameboy = WS).
You'll see some top-bottom tiles.
Quit emulator.

Place a 'hook_wr 0 2500 2600' to log writes to RAM $2500-2600 (current tile cache).
Before the dialogue runs, hit '/' and ',' to activate tracing, memory.
Play until that screen.

This shows up:
[4:1477] W08 = 01 [R-0250D]
[4:147a] W08 = f0 [R-0252D]

4:1477 = Memory map address


Our trace file shows us this:

[141463] 4:1463 8b 04               mov ax,ds:[si]          ax=0300 bx=0b00 cx=0000 dx=0000 || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[141465] 4:1465 36 01 06 1c 04      add ss:[041ch],ax       ax=000d bx=0b00 cx=0000 dx=0000 || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[14146a] 4:146a ba 3e 00            mov dx,003eh            ax=000d bx=0b00 cx=0000 dx=0000 || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f

; ----------------------------

; read font row

[14146d] 4:146d 32 c0               xor al,al               ax=000d bx=0b00 cx=0000 dx=003e || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[14146f] 4:146f 8a 64 02            mov ah,ds:[si+02h]      ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f

; pixel shifter

[141472] 4:1472 d3 e8               shr ax,cl               ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f

; write font (normal + overflow)

[141474] 4:1474 08 66 02            or ds:[bp+02h],ah       ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[141477] 4:1477 08 46 22            or ds:[bp+22h],al       ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f

[14147a] 4:147a 45                  inc bp                  ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b40 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[14147b] 4:147b 46                  inc si                  ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b41 sp=09b4 si=3b80 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[14147c] 4:147c 4a                  dec dx                  ax=0000 bx=0b00 cx=0000 dx=003e || bp=2b41 sp=09b4 si=3b81 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[14147d] 4:147d 75 ee               jnz 146dh               ax=0000 bx=0b00 cx=0000 dx=003d || bp=2b41 sp=09b4 si=3b81 di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f

; ============================
; @@@@@@@@@@@@@@@@@@@@@@@@@@@@
; ============================

[14147f] 4:147f 1f                  pop ds                  ax=0000 bx=0b00 cx=0000 dx=0000 || bp=2b7e sp=09b4 si=3bbe di=1000 || cs=4000 ds=2000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f
[141480] 4:1480 c3                  ret                     ax=0000 bx=0b00 cx=0000 dx=0000 || bp=2b7e sp=09b6 si=3bbe di=1000 || cs=4000 ds=1000 ss=0000 es=3000 || 2=10 3=12 || 4=14 5=15 6=16 7=17 8=18 9=19 a=1a b=1b c=1c d=1d e=1e f=1f


141474 = ROM address of code

ds:[bp+2] = 2000:[2b40+2]
2=10

-->

(10)0000+2b42 = 102b42 or 100002 (fontrom).


There might be some header bytes.
You'll have to check for scripting codes.
Pages: 1 [2]  


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