ROM Hack Gyakuten Saiban 1-3 Translation

MarkDarkness

Nocturnal
Member
Joined
Dec 17, 2009
Messages
1,403
Trophies
2
XP
3,206
Country
Poland
No, this patch uses the same script that was used in the DS release.
The translation is identical to the NDS version. I didn't read anything specific about a country in the scripts, but yes, there is a lot of American slang in them.
Oh... such a shame. Maybe in the future.
 

h3rmit

Well-Known Member
Newcomer
Joined
Feb 16, 2014
Messages
99
Trophies
1
XP
944
Country
Greece
In the meanwhile, I had a look on the first game (Gyakuten Saiban 1).

The first thing to do is to place a VWF (variable width font) routine inside the ROM, so that it can display english text. After a lot of experimentation, I was able to roughly fit broco's VWF routine (used in GS3) in the ROM, with a few alterations. It is still far from perfect though.

Anyway, I decided to make a small demo of the first game:

Gyakuten Saiban 1 Patch 000 DEMO

Also, for anyone interested, this is what I have found so far:

ROM Layout
Offset

0011E014 Repeating FFFFs
00180000 Palette for the Logo
00180200 LZ77 compressed Logo
Width 30 blocks, height 20 blocks, 8-bit palette
Length 11013 bytes​

00193CA0 Uncompressed image for the New Game/Continue
Width 4 blocks, height 8 blocks, 4-bit palette​
00194580 Palettes for the New Game/Continue

001946C0 Case titles
LZ77 compressed image
Width 8 blocks, height 40 blocks, 4-bit palette​
--------------------------------------------------------------
001D312C Japanese font glyphs

001FD92C Palette for the case titles
--------------------------------------------------------------
0041BD7C Length info for the following LZ77 group
0041BDA4 Palette for the following image
0041BFA4 LZ77 image of Logo
Image width 30 blocks, 8-bit palette
Split in 10 lines 30x2 blocks, LZ77 compressed​
--------------------------------------------------------------
0074A214 LZ77 compressed case scripts

0074A214 Case 1-1

Notes
2C311D08 (font glyph address) appears at 2 places:
00005770 - Main font display (function begins at exactly 0x080056e0)
00005B60 - Font redisplay after save screen/detailed evidence (function begins at exactly 08005ab8)

Character display routine notes:

The original display routine:
Begins at precisely 0x080056e0
Ends at precisely 0x08005886
Accesses data structures at 03003c00 (sprite OAM proxy), 03003a70, 030039d0, 03002b30 (general game RAM?)

VWF insertion (using cctools)
Code:
cctools\ccinsert -hex 0x5EF1ADFF -rom GS1_English.gba -romaddr 0x000056e2
cctools\ccinsert -dmp fontsplit.bin -rom GS1_English.gba -dmpaddr 0x824C -romaddr 0x00164640
cctools\ccinsert -dmp soundeffect.bin -rom GS1_English.gba -romaddr 0x00166000
cctools\ccinsert -dmp arialmetrics.bin -rom GS1_English.gba -romaddr 0x00169000
cctools\ccinsert -dmp arialglyphs.bin -rom GS1_English.gba -romaddr 0x00170000

REM change font routine GAMERAM_BASE and GAMERAM_BASE_TWO offsets
cctools\ccinsert -hex 0x743a0003 -rom GS1_English.gba -romaddr 0x001648D8
cctools\ccinsert -hex 0x743a0003 -rom GS1_English.gba -romaddr 0x0016494C
REM change font routine OLDFNCTEND offset
cctools\ccinsert -hex 0x7C580008 -rom GS1_English.gba -romaddr 0x001648EC
REM change font routine OAM_PROXY_BASE offset
cctools\ccinsert -hex 0x003C0003 -rom GS1_English.gba -romaddr 0x001648F8
REM change instruction str r1, [r7, #X_COLUMN] to str r2, [r7, #X_COLUMN]
cctools\ccinsert -hex 0x7a60 -rom GS1_English.gba -romaddr 0x00164650
REM change instruction str r2, [r7, #Y_COLUMN] to str r1, [r7, #Y_COLUMN]
cctools\ccinsert -hex 0xb960 -rom GS1_English.gba -romaddr 0x00164652
 

Objection!

Well-Known Member
Newcomer
Joined
Oct 18, 2015
Messages
64
Trophies
0
Age
21
XP
245
Country
Cool man...
 

Attachments

  • Screenshot_2015-12-04-19-11-09.png
    Screenshot_2015-12-04-19-11-09.png
    119.1 KB · Views: 487
  • Screenshot_2015-12-04-08-56-12.png
    Screenshot_2015-12-04-08-56-12.png
    613.2 KB · Views: 232
  • Screenshot_2015-12-04-09-49-40.png
    Screenshot_2015-12-04-09-49-40.png
    117.3 KB · Views: 245
  • Screenshot_2015-12-04-19-08-13.png
    Screenshot_2015-12-04-19-08-13.png
    111.5 KB · Views: 255
Last edited by Objection!,

h3rmit

Well-Known Member
Newcomer
Joined
Feb 16, 2014
Messages
99
Trophies
1
XP
944
Country
Greece
It seems I need to have another look in case 2 and fix a few things that I may have missed.

Can you tell me in which parts of the case did the above bugs happen? It will be easier to locate them that way.

  • The missing textbox and the wrong color are easy to fix.
  • The missing hand in the multiple choice screen is just a lack of space in the memory of the game. There is too much text in the choices, and the hand is overwritten. The only way to fix it is to shorten the text.
  • The crash is a critical issue, I'll need to have a look at it.
 
  • Like
Reactions: Objection!

Objection!

Well-Known Member
Newcomer
Joined
Oct 18, 2015
Messages
64
Trophies
0
Age
21
XP
245
Country
It seems I need to have another look in case 2 and fix a few things that I may have missed.

Can you tell me in which parts of the case did the above bugs happen? It will be easier to locate them that way.

  • The missing textbox and the wrong color are easy to fix.
  • The missing hand in the multiple choice screen is just a lack of space in the memory of the game. There is too much text in the choices, and the hand is overwritten. The only way to fix it is to shorten the text.
  • The crash is a critical issue, I'll need to have a look at it.
The crash occurs at the first trial after Atmey reveals that he is Demasque... But please focus on the first game... Btw...
@h3rmit , can you make this into a new thread? Also make the first game to 3 lines before its too late?
 
Last edited by Objection!,

Objection!

Well-Known Member
Newcomer
Joined
Oct 18, 2015
Messages
64
Trophies
0
Age
21
XP
245
Country
I did not finish case 2 because of the bugs... But here are the bugs of case 3 so far:

Japanese
No color
Infinite loop
 

Attachments

  • Screenshot_2015-12-05-19-49-19.png
    Screenshot_2015-12-05-19-49-19.png
    69.1 KB · Views: 190
  • Screenshot_2015-12-05-19-51-59.png
    Screenshot_2015-12-05-19-51-59.png
    312.7 KB · Views: 228
  • Screenshot_2015-12-05-20-07-54.png
    Screenshot_2015-12-05-20-07-54.png
    314.1 KB · Views: 235

h3rmit

Well-Known Member
Newcomer
Joined
Feb 16, 2014
Messages
99
Trophies
1
XP
944
Country
Greece
Gyakuten Saiban 3 Patch 015.2

This is a bugfix release.

  • Translated the sports paper image

  • Fixed an infinite loop in case 3-2

  • Fixed a few text colors in case 3-2

I didn't have the time to have a look at case 2, it will probably need a re-check of parts 2-2 and 2-3. I haven't really touched the scripts of these parts, since they were already translated by cocomonk22. I just ensured that they were inserted properly in the ROM.

Meanwhile, I have made some progress in Gyakuten Saiban 1.

I have translated several voices, evidence and other graphics. I also fixed a few issues with the scripts. There is still a problem with the english font routine when displaying fullscreen multiple choices, I am trying to fix it. Case 1-1 is not yet fully translated, but it is playable. So I will release another demo, much better from the previous one.

Gyakuten Saiban 1 Patch 001 DEMO

@Objection! Sorry, I can't make the text occupy 3 lines. There is not enough space in the screen, but even if there were, it would require huge changes in the code of the game, which I don't possess the required ASM knowledge to make. Also, I see no need to start a new thread at the moment.
 

h3rmit

Well-Known Member
Newcomer
Joined
Feb 16, 2014
Messages
99
Trophies
1
XP
944
Country
Greece
At what point does this crash appear?

Is that after the end of the first case? If yes, it is normal. I haven't yet touched the second case.
 
  • Like
Reactions: Objection!

h3rmit

Well-Known Member
Newcomer
Joined
Feb 16, 2014
Messages
99
Trophies
1
XP
944
Country
Greece
First results on fixing the fullscreen text issue in GS1:

Before - After

vwf_fullscreen_try0.png
vwf_fullscreen_try1.png


P.S.: For anyone interested, here are the modifications to the GS3 VWF routine so far:
Code:
cctools\ccinsert -hex 0x5EF1ADFF -rom GS1_English.gba -romaddr 0x000056e2
cctools\ccinsert -dmp fontsplit.bin -rom GS1_English.gba -dmpaddr 0x824C -romaddr 0x00164640
cctools\ccinsert -dmp soundeffect.bin -rom GS1_English.gba -romaddr 0x00166000
cctools\ccinsert -dmp arialmetrics.bin -rom GS1_English.gba -romaddr 0x00169000
cctools\ccinsert -dmp arialglyphs.bin -rom GS1_English.gba -romaddr 0x00170000

REM change font routine GAMERAM_BASE and GAMERAM_BASE_TWO offsets
cctools\ccinsert -hex 0x783a0003 -rom GS1_English.gba -romaddr 0x001648D8
cctools\ccinsert -hex 0x703a0003 -rom GS1_English.gba -romaddr 0x0016494C
REM change font routine OLDFNCTEND offset
cctools\ccinsert -hex 0x7C580008 -rom GS1_English.gba -romaddr 0x001648EC
REM change font routine OAM_PROXY_BASE offset
cctools\ccinsert -hex 0x003C0003 -rom GS1_English.gba -romaddr 0x001648F8
REM change instruction str r1, [r7, #X_COLUMN] to str r2, [r7, #X_COLUMN]
cctools\ccinsert -hex 0x7a60 -rom GS1_English.gba -romaddr 0x00164650
REM change instruction str r2, [r7, #Y_COLUMN] to str r1, [r7, #Y_COLUMN]
cctools\ccinsert -hex 0xb960 -rom GS1_English.gba -romaddr 0x00164652
REM change instruction ldrh r1, [r6, #GAMERAM_COLOR] to ldrb r1, [r6, #GAMERAM_COLOR]
cctools\ccinsert -hex 0x317f -rom GS1_English.gba -romaddr 0x00164656
REM change instruction lsr r1, #8 to mov r8, r8 (noop)
cctools\ccinsert -hex 0xC046 -rom GS1_English.gba -romaddr 0x00164658
REM change instruction add r0, #36 to sub r0, #36
cctools\ccinsert -hex 0x2438 -rom GS1_English.gba -romaddr 0x00164888
REM change instruction add r0, #14 to add r0, #4
cctools\ccinsert -hex 0x0430 -rom GS1_English.gba -romaddr 0x0016486A
 
Last edited by h3rmit,

Objection!

Well-Known Member
Newcomer
Joined
Oct 18, 2015
Messages
64
Trophies
0
Age
21
XP
245
Country
At what point does this crash appear?

Is that after the end of the first case? If yes, it is normal. I haven't yet touched the second case.
Start of the first case... :/
Btw... After you translate the second game... Will you fix the bugs on the 3rd game?
 
Last edited by Objection!,

h3rmit

Well-Known Member
Newcomer
Joined
Feb 16, 2014
Messages
99
Trophies
1
XP
944
Country
Greece
Is there a dialog or something that appears before the crash? Does the intro of case 1 play normally? Or does it happen exactly when you select case 1 in the case selection menu?

I haven't yet fixed the crash in the second case of GS3, but I will look at it tomorrow.
 
  • Like
Reactions: Objection!

Objection!

Well-Known Member
Newcomer
Joined
Oct 18, 2015
Messages
64
Trophies
0
Age
21
XP
245
Country
Is there a dialog or something that appears before the crash? Does the intro of case 1 play normally? Or does it happen exactly when you select case 1 in the case selection menu?

I haven't yet fixed the crash in the second case of GS3, but I will look at it tomorrow.
It happends before the intro.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Veho @ Veho: https://www.keepretro.com/products/miyoo-a30