[SML 8158] NesTalkをpharo5.0に移植途中なのですが・・・
Sunao Furukawa
sadie @ kind.ocn.ne.jp
2017年 1月 15日 (日) 19:39:04 JST
古川と申します。
NesTalkでマリオを動かす
http://oohito.com/nqthm/archives/2060
を参考に
NesTalkをpharo 5.0に移植しようと思って作業しているのですが、
FileStreamのメソッドをdeprecated:にすればいいと思っていました。
しかし、validate:aByteArrayの引数で具体的な値が入りません。
pharo2.0でやれば、シンボルのブロックが代入されているところで、
pharo5.0ではFileStreamの変数が指定されています。
どう直したらいいでしょう。
変更したメソッドを書いておきます。なお、BabyMockはsmalltalkhubから
loadしました。
--------------------------------------------------------------
romFile: path
^ FileSystem disk / path binaryReadStreamDo:
[:stream | self readCartridge: stream]
---------------------------------------------------------------
readCartridge: stream
| roms vroms header |
stream deprecated: 'binary'.
header := NtCartridgeHeader fromByteArray: (stream deprecated:
'next: 16').
roms := self readRoms: stream header: header.
vroms := self readVroms: stream header: header.
^ self new
setHeader: header
roms: roms
vroms: vroms
tiles: (self tilesPerVrom: vroms)
----------------------------------------------------------------
虫のいい話で申し訳ありません。ポイントは'next: 16'がdeprecated:にした時に
値を読み込まないことだと思います。
SML メーリングリストの案内