View Issue Details

IDProjectCategoryView StatusLast Update
024upergrafxCD-ROM2public2020-08-28 19:19
Reporterna6ko Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Versionupergrafx_xx_20200321.pac 
Fixed in Version非公開の開発途中版 
Summary024: HCD2035 井上麻美 - 絵が化ける
Description

添付のセーブデータをロード. セーブデータ1 の家老の家を見ると発生.
ほかはいまのところ未確認.

  • ロード時間には依存せず、化け方は同じ.
  • mame では起きない

Activities

na6ko

2020-08-26 11:23

manager  

asami.sav (2,048 bytes)
normal.png (15,066 bytes)   
normal.png (15,066 bytes)   

na6ko

2020-08-26 11:56

manager   ~0000026

この家老の庭に関しては 6270.VRAM address 0xA200 付近の書き込みが変.

na6ko

2020-08-26 21:09

manager   ~0000027

このソフトは CD の読み込みのあと ADPCM 用 RAM へ DMA 転送をやたらと利用していて、 0x20 sectors, つまり ADPCM 用 RAM address 0x0000-0xffff に書き込んだ後 BIOS 経由で 6280 から全部読み出すという変な手法をとっている.

na6ko

2020-08-26 21:10

manager   ~0000028

前回の VRAM address 0xa200 は MAME 特有の byte 単位の考えで、正式には 0x5100 の値.

na6ko

2020-08-26 23:50

manager   ~0000029

UGXのGPRAMとエミュレータのRAMを比較したところ下記の 1 byte の違いがあり、エミュレータで該当部をUGXを同じにしたら再現した.
address data
emu ugx
0x0f7fff 0x81 0x80

na6ko

2020-08-27 12:58

manager   ~0000031

ADPCM 用 RAM address 0xffff の読み込みで正常なデータがでていないことを確認. 読み込み処理には問題がなく、書き込み処理に問題があった.
serial SRAM address 0x0ffff の書き込みは 0xfa なのだが 0xf0 になっている. ADPCM 用 RAM controller の data 入力が cdrom data fifo と 6280 data bus になっていて、切り替えが早すぎた.
切替条件を 6280 address 0x1ff80b.w0 | w1 に変更し改善を確認.

いままで結構な数の ADPCM 用 RAM への DMA 転送で最後の 4bits が正常に転送されていなかったので結構深刻なバグだった.

na6ko

2020-08-27 12:59

manager   ~0000033

Clipboard02.png (23,064 bytes)   
Clipboard02.png (23,064 bytes)   

na6ko

2020-08-27 13:06

manager   ~0000034

Last edited: 2020-08-27 13:17

View 2 revisions

このバグの原因ではないが ADPCM 用 RAM address 0xffff での 6280 の読み込みの処理が不適切で次の address 0x00000 が正常に読めないバグが有ったので修正. たぶん、実用はされてないと思う.

na6ko

2020-08-28 19:19

manager   ~0000036

このゲームのほかの箇所でも問題があるが修正済みの状態では発生しない. 原因は ADPCM 用 RAM への書き込みで最後の1nibbleの不正書き込みであると考えられる.