あの伝説の RPG、XANADU(ザナドゥ)が、ついに PB-100シミュレータに移植されました!
幻の聖剣 Dragon Slayer を手に入れて、この迷宮を支配するガルシスを倒すのだ!
対応機種
・PB-SIM(高速モード):Windows パソコン+テンキー推奨
・Pokecom GO(fast モード) ※Pokecom GOでの注意事項
・PB-120(動きは遅いです) PB-120版
(実機は一行62文字以内の制限があるため、プログラムを若干修正)
プロジェクトEGGさんにて今でもswitchでXANADUをプレイできるんですね。嬉しいかぎり!
https://store-jp.nintendo.com/list/software/70010000073916.html
![](https://www.google.com/images/icons/product/drive-32.png)
XANADU PBマニュアル
![](https://www.google.com/images/icons/product/drive-32.png)
XANADU PB アイテム・マニュアル
![](https://www.google.com/images/icons/product/drive-32.png)
XANADU PB モンスター・マニュアル
![](https://www.google.com/images/icons/product/drive-32.png)
XANADU PB プログラム解説書
![](https://www.google.com/images/icons/product/drive-32.png)
XANADU PB フローチャート
[P0]
1 VAC
2 PRINT CSR 2;"\LA\SP";:GOSUB 9:PRINT CSR 8;"\HT?";:GOSUB 9
4 PRINT CSR 5;"\CL/";:GOSUB 9:PRINT:PRINT "## XanadU ##"
6 L=1:A=1:S=1:T=80:F=50:H=F
8 Y=10+L:GOSUB #8:GOTO #1
9 Z=200:GOSUB #5:RETURN
[P1]
1 REM *****Ground Level
30 PRINT:PRINT "\SPRpWpAm_Cv?\SP";
35 GOSUB 205
40 IF C$="C" THEN 180
45 PRINT:PRINT "Gold";T;"$"
50 IF C$="R" THEN 70
55 IF C$="W" THEN 95
60 IF C$="A" THEN 125
65 GOTO 30
70 PRINT:PRINT B;"Rp";L*100;"$?";
75 GOSUB 205
80 IF C$<>"Y" THEN 30
85 IF T>=100*L;B=B+1:T=T-100*L:GOTO 30
90 GOTO 160
95 IF S>4 THEN 30
100 Z=S*S*100:PRINT:PRINT S;"Wp";Z;"$?";
105 GOSUB 205
110 IF C$<>"Y" THEN 30
115 IF T>=Z;S=S+1:T=T-Z:Y=20+S:GOSUB #8:GOTO 30
120 GOTO 160
125 IF A>4 THEN 30
130 Z=A*A*100:PRINT:PRINT A;"Am";Z;"$?";
135 GOSUB 205
140 IF C$<>"Y" THEN 30
145 IF T>=Z;A=A+1:T=T-Z:Y=30+A:GOSUB #8:GOTO 30
160 PRINT:PRINT "NotEnough":GOTO 30
179 REM *****Main Routine
180 R=1:X=6:GOSUB #6
185 GOSUB #2
190 IF R=0;GOSUB #6:GOTO #1
195 IF R=16;GOSUB #6:GOTO #3
200 GOTO 185
204 REM *****Keyin Subroutine
205 IF KEY<>"" THEN 205
210 C$=KEY:IF C$="" THEN 210
215 RETURN
[P2]
1 REM *****Dungeon
5 GOSUB #7
10 IF FRAC(Z(R))=0 THEN 20
15 $="\SQ\SQ\SQ":M=L*L*S*S*5:O=0:P=0:Q=0:V=RND(FRAC(Z(R))*10,-1):GOTO 30
20 V=-1:IF Z(R)<4;V=INT(RAN#*4)+2:PRINT:PRINT D$
25 REM *****Item Timer Countdown
30 K=K-1:IF K<0;K=0
35 N=N-1:IF N<0;N=0
40 REM *****Display Scene
45 IF V>7;C$="\DT":GOTO 55
50 C$=MID(W+2,1)
55 I$="":IF K>0 THEN 70
60 IF X>7;I$="+":GOTO 70
65 I$="\CL"
70 Z=8*FRAC(X/8)
75 PRINT CSR 8;" ";CSR 7;INT H;CSR 0;"# #";CSR Z;I$;
80 IF V>0;PRINT CSR 8*FRAC(V/8);C$;
85 IF KEY="6";PRINT CSR Z+1;"\RA";:GOTO 95
90 IF KEY="4";PRINT CSR Z-1;"\LA";
94 REM *****Player Move
95 C$=KEY
100 IF C$="" THEN 255
105 IF C$="4";Z=X-1:GOTO 135
110 IF C$="6";Z=X+1:GOTO 135
115 IF C$="8";Z=X+8:GOTO 135
120 IF C$="2";Z=X-8:GOTO 135
125 IF C$="Z" THEN 355
130 GOTO 255
135 IF Z>=0;IF Z<=15 THEN 145
140 GOTO 255
145 IF Z=V THEN 175
150 IF FRAC(Z/8)=0;R=R+1:X=6:RETURN
155 IF 8*FRAC(Z/8)=7;R=R-1:X=1:RETURN
160 X=Z:GOTO 255
170 REM *****Player Attack
175 M=M-L^2*(S-2*INT(S/6))^2*(.5+RAN#)
180 IF M>0 THEN 325
185 IF FRAC(Z(R))=0 THEN 240
189 REM *****Open Item Box
190 IF U=3;IF INT(Z(R))=4;G=G+1:C$="X":GOSUB 220:PRINT "GetHourglass":GOTO 215
195 IF U=4;IF INT(Z(R))=4;J=J+1:C$="c":GOSUB 220:PRINT "GetDemnsRing":GOTO 215
197 IF U=5;IF INT(Z(R))=4;S=6:C$="^":GOSUB 220:PRINT "GetDragnSlyr":GOTO 215
200 IF U=1;IF INT(Z(R))>2;B=B+1:C$="i":GOSUB 220:PRINT "GetRedPotion":GOTO 215
205 IF U=2;C$="j":GOSUB 220:PRINT "It's Poison!":H=H/2:GOTO 215
210 C$="$":GOSUB 220:Z=INT(R*R*(.5+RAN#)*5):T=T+Z:PRINT "Get";Z;"gold"
215 Z(R)=INT(Z(R)):V=-1:GOTO 30
220 GOSUB 235:PRINT CSR 8*FRAC(V/8);"\SQ";
225 GOSUB 235:PRINT CSR 8*FRAC(V/8)-1;"[ ]";
230 GOSUB 235:PRINT CSR 8*FRAC(V/8)-1;"[";C$;"]";:GOSUB 235:PRINT:RETURN
235 Z=99:GOSUB #5:RETURN
239 REM *****Monster Dead
240 Z=8*FRAC(V/8):PRINT CSR Z;"_":Z(R)=Z(R)+1+Z/10
245 E=E+(3*R*R-8*R+6)*(1+RAN#/5-.1):IF E<100*L^3-150*L^2+65*L THEN 252
250 IF L<5;L=L+1:F=20*L^3:PRINT:PRINT "LV.up!";L:Y=L+10:GOSUB #8
252 GOTO 5
254 REM *****Monster Move
255 IF N>0 THEN 30
260 IF RAN#*10>Q THEN 30
265 IF K<=0;IF RAN#*10<P THEN 285
270 W=INT(RAN#*3)-1:Z=V+W
275 IF W=0;Z=V+(INT(RAN#*3)-1)*8
280 GOTO 295
285 W=SGN(FRAC(X/8)-FRAC(V/8)):Z=V+W
290 IF W=0;Z=V+SGN(X-V)*8
295 IF Z>=0;IF Z<=15 THEN 305
300 GOTO 30
305 IF Z=X THEN 325
310 IF FRAC(Z/8)=0 THEN 30
315 IF 8*FRAC(Z/8)=7 THEN 30
320 V=Z:GOTO 30
324 REM *****Monster Attack
325 IF K+N<>0 THEN 30
330 IF RAN#*10>P THEN 30
335 H=H-O/(L+A)*(.5+RAN#)
340 IF H<0;PRINT CSR 8*FRAC(X/8);"_":PRINT:PRINT "Game Over.":END
345 GOTO 30
350 REM *****Display Status / Use Item
355 Y=10+L:GOSUB #8:Y=20+S:GOSUB #8:Y=30+A:GOSUB #8
360 PRINT:PRINT "Gold";T;"$";:Z=250:GOSUB #5
365 PRINT:PRINT B;"R";G;"H";J;"D";"?";
370 C$=KEY:IF C$="" THEN 370
375 IF C$="R" THEN 395
380 IF C$="H";IF G>=1;N=L*50:G=G-1:GOTO 30
385 IF C$="D";IF J>=1;K=L*50:J=J-1:GOTO 30
390 GOTO 30
395 IF B=0 THEN 30
400 H=H+F*.5:B=B-1
405 IF H>F;H=F
410 GOTO 30
[P3]
1 REM *****King Dragon
5 X=0:V=5:M=20000:$=",\DT\DT\DT\DT'''''\DT\DT\DT\DT,"
10 P=0:Q=0
15 PRINT:PRINT "\BXKingDragon\BX"
20 Q=Q+1:Z=50:GOSUB #5:PRINT:PRINT CSR V;"7\LE";
30 PRINT CSR X;MID(P+1,1);CSR 7;INT(H);
40 C$=KEY
50 IF C$="" THEN 100
60 IF C$="6" THEN 250
70 IF C$="8" THEN 200
80 IF C$="4" THEN 260
99 REM *****Jump Countdown
100 P=P-1:IF P<0;P=0
109 REM *****Player=in KD's scope?
110 IF V-X=1 THEN 150
119 REM *****KD Move
120 IF FRAC(Q/10)=0;V=V-1:IF V<1;V=1
130 GOTO 20
149 REM *****KD Attack
150 PRINT CSR V-1;"/";
160 IF P>2;IF P<12 THEN 20
180 H=H-5000/A*(.5+RAN#):IF H<0 THEN 400
190 GOTO 20
199 REM *****Set Jump Counter
200 IF P=0;P=14:GOTO 110
210 GOTO 100
249 REM *****Front=KD?
250 IF V-X=1 THEN 300
260 IF P>0 THEN 100
270 IF C$="6";IF V-X>1;X=X+1
280 IF C$="4";IF X>0;X=X-1
290 GOTO 110
299 REM *****Player Attack
300 PRINT CSR X+1;"\RA";
310 M=M-L*L*S*S*3.5*(.5+RAN#)*INT(S/6)
320 IF M<0;PRINT CSR V;"__";:GOTO #4
330 H=H-200/A*(.5+RAN#):IF H>0 THEN 100
400 PRINT CSR X;"_":PRINT:PRINT "Game Over.":END
[P4]
1 REM *****Ending
5 Z=400:GOSUB #5
10 FOR P=0 TO 11:PRINT CSR P;"#";:Z=50:GOSUB #5:NEXT P
15 PRINT " Your battle has ended. ";
20 PRINT "Kubla Khan regaines his form. ";
25 PRINT "You'll never let swords off.";:Z=400:GOSUB #5
30 PRINT:PRINT "## XanadU ##":END
[P5]
1 FOR Z=Z TO 0 STEP -1:NEXT Z:RETURN
[P6]
1 PRINT:PRINT "##.\DT'\CL'\DT.##";:Z=200:GOSUB #5
2 PRINT CSR 5;"+";:Z=99:GOSUB #5
3 PRINT CSR 5;"'";:Z=200:GOSUB #5:RETURN
[P7]
1 REM *****Load Monster Data
10 GOTO R+100
101 $="2sS" :D$="Boalisk":M=1 :O=1 :P=1:Q=1:U=0:RETURN
102 $="Q\OM\OM":D$="Kraken" :M=7 :O=7 :P=2:Q=2:U=1:RETURN
103 $="0O0" :D$="Beholdr":M=14 :O=14 :P=8:Q=2:U=0:RETURN
104 $="dob" :D$="Scrpion":M=8 :O=12 :P=5:Q=1:U=2:RETURN
105 $="mMM" :D$="Mud man":M=83 :O=100 :P=4:Q=3:U=3:RETURN
106 $="\\\\\\" :D$="Stroper":M=83 :O=187 :P=5:Q=0:U=4:RETURN
107 $="o\CI\CI":D$="Ascmoid":M=114 :O=139 :P=3:Q=6:U=0:RETURN
108 $="qpp" :D$="NecroPh":M=99 :O=157 :P=6:Q=4:U=1:RETURN
109 $="\PIkk" :D$="Grell" :M=530 :O=258 :P=8:Q=4:U=2:RETURN
110 $="_AA" :D$="Camzotz":M=834 :O=927 :P=7:Q=3:U=3:RETURN
111 $="\GE*\LE":D$="Ixchel" :M=1012:O=1860:P=4:Q=4:U=4:RETURN
112 $="+\CR\CR":D$="DrkStkr":M=1529:O=2200:P=5:Q=4:U=1:RETURN
113 $="-\TR\TR":D$="Volt" :M=1757:O=9999:P=9:Q=5:U=2:RETURN
114 $="@GG" :D$="Salmndr":M=2499:O=3815:P=6:Q=5:U=5:RETURN
115 $="3\SG\SG":D$="CZ812CE":M=9999:O=4680:P=7:Q=9:U=0:RETURN
[P8]
1 PRINT:GOSUB Y:Z=250:GOSUB #5:RETURN
11 PRINT "NoviceFightr";:RETURN
12 PRINT "Adept";:RETURN
13 PRINT "Hero";:RETURN
14 PRINT "Paladin";:RETURN
15 PRINT "Master-Load";:RETURN
21 PRINT "Dagger";:RETURN
22 PRINT "Hand-Axe";:RETURN
23 PRINT "Lance";:RETURN
24 PRINT "MurasameBLD.";:RETURN
25 PRINT "VorpalWeapon";:RETURN
26 PRINT "DragonSlayer";:RETURN
31 PRINT "Cloth";:RETURN
32 PRINT "ScaleArmor";:RETURN
33 PRINT "Full-Plate";:RETURN
34 PRINT "+2 Reflex";:RETURN
35 PRINT "Battle-Suits";:RETURN