Sonic and Sega Retro Message Board: Sega's patches to Virtual Console releases - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 5 Pages +
  • 1
  • 2
  • 3
  • Last ►
    Locked
    Locked Forum

Sega's patches to Virtual Console releases aka sega does more than just package a rom in a container

#1 User is offline evilhamwizard 

Posted 13 July 2009 - 12:56 PM

  • Posts: 1265
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
I want to make this a big post, but there really isn't much to say. It might not be news to some, but Sega (of Japan?) seems to actually patch their games before they release them - either by disassembly or with the source code right next to them. The Genesis/Megadrive roms are also in their proprietary format - SGD (trivia: some of the games in drx's big proto release last year were in .SGD format). But that isn't really interesting, what is interesting is that Sega does try to patch some things in their games before releasing them on the Virtual Console. One of these games that are heavily patched is Phantasy Star IV.

All the comments in this patch file are in Japanese with no clear distinction as to who might've done it. The patches seem to fix some color, but most importantly, the imfamous lvl99 bug in the game. Check it out (this was taken from the EU release of the game/wad, but the patch seems to be universal):

CODE
>0x120    string        "PHANTASY STAR The end of the millennium"
#
# colorup_r1の上限修正版(jue共通)
#
0x2fff00:                
    beshort        0x7600            # moveq.l    #$00,d3            
    beshort        0x0c78,0x0100,0xec28    # cmpi.w    #$0100,$ec28.w        
    beshort        0x6d0e            # blt.s    1f
    beshort        0x0c78,0x0108,0xec28    # cmpi.w    #$0108,$ec28.w        
    beshort        0x6e06            # bgt.s    1f
    beshort        0x4a38,0xee69        # tst.b    $ee69.w            
    beshort        0x6624            # bne.s    4f            
#1:
    beshort        0x41f8,0xfb02        # lea.l    $fb02.w,a0        
    beshort        0xd0c0            # adda.w    d0,a0            
    beshort        0x7e0c            # moveq.l    #$0c,d7            
#2:
    beshort        0x3a10            # move.w    (a0),d5            
    beshort        0xe67d            # ror.w    d3,d5            
    beshort        0x3405            # move.w    d5,d2            
    beshort        0x5445            # addq.w    #2,d5            
    beshort        0x3205            # move.w    d5,d1            
    beshort        0x0c41,0x000c        # cmpi.w    #$000c,d1;上限修正値(元は$000e)
    beshort        0x6f04            # ble.s    3f            
    beshort        0x3a3c,0x000c        # move.w    #$000c,d5;上限修正値(元は$000e)        
#3:
    beshort        0xe77d            # rol.w    d3,d5            
    beshort        0x30c5            # move.w    d5,(a0)+        
    beshort        0x51cf,0xffe6        # dbra.w    d7,2b        
#4:
    beshort        0x4e75            # rts                

#
# lvl99バグパッチ(jue共通)
#
0x2ffe00:                
    beshort        0x3028,0x0008        # move.w $0008(a0),d0        
    beshort        0x0c40,0x0063        # cmpi.w #$0063,d0;lvl99?
    beshort        0x6608            # bne    1f    
    beshort        0x323c,0x0000        # move.w #$0000,d1;not99 = false
    beshort        0x5c8b            # addq.l #$06,a3;バグの根幹、99の場合もlvupdataのポインタ(a3)を次の人に
    beshort        0x4e75            # rts
#1:    
    beshort        0x323c,0xffff        # move.w #$ffff,d1;not99 = true
    beshort        0x4e75            # rts

#
# jp
#
>0x180    string        "GM G-5524  -00"

# 光過敏対応
0x035ca2:
    beshort        0x0888            # player critical hit flash color(元は0x0eee)
0x0359da:
    beshort        0x0888            # boss damage flash color(元は0x0eee)
0x03fdd6:
    beshort        0x0eec            # destruction cyan color(元は0x0ec6)

0x02dfa4:
    beshort        0x000f            # last boss megido イントロの赤増加頻度(0x0008/(n+1))
0x02dfb0:
    beshort        0x0002            # last boss megido イントロの赤増加回数(元4回)
0x02e0e1:
    byte        0x01            # last boss megido 爆発赤減少回数n+1(元3+1回)
0x02e101:
    byte        0x01            # last boss megido 爆発赤増加回数n+1(元3+1回)

0x02dba4:
    beshort        0x002f,0xff00        # jsr colorup_r1をパッチルーチンへ
0x02dc36:
    beshort        0x000c            # last boss dead action 赤増減エフェクト上限修正値

# メギドバグ修正
0x071700:    
    beshort        0x0061            # 元は0x0060(ラザンと被る)、海外では修正済み

# lvl99バグ修正
0x003e66:    
    beshort        0x4eb9,0x002f,0xfe00    # jsr 0x2ffe00;lvl99の場合もlvupdataのポインタ(a3)を進めるパッチ処理を呼ぶ
    beshort        0x4a41            # tst.w    d1;check not99

#### デバッグ用戦闘後取得経験値操作
###0x002f34:    
###    beshort        0x223c,0x0020,0x0000    # move.l #$00200000,d1


#
# us
#
>0x180    string        "GM MK-1307 -00"

# 光過敏対応
0x00c06c:
    beshort        0x117c,0x0004        # move.b btdmg_tim+1(a4),colch_tim(a0) -> move.b #$0004,colch_tim(a0); 雑魚のクリティカルダメージフラッシュを固定時間に
0x035cb8:
    beshort        0x0888            # player critical hit flash color(元は0x0eee)

0x0359f0:
    beshort        0x0666            # boss damage flash color(元は0x0eee)

0x03fdec:
    beshort        0x0eee            # destruction cyan color(元は0x0ec6)

0x02dfb2:
    beshort        0x000f            # last boss megido イントロの赤増加頻度(0x0008/(n+1))
0x02dfbe:
    beshort        0x0002            # last boss megido イントロの赤増加回数(元4回)
0x02e0ef:
    byte        0x01            # last boss megido 爆発赤減少回数n+1(元3+1回)
0x02e10f:
    byte        0x01            # last boss megido 爆発赤増加回数n+1(元3+1回)

0x02dbaa:
    beshort        0x002f,0xff00        # jsr colorup_r1をパッチルーチンへ
0x02dc3c:
    beshort        0x000c            # last boss dead action 赤増減エフェクト上限修正値

# lvl99バグ修正
0x003f4c:    
    beshort        0x4eb9,0x002f,0xfe00    # jsr 0x2ffe00;lvl99の場合もlvupdataのポインタ(a3)を進めるパッチ処理を呼ぶ
    beshort        0x4a41            # tst.w    d1;check not99


#
# eu
#
>0x180    string        "GM MK -1307   "

# 光過敏対応
0x00c074:
    beshort        0x117c,0x0004        # move.b btdmg_tim+1(a4),colch_tim(a0) -> move.b #$0004,colch_tim(a0); 雑魚のクリティカルダメージフラッシュを固定時間に
0x035cc0:
    beshort        0x0888            # player critical hit flash color(元は0x0eee)

0x0359f8:
    beshort        0x0666            # boss damage flash color(元は0x0eee)

0x03fdf4:
    beshort        0x0eee            # destruction cyan color(元は0x0ec6)

0x02dfba:
    beshort        0x000f            # last boss megido イントロの赤増加頻度(0x0008/(n+1))
0x02dfc6:
    beshort        0x0002            # last boss megido イントロの赤増加回数(元4回)
0x02e0f7:
    byte        0x01            # last boss megido 爆発赤減少回数n+1(元3+1回)
0x02e117:
    byte        0x01            # last boss megido 爆発赤増加回数n+1(元3+1回)

0x02dbb2:
    beshort        0x002f,0xff00        # jsr colorup_r1をパッチルーチンへ
0x02dc44:
    beshort        0x000c            # last boss dead action 赤増減エフェクト上限修正値

# lvl99バグ修正
0x003f54:    
    beshort        0x4eb9,0x002f,0xfe00    # jsr 0x2ffe00;lvl99の場合もlvupdataのポインタ(a3)を進めるパッチ処理を呼ぶ
    beshort        0x4a41            # tst.w    d1;check not99


There are some other games that have these patch files. If I find a WAD of an interesting game, I'd be happy to look for some patch notes (some master system games have some). I can already say that none of the Sonic games that I know of have any. But I'm very interested in the recently released "Japan-Only" stuff - most notably Pulseman.

Hope this topic was interesting. smile.png

Ninja Edit: I have some patch notes from Phantasy Star II. As some of you know, Yuji Naka programmed that game. And it's been reported recently that he does assist in patching the old games he's worked on. Anyone interested?
This post has been edited by evilhamwizard: 13 July 2009 - 01:05 PM

#2 User is offline Ollie 

Posted 13 July 2009 - 01:13 PM

  • DIGGY DIGGY HOLE
  • Posts: 1251
  • Joined: 28-May 06
  • Gender:Male
  • Location:Stoke-On-Trent, England, UK
  • Wiki edits:149
Wasn't there a few minor bug fixes applied to the Sonic 2 Master System game? I think it was to do with the camera.

#3 User is offline evilhamwizard 

Posted 13 July 2009 - 01:32 PM

  • Posts: 1265
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
Yep, but I'm not sure if it had to do with the camera:

CODE
>0x7ff0        string        "TMR SEGA"

#
# 7-3ステージで最終ボスのエッグマンを撃破後のエンディング
色フラッシュ修正
#(エッグマン消失時、テイルズ救出時演出での青色点滅)
# ※全ての面でカオスエメラルドを取得してクリアする必要
あります。

# rev. A(MPR-15159A)
>>0x7ffc    belong        0x15900140
0x07af31:
    byte    0x10        # 元は0x3e    
0x07af3e:
    byte    0x0e        # 元は0x00    


# normal(MPR-15159)
>>0x7ffc    belong        0x15900040
0x07afb1:
    byte    0x10        # 元は0x3e    
0x07afbe:
    byte    0x0e        # 元は0x00


Also I got my hands on Pulseman, no patch file there - but it's using some sort of new emulator w/ sound driver and all. You can download it here.

Phantasy Star III also has some patches too:

CODE
# jp
>0x180 string "GM 5503-00 "
>>0x1f0 string "J"
0x0002b8:
beshort 0x6050 # bra.s 0x00030a

0x00867a:
beshort 0x8554 # ゲームオーバー後のセガロゴ中、スプライトのゴミが出る
を回避する
# VDP #5 register (SPR AT) $a000 -> $a800に

# us
>0x180 string "GM 1303-01 "
>>0x1f0 string "UE"
0x0002b8:
beshort 0x604a # bra.s 0x000304

0x0256b6: # ナースCGの定義情報アドレス
beshort 0x05e0 # 転送バイト数
beshort 0x0004 # 転送モードをcgexp -> cgnormalに
belong 0x0007f000 # ナースCGの展開後修正したデータアドレス
# (元はcgexpデータで0xa47b8)
0x07f000:
byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
byte 0x44,0x66,0x44,0x44,0x44,0x65,0x44,0x45,0x44,0x65,0x44,0x55,0x44,0x65,0x45,0x56
byte 0x44,0x65,0x55,0x64,0x44,0x66,0x56,0x44,0x44,0x65,0x64,0x74,0x44,0x65,0x46,0x74
byte 0x66,0x64,0x44,0x44,0x56,0x44,0x44,0x65,0x64,0x44,0x45,0x55,0x44,0x44,0x55,0x55
byte 0x44,0x45,0x55,0x55,0x44,0x55,0x55,0x55,0x45,0x55,0x55,0x55,0x45,0x55,0x55,0x55
byte 0x66,0x66,0x66,0x66,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55
# byte 0x55,0x55,0x55,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x56,0x55,0x5e,0xe5,0x55,0x55
byte 0x55,0x55,0x55,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x55,0x55
byte 0x66,0x66,0x66,0x66,0x55,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x56,0x55,0x55,0x55
byte 0x66,0x66,0x66,0x66,0x55,0x55,0x56,0x66,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x55
byte 0x66,0x66,0x66,0x79,0x55,0x56,0x66,0x67,0x55,0x56,0x66,0x67,0x56,0x66,0x66,0x56
byte 0x66,0x66,0x66,0x56,0x66,0x66,0x65,0x66,0x66,0x65,0x55,0x66,0x66,0x66,0x66,0x56
byte 0xa8,0x88,0x88,0x88,0xa9,0x99,0x99,0x98,0xa9,0x99,0x99,0x98,0x79,0x99,0x99,0x98
byte 0x79,0x99,0x99,0x98,0x79,0x99,0x99,0x98,0x79,0x99,0x99,0x98,0x7a,0xaa,0xaa,0xaa
byte 0xa8,0x88,0x88,0x88,0xa9,0x99,0x99,0x98,0xa9,0x99,0x99,0x98,0xa9,0x99,0x99,0x98
byte 0xa9,0x99,0x99,0x98,0xa9,0x99,0x99,0x98,0xa9,0x99,0x99,0x98,0xaa,0xaa,0xaa,0xaa
byte 0x44,0x65,0x44,0x64,0x44,0x65,0x47,0x64,0x44,0x65,0x47,0x64,0x44,0x65,0x47,0x64
byte 0x44,0x65,0x47,0x64,0x44,0x65,0x47,0x64,0x44,0x65,0x47,0x64,0x44,0x65,0x47,0x64
byte 0x55,0x56,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x56,0x55,0x65,0x55,0x55,0x66,0x55
byte 0x55,0x55,0x56,0x55,0x55,0x55,0x65,0x55,0x65,0x56,0x55,0x55,0x66,0x56,0x55,0x55
# byte 0x5e,0xe5,0xee,0x55,0x55,0xee,0xe5,0x55,0x5e,0xee,0x55,0x55,0xee,0x5e,0xe5,0x56
# byte 0x55,0x5e,0x55,0xdd,0x55,0x55,0xdd,0xda,0x5d,0xdd,0xdd,0xf9,0xdd,0xdd,0xfa,0xa9
byte 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x56
byte 0x55,0x55,0x55,0xdd,0x55,0x55,0xdd,0xda,0x5d,0xdd,0xdd,0xf9,0xdd,0xdd,0xfa,0xa9
byte 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x66,0x66,0x66,0x6d,0xdd,0xdf,0xdd
byte 0xdd,0xdd,0xdd,0xdd,0xf9,0xad,0xdd,0xdd,0x9f,0x9a,0xbd,0xfb,0x99,0xff,0xba,0xaa
byte 0x66,0x66,0x66,0x67,0x66,0x66,0x66,0x67,0x66,0x66,0x66,0x67,0xf6,0x66,0x66,0x66
byte 0xdf,0xff,0x66,0x66,0xdd,0xff,0xff,0xff,0xdd,0xdf,0xff,0xff,0xad,0xdd,0xff,0xff
byte 0xa8,0x88,0x88,0x88,0xa9,0x99,0x99,0x98,0xa9,0x99,0x99,0x98,0x79,0x99,0x99,0x98
byte 0x79,0x99,0x99,0x98,0x79,0x99,0x99,0x98,0x79,0x99,0x99,0x98,0xff,0xaa,0xaa,0xaa
byte 0x44,0x65,0x44,0x45,0x44,0x65,0x44,0x56,0x44,0x65,0x45,0x66,0x44,0x65,0x56,0x64
byte 0x44,0x65,0x66,0x47,0x44,0x65,0x64,0x77,0x44,0x65,0x44,0x77,0x44,0x65,0x44,0x77
byte 0x46,0x55,0x55,0x5d,0x64,0x46,0x55,0x5d,0x44,0x44,0x66,0xdd,0x44,0x44,0x45,0xdd
byte 0x67,0x74,0xdd,0xdd,0x67,0x45,0xdd,0xdd,0x64,0x56,0xdd,0xdd,0x45,0x64,0xdd,0xdd
byte 0xdf,0xfd,0xfa,0x98,0xdf,0xad,0xfa,0x98,0xdf,0xad,0xfa,0x98,0xdf,0xad,0xff,0x98
byte 0xdf,0xba,0xda,0x98,0xda,0xaa,0xa9,0x98,0xfa,0xb4,0x44,0x98,0xda,0xa4,0x45,0x49
byte 0x8b,0x99,0x44,0x44,0x89,0x94,0x64,0x44,0x89,0x46,0x64,0x54,0x89,0xa5,0x54,0x44
byte 0x89,0x9a,0x56,0x48,0x88,0x99,0x99,0x88,0x88,0x88,0x88,0x89,0x88,0x88,0x88,0x89
byte 0xaa,0xdd,0xff,0xff,0xaa,0xad,0xfa,0xff,0xaa,0xad,0xfa,0xff,0x99,0xad,0xda,0xaf
byte 0x99,0x9a,0xfa,0xaf,0x99,0x9a,0xfa,0x9f,0x99,0x9a,0xfa,0x9f,0x99,0x9a,0xf9,0xfd
byte 0xff,0x88,0x88,0x88,0xff,0x99,0x99,0x98,0xff,0xf9,0x99,0x98,0xff,0xf9,0x99,0x98
byte 0xff,0xf9,0x99,0x98,0xff,0xf9,0x99,0x98,0xff,0xf9,0x99,0x98,0xff,0xfa,0xaa,0xaa
byte 0x44,0x65,0x44,0x74,0x44,0x65,0x44,0x45,0x44,0x65,0x44,0x56,0x44,0x65,0x45,0x64
byte 0x44,0x65,0x56,0x47,0x67,0x65,0x55,0x55,0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x77
byte 0x56,0x44,0xdf,0xdd,0x64,0x74,0xdf,0xfd,0x47,0x74,0xdd,0xff,0x67,0x74,0x4d,0xff
byte 0x67,0x74,0x4d,0x44,0x55,0x55,0x5d,0x44,0x66,0x66,0x66,0xd4,0x77,0x77,0x77,0x77
byte 0xd7,0x45,0x44,0x49,0xdd,0xaa,0x54,0x99,0xdd,0xaa,0xa9,0x88,0xff,0xba,0x98,0x88
byte 0xff,0xba,0xa9,0x88,0x4f,0xfb,0xaa,0x99,0x44,0x44,0xba,0xa9,0x77,0x77,0x4b,0xaa
byte 0x88,0x88,0x88,0x89,0x98,0x88,0x88,0x88,0x98,0x88,0x88,0x88,0xa8,0x88,0x88,0x88
byte 0xaa,0x88,0x98,0x88,0x99,0x8c,0xe9,0x88,0x99,0xec,0xa8,0x89,0x99,0x9a,0xa8,0x89
byte 0x99,0x9a,0xab,0xdd,0x99,0x9a,0xab,0xdd,0x99,0x9a,0xbb,0xdd,0x99,0x9a,0xbb,0xdd
byte 0x99,0xaa,0xbb,0xdd,0x99,0xab,0xaa,0xdd,0x9a,0xba,0xaf,0xdd,0xaa,0xba,0xff,0xfd
byte 0xff,0xf8,0x88,0x88,0xdf,0xf9,0x99,0x98,0xdf,0xf9,0x99,0x98,0xdf,0xf9,0x99,0x98
byte 0xdf,0xf9,0x99,0x98,0xdf,0xf9,0x99,0x98,0xff,0x99,0x99,0x98,0xff,0xaa,0xaa,0xaa
byte 0x66,0x77,0x66,0x66,0x66,0x77,0x55,0x55,0x66,0x77,0x55,0x55,0x66,0x77,0x55,0x55
byte 0x77,0x77,0x55,0x55,0x77,0x77,0x77,0x77,0x67,0x77,0x76,0x66,0x75,0x77,0x77,0x77
byte 0x66,0x66,0x66,0x66,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55
byte 0x54,0x44,0x44,0x55,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x66,0x77,0x77,0x76,0x66
byte 0x66,0x66,0x7b,0xba,0x55,0x56,0x74,0xbb,0x55,0x56,0x74,0x44,0x55,0x56,0x74,0x44
byte 0x55,0x56,0x74,0x44,0x77,0x77,0x74,0x44,0x66,0x66,0x64,0x44,0x66,0x66,0x76,0x44
byte 0xaa,0x99,0x89,0x99,0xba,0xa9,0x99,0xaa,0xbb,0xba,0xaa,0xbb,0x46,0x44,0xbb,0xbb
byte 0x46,0x44,0xbb,0xba,0x46,0x66,0x55,0x56,0x46,0x65,0x55,0x55,0x46,0x65,0x66,0x5d
byte 0xab,0xaa,0xdf,0xfd,0xba,0xaa,0xdd,0xfd,0xaa,0xdd,0xdd,0xdf,0xad,0xff,0xdd,0xdf
byte 0xad,0xff,0xdf,0xff,0x5d,0xdf,0xff,0xf5,0x6d,0xdf,0xff,0x55,0xfd,0xdd,0xff,0x65
byte 0xff,0xbb,0xbb,0xbb,0xff,0xaa,0xaa,0xaa,0xff,0xbb,0xbb,0xbb,0xf6,0x64,0x44,0x66
byte 0x66,0x66,0x56,0x55,0x66,0x65,0x55,0x55,0x66,0x55,0x55,0x55,0x56,0x55,0x55,0x55
byte 0xbb,0xbb,0xbb,0xbb,0xaa,0xaa,0xaa,0xaa,0x66,0x6b,0xbb,0xbb,0x55,0x66,0x64,0x44
byte 0x55,0x55,0x64,0x44,0x55,0x55,0x56,0xbb,0x55,0x55,0x56,0x6b,0x55,0x55,0x55,0x6b
byte 0x77,0x57,0x97,0x77,0x77,0x99,0x9a,0x77,0x79,0x9a,0xaa,0x57,0x99,0xab,0xaa,0x55
byte 0x9a,0xa9,0x9a,0x55,0xba,0x99,0xab,0xff,0x99,0x9b,0x99,0xaf,0x99,0xa9,0xaa,0x7f
byte 0x77,0x77,0x65,0x65,0x77,0x76,0x65,0x55,0x77,0x66,0x55,0x55,0x76,0x65,0x55,0x55
byte 0x57,0x55,0x55,0x55,0xdf,0x75,0x55,0x55,0xfd,0xf7,0x55,0x55,0xff,0x56,0x75,0x55
byte 0x55,0x56,0x66,0x66,0x55,0x55,0x55,0x66,0x55,0x55,0x55,0x56,0x55,0x56,0x55,0x55
byte 0x55,0x56,0x55,0x55,0x55,0x65,0x65,0x55,0x56,0x66,0x55,0x55,0x66,0x65,0x55,0x55
byte 0x66,0x55,0x66,0xfd,0x65,0x55,0x55,0xdd,0x65,0x55,0x6c,0xcc,0x65,0x55,0x6c,0xcc
byte 0x55,0x55,0xdd,0xdf,0x55,0x5f,0xdd,0xff,0x55,0x5d,0xdd,0xff,0x56,0x6d,0xdf,0xff
byte 0xfd,0xff,0xf6,0x55,0xff,0xff,0x66,0x55,0xff,0xf6,0x65,0x55,0xbf,0xf6,0x55,0x55
byte 0xbb,0x65,0x55,0x55,0xb6,0x65,0x55,0x55,0xf6,0x65,0x55,0x55,0xf6,0x55,0x55,0x55
byte 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55
byte 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x65,0x55,0x55,0x56,0x55,0x55,0x55
byte 0x55,0x55,0x55,0x6b,0x56,0x55,0x55,0x6b,0x56,0x65,0x55,0x56,0x55,0x65,0x55,0x56
byte 0x55,0x66,0x55,0x56,0x55,0x66,0x55,0x56,0x55,0x66,0x55,0x56,0x55,0x66,0x55,0x56
byte 0x9b,0x99,0xa7,0x47,0x99,0x9a,0x77,0x74,0x99,0x9a,0x77,0x67,0x99,0x9a,0x77,0x66
byte 0x99,0xa7,0x77,0x66,0x99,0xa7,0x77,0x66,0x9a,0x77,0x77,0x66,0xa7,0x77,0x77,0x76
byte 0xf5,0x55,0x67,0x56,0x76,0x55,0x56,0x76,0x47,0x65,0xa9,0x99,0x74,0xa9,0x99,0x99
byte 0x67,0xbb,0xaa,0xab,0x6b,0xaa,0xa9,0x99,0xaa,0xba,0xba,0xb9,0xbb,0xa9,0x99,0x99
byte 0x66,0x65,0x55,0x55,0x66,0x55,0x55,0x55,0x95,0x55,0x55,0x55,0x99,0x95,0x55,0x55
byte 0x99,0x99,0x95,0x55,0x99,0x99,0x99,0x95,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99
byte 0x56,0x6d,0xdd,0xff,0x55,0x5d,0xdd,0xff,0x55,0x5d,0xdd,0xfd,0x66,0x5d,0xdd,0xdd
byte 0x66,0x5d,0xdd,0xd5,0x55,0x55,0xdd,0xd5,0x95,0x55,0x55,0x55,0x99,0x66,0x66,0x66
byte 0xf6,0x55,0x55,0x55,0xf6,0x55,0x55,0x56,0x66,0x55,0x55,0x56,0x65,0x55,0x55,0x56
byte 0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x56,0x55,0x55,0x55,0x56,0x66,0x66,0x66,0x66
byte 0x66,0x55,0x55,0x55,0x66,0x55,0x55,0x55,0x65,0x55,0x55,0x55,0x65,0x55,0x55,0x55
byte 0x65,0x55,0x55,0x55,0x65,0x55,0x55,0x65,0x65,0x55,0x66,0x65,0x66,0x66,0x66,0x66
byte 0x55,0x66,0x55,0x56,0x55,0x66,0x55,0x56,0x55,0x66,0x55,0x56,0x55,0x66,0x55,0x56
byte 0x56,0x65,0x55,0x56,0x56,0x66,0x55,0x66,0x66,0x66,0x65,0x66,0x66,0x66,0x66,0x66


#4 User is offline JoseTB 

Posted 13 July 2009 - 02:14 PM

  • Posts: 631
  • Joined: 01-June 04
  • Gender:Male
  • Wiki edits:4
These patches are different files from the actual rom? How comes the original comments are actually there?

#5 User is offline Black Squirrel 

Posted 13 July 2009 - 02:38 PM

  • wikiman
  • Posts: 3849
  • Joined: 27-December 03
  • Gender:Male
  • Location:Northumberland, England
  • Project:thinking of a better member title
  • Wiki edits:20,569
All companies have applied various fixes or changes to the games' code. Wave Race 64's the best example - due to sponsorship changes and whatnot, some of the advertising seen within the tracks in game were changed into plug the Wii/DS. And of course there's been some translation work with some of the imports. It doesn't really surprise me they took some time to fix a few bugs (or at least tweak things so that their emulator would render it correctly), though what does surprise me is that Sega bothered - they didn't bother to make PAL games run in 60Hz and I'd have thought that was more important.

#6 User is offline Sik 

Posted 13 July 2009 - 07:27 PM

  • Sik is pronounced as "seek", not as "sick".
  • Posts: 6719
  • Joined: 17-March 06
  • Gender:Male
  • Project:being an asshole =P
  • Wiki edits:11
Wait, what? Level 99 bug fixed? I think that now many people are gonna buy the game on the Virtual Console just for that (all those who play Phantasy Star IV constantly even after they finished the story eventually hit level 100). And some other people will attempt to apply those patches on the original ROM too, for those using emulators.

Also what changes does Pulseman have? I mean, sure, it's graphics looked like seizurefest and such, but from the hardware point it's an extremely simple game, to the point that Genecyst is able to emulate it perfectly o_O So the emulation shouldn't be a problem, and as far as I know, the game doesn't have any game-breaking bug either, so I really have no idea why you'd want to patch it, with the exception of translating the Japanese text into English.

#7 User is offline Xkeeper 

Posted 13 July 2009 - 07:32 PM

  • get in the zone. badnikzone.
  • Posts: 1477
  • Joined: 10-February 06
  • Gender:Not Telling
  • Location:the bone zone
  • Project:herpa derpa doop
  • Wiki edits:221
What would be a very interesting idea would be creating a website that was dedicated to demonstrating all the known changes between original games and their VC counterparts, possibly with the VC ROMs downloadable...

Who's up for it? v.png

#8 User is offline Sik 

Posted 13 July 2009 - 07:34 PM

  • Sik is pronounced as "seek", not as "sick".
  • Posts: 6719
  • Joined: 17-March 06
  • Gender:Male
  • Project:being an asshole =P
  • Wiki edits:11
Config.zlib from Pulseman:
CODE
console.brightness="68"
console.machine_arch="md"
console.machine_country="jp"
console.volume="+6.0"
modules="emu_m68kbase tsdevp md se_vc"
romfile="Pulseman.SGD"
snd.snddrv="tsdev+"

That makes things much easier :P Already checked the ROM by the way and works in Fusion, but didn't look for any differences yet.

EDIT: what

psyduck.png
This post has been edited by Sik: 13 July 2009 - 07:40 PM

#9 User is offline evilhamwizard 

Posted 13 July 2009 - 08:22 PM

  • Posts: 1265
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
Speaking of Pulseman, does anyone actually remember playing the game on Sega Channel? You know, if the game's only Japanese text was translated (Stage Select screens)?

You might also get some *brand new* dumps of roms. Does anyone know what PakiFix means in terms of Puyo Puyo 2? This game was released as an import, so this is a Japanese rom.

CODE
country="eu"
romfile="PuyoPuyo2_PakiFix.SGD"


Also, unlike the file extension for other Mega Drive games, Street Fighter II: Special Champion Edition (EU) seems to be specially compiled? Not sure:

CODE
country="eu"
romfile="ST2DASH_EU_080322.BIN"


March 22nd, 2008.

Oh, and here's the patch file for Phantasy Star II:

CODE
# jp
>0x180    string        "GM 00005501-00"
>>0x1f0    string        " "
0x00021c:
    beshort        0x6020        # bra.s 0x00023e    # no check sum

# ue
>0x180    string        "GM 00005501-02"
>>0x1f0    string        "UE"
0x000232:
    beshort        0x6020        # bra.s 0x000254    # no check sum

# 圧縮されている病院内CGデータの赤十字部分書き換え
0x02ee81:  
    byte    0x22,0x22        # 元は0xdd,0xdd
0x02ef24:  
    byte    0x22            # 元は0xdd
0x02ef2f:  
    byte    0x22            # 元は0xdd
0x02ef31:  
    byte    0x22            # 元は0xdd


# 病院のマップの緑十字修正
>>>0x0bfff0    string        "GREEN CROSS FIX"
0x009094:  
    beshort        0x4eb9,0x000b,0xff00,0x4e71,0x4e71,0x4e71,0x4e71    # move.l #$40000000,$00c00004; bsr.w L0060ac_bitdev -> jsr 0xbff00; nop; nop; nop

0x0bff00:  
    beshort        0x23fc,0x4000,0x0000,0x00c0,0x0004            # move.l #$40000000,$00c00004;
    beshort        0xb1fc,0x0003,0xdfe4                    # cmpa.l #$0003dfe4,a0;        city map?
    beshort        0x6706                            # beq.s +6
    beshort        0x4ef9,0x0000,0x60ac                    # jsr L0060ac_bitdev; rts
    beshort        0x41f9,0x000c,0x0000                    # lea.l    0x0c0000,a0
    beshort        0x4ef9,0x0000,0x5e8e                    # jsr L005e8e_cgopen; rts

#
# 0x0c0000から町のCGデータをcgopen用に変換したデータを置いて

#
0x0c04e7:      
# ここから32バイトで緑十字のセルデータ
#    元の緑十字
#    byte    0x55,0x55,0x55,0x55, 0x53,0x33,0x33,0x33, 0x53,0x22,0x22,0x22, 0x53,0x22,0x22,0x77, 0x53,0x22,0x22,0x77, 0x53,0x22,0x22,0x77, 0x53,0x27,0x77,0x77, 0x53,0x27,0x77,0x77

#    灰色十字
#    byte    0x55,0x55,0x55,0x55, 0x53,0x33,0x33,0x33, 0x53,0x22,0x22,0x22, 0x53,0x22,0x22,0xdd, 0x53,0x22,0x22,0xdd, 0x53,0x22,0x22,0xdd, 0x53,0x2d,0xdd,0xdd, 0x53,0x2d,0xdd,0xdd

#    緑のH
    byte    0x55,0x55,0x55,0x55, 0x53,0x33,0x33,0x33, 0x53,0x22,0x22,0x22, 0x53,0x27,0x77,0x22, 0x53,0x27,0x77,0x22, 0x53,0x27,0x77,0x22, 0x53,0x27,0x77,0x77, 0x53,0x27,0x77,0x77


Another strange thing is that this rom was compiled just so this fix could work. What this fix is, I haven't got a clue:

CODE
country="eu"
romfile="PhantasyStar2_UE_GreenCrossFix.SGD"
save_sram="1"


You can download the rom here.

To play the games, just rename the extension to .bin and you can play them in any emulator you like. Byte compares would be good for these three to see what's up. I'll keep searching for more VC games to check, and I found more patch notes (everything so far has been in Japanese - Sega of Japan kicks ass) for some more games - which I don't think anyone would even recognize (except for Shining Force 2, oddly enough SF(1) doesn't have a patch).

Now are we interested? :P
This post has been edited by evilhamwizard: 13 July 2009 - 08:27 PM

#10 User is offline Yoshi 15 

Posted 13 July 2009 - 10:37 PM

  • Posts: 857
  • Joined: 23-July 03
  • Gender:Male
  • Location:Northern New Jersey
  • Wiki edits:4
QUOTE
You might also get some *brand new* dumps of roms. Does anyone know what PakiFix means in terms of Puyo Puyo 2? This game was released as an import, so this is a Japanese rom.


It's identical to rev 01 except for one byte. From what it looks like, they changed Pakista's name that is displayed when playing (the 4 letter abbriviation) from PAKI to PAK. It's a Paki fix indeed v.png
This post has been edited by Yoshi 15: 13 July 2009 - 10:45 PM

#11 User is offline Shadow Hog 

Posted 13 July 2009 - 11:33 PM

  • "I'm a superdog!"
  • Posts: 4341
  • Joined: 05-November 06
  • Gender:Male
  • Location:Earth
  • Wiki edits:10
Incidentally, since it wasn't outright stated (although evilhamwizard sort of implied it at one point), it's been confirmed that the VC version of Pulseman was, in fact, NOT translated. So no, it's not a long-lost Sega Channel copy or anything. The main plot of the game was translated and summarized on the game's VC page, but in-game, it's all Japanese text, just as it is if you emulated it (without using the existing translation patch).
This post has been edited by Shadow Hog: 13 July 2009 - 11:35 PM

#12 User is offline ICEknight 

Posted 14 July 2009 - 05:38 AM

  • Posts: 10524
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18
For the record, here's the patch made for the USA version of Alien Soldier, as seen here:
CODE
#
# $Id: patch-AlienSoldier,v 1.2 2007-10-09 13:31:00 m2 Exp $

>0x183    string        "MK-01186-00"
0x350:
    beshort        0x4e71 x 0x8e

# >>0x1f0    string        "A"
0xf062:
    beshort        0x4e71                # nop
    beshort        0x4e71                # nop
0xf076:
    beshort        0x4eb9,0x001f,0xff00        # jsr $1fff00.l
    beshort        0x4e71                # nop
0x1fff00:
    beshort        0x4eb9,0x0000,0xf65e        # jsr     $00f65e.l
    beshort        0x5478,0xa950            # addq.w  #$02,$ffffa950.w
    beshort        0x42b8,0x8240            # clr.l   $ffff8240.w
    beshort        0x4e75                # rts


#13 User is offline Overlord 

Posted 14 July 2009 - 07:27 PM

  • Substitute Meerkovo IT Chief
  • Posts: 16577
  • Joined: 12-January 03
  • Gender:Male
  • Location:Berkshire, England
  • Project:VGDB
  • Wiki edits:3,204
QUOTE (Yoshi 15 @ Jul 14 2009, 04:37 AM)
QUOTE
You might also get some *brand new* dumps of roms. Does anyone know what PakiFix means in terms of Puyo Puyo 2? This game was released as an import, so this is a Japanese rom.


It's identical to rev 01 except for one byte. From what it looks like, they changed Pakista's name that is displayed when playing (the 4 letter abbriviation) from PAKI to PAK. It's a Paki fix indeed v.png

And for those playing at home and don't realise WHY this has been done, Paki is a common racial slur in the UK against Pakistanis (who it bothers), and Indians (who are much higher in number in the UK and DESPISE Pakistan =P)

#14 User is offline evilhamwizard 

Posted 14 July 2009 - 08:11 PM

  • Posts: 1265
  • Joined: 16-June 04
  • Gender:Male
  • Wiki edits:109
Here's a patch file for Shining Force 2 (none for Shining Force though):

CODE
# all
>0x120    string         "SHINING FORCE 2 "

#
# 魔法光過敏修正
#
0x01a2a6:
    beshort        0x4ef9,0x001f,0xff80        # jmp $1fff80            
    beshort        0x4e71                # nop

0x1fff80:
    beshort        0x3c00        # move.w    d0,d6            
    beshort        0x48e7,0x0780    # movem.l    d5-d7/a0,-(a7)        
    beshort        0x41f8,0xd000    # lea.l    $d000.w,a0        
    beshort        0x3e06        # move.w    d6,d7            
    beshort        0xe44f        # lsr.w    #2,d7            
    beshort        0x0247,0x0333    # andi.w    #$0333,d7        
    beshort        0x6154        # bsr.s    0x1fffe8            
    beshort        0x3e06        # move.w    d6,d7            
    beshort        0xe24f        # lsr.w    #1,d7            
    beshort        0x0247,0x0777    # andi.w    #$0777,d7        
    beshort        0x614a        # bsr.s    0x1fffe8            
    beshort        0x3e06        # move.w    d6,d7            
    beshort        0xe24f        # lsr.w    #1,d7            
    beshort        0x0247,0x0777    # andi.w    #$0777,d7        
    beshort        0x2a07        # move.l    d7,d5            
    beshort        0xe24d        # lsr.w    #1,d5            
    beshort        0x0245,0x0333    # andi.w    #$0333,d5        
    beshort        0xde85        # add.l    d5,d7            
    beshort        0x6136        # bsr.s    0x1fffe8            
    beshort        0x2e06        # move.l    d6,d7            
    beshort        0x6132        # bsr.s    0x1fffe8            
    beshort        0x3e06        # move.w    d6,d7            
    beshort        0xe24f        # lsr.w    #1,d7            
    beshort        0x0247,0x0777    # andi.w    #$0777,d7        
    beshort        0x2a07        # move.l    d7,d5            
    beshort        0xe24d        # lsr.w    #1,d5            
    beshort        0x0245,0x0333    # andi.w    #$0333,d5        
    beshort        0xde85        # add.l    d5,d7            
    beshort        0x611e        # bsr.s    0x1fffe8            
    beshort        0x3e06        # move.w    d6,d7            
    beshort        0xe24f        # lsr.w    #1,d7            
    beshort        0x0247,0x0777    # andi.w    #$0777,d7        
    beshort        0x6114        # bsr.s    0x1fffe8            
    beshort        0x3e06        # move.w    d6,d7            
    beshort        0xe44f        # lsr.w    #2,d7            
    beshort        0x0247,0x0333    # andi.w    #$0333,d7        
    beshort        0x610a        # bsr.s    0x1fffe8            
    beshort        0x7e00        # moveq.l    #$00,d7            
    beshort        0x6106        # bsr.s    0x1fffe8            
    beshort        0x4cdf,0x01e0    # movem.l    (a7)+,d5-d7/a0        
    beshort        0x4e75        # rts                

0x1fffe8:
    beshort        0x3087        # move.w    d7,(a0)            
    beshort        0x3147,0x0044    # move.w    d7,$0044(a0)        

#
# 落雷光過敏修正
# 背景パレットのRGB値にこのテーブル値を加算します
# jp
>>0x180    string         "GM G-5521   00"
0x000b2a:
    byte        0x03,0x03,0x02,0x02,0x01,0x01,0x00,0x80        # 落雷から元の明るさへ戻る
0x000b32:
    byte        0x01,0x01,0x02,0x02,0x03,0x03,0x04,0x80        # 落雷で一気に明るくなる
0x000b4a:
    byte        0x02,0x02,0x02,0x02,0x01,0x01,0xfe,0xfe        # 小刻みに点滅
0x000b6a:
#    byte        0x06,0xfe,0x06,0xfe,0x06,0xfe,0x80,0x00        # 小刻みに点滅、暗いまま持続(オリジナル)
#    byte        0x01,0x01,0x00,0x00,0xff,0xff,0xfe,0x80        # 小刻みに点滅、暗いまま持続(2008/05/01)
    byte        0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0x80        # 小刻みに点滅、暗いまま持続(2008/05/08)

# 魔法光過敏修正のつづき
0x1fffee:
    beshort        0x4eb8,0x0c7c    # jsr        $0c7c.w            
    beshort        0x7004        # moveq.l    #$04,d0            
    beshort        0x4ef8,0x0f00    # jmp        $0f00.w            


# us & eu
>>0x180    string        "GM MK-1315 -00"
0x000b2e:
    byte        0x03,0x03,0x02,0x02,0x01,0x01,0x00,0x80        # 落雷から元の明るさへ戻る
0x000b36:
    byte        0x01,0x01,0x02,0x02,0x03,0x03,0x04,0x80        # 落雷で一気に明るくなる
0x000b4e:
    byte        0x02,0x02,0x02,0x02,0x01,0x01,0xfe,0xfe        # 小刻みに点滅
0x000b6e:
    byte        0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0x80        # 小刻みに点滅、暗いまま持続

# 魔法光過敏修正のつづき
0x1fffee:
    beshort        0x4eb8,0x0c80    # jsr        $0c80.w            
    beshort        0x7004        # moveq.l    #$04,d0            
    beshort        0x4ef8,0x0f04    # jmp        $0f04.w            


#
# euのみのハングパッチ
#
# eu
>>>0x1f0    string    "E"
0x044c3e:
    beshort        0x4868,0x0014            # pea     $0014(a0)
0x044c4e:
    beshort        0x205f                # movea.l (sp)+,a0
    beshort        0x2089                # move.l  a1,(a0)
    beshort        0x4eb9,0x000f,0xfc80        # jsr     $0ffc80.l
0x0ffc80:
    beshort        0x06b8,0x0000,0x002a,0xb1a0    # addi.l  #$0000002a,$ffffb1a0.w
    beshort        0x4e75                # rts


What's the deal with the EU only hang patch?

I probably have one or two more patch files, but they aren't really interesting. What's interesting to note is that a lot of games have empty patch files, meaning that they might've had patches at some point - but it turned out they never needed it.

PS: 修正 has multiple meanings. Update/Revision/Retouch/Correction/etc. Just a FYI because it doesn't make sense with a translator.
This post has been edited by evilhamwizard: 14 July 2009 - 08:21 PM

#15 User is offline ICEknight 

Posted 15 July 2009 - 06:34 AM

  • Posts: 10524
  • Joined: 11-January 03
  • Gender:Male
  • Location:Spain
  • Wiki edits:18
QUOTE (evilhamwizard @ Jul 14 2009, 08:11 PM)
What's interesting to note is that a lot of games have empty patch files, meaning that they might've had patches at some point - but it turned out they never needed it.

Mega Turrican has one empty patch file, but the game's been certainly altered from the original release (no SONY logo at startup, current Factor 5 address in the ending). This could mean these games were actually recompiled from the original source, rather than altered in their already compiled form.


It would be quite interesting to have these documented somewhere, by the way.

  • 5 Pages +
  • 1
  • 2
  • 3
  • Last ►
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users