MSX-BASICの奥義を伝授するスレ
- 1 :デフォルトの名無しさん:01/11/25 02:53
- 忘れない内に皆に伝授しときましょう。
・多色刷り、
・ドット単位横スクロール、
・エスケープシークエンス・・・
色々ありましたよね。
思い出したらなんでも書き込みよろしく。
- 592 :デフォルトの名無しさん:2008/02/25(月) 13:08:21
- SC3に妖精だとおもってた
- 593 :デフォルトの名無しさん:2008/02/25(月) 16:27:35
- 星のスクロールなら、1ドット毎にずれたキャラをつくっておいて書き換えれば済む。
グラディウスは星だけスムーズスクロール
- 594 :デフォルトの名無しさん:2008/02/25(月) 20:01:22
- おまいら、まずスクリーン3から頭を離せw
スクリーン3はネタだろww
- 595 :デフォルトの名無しさん:2008/02/25(月) 21:44:10
- >>594
スマン
俺がスクリーン3などと言ったばかりにw
でも、縦横回転スクロールをやりたかったのでスクリーン3を使ってお試しプログラムを書いたことがあるよ。
マシン語だったけど、グルグルグイグイ面白かった。
そこから何にも発展なかったけどw
- 596 :デフォルトの名無しさん:2008/02/25(月) 23:55:18
- MSXじゃないけど「スティールガンニャン」とか観ると、
MSXのScreen3でも頑張ればどうにかなる気がする
http://gunnyan.hp.infoseek.co.jp/
- 597 :デフォルトの名無しさん:2008/02/27(水) 16:32:29
- >>596
見てみた。計算してみた。
フル画面で80x60か。
レースゲームでSC3はちょくちょくあるかなーとおもてたら
こんなんみつけた
ttp://ameblo.jp/msx-lab/entry-10007181938.html
一番下の。
- 598 :デフォルトの名無しさん:2008/02/28(木) 13:26:53
- なつかしいなw
それのサウンドドライバのMPKが使いやすくて好きだった
- 599 :デフォルトの名無しさん:2008/02/28(木) 19:20:41
- 暇ながら、スプライトでスコアを表示するプログラムを簡単に作ってみた。
スコアの値をスプライトに定義するところだけ機械語。
10 SCREEN 5,2,0:CLEAR 200,&HCFFF:DEFINT A-Z
20 FOR I=&HD000 TO &HD039
30 READ A$:POKE I,VAL("&H"+A$)
40 NEXT
50 DEFUSR=&HD000
60 FOR I=0 TO 5:POKE &HF000+I,0:NEXT:'F000〜5に6桁の数字が入る
100 FOR I=0 TO 32767:A=I
110 FOR J=0 TO 2:PUTSPRITE J,(100+J*16,I MOD 190),15:NEXT
120 B=10000
130 FOR J=0 TO 4
140 POKE &HF000+J,ABS(A/B):A=A MOD B
150 B=B\10
160 NEXT:'F000〜5に表示させたい数字を1桁ずつ入れる
170 A=USR(0)
180 NEXT
190 GOTO 100
1000 'スコアの値(F000〜5)をスプライトに定義する
1010 DATA dd,21,00,f0,06,00,c5,dd, 7e,00,c6,30,26,00,6f,29
1020 DATA 29,29,44,4d,2a,04,00,09, c1,78,c5,e5,26,00,6f,29
1030 DATA 29,29,29,11,08,78,19,54, 5d,e1,01,08,00,cd,5c,00
1040 DATA dd,23,c1,04,78,fe,06,20, cd,c9
この例ではMSX内蔵フォントを読んでいるので、自分で定義したフォントを
使いたければ、1020行の 2a,04,00 のところを 22,nn,nn というように指定すればOK。
スクリーン5/6以外なら、1030行の 08,78 をスプライトジェネレータVRAMアドレス+8でOK。
遅いのは、他の処理がベーシックだからしょうがない。
- 600 :デフォルトの名無しさん:2008/02/28(木) 19:30:53
- 最後の2文字がRETなのだけわかった
- 601 :デフォルトの名無しさん:2008/02/29(金) 09:26:42
- >>600
それが分かったら、マシン語の第一歩だな
- 602 :デフォルトの名無しさん:2008/02/29(金) 10:13:33
- C3 48 45 4C 4C
- 603 :デフォルトの名無しさん:2008/02/29(金) 11:35:41
- スレ違いだが相対ジャンプのアドレス計算が苦手だ。
パッと出てこない。
>>602
JP 4548h
LD C,H
LD C,H
二度転送するのは何かのおまじないであろうか?あろうか?
- 604 :デフォルトの名無しさん:2008/02/29(金) 12:42:28
- >>603
48 H
45 E
4C L
4C L
- 605 :デフォルトの名無しさん:2008/02/29(金) 13:26:32
- BASICではないが、オッサン臭がして面白い。
- 606 :デフォルトの名無しさん:2008/02/29(金) 14:47:40
- >>604
それは気付かなかった。面白いな。
- 607 :デフォルトの名無しさん:2008/03/05(水) 19:30:27
- こいつって評価乞食じゃない?
ちゃんと金を払って取引終了した落札者に評価がないからといって、
非常に悪いの評価を下す出品者ってどうなのでしょうか?
見ていて腹が立ちました。
m_interest88
http://page4.auctions.yahoo.co.jp/jp/auction/d75623450
- 608 :デフォルトの名無しさん:2008/03/05(水) 19:47:07
- 晒しは(゚听)イラネ
- 609 :デフォルトの名無しさん:2008/03/05(水) 20:02:02
- >>608
こいつって評価乞食じゃない?
ちゃんと金を払って取引終了した落札者に評価がないからといって、
非常に悪いの評価を下す出品者ってどうなのでしょうか?
見ていて腹が立ちました。
m_interest88
http://page4.auctions.yahoo.co.jp/jp/auction/d75623450
- 610 :デフォルトの名無しさん:2008/03/05(水) 21:06:12
- まじかよ、そいつひでーな
元気出せ
俺はおまえの味方だぞ
- 611 :デフォルトの名無しさん:2008/03/06(木) 01:02:27
- こんなとこまで出張してきてるのか…
>>599
せっかくだからマシン語もBASICにしようと思ってハンド逆汗しようとしたが
LD A,(IX+d) で「d」ってなんだっけっていう挫折… orz
- 612 :デフォルトの名無しさん:2008/03/06(木) 08:03:29
- >>611
dは、好きな数を入れる。dに8を指定したら、
IXの指定番地+8番地目の値をレジスタAに読む。
- 613 :デフォルトの名無しさん:2008/03/06(木) 08:27:57
- >>611
機械語でやっていることは、
(1)文字フォントを格納しているROMの番地を調べ、そこから(48+表示する数字)×8を
足して、表示する数字のフォント番地を求める
(2)7808h(SC5の場合)+16×桁(左から。十万→一万→…の順)から8バイトに
上で求めた数字フォントから8バイトを書き込む。つまりスプライトジェネレータの
下半分しか触っていないため、上半分は好きに使える
(3)これを6桁分行う(ので、スプライト定義番号0〜2を使う)
なので、この考えをベーシックにすればOKだな。
500 '
510 A=PEEK(4)+PEEK(5)*256
520 FOR K=0 TO 5
530 B=(PEEK(&HF000+K)+48)*8+A
540 FOR L=0 TO 7
550 VPOKE &H7808+K*16+L,PEEK(B+L)
560 NEXT
570 NEXT
580 RETURN
なのでベーシックならこのようにして、A=USR(0) を GOSUB 500 にすればOK。
- 614 :611:2008/03/06(木) 10:20:21
- >>612
せんくす
直接数値ってと[n]とか[m]しか記憶になかった。
ひさしぶりにべったりZ80触るかな…
>>613
やっぱりそういう流れだわね
ふと、先にROMをVRAMの空きに展開しておけば、
VDPの転送とか使えるな〜とかおもた。
ひさびさに逆汗して遊ぶ(゚∀゚)
- 615 :デフォルトの名無しさん:2008/03/08(土) 17:14:33
- 767 :ナイコンさん:2008/03/08(土) 09:57:39
じぶんの出品物が安く落札されそうなら、捨てIDで吊上げる。
これ藤原組は,白上はじめ皆が使ってる手口www
名作MSX ELLE
http://page6.auctions.yahoo.co.jp/jp/show/bid_hist?aID=f65589301
入札者 入札額 数量 最終手動入札時刻
egulin_jp (45) 最高額入札者 3,500 円 1 3月 7日 19時 36分
msxtech (新規) 3,400 円 1 3月 7日 18時 46分 ←sanibu藤原覚satopin,potetolife
- 616 :デフォルトの名無しさん:2008/03/09(日) 22:33:40
- ギザカワイソス
非常に良い出品者です。 評価者:x68000acehd2000 (3)
◆即決◆MSX グラディウスシリーズ5本+スペースマンボウ (終了日時:2008年 2月 21日 0時 18分)
コメント : 本日商品を受領しました。とても素早い対応で安心して取引が出来ました。
ただ、経年劣化が予想を超えてあまりに酷く、残念な結果でしたが、そこは賭けでしたので納得してます。ありがとうございました。 (評価日時 :2008年 2月 25日 22時 11分)
http://page8.auctions.yahoo.co.jp/jp/auction/h54614200
- 617 :デフォルトの名無しさん:2008/04/18(金) 16:05:08
- とりあえず投下。VDPコマンドがまともに動いてないのでCOPY文・・・orz
100 'COPY命令によるパレット切替テスト
110 DEFINTA-Z:P=3 'スクロール速度(P>18では正常に動作しません)
140 COLOR15,0,0:SCREEN5,0:SETPAGE1,1:CLS
160 FORI=0TO15:LINE(I*16,0)-(I*16+15,210),IXOR(I+1AND15):NEXT
170 COPY(0,0)-(254,210)TO(1,0),,XOR
180 FORI=16TO31:LINE(I,I)-(255-I,210-I),15,B,XOR:NEXT
190 SETPAGE1,0:IFSTICK(0)=0THEN220 'カーソルでデバッグモード
210 SETPAGE1,1:VDP(24)=128
220 CLS:vdp(9)=vdp(9)OR2
230 A=A*5+13AND4095
240 NR=A\8AND7:NG=A\64AND7:NB=A\512AND7
250 'パレット座標指定
260 SL=(SL)MODP+193:LL=SL*128
270 '色指定 (R,G,B のいずれか1つのみ、変化させる)
280 XB=XB+SGN(NB-XB)*(XR=NR)*(XG=NG):XG=XG-SGN(NG-XG)*(XR=NR):XR=XR+SGN(NR-XR)
310 'パレット情報を移動
320 COPY(59,SL)-(0,SL)TO(63,SL):VPOKELL,XR*16+XB:VPOKELL+1,XG
350 'RESTOREさせる座標にパレット情報複製(スプライト破壊が起きています)
360 COPY(0,SL-26)-STEP(63,26)TO(0,211):COLOR=RESTORE
380 IFSTRIG(0)THENEND
390 '色変化がなくなったときは色を再指定
400 IFNR=XRANDNG=XGANDNB=XBTHEN230ELSE260
- 618 :デフォルトの名無しさん:2008/04/24(木) 20:28:29
- 書き換えても問題ないシステム用ワークエリアを拝借(ダイレクトモード専用命令のAUTO関係とか)
REM文上の文字が直接マシン語のコードになってるプログラムなどで自前のワークエリアを用意できないときに便利
- 619 :デフォルトの名無しさん:2008/04/24(木) 20:29:27
- INTFLG(FC9BH,)に3を入れるとMSX-BASICはCTRL+STOPが押されたときの処理をする
そこで、H.TIMIでキー入力を監視してINTFLGを操作することでCTRL+STOP以外でもCTRL+STOPできる
普通はPLAY文の演奏中にキー入力によって演奏を中断させようとすると、区切りのいいところまで演奏してから止まるけど
この技とON STOP GOSUBを使えば、PLAY文で作った音楽集で演奏中いつでもジョイスティックのトリガでメニューに戻るとかもできる
- 620 :デフォルトの名無しさん:2008/04/27(日) 16:08:24
- ダイレクトモードでカーソルを画面右端に置いてスペースキー
カーソルは次の行の左端に移動するが、このとき2行が接続される
バックスペースを押すとカーソルを先頭にした行が前の行を削っていくように見える
10 CLS ■
20 BEEP
↓
10 CLS
■0 BEEP
↓
10 CLS ■0 BEEP
のようにできて、最終的には
10 CLS:BEEP と1行にまとめることができる
DATA文をまとめたいときなどに便利
- 621 :デフォルトの名無しさん:2008/04/27(日) 16:23:45
- ?1+1■
でリターンを押すと
?1+1
2
Ok
■
となるが、
SETPROMPT CHR$(30)でカーソルの上移動をプロンプトに設定すると
?1+1
2
■
となり、ダイレクトモードで何度も計算や実験をするときに便利
上に戻るカーソル移動量も減るし、必要だった文字をプロンプトに消されたりしないし
うっかりプロンプト上でリターンを押してシンタックスエラーが出るのともおさらば
- 622 :デフォルトの名無しさん:2008/04/27(日) 16:40:04
- プログラム実行中に使うとダイレクトモードに移行してしまうlist命令なども
キーバッファにrunやgotoとリターンコードを入れておけばプログラムに自動復帰できる
プログラム実行中にリストを表示したいときなどに便利
ためしてはいないけど、autoでこれをやるとプログラムの自己書き換えもできるかも?
- 623 :デフォルトの名無しさん:2008/04/27(日) 18:32:34
- >>622
キーバッファに書き込む方法ぷりーず
ワークエリアの指してるアドレスに書くだけ?
- 624 :デフォルトの名無しさん:2008/04/27(日) 20:36:43
- >>623
これをズラす
PUTPNT(F3F8H, 2)
初期値 KEYBUF(FBF0H)
内容 キーバッファへの書き込みを行う番地を指す
GETPNT(F3FAH, 2)
初期値 KEYBUF(FBF0H)
内容 キーバッファからの読み込みを行う番地を指す
- 625 :デフォルトの名無しさん:2008/04/30(水) 10:41:42
- >>624
やってみた
なんかできそーだったけど、バッファの使い方がいまいちわからなくて
てきとーにやってたら、延々自分を実行し続けたりして笑た
- 626 :デフォルトの名無しさん:2008/04/30(水) 14:09:17
- >>617 を応用して星を流してみた
ゲームとして使うには速度が足りない・・・ orz
10 'スプライトの擬似スクロール
11 '(初回起動時はカーソル右を押したまま実行してください)
12 CLEAR200:DEFINTA-Z:SCREEN5,3:COLOR15,0,0:CLS:DIMS$(7):A=RND(-TIME)
13 FORI=0TO15:SPRITE$(I)=STRING$(I,0)+" ":NEXT
14 SETPAGE0,1:IFSTICK(0)THENCLS
15 'スプライトカラー定義(コピー元)
16 FORI=0TO511:VPOKE&H6700+I,15:NEXT
17 'スプライト定義 (星)
18 'メイン処理 (スペースキーで終了)
19 X=RND(1)*25088:Y=X\128:G=XAND15:X=XAND255:P=P+1AND31
20 COPY(55,L)-(0,L)TO(63,L)
21 V=L*128:VPOKEV,Y:VPOKEV+1,X:VPOKEV+2,G
22 COPY(0,L)-(63,L)TO(0,210)
23 COPY(0,185)-(63,210)TO(192,211),0
24 G=G+4:L=L+1AND63
25 IFSTRIG(0)+1THENIFG>63THEN19ELSE20
- 627 :デフォルトの名無しさん:2008/05/04(日) 12:40:11
- 擬似回転プログラム (不完全)
まじめに計算すると遅くなる人向け
スペースキーで終了ですが、長押ししないと効きません。
計算式は絶対間違ってるので、修正できる人に回します。
縦横比の修正だけでも処理できれば、
スプライトの回転グラフィック生成用に使えるかもしれません。
10 '_TURBO ON
20 SCREEN5:SZ=16 'MAX:64
30 FORI=3TOSZ\2STEP4:CIRCLE(SZ\2,SZ\2),I,I\3:NEXTI
40 LINE(0,0)-(SZ,SZ),14,B:LINE(0,0)-(SZ,SZ):LINE(SZ,0)-(0,SZ)
70 FORJ=1TO0STEP-.05:SX=J:SY=SQR(SX)/2
80 LINE(128,0)-STEP(SZ*2,SZ),0,BF
90 FORI=0TOSZ:COPY(0,I)-STEP(SZ,0)TO(I*SX+128,I):NEXTI
110 LINE(128,96-SZ\2)-STEP(SZ*2,SZ*2),0,BF
120 FORI=0TO(SX+1)*SZ:COPY(I+128,0)-STEP(0,SZ)TO(I+128,(SZ-I)*SY+96):NEXTI
150 COPY(128,96)-STEP((1+SX)*SZ+3,SZ)TO(0,96)
160 NEXTJ
165 IFSTRIG(0)THEN270
170 FORJ=0TO1STEP.05:SX=J:SY=SQR(SX)/2
180 LINE(128,0)-STEP(SZ*2,SZ),0,BF
190 FORI=0TOSZ:COPY(0,I)-STEP(SZ,0)TO((SZ-I)*SX+128,I):NEXTI
210 LINE(128,96-SZ\2)-STEP(SZ*2,SZ*2),0,BF
220 FORI=0TO(SX+1)*SZ:COPY(I+128,0)-STEP(0,SZ)TO(I+128,I*SY+96-J*SZ/2):NEXTI
250 COPY(128,96)-STEP((1+SX)*SZ+3,SZ)TO(0,96)
260 NEXTJ
270 IFSTRIG(0)+1THEN70
もし、 >>626 と >>617 が動作しないときはツッコんで下さい
>>626 の 17行目は12行の後に移すか、見なかったことにしてください
- 628 :デフォルトの名無しさん:2008/06/22(日) 16:35:11
- COPY命令だけで色の置換を行うプログラム
応用すればVDPで乗除算も可能だが、実用になるかどうかはわからない。
10 'SAVE"colorchg.txt",a
20 'CALL TURBO ON
30 DEFINTA-Z:COLOR15,0,0:SCREEN8
40 FORI=1TO7:FORJ=0TO1:CIRCLE(31+J*64,31),31-I*4,I*(4+J*28):NEXTJ:PAINT(31,31),I*4:NEXTI
50 FORI=0TO7:COPY(0,I*8)-STEP(127,7)TO(0,64)
60 COPY(0,64)-(127,119)TO(0,72)
70 FORJ=0TO7:LINE(0,J*8+64)-STEP(127,7),2^J,BF,AND:LINE(0,J*8+64)-STEP(127,7),2^J,BF,XOR:NEXTJ
85 FORJ=2TO7:LINE(128,J*8+64)-STEP(127,7),2^JXOR2^((J+1)MOD6+2),BF:NEXTJ
90 COPY(0,64)-STEP(127,63)TO(128,64),,TPSET
95 FORJ=2TO7:LINE(128,J*8+64)-STEP(127,7),2^J,BF,XOR:NEXTJ
120 COPY(128,64)-(255,119)TO(128,72),,OR
130 COPY(128,120)-STEP(127,7)TO(128,I*8):NEXTI
140 IFSTRIG(0)+1THEN140
- 629 :デフォルトの名無しさん:2008/07/02(水) 21:53:26
- MSXマガジンに載ってた
BASICROMを音データにして演奏するやつ>>前衛ジャズそのもので聞き惚れ
テープI/Oを超高速で唸らせてサンプリング音再生するやつ>>機械語だったかもしれんが
- 630 :デフォルトの名無しさん:2008/07/19(土) 05:47:56
- 【wanwan】塩沢俊平太 2【millennum】
http://pc11.2ch.net/test/read.cgi/net/1212676558/
犯罪者塩沢俊平太の情報を収集しております
情報をお持ちの方はご協力お願いします
- 631 :デフォルトの名無しさん:2008/07/21(月) 22:40:42
- ヘクスマップを描画する良い方法はありませんか?
- 632 :デフォルトの名無しさん:2008/07/21(月) 23:29:49
- いろいろあるのに、どこがダメなの?
- 633 :デフォルトの名無しさん:2008/07/22(火) 13:20:54
- どうやらMSXではヘクスマップを簡単に表示する方法は無いみたいですね。
残念です。
- 634 :デフォルトの名無しさん:2008/07/22(火) 14:11:27
- ■■◎◎■■
■■☆☆■■
□□☆☆□□
□□★★□□
■■★★■■
■■◎◎■■
こんな感じの組み合わせでヘックスっぽく使ってたソフトもあったような。
- 635 :デフォルトの名無しさん:2008/07/22(火) 14:23:23
- ユニットの向きも視覚的に扱いたいのでヘクスでお願いします。
- 636 :デフォルトの名無しさん:2008/07/22(火) 14:49:24
- ユニットの向きを6方向分用意すればいいだけじゃ?
- 637 :デフォルトの名無しさん:2008/07/22(火) 17:22:37
- MSX限定でもないが、ヘクス升を画像データで用意しといて
中に四角の地形やキャラを置くというのはありそうだ。
方向が欲しいならキャラクタを用意するか、スプライトで方向矢印をだな…
まあ奥義ではないな。
ところで、MSX1なのか2以降なのかによって、盛大に話が変わると思うが
- 638 :デフォルトの名無しさん:2008/07/22(火) 17:35:30
- Screen3 か Screen12 でやれば漢
- 639 :デフォルトの名無しさん:2008/07/22(火) 18:30:50
- >ヘクスマップ
http://ossan.fam.cx/up/gazo/src/1216719217354.png
こうやりゃいい。難しく考えすぎだ。
- 640 :デフォルトの名無しさん:2008/07/22(火) 19:43:15
- QVGAの携帯画面に縮小されてもバッチリ全部読めてワラタ
解像度的には確にそんなもんだったな。
- 641 :デフォルトの名無しさん:2008/07/22(火) 19:50:19
- >>639
8x8幅で収まるんだなーとおもたが、よく考えたら四角を半分ずらしたマップと一緒なんだな。
これは知らなかった。
あとは、中の24x24をどう埋めるかか。
144 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
ゲイがMSXパソコンを語るわよ [同性愛サロン]
過去ログ [i4004]
【PSP】海腹川背Portable 19スレ【署名運動中】 [携帯ゲーソフト]
MSX2でネットしたい [i4004]
「首都圏はたいした都市規模やないやん」と思うとき [地理お国自慢]
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.3 2008/07/26
FOX ★ DSO(Dynamic Shared Object)