├── output └── .gitkeep ├── COPYRIGHT ├── .gitignore ├── examples ├── 01. hello.bas ├── 03. maze.bas ├── 02. blank and comment.bas ├── 08. sub.bas ├── 12. array.bas ├── 05. function.bas ├── 27. persistence.bas ├── 24. hits.bas ├── 10. peek and poke.bas ├── 04. declaration and expression.bas ├── 31. error handling.bas ├── 07. loop.bas ├── 11. read data.bas ├── 28. rtc.bas ├── 09. thread.bas ├── 29. serial.bas ├── 15. input primitives.bas ├── 14. audio primitives.bas ├── 13. graphics primitives.bas ├── 06. conditional.bas ├── 16. input callback.bas ├── 18. sprite.bas ├── 25. hit callback.bas ├── 17. map.bas ├── 21. actor.bas ├── 26. colored.bas ├── 20. gui.bas ├── 22. top-down controller.bas ├── 23. platformer controller.bas ├── 30. effects.bas └── 19. scene.bas ├── kernel ├── gbbvm.gb └── gbbvm.sym ├── x86 └── gbbasic.exe ├── fonts ├── LanaPixel.ttf ├── lanapixel.json └── LanaPixel_License.txt ├── README.md └── compile.bat /output/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (C) 2022 Tony Wang, all rights reserved 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /output/*.gb 2 | /output/*.rtc 3 | /output/*.sav 4 | -------------------------------------------------------------------------------- /examples/01. hello.bas: -------------------------------------------------------------------------------- 1 | 10 print "Begin" 2 | 20 print "Hello" 3 | 30 goto 20 4 | -------------------------------------------------------------------------------- /kernel/gbbvm.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gbbasic/prototype/HEAD/kernel/gbbvm.gb -------------------------------------------------------------------------------- /x86/gbbasic.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gbbasic/prototype/HEAD/x86/gbbasic.exe -------------------------------------------------------------------------------- /examples/03. maze.bas: -------------------------------------------------------------------------------- 1 | 10 print "%c", iif(rnd(99) < 50, 47, 92); 2 | 20 goto 10 3 | -------------------------------------------------------------------------------- /fonts/LanaPixel.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gbbasic/prototype/HEAD/fonts/LanaPixel.ttf -------------------------------------------------------------------------------- /examples/02. blank and comment.bas: -------------------------------------------------------------------------------- 1 | 10 2 | 20 ' Comment test. 3 | 30 REM Another comment test. 4 | -------------------------------------------------------------------------------- /examples/08. sub.bas: -------------------------------------------------------------------------------- 1 | 10 gosub lbl 2 | 20 goto 10 3 | 25 4 | 30 lbl: 5 | 40 print "Hello" 6 | 50 return 7 | -------------------------------------------------------------------------------- /examples/12. array.bas: -------------------------------------------------------------------------------- 1 | 10 dim arr[3, 2] 2 | 20 arr[0, 1] = 42 3 | 30 print "arr[0,1]=%d", arr[0, 1] 4 | 40 print "Ok" 5 | -------------------------------------------------------------------------------- /examples/05. function.bas: -------------------------------------------------------------------------------- 1 | 10 def fn f(x, y) = sqr(x) + abs(y) 2 | 20 let a = f(1 + abs(-2), f(1, -3)) 3 | 30 print "a=%d", a 4 | -------------------------------------------------------------------------------- /examples/27. persistence.bas: -------------------------------------------------------------------------------- 1 | fopen 0 2 | let a = fread 0, 0 3 | a = a + 1 4 | fwrite 0, 0, a 5 | fclose 0 6 | print "_=%d", a 7 | -------------------------------------------------------------------------------- /examples/24. hits.bas: -------------------------------------------------------------------------------- 1 | let a = hits rect(0, 0, 10, 20), point(3, 4) 2 | let b = hits rect(0, 0, 10, 20), point(-3, -4) 3 | print "a=%d,b=%d", a, b 4 | -------------------------------------------------------------------------------- /examples/10. peek and poke.bas: -------------------------------------------------------------------------------- 1 | 10 let t = peek(32767) 2 | 20 print "t=%d", t 3 | 30 poke(32767, 42) 4 | 40 t = peek(32767) 5 | 50 print "t=%d", t 6 | -------------------------------------------------------------------------------- /examples/04. declaration and expression.bas: -------------------------------------------------------------------------------- 1 | 10 print "_=%d", abs(1 - 2) 2 | 20 let a = 22 3 | 30 let b = 7 4 | 40 let c = 0 5 | 50 c = a / b 6 | 60 print "a=%d,b=%d,c=%d,_=%d", a, b, c, 21 * 2 7 | 70 goto 50 8 | -------------------------------------------------------------------------------- /examples/31. error handling.bas: -------------------------------------------------------------------------------- 1 | on error goto err 2 | 3 | print "Press Start..." 4 | 5 | loop: 6 | if btn(start_btn) then call raise 7 | update 8 | goto loop 9 | 10 | err: 11 | print "Error!!!" 12 | -------------------------------------------------------------------------------- /fonts/lanapixel.json: -------------------------------------------------------------------------------- 1 | { 2 | "fonts": [ 3 | { 4 | "path": "../fonts/LanaPixel.ttf", 5 | "size": 13, 6 | "offset": -2, 7 | "two_bits_per_pixel": false 8 | } 9 | ], 10 | "arbitrary": null 11 | } 12 | -------------------------------------------------------------------------------- /examples/07. loop.bas: -------------------------------------------------------------------------------- 1 | 10 for i = 0 to 4 2 | 20 print "i=%d", i 3 | 30 next 4 | 35 5 | 110 let a = 0 6 | 120 while a < 5 7 | 130 print "a=%d", a 8 | 140 a = a + 1 9 | 150 wend 10 | 155 11 | 210 let b = 0 12 | 220 repeat 13 | 230 print "b=%d", b 14 | 240 b = b + 1 15 | 250 until b = 5 16 | -------------------------------------------------------------------------------- /examples/11. read data.bas: -------------------------------------------------------------------------------- 1 | 10 let d = 0 2 | 20 lbl: 3 | 30 data 1, 2, 3 4 | 40 for i = 0 to 5 5 | 50 read d 6 | 60 print "read %d", d 7 | 70 next 8 | 80 data 4, 5, 6 9 | 85 10 | 90 read d 11 | 100 print "read %d", d 12 | 105 13 | 110 restore lbl 14 | 120 read d 15 | 130 print "read %d", d 16 | -------------------------------------------------------------------------------- /examples/28. rtc.bas: -------------------------------------------------------------------------------- 1 | option rtc_enabled, true 2 | print "Press to refresh..." 3 | gosub refresh 4 | 5 | loop: 6 | if btnu then gosub refresh 7 | update 8 | goto loop 9 | 10 | refresh: 11 | print " Day: %d", query(rtc_day) 12 | print "Time: %d:%d:%d", query(rtc_hr), query(rtc_min), query(rtc_sec) 13 | return 14 | -------------------------------------------------------------------------------- /examples/09. thread.bas: -------------------------------------------------------------------------------- 1 | 10 let id = start lbl, 22, 7 2 | 20 update 3 | 30 join id 4 | 40 print "!!!" 5 | 50 end 6 | 55 7 | 60 lbl: 8 | 70 let a = arg 9 | 80 let b = arg 10 | 90 print "Args: %d, %d", a, b 11 | 100 for i = 0 to 4 12 | 110 print "i=%d", i 13 | 120 call wait_frames 10 14 | 130 next 15 | 140 print "End" 16 | -------------------------------------------------------------------------------- /examples/29. serial.bas: -------------------------------------------------------------------------------- 1 | serial on 2 | let a = 1 3 | let b = 0 4 | print "A to send" 5 | print "B to receive" 6 | 7 | loop: 8 | update 9 | if btnu(a_btn) then 10 | b = swrite a 11 | print "Send: %d", b 12 | a = a + 1 13 | elseif btnu(b_btn) then 14 | b = sread 15 | print "Recv: %d", b 16 | endif 17 | goto loop 18 | -------------------------------------------------------------------------------- /examples/15. input primitives.bas: -------------------------------------------------------------------------------- 1 | 10 print "Press any key..." 2 | 20 if btnd(up_btn) then print "Up" 3 | 30 if btnd(down_btn) then print "Down" 4 | 40 if btnd(left_btn) then print "Left" 5 | 50 if btnd(right_btn) then print "Right" 6 | 60 if btnd(a_btn) then print "A" 7 | 70 if btnd(b_btn) then print "B" 8 | 80 if btnd(select_btn) then print "Select" 9 | 90 if btnd(start_btn) then print "Start" 10 | 100 update 11 | 110 goto 20 12 | -------------------------------------------------------------------------------- /examples/14. audio primitives.bas: -------------------------------------------------------------------------------- 1 | sound on 2 | print "A to sound" 3 | print "B to play music" 4 | 5 | loop: 6 | update 7 | if btnu(a_btn) then 8 | sound 0, channel3, 4, 0x0c, 0x41, 0x30, 0xc0, _ 9 | channel3, 4, 0x0c, 0x41, 0x30, 0xc0, _ 10 | channel3, 4, 0x0c, 0x41, 0x30, 0xc0 11 | print "Sound" 12 | elseif btnu(b_btn) then 13 | play "Song" 14 | print "Music" 15 | endif 16 | goto loop 17 | -------------------------------------------------------------------------------- /examples/13. graphics primitives.bas: -------------------------------------------------------------------------------- 1 | 100 randomize 2 | 110 color rnd(0, 3), rnd(0, 3), rnd(0, 3) 3 | 120 line rnd(0, 159), rnd(0, 143), rnd(0, 159), rnd(0, 143) 4 | 130 if rnd(1) = 0 then 5 | 140 rect rnd(0, 159), rnd(0, 143), rnd(0, 159), rnd(0, 143) 6 | 150 else 7 | 160 rectfill rnd(0, 159), rnd(0, 143), rnd(0, 159), rnd(0, 143) 8 | 170 endif 9 | 180 plot rnd(0, 159), rnd(0, 143) 10 | 190 text rnd(0, 19), rnd(0, 17), "Hello" 11 | 200 goto 110 12 | -------------------------------------------------------------------------------- /examples/06. conditional.bas: -------------------------------------------------------------------------------- 1 | 10 if 1 then print "Ok" 2 | 15 3 | 20 if 0 then print "Oops" else print "Ok" 4 | 25 5 | 110 if 0 then 6 | 120 print "Oops" 7 | 130 elseif 1 then 8 | 140 print "Ok" 9 | 150 else 10 | 160 print "Oops" 11 | 170 endif 12 | 175 13 | 210 if 0 then 14 | 220 print "Oops" 15 | 230 elseif 1 then 16 | 240 if 1 then 17 | 250 print "Ok" 18 | 260 endif 19 | 270 else 20 | 280 print "Oops" 21 | 290 endif 22 | 295 23 | 310 let a = 0 24 | 320 on a goto lbl0, lbl1, lbl2 25 | 330 goto lblElse 26 | 340 lbl0: 27 | 350 print "0" 28 | 360 end 29 | 370 lbl1: 30 | 380 print "1" 31 | 390 end 32 | 400 lbl2: 33 | 410 print "2" 34 | 420 end 35 | 430 lblElse: 36 | 440 print "Else" 37 | -------------------------------------------------------------------------------- /examples/16. input callback.bas: -------------------------------------------------------------------------------- 1 | print "Press any key..." 2 | on btnd(up_btn) gosub up_ 3 | on btnd(down_btn) gosub down_ 4 | on btnd(left_btn) gosub left_ 5 | on btnd(right_btn) gosub right_ 6 | on btnd(a_btn) gosub a_ 7 | on btnd(b_btn) gosub b_ 8 | on btnd(select_btn) gosub select_ 9 | on btnd(start_btn) gosub start_ 10 | 11 | loop: 12 | update 13 | goto loop 14 | 15 | up_: 16 | print "Up" 17 | return 18 | down_: 19 | print "Down" 20 | return 21 | left_: 22 | print "Left" 23 | return 24 | right_: 25 | print "Right" 26 | return 27 | a_: 28 | print "A" 29 | return 30 | b_: 31 | print "B" 32 | return 33 | select_: 34 | print "Select" 35 | return 36 | start_: 37 | print "Start" 38 | return 39 | -------------------------------------------------------------------------------- /examples/18. sprite.bas: -------------------------------------------------------------------------------- 1 | sprite on 2 | let x = 55 3 | let y = 75 4 | fill sprite(0, 1) = data _ 5 | 0x5a, 0x3c, 0xe3, 0x42, 0x7c, 0x99, 0xeb, 0xa5, _ 6 | 0xfb, 0xa5, 0x66, 0x99, 0xe7, 0x42, 0x5a, 0x3c 7 | def sprite(0) = 0 8 | sprite 0, x, y 9 | 10 | loop: 11 | update 12 | if btn(left_btn) then 13 | x = x - 1 14 | sprite 0, x, y 15 | elseif btn(right_btn) then 16 | x = x + 1 17 | sprite 0, x, y 18 | endif 19 | if btn(up_btn) then 20 | y = y - 1 21 | sprite 0, x, y 22 | elseif btn(down_btn) then 23 | y = y + 1 24 | sprite 0, x, y 25 | endif 26 | if btnu(a_btn) then 27 | sprite 0, x, y 28 | elseif btnu(b_btn) then 29 | set sprite property(0, visibility_prop) = false 30 | endif 31 | goto loop 32 | 33 | ' data 0x5a, 0x3c, 0xe3, 0x42, 0x7c, 0x99, 0xeb, 0xa5 34 | ' data 0xfb, 0xa5, 0x66, 0x99, 0xe7, 0x42, 0x5a, 0x3c 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GB BASIC 2 | 3 | **A BASIC compiler that generates compatible ROM for our favourite 8-bit handheld game console.** 4 | 5 | ## What Is GB BASIC? 6 | 7 | Game Builder BASIC (GB BASIC) is a BASIC dialect and compiler that generates compatible ROM for our favourite 8-bit handheld game console. 8 | 9 | ## How to Use? 10 | 11 | Compiling the examples 12 | 13 | - Execute "compile.bat" 14 | 15 | Running the examples 16 | 17 | - Use any GB emulator or hardware to run the generated ROMs under the "output" directory 18 | 19 | Reading the code 20 | 21 | - Use any code editor to open the programs under the "examples" directory 22 | 23 | ## Project Status 24 | 25 | This project is working in progress. This repository contains a prototype executable (Windows), a number of example programs, and other necessary assets. 26 | 27 | ## Roadmap 28 | 29 | - Implement asset pipelines to process real user assets 30 | - Implement GUI-based editors to edit assets 31 | - Implement built-in emulator to debug during developing 32 | - Add a reference manual 33 | - Add more examples 34 | - Port the project to other operating systems 35 | -------------------------------------------------------------------------------- /examples/25. hit callback.bas: -------------------------------------------------------------------------------- 1 | ' Use arrow keys to move the actor. 2 | ' Try touching the other actor. 3 | 4 | sprite on 5 | option sprite8x16_enabled, true 6 | fill sprite(0, 8) = "Card" 7 | 8 | let a = new actor() 9 | set actor property(a, position_prop) = 79, 63 10 | set actor property(a, frame_prop) = 0, data 16,8,0,0, 0,8,2,0, -128 11 | set actor property(a, bounds_prop) = 0, 15, 0, 15 12 | set actor property(a, collision_group_prop) = 0x01 13 | control actor a, topdown_player_behaviour 14 | on actor(a) hits start hits_ 15 | 16 | gosub new_ 17 | 18 | let c = 0 19 | print "Hit Callback Test" 20 | 21 | loop: 22 | update 23 | goto loop 24 | 25 | new_: 26 | let b = new actor() 27 | set actor property(b, position_prop) = RND(0, 144), RND(0, 128) 28 | set actor property(b, frame_prop) = 0, data 16,8,4,0, 0,8,6,0, -128 29 | set actor property(b, bounds_prop) = 0, 15, 0, 15 30 | set actor property(b, collision_group_prop) = 0x01 31 | return 32 | hits_: 33 | let a1 = arg 34 | let a2 = arg 35 | sound on 36 | beep 37 | wait 30 38 | sound off 39 | del actor(b) 40 | c = c + 1 41 | print c 42 | gosub new_ 43 | end 44 | -------------------------------------------------------------------------------- /examples/17. map.bas: -------------------------------------------------------------------------------- 1 | map on 2 | fill tile(0, 5) = read ' Is equivalent to: fill map(0, 5) = read 3 | def map(0, 0, 20, 18) = read 4 | map 0, 0 5 | 6 | ' Tile data. 7 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 8 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 9 | data 0xff, 0x01, 0x81, 0x7f, 0xbd, 0x7f, 0xa5, 0x7b 10 | data 0xa5, 0x7b, 0xbd, 0x63, 0x81, 0x7f, 0xff, 0xff 11 | data 0x7e, 0x00, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f 12 | data 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x7e 13 | data 0x3c, 0x00, 0x54, 0x2a, 0xa3, 0x5f, 0xc1, 0x3f 14 | data 0x83, 0x7f, 0xc5, 0x3f, 0x2a, 0x7e, 0x3c, 0x3c 15 | data 0x04, 0x04, 0x04, 0x04, 0x0a, 0x0a, 0x12, 0x12 16 | data 0x66, 0x00, 0x99, 0x77, 0x99, 0x77, 0x66, 0x66 17 | 18 | ' Map data. 19 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 20 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 21 | data 1, 0, 2, 2, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 22 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 23 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 24 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 25 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 26 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 27 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 28 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 29 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 30 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 31 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 32 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 33 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 34 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 35 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 36 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 37 | -------------------------------------------------------------------------------- /examples/21. actor.bas: -------------------------------------------------------------------------------- 1 | ' Prepare. 2 | on btnd(a_btn) gosub ab_ 3 | on btnd(b_btn) gosub ab_ 4 | on btnd(up_btn) gosub up_ 5 | on btnd(down_btn) gosub down_ 6 | on btnd(left_btn) gosub left_ 7 | on btnd(right_btn) gosub right_ 8 | 9 | sprite on 10 | option sprite8x16_enabled, true 11 | 12 | ' Fill the pixels. 13 | fill sprite(0, 56) = "Elephant" 14 | 15 | ' Create an actor. 16 | let a = new actor() 17 | 18 | ' Set frame. 19 | ' set actor property(a, frame_prop) = 0, read ' From data sequence. 20 | ' data -24, -24, 0, 0, 0, 8, 2, 0, 0, 8, 4, 0, 0, 8, 6, 0 21 | ' data 0, 8, 8, 0, 0, 8, 0, 32, 16, -40, 10, 0, 0, 8, 12, 0 22 | ' data 0, 8, 14, 0, 0, 8, 16, 0, 0, 8, 16, 32, 0, 8, 18, 0 23 | ' data 0, 8, 20, 0, 16, -56, 54, 0, 0, 8, 52, 0, 0, 16, 24, 0 24 | ' data 0, 8, 26, 0, 0, 8, 28, 0, 0, 8, 30, 0, 0, 8, 32, 0 25 | ' data -128 26 | ' set actor property(a, frame_prop) = 0, data _ ' From inline data sequence. 27 | ' -24, -24, 0, 0, 0, 8, 2, 0, 0, 8, 4, 0, 0, 8, 6, 0, _ 28 | ' 0, 8, 8, 0, 0, 8, 0, 32, 16, -40, 10, 0, 0, 8, 12, 0, _ 29 | ' 0, 8, 14, 0, 0, 8, 16, 0, 0, 8, 16, 32, 0, 8, 18, 0, _ 30 | ' 0, 8, 20, 0, 16, -56, 54, 0, 0, 8, 52, 0, 0, 16, 24, 0, _ 31 | ' 0, 8, 26, 0, 0, 8, 28, 0, 0, 8, 30, 0, 0, 8, 32, 0, _ 32 | ' -128 33 | ' set actor property(a, frame_prop) = 0, "elephant_frame4" ' From named data. 34 | 35 | ' Set frames. 36 | set actor property(a, frames_prop) = 0, "ElephantFrames" 37 | ' Set position. 38 | set actor property(a, position_prop) = 79, 63 39 | ' Manipulate animation. 40 | set actor property(a, animations_prop) = data 0, 8, _ ' Set animations. 41 | 0, 5, _ 42 | 0, 5, _ 43 | 0, 5, _ 44 | 0, 5, _ 45 | 0, 5, _ 46 | 0, 5, _ 47 | 0, 5, _ 48 | 0, 5 49 | play actor a, 0 ' Play animation. 50 | ' Set the hit event handler. 51 | on actor(a) hits start hits_ 52 | ' Start the update thread. 53 | ' start actor a, act 54 | 55 | ' The loop. 56 | loop: 57 | update 58 | goto loop 59 | 60 | ' The update thread. 61 | act: 62 | loop_: 63 | wait 25 64 | set actor property(a, hflip_prop) = true 65 | wait 25 66 | set actor property(a, hflip_prop) = false 67 | goto loop_ 68 | 69 | ' The hit handler. 70 | hits_: 71 | let a1 = arg 72 | let a2 = arg 73 | sound on 74 | beep 75 | wait 30 76 | sound off 77 | end 78 | 79 | ' The input handlers. 80 | ab_: 81 | start actor a, aab_ 82 | return 83 | up_: 84 | start actor a, aup_ 85 | return 86 | down_: 87 | start actor a, adown_ 88 | return 89 | left_: 90 | start actor a, aleft_ 91 | return 92 | right_: 93 | start actor a, aright_ 94 | return 95 | 96 | ' The actor control. 97 | aab_: 98 | move actor(a, true) to 79, 63 99 | end 100 | aup_: 101 | move actor(a, true) to 79, 0 102 | end 103 | adown_: 104 | move actor(a, true) to 79, 127 105 | end 106 | aleft_: 107 | move actor(a, true) to 0, 63 108 | end 109 | aright_: 110 | move actor(a, true) to 159, 63 111 | end 112 | -------------------------------------------------------------------------------- /compile.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Compile. 3 | echo Compiling, a moment please... 4 | 5 | REM Prepare environment. 6 | SETLOCAL EnableDelayedExpansion 7 | for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( 8 | set "DEL=%%a" 9 | ) 10 | 11 | REM Set the variables. 12 | set rom=-r "..\kernel\gbbvm.gb" 13 | set sym=-s "..\kernel\gbbvm.sym" 14 | set ttf=-f "..\fonts\lanapixel.json" 15 | set flags=-a 16 | 17 | REM Compile. 18 | call :COLOR 2F "Compiling..." 19 | cd x86 20 | @echo on 21 | del /f /q "..\output\*.gb" 22 | del /f /q "..\output\*.rtc" 23 | del /f /q "..\output\*.sav" 24 | call gbbasic.exe "..\examples\01. hello.bas" -o "..\output\01. hello.gb" %rom% %sym% %ttf% %flags% 25 | call gbbasic.exe "..\examples\02. blank and comment.bas" -o "..\output\02. blank and comment.gb" %rom% %sym% %ttf% %flags% 26 | call gbbasic.exe "..\examples\03. maze.bas" -o "..\output\03. maze.gb" %rom% %sym% %ttf% %flags% 27 | call gbbasic.exe "..\examples\04. declaration and expression.bas" -o "..\output\04. declaration and expression.gb" %rom% %sym% %ttf% %flags% 28 | call gbbasic.exe "..\examples\05. function.bas" -o "..\output\05. function.gb" %rom% %sym% %ttf% %flags% 29 | call gbbasic.exe "..\examples\06. conditional.bas" -o "..\output\06. conditional.gb" %rom% %sym% %ttf% %flags% 30 | call gbbasic.exe "..\examples\07. loop.bas" -o "..\output\07. loop.gb" %rom% %sym% %ttf% %flags% 31 | call gbbasic.exe "..\examples\08. sub.bas" -o "..\output\08. sub.gb" %rom% %sym% %ttf% %flags% 32 | call gbbasic.exe "..\examples\09. thread.bas" -o "..\output\09. thread.gb" %rom% %sym% %ttf% %flags% 33 | call gbbasic.exe "..\examples\10. peek and poke.bas" -o "..\output\10. peek and poke.gb" %rom% %sym% %ttf% %flags% 34 | call gbbasic.exe "..\examples\11. read data.bas" -o "..\output\11. read data.gb" %rom% %sym% %ttf% %flags% 35 | call gbbasic.exe "..\examples\12. array.bas" -o "..\output\12. array.gb" %rom% %sym% %ttf% %flags% 36 | call gbbasic.exe "..\examples\13. graphics primitives.bas" -o "..\output\13. graphics primitives.gb" %rom% %sym% %ttf% %flags% 37 | call gbbasic.exe "..\examples\14. audio primitives.bas" -o "..\output\14. audio primitives.gb" %rom% %sym% %ttf% %flags% 38 | call gbbasic.exe "..\examples\15. input primitives.bas" -o "..\output\15. input primitives.gb" %rom% %sym% %ttf% %flags% 39 | call gbbasic.exe "..\examples\16. input callback.bas" -o "..\output\16. input callback.gb" %rom% %sym% %ttf% %flags% 40 | call gbbasic.exe "..\examples\17. map.bas" -o "..\output\17. map.gb" %rom% %sym% %ttf% %flags% 41 | call gbbasic.exe "..\examples\18. sprite.bas" -o "..\output\18. sprite.gb" %rom% %sym% %ttf% %flags% 42 | call gbbasic.exe "..\examples\19. scene.bas" -o "..\output\19. scene.gb" %rom% %sym% %ttf% %flags% 43 | call gbbasic.exe "..\examples\20. gui.bas" -o "..\output\20. gui.gb" %rom% %sym% %ttf% %flags% 44 | call gbbasic.exe "..\examples\21. actor.bas" -o "..\output\21. actor.gb" %rom% %sym% %ttf% %flags% 45 | call gbbasic.exe "..\examples\22. top-down controller.bas" -o "..\output\22. top-down controller.gb" %rom% %sym% %ttf% %flags% 46 | call gbbasic.exe "..\examples\23. platformer controller.bas" -o "..\output\23. platformer controller.gb" %rom% %sym% %ttf% %flags% 47 | call gbbasic.exe "..\examples\24. hits.bas" -o "..\output\24. hits.gb" %rom% %sym% %ttf% %flags% 48 | call gbbasic.exe "..\examples\25. hit callback.bas" -o "..\output\25. hit callback.gb" %rom% %sym% %ttf% %flags% 49 | call gbbasic.exe "..\examples\26. colored.bas" -o "..\output\26. colored.gb" %rom% %sym% %ttf% %flags% 50 | call gbbasic.exe "..\examples\27. persistence.bas" -o "..\output\27. persistence.gb" %rom% %sym% %ttf% %flags% 51 | call gbbasic.exe "..\examples\28. rtc.bas" -o "..\output\28. rtc.gb" %rom% %sym% %ttf% %flags% 52 | call gbbasic.exe "..\examples\29. serial.bas" -o "..\output\29. serial.gb" %rom% %sym% %ttf% %flags% 53 | call gbbasic.exe "..\examples\30. effects.bas" -o "..\output\30. effects.gb" %rom% %sym% %ttf% %flags% 54 | call gbbasic.exe "..\examples\31. error handling.bas" -o "..\output\31. error handling.gb" %rom% %sym% %ttf% %flags% 55 | @echo off 56 | cd .. 57 | goto :OK 58 | echo gbbasic.exe doesn't exist. 59 | :OK 60 | echo Ok. 61 | @echo, 62 | 63 | REM Finish. 64 | echo Compiling done! 65 | set say=1 66 | for /f "tokens=4-5 delims=. " %%i in ('ver') do set version=%%i.%%j 67 | if "%version%"=="6.0" set say=0 68 | if "%version%"=="6.1" set say=0 69 | if "%version%"=="6.2" set say=0 70 | if "%version%"=="6.3" set say=0 71 | if "%version%"=="10.0" set say=1 72 | if %say%==1 ( 73 | cscript tools\say\say.vbs "finished" 74 | ) 75 | REM pause 76 | goto :eof 77 | 78 | REM Colorizer. 79 | :COLOR 80 | echo off 81 | "%~2" 82 | findstr /v /a:%1 /R "^$" "%~2" nul 83 | del "%~2" > nul 2>&1 84 | echo. 85 | goto :eof 86 | -------------------------------------------------------------------------------- /fonts/LanaPixel_License.txt: -------------------------------------------------------------------------------- 1 | LanaPixel font (c) 2020, eishiya (https://mastodon.art/@eishiya) 2 | with Reserved Font Name LanaPixel. 3 | 4 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 5 | This license is copied below, and is also available with a FAQ at: 6 | http://scripts.sil.org/OFL 7 | 8 | 9 | ----------------------------------------------------------- 10 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 11 | ----------------------------------------------------------- 12 | 13 | PREAMBLE 14 | The goals of the Open Font License (OFL) are to stimulate worldwide 15 | development of collaborative font projects, to support the font creation 16 | efforts of academic and linguistic communities, and to provide a free and 17 | open framework in which fonts may be shared and improved in partnership 18 | with others. 19 | 20 | The OFL allows the licensed fonts to be used, studied, modified and 21 | redistributed freely as long as they are not sold by themselves. The 22 | fonts, including any derivative works, can be bundled, embedded, 23 | redistributed and/or sold with any software provided that any reserved 24 | names are not used by derivative works. The fonts and derivatives, 25 | however, cannot be released under any other type of license. The 26 | requirement for fonts to remain under this license does not apply 27 | to any document created using the fonts or their derivatives. 28 | 29 | DEFINITIONS 30 | "Font Software" refers to the set of files released by the Copyright 31 | Holder(s) under this license and clearly marked as such. This may 32 | include source files, build scripts and documentation. 33 | 34 | "Reserved Font Name" refers to any names specified as such after the 35 | copyright statement(s). 36 | 37 | "Original Version" refers to the collection of Font Software components as 38 | distributed by the Copyright Holder(s). 39 | 40 | "Modified Version" refers to any derivative made by adding to, deleting, 41 | or substituting -- in part or in whole -- any of the components of the 42 | Original Version, by changing formats or by porting the Font Software to a 43 | new environment. 44 | 45 | "Author" refers to any designer, engineer, programmer, technical 46 | writer or other person who contributed to the Font Software. 47 | 48 | PERMISSION & CONDITIONS 49 | Permission is hereby granted, free of charge, to any person obtaining 50 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 51 | redistribute, and sell modified and unmodified copies of the Font 52 | Software, subject to the following conditions: 53 | 54 | 1) Neither the Font Software nor any of its individual components, 55 | in Original or Modified Versions, may be sold by itself. 56 | 57 | 2) Original or Modified Versions of the Font Software may be bundled, 58 | redistributed and/or sold with any software, provided that each copy 59 | contains the above copyright notice and this license. These can be 60 | included either as stand-alone text files, human-readable headers or 61 | in the appropriate machine-readable metadata fields within text or 62 | binary files as long as those fields can be easily viewed by the user. 63 | 64 | 3) No Modified Version of the Font Software may use the Reserved Font 65 | Name(s) unless explicit written permission is granted by the corresponding 66 | Copyright Holder. This restriction only applies to the primary font name as 67 | presented to the users. 68 | 69 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 70 | Software shall not be used to promote, endorse or advertise any 71 | Modified Version, except to acknowledge the contribution(s) of the 72 | Copyright Holder(s) and the Author(s) or with their explicit written 73 | permission. 74 | 75 | 5) The Font Software, modified or unmodified, in part or in whole, 76 | must be distributed entirely under this license, and must not be 77 | distributed under any other license. The requirement for fonts to 78 | remain under this license does not apply to any document created 79 | using the Font Software. 80 | 81 | TERMINATION 82 | This license becomes null and void if any of the above conditions are 83 | not met. 84 | 85 | DISCLAIMER 86 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 87 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 88 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 89 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 90 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 91 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 92 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 93 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 94 | OTHER DEALINGS IN THE FONT SOFTWARE. 95 | -------------------------------------------------------------------------------- /examples/26. colored.bas: -------------------------------------------------------------------------------- 1 | map on 2 | fill tile(0, 5) = read 3 | option vram_usage, vram_attributes 4 | def map(0, 0, 20, 18) = read 5 | option vram_usage, vram_tiles 6 | def map(0, 0, 20, 18) = read 7 | map 0, 0 8 | palette map_layer, 1, 0, rgb(200, 200, 200) 9 | palette map_layer, 1, 1, rgb(255, 0, 0) 10 | palette map_layer, 1, 2, rgb(0, 255, 0) 11 | palette map_layer, 1, 3, rgb(0, 0, 255) 12 | 13 | sprite on 14 | let x = 55 15 | let y = 75 16 | fill sprite(0, 1) = data _ 17 | 0x5a, 0x3c, 0xe3, 0x42, 0x7c, 0x99, 0xeb, 0xa5, _ 18 | 0xfb, 0xa5, 0x66, 0x99, 0xe7, 0x42, 0x5a, 0x3c 19 | def sprite(0) = 0 20 | sprite 0, x, y 21 | set sprite property(0, palette_prop) = 1 22 | palette sprite_layer, 1, 0, rgb(200, 200, 200) 23 | palette sprite_layer, 1, 1, rgb(255, 0, 0) 24 | palette sprite_layer, 1, 2, rgb(0, 255, 0) 25 | palette sprite_layer, 1, 3, rgb(0, 0, 255) 26 | 27 | loop: 28 | update 29 | if btn(left_btn) then 30 | x = x - 1 31 | sprite 0, x, y 32 | elseif btn(right_btn) then 33 | x = x + 1 34 | sprite 0, x, y 35 | endif 36 | if btn(up_btn) then 37 | y = y - 1 38 | sprite 0, x, y 39 | elseif btn(down_btn) then 40 | y = y + 1 41 | sprite 0, x, y 42 | endif 43 | goto loop 44 | 45 | ' Tile data. 46 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 47 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 48 | data 0xff, 0x01, 0x81, 0x7f, 0xbd, 0x7f, 0xa5, 0x7b 49 | data 0xa5, 0x7b, 0xbd, 0x63, 0x81, 0x7f, 0xff, 0xff 50 | data 0x7e, 0x00, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f 51 | data 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x7e 52 | data 0x3c, 0x00, 0x54, 0x2a, 0xa3, 0x5f, 0xc1, 0x3f 53 | data 0x83, 0x7f, 0xc5, 0x3f, 0x2a, 0x7e, 0x3c, 0x3c 54 | data 0x04, 0x04, 0x04, 0x04, 0x0a, 0x0a, 0x12, 0x12 55 | data 0x66, 0x00, 0x99, 0x77, 0x99, 0x77, 0x66, 0x66 56 | 57 | ' Attribute data. 58 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 59 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 60 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 61 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 62 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 63 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 64 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 65 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 66 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 67 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 68 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 69 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 70 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 71 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 72 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 73 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 74 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 75 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 76 | 77 | ' Map data. 78 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 79 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 80 | data 1, 0, 2, 2, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 81 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 82 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 83 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 84 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 85 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 86 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 87 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 88 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 89 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 90 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 91 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 92 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 93 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 94 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 95 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 96 | -------------------------------------------------------------------------------- /examples/20. gui.bas: -------------------------------------------------------------------------------- 1 | map on 2 | def label(65, 7, 2, 2, 0) = map_layer, 0, 0, 0 3 | label 0, "GUI Test" 4 | 5 | window on 6 | window 7, 111 7 | def label(1, 16, 4, 2, 2) = window_layer, 2, 0, 10 8 | fill tile(1, 64) = read 9 | 10 | label 0, "Hello World" 11 | label 0, "你好世界" 12 | label 0, "こんにちは世界" 13 | label 0, "Привет, мир" 14 | label 0, "Test áéíóúü %d...\f", 42 15 | for i = 111 to 144 16 | window 7, i 17 | next 18 | label 0, "\r"; 19 | for i = 144 to 111 step -1 20 | window 7, i 21 | next 22 | label 0, "Hello\nWorld" 23 | label 0, "你好世界" 24 | label 0, "こんにちは世界" 25 | label 0, "Привет, мир\f"; 26 | label 0, "Test áéíóúü %d", 42 27 | 28 | ' Tile data for dialog background. 29 | data 0x3F, 0x00, 0x40, 0x00 30 | data 0x80, 0x00, 0x80, 0x00 31 | data 0x80, 0x00, 0x80, 0x00 32 | data 0x80, 0x00, 0x80, 0x00 33 | data 0xFF, 0x00, 0x00, 0x00 34 | data 0x00, 0x00, 0x00, 0x00 35 | data 0x00, 0x00, 0x00, 0x00 36 | data 0x00, 0x00, 0x00, 0x00 37 | data 0xFF, 0x00, 0x00, 0x00 38 | data 0x00, 0x00, 0x00, 0x00 39 | data 0x00, 0x00, 0x00, 0x00 40 | data 0x00, 0x00, 0x00, 0x00 41 | data 0xFF, 0x00, 0x00, 0x00 42 | data 0x00, 0x00, 0x00, 0x00 43 | data 0x00, 0x00, 0x00, 0x00 44 | data 0x00, 0x00, 0x00, 0x00 45 | data 0xFF, 0x00, 0x00, 0x00 46 | data 0x00, 0x00, 0x00, 0x00 47 | data 0x00, 0x00, 0x00, 0x00 48 | data 0x00, 0x00, 0x00, 0x00 49 | data 0xFF, 0x00, 0x00, 0x00 50 | data 0x00, 0x00, 0x00, 0x00 51 | data 0x00, 0x00, 0x00, 0x00 52 | data 0x00, 0x00, 0x00, 0x00 53 | data 0xFF, 0x00, 0x00, 0x00 54 | data 0x00, 0x00, 0x00, 0x00 55 | data 0x00, 0x00, 0x00, 0x00 56 | data 0x00, 0x00, 0x00, 0x00 57 | data 0xFF, 0x00, 0x00, 0x00 58 | data 0x00, 0x00, 0x00, 0x00 59 | data 0x00, 0x00, 0x00, 0x00 60 | data 0x00, 0x00, 0x00, 0x00 61 | data 0xFF, 0x00, 0x00, 0x00 62 | data 0x00, 0x00, 0x00, 0x00 63 | data 0x00, 0x00, 0x00, 0x00 64 | data 0x00, 0x00, 0x00, 0x00 65 | data 0xFF, 0x00, 0x00, 0x00 66 | data 0x00, 0x00, 0x00, 0x00 67 | data 0x00, 0x00, 0x00, 0x00 68 | data 0x00, 0x00, 0x00, 0x00 69 | data 0xFF, 0x00, 0x00, 0x00 70 | data 0x00, 0x00, 0x00, 0x00 71 | data 0x00, 0x00, 0x00, 0x00 72 | data 0x00, 0x00, 0x00, 0x00 73 | data 0xFF, 0x00, 0x00, 0x00 74 | data 0x00, 0x00, 0x00, 0x00 75 | data 0x00, 0x00, 0x00, 0x00 76 | data 0x00, 0x00, 0x00, 0x00 77 | data 0xFF, 0x00, 0x00, 0x00 78 | data 0x00, 0x00, 0x00, 0x00 79 | data 0x00, 0x00, 0x00, 0x00 80 | data 0x00, 0x00, 0x00, 0x00 81 | data 0xFF, 0x00, 0x00, 0x00 82 | data 0x00, 0x00, 0x00, 0x00 83 | data 0x00, 0x00, 0x00, 0x00 84 | data 0x00, 0x00, 0x00, 0x00 85 | data 0xFF, 0x00, 0x00, 0x00 86 | data 0x00, 0x00, 0x00, 0x00 87 | data 0x00, 0x00, 0x00, 0x00 88 | data 0x00, 0x00, 0x00, 0x00 89 | data 0xFC, 0x00, 0x02, 0x00 90 | data 0x01, 0x00, 0x01, 0x00 91 | data 0x01, 0x00, 0x01, 0x00 92 | data 0x01, 0x00, 0x01, 0x00 93 | data 0x80, 0x00, 0x80, 0x00 94 | data 0x80, 0x00, 0x80, 0x00 95 | data 0x80, 0x00, 0x80, 0x00 96 | data 0x80, 0x00, 0x80, 0x00 97 | data 0x00, 0x00, 0x00, 0x00 98 | data 0x00, 0x00, 0x00, 0x00 99 | data 0x00, 0x00, 0x00, 0x00 100 | data 0x00, 0x00, 0x00, 0x00 101 | data 0x00, 0x00, 0x00, 0x00 102 | data 0x00, 0x00, 0x00, 0x00 103 | data 0x00, 0x00, 0x00, 0x00 104 | data 0x00, 0x00, 0x00, 0x00 105 | data 0x00, 0x00, 0x00, 0x00 106 | data 0x00, 0x00, 0x00, 0x00 107 | data 0x00, 0x00, 0x00, 0x00 108 | data 0x00, 0x00, 0x00, 0x00 109 | data 0x00, 0x00, 0x00, 0x00 110 | data 0x00, 0x00, 0x00, 0x00 111 | data 0x00, 0x00, 0x00, 0x00 112 | data 0x00, 0x00, 0x00, 0x00 113 | data 0x00, 0x00, 0x00, 0x00 114 | data 0x00, 0x00, 0x00, 0x00 115 | data 0x00, 0x00, 0x00, 0x00 116 | data 0x00, 0x00, 0x00, 0x00 117 | data 0x00, 0x00, 0x00, 0x00 118 | data 0x00, 0x00, 0x00, 0x00 119 | data 0x00, 0x00, 0x00, 0x00 120 | data 0x00, 0x00, 0x00, 0x00 121 | data 0x00, 0x00, 0x00, 0x00 122 | data 0x00, 0x00, 0x00, 0x00 123 | data 0x00, 0x00, 0x00, 0x00 124 | data 0x00, 0x00, 0x00, 0x00 125 | data 0x00, 0x00, 0x00, 0x00 126 | data 0x00, 0x00, 0x00, 0x00 127 | data 0x00, 0x00, 0x00, 0x00 128 | data 0x00, 0x00, 0x00, 0x00 129 | data 0x00, 0x00, 0x00, 0x00 130 | data 0x00, 0x00, 0x00, 0x00 131 | data 0x00, 0x00, 0x00, 0x00 132 | data 0x00, 0x00, 0x00, 0x00 133 | data 0x00, 0x00, 0x00, 0x00 134 | data 0x00, 0x00, 0x00, 0x00 135 | data 0x00, 0x00, 0x00, 0x00 136 | data 0x00, 0x00, 0x00, 0x00 137 | data 0x00, 0x00, 0x00, 0x00 138 | data 0x00, 0x00, 0x00, 0x00 139 | data 0x00, 0x00, 0x00, 0x00 140 | data 0x00, 0x00, 0x00, 0x00 141 | data 0x00, 0x00, 0x00, 0x00 142 | data 0x00, 0x00, 0x00, 0x00 143 | data 0x00, 0x00, 0x00, 0x00 144 | data 0x00, 0x00, 0x00, 0x00 145 | data 0x00, 0x00, 0x00, 0x00 146 | data 0x00, 0x00, 0x00, 0x00 147 | data 0x00, 0x00, 0x00, 0x00 148 | data 0x00, 0x00, 0x00, 0x00 149 | data 0x00, 0x00, 0x00, 0x00 150 | data 0x00, 0x00, 0x00, 0x00 151 | data 0x00, 0x00, 0x00, 0x00 152 | data 0x00, 0x00, 0x00, 0x00 153 | data 0x01, 0x00, 0x01, 0x00 154 | data 0x01, 0x00, 0x01, 0x00 155 | data 0x01, 0x00, 0x01, 0x00 156 | data 0x01, 0x00, 0x01, 0x00 157 | data 0x80, 0x00, 0x80, 0x00 158 | data 0x80, 0x00, 0x80, 0x00 159 | data 0x80, 0x00, 0x80, 0x00 160 | data 0x80, 0x00, 0x80, 0x00 161 | data 0x00, 0x00, 0x00, 0x00 162 | data 0x00, 0x00, 0x00, 0x00 163 | data 0x00, 0x00, 0x00, 0x00 164 | data 0x00, 0x00, 0x00, 0x00 165 | data 0x00, 0x00, 0x00, 0x00 166 | data 0x00, 0x00, 0x00, 0x00 167 | data 0x00, 0x00, 0x00, 0x00 168 | data 0x00, 0x00, 0x00, 0x00 169 | data 0x00, 0x00, 0x00, 0x00 170 | data 0x00, 0x00, 0x00, 0x00 171 | data 0x00, 0x00, 0x00, 0x00 172 | data 0x00, 0x00, 0x00, 0x00 173 | data 0x00, 0x00, 0x00, 0x00 174 | data 0x00, 0x00, 0x00, 0x00 175 | data 0x00, 0x00, 0x00, 0x00 176 | data 0x00, 0x00, 0x00, 0x00 177 | data 0x00, 0x00, 0x00, 0x00 178 | data 0x00, 0x00, 0x00, 0x00 179 | data 0x00, 0x00, 0x00, 0x00 180 | data 0x00, 0x00, 0x00, 0x00 181 | data 0x00, 0x00, 0x00, 0x00 182 | data 0x00, 0x00, 0x00, 0x00 183 | data 0x00, 0x00, 0x00, 0x00 184 | data 0x00, 0x00, 0x00, 0x00 185 | data 0x00, 0x00, 0x00, 0x00 186 | data 0x00, 0x00, 0x00, 0x00 187 | data 0x00, 0x00, 0x00, 0x00 188 | data 0x00, 0x00, 0x00, 0x00 189 | data 0x00, 0x00, 0x00, 0x00 190 | data 0x00, 0x00, 0x00, 0x00 191 | data 0x00, 0x00, 0x00, 0x00 192 | data 0x00, 0x00, 0x00, 0x00 193 | data 0x00, 0x00, 0x00, 0x00 194 | data 0x00, 0x00, 0x00, 0x00 195 | data 0x00, 0x00, 0x00, 0x00 196 | data 0x00, 0x00, 0x00, 0x00 197 | data 0x00, 0x00, 0x00, 0x00 198 | data 0x00, 0x00, 0x00, 0x00 199 | data 0x00, 0x00, 0x00, 0x00 200 | data 0x00, 0x00, 0x00, 0x00 201 | data 0x00, 0x00, 0x00, 0x00 202 | data 0x00, 0x00, 0x00, 0x00 203 | data 0x00, 0x00, 0x00, 0x00 204 | data 0x00, 0x00, 0x00, 0x00 205 | data 0x00, 0x00, 0x00, 0x00 206 | data 0x00, 0x00, 0x00, 0x00 207 | data 0x00, 0x00, 0x00, 0x00 208 | data 0x00, 0x00, 0x00, 0x00 209 | data 0x00, 0x00, 0x00, 0x00 210 | data 0x00, 0x00, 0x00, 0x00 211 | data 0x00, 0x00, 0x00, 0x00 212 | data 0x00, 0x00, 0x00, 0x00 213 | data 0x00, 0x00, 0x00, 0x00 214 | data 0x00, 0x00, 0x00, 0x00 215 | data 0x00, 0x00, 0x00, 0x00 216 | data 0x00, 0x00, 0x00, 0x00 217 | data 0x01, 0x00, 0x01, 0x00 218 | data 0x01, 0x00, 0x01, 0x00 219 | data 0x01, 0x00, 0x01, 0x00 220 | data 0x01, 0x00, 0x01, 0x00 221 | data 0x80, 0x00, 0x80, 0x00 222 | data 0x80, 0x00, 0x80, 0x00 223 | data 0x80, 0x00, 0x80, 0x00 224 | data 0x40, 0x00, 0x3F, 0x00 225 | data 0x00, 0x00, 0x00, 0x00 226 | data 0x00, 0x00, 0x00, 0x00 227 | data 0x00, 0x00, 0x00, 0x00 228 | data 0x00, 0x00, 0xFF, 0x00 229 | data 0x00, 0x00, 0x00, 0x00 230 | data 0x00, 0x00, 0x00, 0x00 231 | data 0x00, 0x00, 0x00, 0x00 232 | data 0x00, 0x00, 0xFF, 0x00 233 | data 0x00, 0x00, 0x00, 0x00 234 | data 0x00, 0x00, 0x00, 0x00 235 | data 0x00, 0x00, 0x00, 0x00 236 | data 0x00, 0x00, 0xFF, 0x00 237 | data 0x00, 0x00, 0x00, 0x00 238 | data 0x00, 0x00, 0x00, 0x00 239 | data 0x00, 0x00, 0x00, 0x00 240 | data 0x00, 0x00, 0xFF, 0x00 241 | data 0x00, 0x00, 0x00, 0x00 242 | data 0x00, 0x00, 0x00, 0x00 243 | data 0x00, 0x00, 0x00, 0x00 244 | data 0x00, 0x00, 0xFF, 0x00 245 | data 0x00, 0x00, 0x00, 0x00 246 | data 0x00, 0x00, 0x00, 0x00 247 | data 0x00, 0x00, 0x00, 0x00 248 | data 0x00, 0x00, 0xFF, 0x00 249 | data 0x00, 0x00, 0x00, 0x00 250 | data 0x00, 0x00, 0x00, 0x00 251 | data 0x00, 0x00, 0x00, 0x00 252 | data 0x00, 0x00, 0xFF, 0x00 253 | data 0x00, 0x00, 0x00, 0x00 254 | data 0x00, 0x00, 0x00, 0x00 255 | data 0x00, 0x00, 0x00, 0x00 256 | data 0x00, 0x00, 0xFF, 0x00 257 | data 0x00, 0x00, 0x00, 0x00 258 | data 0x00, 0x00, 0x00, 0x00 259 | data 0x00, 0x00, 0x00, 0x00 260 | data 0x00, 0x00, 0xFF, 0x00 261 | data 0x00, 0x00, 0x00, 0x00 262 | data 0x00, 0x00, 0x00, 0x00 263 | data 0x00, 0x00, 0x00, 0x00 264 | data 0x00, 0x00, 0xFF, 0x00 265 | data 0x00, 0x00, 0x00, 0x00 266 | data 0x00, 0x00, 0x00, 0x00 267 | data 0x00, 0x00, 0x00, 0x00 268 | data 0x00, 0x00, 0xFF, 0x00 269 | data 0x00, 0x00, 0x00, 0x00 270 | data 0x00, 0x00, 0x00, 0x00 271 | data 0x00, 0x00, 0x00, 0x00 272 | data 0x00, 0x00, 0xFF, 0x00 273 | data 0x00, 0x00, 0x00, 0x00 274 | data 0x00, 0x00, 0x00, 0x00 275 | data 0x00, 0x00, 0x00, 0x00 276 | data 0x00, 0x00, 0xFF, 0x00 277 | data 0x00, 0x00, 0x00, 0x00 278 | data 0x00, 0x00, 0x00, 0x00 279 | data 0x00, 0x00, 0x00, 0x00 280 | data 0x00, 0x00, 0xFF, 0x00 281 | data 0x01, 0x00, 0x01, 0x00 282 | data 0x01, 0x00, 0x01, 0x00 283 | data 0x01, 0x00, 0x01, 0x00 284 | data 0x02, 0x00, 0xFC, 0x00 285 | -------------------------------------------------------------------------------- /examples/22. top-down controller.bas: -------------------------------------------------------------------------------- 1 | map on 2 | fill tile(0, 5) = read 3 | let cx = 0 4 | let cy = 0 5 | camera cx, cy 6 | let w = 20 + 18 7 | let h = 18 + 4 8 | def scene(w, h, 0, 1) = read 9 | 10 | sprite on 11 | option sprite8x16_enabled, true 12 | fill sprite(0, 8) = "Card" 13 | let a = new actor() 14 | set actor property(a, position_prop) = 79, 63 15 | set actor property(a, frames_prop) = 0, "CardFrames" 16 | set actor property(a, bounds_prop) = 0, 15, 0, 15 17 | set actor property(a, animations_prop) = data 0, 8, _ 18 | 0, 1, _ 19 | 0, 1, _ 20 | 0, 1, _ 21 | 0, 1, _ 22 | 0, 2, _ 23 | 0, 2, _ 24 | 0, 2, _ 25 | 0, 2 26 | play actor a, 0 27 | control actor a, topdown_player_behaviour 28 | on actor(a) hits start hits_ 29 | 30 | loop: 31 | update 32 | goto loop 33 | 34 | hits_: 35 | let a1 = arg 36 | let a2 = arg 37 | sound on 38 | beep 39 | wait 30 40 | sound off 41 | end 42 | 43 | ' Tile data. 44 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 45 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 46 | data 0xff, 0x01, 0x81, 0x7f, 0xbd, 0x7f, 0xa5, 0x7b 47 | data 0xa5, 0x7b, 0xbd, 0x63, 0x81, 0x7f, 0xff, 0xff 48 | data 0x7e, 0x00, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f 49 | data 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x7e 50 | data 0x3c, 0x00, 0x54, 0x2a, 0xa3, 0x5f, 0xc1, 0x3f 51 | data 0x83, 0x7f, 0xc5, 0x3f, 0x2a, 0x7e, 0x3c, 0x3c 52 | data 0x04, 0x04, 0x04, 0x04, 0x0a, 0x0a, 0x12, 0x12 53 | data 0x66, 0x00, 0x99, 0x77, 0x99, 0x77, 0x66, 0x66 54 | 55 | ' Map data. 56 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 57 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 58 | data 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 59 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 60 | data 1, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 61 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 62 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 63 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 64 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 65 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 66 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 67 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 68 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 69 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 70 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 71 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 72 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 73 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 74 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 75 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 76 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 77 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 78 | 79 | ' Property data. 80 | data 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f 81 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 82 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 83 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 84 | data 0x0f, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 85 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 86 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 87 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 88 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 89 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 90 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 91 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 92 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 93 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 94 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 95 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 96 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 97 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 98 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 99 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 100 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 101 | data 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f 102 | -------------------------------------------------------------------------------- /examples/23. platformer controller.bas: -------------------------------------------------------------------------------- 1 | map on 2 | fill tile(0, 5) = read 3 | def scene(38, 22, 0, 1) = read 4 | set scene property(gravity_prop) = 10 5 | set scene property(jump_gravity_prop) = 50 6 | set scene property(jump_max_count_prop) = 2 7 | set scene property(jump_max_ticks_prop) = 10 8 | set scene property(climb_gravity_prop) = 20 9 | 10 | sprite on 11 | option sprite8x16_enabled, true 12 | fill sprite(0, 8) = "Card" 13 | let a = new actor() 14 | set actor property(a, position_prop) = 79, 63 15 | set actor property(a, frames_prop) = 0, "CardFrames" 16 | set actor property(a, bounds_prop) = 0, 15, 0, 15 17 | set actor property(a, animations_prop) = data 0, 8, _ 18 | 0, 1, _ 19 | 0, 1, _ 20 | 0, 1, _ 21 | 0, 1, _ 22 | 0, 2, _ 23 | 0, 2, _ 24 | 0, 2, _ 25 | 0, 2 26 | play actor a, 0 27 | control actor a, platformer_player_behaviour 28 | on actor(a) hits start hits_ 29 | 30 | loop: 31 | update 32 | goto loop 33 | 34 | hits_: 35 | let a1 = arg 36 | let a2 = arg 37 | sound on 38 | beep 39 | wait 30 40 | sound off 41 | end 42 | 43 | ' Tile data. 44 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 45 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 46 | data 0xff, 0x01, 0x81, 0x7f, 0xbd, 0x7f, 0xa5, 0x7b 47 | data 0xa5, 0x7b, 0xbd, 0x63, 0x81, 0x7f, 0xff, 0xff 48 | data 0x7e, 0x00, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f 49 | data 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x7e 50 | data 0x3c, 0x00, 0x54, 0x2a, 0xa3, 0x5f, 0xc1, 0x3f 51 | data 0x83, 0x7f, 0xc5, 0x3f, 0x2a, 0x7e, 0x3c, 0x3c 52 | data 0x04, 0x04, 0x04, 0x04, 0x0a, 0x0a, 0x12, 0x12 53 | data 0x66, 0x00, 0x99, 0x77, 0x99, 0x77, 0x66, 0x66 54 | 55 | ' Map data. 56 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 57 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 58 | data 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 59 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 60 | data 1, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 61 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 62 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 63 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 64 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 65 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 66 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 67 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 68 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 69 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 70 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 71 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 72 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 73 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 74 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 75 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 76 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 77 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 78 | 79 | ' Property data. 80 | data 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f 81 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 82 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 83 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 84 | data 0x0f, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 85 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 86 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 87 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 88 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 89 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 90 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 91 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 92 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 93 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 94 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 95 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 96 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 97 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 98 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 99 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 100 | data 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f 101 | data 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f 102 | -------------------------------------------------------------------------------- /examples/30. effects.bas: -------------------------------------------------------------------------------- 1 | ' Usage: 2 | ' A: wobble effect 3 | ' B: parallax effect 4 | 5 | on btnd(a_btn) gosub a_ 6 | on btnd(b_btn) gosub b_ 7 | 8 | map on 9 | fill map(0, 0x51) = read 10 | def map(0, 0, 32, 18) = read 11 | map 0, 0 12 | 13 | let x = 0 14 | loop: 15 | x = x + 1 16 | map x, 0 17 | update 18 | goto loop 19 | 20 | a_: 21 | fx wobble_effect, 0x01 22 | return 23 | b_: 24 | fx parallax_effect, _ 25 | 0, 90, 0, _ 26 | 97, 100, 1, _ 27 | 121, 255, 2, 28 | return 29 | 30 | ' Tile data. 31 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00 32 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x1f, 0x00 33 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xfd, 0x00, 0xff, 0x00 34 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xf9, 0x00 35 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x7f, 0x00 36 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xf7, 0x00 37 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xbf, 0x00 38 | data 0xfe, 0x00, 0xff, 0x00, 0xf8, 0x00, 0xf0, 0x00, 0x18, 0x00, 0x05, 0x00, 0x02, 0x00, 0x01, 0x00 39 | data 0x1f, 0x00, 0xf8, 0x00, 0xe0, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 40 | data 0xff, 0x00, 0x0f, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 41 | data 0xf9, 0x00, 0x1f, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x8c, 0x00, 0x70, 0x00, 0x20, 0x00, 0x40, 0x00 42 | data 0xe1, 0x00, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x18, 0x00, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00 43 | data 0xff, 0x00, 0x78, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 44 | data 0xff, 0x00, 0x0f, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 45 | data 0xfc, 0x00, 0xfc, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x8c, 0x00, 0x50, 0x00, 0x20, 0x00, 0x10, 0x00 46 | data 0xe1, 0x00, 0xc0, 0x00, 0x80, 0x00, 0xf0, 0x00, 0x1d, 0x00, 0x07, 0x00, 0x02, 0x00, 0x04, 0x00 47 | data 0xff, 0x00, 0x78, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 48 | data 0xfe, 0x00, 0xff, 0x00, 0x87, 0x00, 0x03, 0x00, 0x8c, 0x00, 0x70, 0x00, 0x20, 0x00, 0x10, 0x00 49 | data 0xff, 0x00, 0xff, 0x00, 0xf8, 0x00, 0xf0, 0x00, 0x18, 0x00, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00 50 | data 0xff, 0x00, 0xf8, 0x00, 0xe0, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 51 | data 0xff, 0x00, 0xff, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x9c, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00 52 | data 0xff, 0x00, 0xff, 0x00, 0x78, 0x00, 0xf0, 0x00, 0x18, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00 53 | data 0xfd, 0x00, 0x0f, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 54 | data 0xff, 0x00, 0xff, 0x00, 0x8f, 0x00, 0x07, 0x00, 0x8c, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00 55 | data 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 56 | data 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 57 | data 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 58 | data 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x18, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00 59 | data 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 60 | data 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 61 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 62 | data 0x08, 0x00, 0x1e, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 63 | data 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 64 | data 0x3c, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 65 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00 66 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00 67 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x08, 0x00 68 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x02, 0x00 69 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x04, 0x00, 0x05, 0x00 70 | data 0x00, 0x00, 0x3f, 0x00, 0x20, 0x00, 0x2a, 0x00, 0x20, 0x00, 0xea, 0x00, 0x20, 0x00, 0x6a, 0x00 71 | data 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0xc0, 0x00 72 | data 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, 0x00 73 | data 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x58, 0x00, 0x08, 0x00, 0x5f, 0x00, 0x08, 0x00 74 | data 0x10, 0x00, 0x15, 0x00, 0x10, 0x00, 0x15, 0x00, 0x10, 0x00, 0x15, 0x00, 0xf8, 0x00, 0x0d, 0x00 75 | data 0x10, 0x00, 0x50, 0x00, 0x10, 0x00, 0x50, 0x00, 0x10, 0x00, 0x50, 0x00, 0x10, 0x00, 0x50, 0x00 76 | data 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00 77 | data 0x0a, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x02, 0x00 78 | data 0xaa, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x02, 0x00 79 | data 0x07, 0x00, 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0xfd, 0x00, 0x84, 0x00, 0xad, 0x00, 0x84, 0x00 80 | data 0xf8, 0x00, 0x08, 0x00, 0x58, 0x00, 0x08, 0x00, 0x58, 0x00, 0x08, 0x00, 0x58, 0x00, 0x08, 0x00 81 | data 0x00, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x0a, 0x00, 0xf8, 0x00, 0x0a, 0x00 82 | data 0x00, 0x00, 0xf0, 0x00, 0x10, 0x00, 0xb0, 0x00, 0x10, 0x00, 0xb0, 0x00, 0x10, 0x00, 0xb0, 0x00 83 | data 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00 84 | data 0x20, 0x00, 0x6a, 0x00, 0x20, 0x00, 0xfa, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0xff, 0x00, 0xff, 0x00 85 | data 0x40, 0x00, 0xc0, 0x00, 0x78, 0x00, 0xc8, 0x00, 0x68, 0x00, 0xc8, 0x00, 0x6b, 0x00, 0xcf, 0x00 86 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0x00 87 | data 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00 88 | data 0x5a, 0x00, 0x08, 0x00, 0x5a, 0x00, 0xf8, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0x00, 0xff, 0x00 89 | data 0xa8, 0x00, 0x0d, 0x00, 0xa8, 0x00, 0x0d, 0x00, 0xa8, 0x00, 0x0d, 0x00, 0xab, 0x00, 0x8f, 0x00 90 | data 0x10, 0x00, 0x50, 0x00, 0x1c, 0x00, 0x54, 0x00, 0x14, 0x00, 0x54, 0x00, 0xf4, 0x00, 0xfc, 0x00 91 | data 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00 92 | data 0xaa, 0x00, 0x02, 0x00, 0xaa, 0x00, 0xf2, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0x00, 0xff, 0x00 93 | data 0xaa, 0x00, 0x03, 0x00, 0xaa, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x02, 0x00, 0x23, 0x00, 0x8f, 0x00 94 | data 0x00, 0x00, 0xe0, 0x00, 0x20, 0x00, 0xa0, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xe0, 0x00, 0xf8, 0x00 95 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00 96 | data 0xad, 0x00, 0x84, 0x00, 0xad, 0x00, 0xf4, 0x00, 0xfd, 0x00, 0xfe, 0x00, 0xff, 0x00, 0xff, 0x00 97 | data 0x58, 0x00, 0x0f, 0x00, 0x59, 0x00, 0x0d, 0x00, 0x59, 0x00, 0x0d, 0x00, 0x5b, 0x00, 0x8f, 0x00 98 | data 0x0a, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xea, 0x00, 0xf8, 0x00 99 | data 0xa8, 0x00, 0x0a, 0x00, 0xa8, 0x00, 0x0f, 0x00, 0xbf, 0x00, 0x3f, 0x00, 0xff, 0x00, 0xff, 0x00 100 | data 0x10, 0x00, 0xbe, 0x00, 0x12, 0x00, 0xfa, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0x00, 0xff, 0x00 101 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x8f, 0x00 102 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x1f, 0xe0, 0x07, 0xf8 103 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xf8, 0x07, 0xe0, 0x1f, 0xc0, 0x3f, 0x80, 0x7f, 0x00, 0xff 104 | data 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0f, 0xf0, 0x03, 0xfc, 0x01, 0xfe, 0x00, 0xff, 0x00, 0xff 105 | data 0xfd, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xfc, 0x03, 0x70, 0x8f 106 | data 0xdf, 0x00, 0xff, 0x00, 0xff, 0x00, 0x0f, 0xf0, 0x03, 0xfc, 0x01, 0xfe, 0x00, 0xff, 0x00, 0xff 107 | data 0xfc, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xfc, 0x03, 0x70, 0x8f 108 | data 0x02, 0xfd, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff 109 | data 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff 110 | data 0x20, 0xdf, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff 111 | data 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0xff 112 | 113 | ' Map data. 114 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 115 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 116 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 117 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 118 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 119 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 120 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 121 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 122 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 123 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 124 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 125 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 126 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 127 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 128 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 129 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 130 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 131 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 132 | data 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x06 133 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x05, 0x00 134 | data 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x0d, 0x11, 0x12, 0x13, 0x0d, 0x14 135 | data 0x15, 0x13, 0x16, 0x17, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x0d, 0x11 136 | data 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x1e, 0x1e, 0x21, 0x1e, 0x1e, 0x1e, 0x1e 137 | data 0x1e, 0x1e, 0x1e, 0x1e, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x1e, 0x1e, 0x21 138 | data 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x22, 0x23, 0x1e, 0x24, 0x25, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e 139 | data 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x22, 0x23, 0x1e, 0x24, 0x25, 0x1e 140 | data 0x26, 0x27, 0x28, 0x1e, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x1e, 0x1e, 0x30, 0x31, 0x24 141 | data 0x32, 0x33, 0x1e, 0x1e, 0x26, 0x27, 0x28, 0x1e, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x1e 142 | data 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43 143 | data 0x44, 0x45, 0x46, 0x37, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f 144 | data 0x47, 0x48, 0x49, 0x4a, 0x47, 0x48, 0x4b, 0x4a, 0x47, 0x48, 0x4b, 0x4a, 0x47, 0x48, 0x4b, 0x4a 145 | data 0x47, 0x48, 0x4b, 0x4c, 0x47, 0x48, 0x49, 0x4a, 0x47, 0x48, 0x4b, 0x4a, 0x47, 0x48, 0x4b, 0x4a 146 | data 0x4d, 0x4e, 0x4e, 0x4f, 0x4d, 0x4e, 0x4e, 0x4f, 0x4d, 0x4e, 0x4e, 0x4f, 0x4d, 0x4e, 0x4e, 0x4f 147 | data 0x4d, 0x4e, 0x4e, 0x4f, 0x4d, 0x4e, 0x4e, 0x4f, 0x4d, 0x4e, 0x4e, 0x4f, 0x4d, 0x4e, 0x4e, 0x4f 148 | data 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 149 | data 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 150 | -------------------------------------------------------------------------------- /examples/19. scene.bas: -------------------------------------------------------------------------------- 1 | map on 2 | fill tile(0, 5) = read 3 | palette map_layer, 1, 1, rgb(255, 0, 0) 4 | palette map_layer, 1, 2, rgb(0, 255, 0) 5 | palette map_layer, 1, 3, rgb(0, 0, 255) 6 | let m = true 7 | let mx = 0 8 | let my = 0 9 | let cx = 0 10 | let cy = 0 11 | let s = 2 12 | map mx, my 13 | camera cx, cy 14 | let w = 38 15 | let h = 22 16 | def scene(w, h, 0, 2) = read 17 | on scene move gosub scene_move_ 18 | 19 | on btnu(start_btn) gosub start_ 20 | on btnu(select_btn) gosub select_ 21 | on btnu(a_btn) gosub a_ 22 | on btnu(b_btn) gosub b_ 23 | 24 | loop: 25 | update 26 | if btn(left_btn) then 27 | cx = cx - s 28 | cx = max(cx, 0) 29 | elseif btn(right_btn) then 30 | cx = cx + s 31 | cx = min(cx, (w - 20) * 8) 32 | endif 33 | if btn(up_btn) then 34 | cy = cy - s 35 | cy = max(cy, 0) 36 | elseif btn(down_btn) then 37 | cy = cy + s 38 | cy = min(cy, (h - 18) * 8) 39 | endif 40 | camera cx, cy 41 | goto loop 42 | 43 | start_: 44 | fx wobble_effect, 0x01 45 | return 46 | select_: 47 | fx wobble_effect, 0x00 48 | return 49 | a_: 50 | m = not m 51 | return 52 | b_: 53 | m = true 54 | mx = 0 55 | my = 0 56 | cx = 0 57 | cy = 0 58 | map mx, my 59 | camera cx, cy 60 | return 61 | scene_move_: 62 | ' print "Moved" 63 | return 64 | 65 | ' Tile data. 66 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 67 | data 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 68 | data 0xff, 0x01, 0x81, 0x7f, 0xbd, 0x7f, 0xa5, 0x7b 69 | data 0xa5, 0x7b, 0xbd, 0x63, 0x81, 0x7f, 0xff, 0xff 70 | data 0x7e, 0x00, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f 71 | data 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x7e 72 | data 0x3c, 0x00, 0x54, 0x2a, 0xa3, 0x5f, 0xc1, 0x3f 73 | data 0x83, 0x7f, 0xc5, 0x3f, 0x2a, 0x7e, 0x3c, 0x3c 74 | data 0x04, 0x04, 0x04, 0x04, 0x0a, 0x0a, 0x12, 0x12 75 | data 0x66, 0x00, 0x99, 0x77, 0x99, 0x77, 0x66, 0x66 76 | 77 | ' Map data. 78 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 79 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 80 | data 1, 0, 2, 2, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 81 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 82 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 83 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 84 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 85 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 86 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 87 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 88 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 89 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 90 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 91 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 92 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 93 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 94 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 95 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 96 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 97 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 98 | data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 99 | data 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 100 | 101 | ' Property data. 102 | data 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 103 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 104 | data 9, 0, 8, 8, 8, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 105 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 106 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 107 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 108 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 109 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 110 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 111 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 112 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 113 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 114 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 115 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 116 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 117 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 118 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 119 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 120 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 121 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 122 | data 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 123 | data 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 124 | 125 | ' Attribute data. 126 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 127 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 128 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 129 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 130 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 131 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 132 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 133 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 134 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 135 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 136 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 137 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 138 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 139 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 140 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 141 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 142 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 143 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 144 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 145 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 146 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 147 | data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 148 | 149 | ' Actor data. 150 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 151 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 152 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 153 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 154 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 155 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 156 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 157 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 158 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 159 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 160 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 161 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 162 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 163 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 164 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 165 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 166 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 167 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 168 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 169 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 170 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 171 | ' data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 172 | -------------------------------------------------------------------------------- /kernel/gbbvm.sym: -------------------------------------------------------------------------------- 1 | ; no$gmb compatible .sym file 2 | ; Generated automagically by makebin 3 | 00:0000 _rRAMG 4 | 00:0000 l__BASE 5 | 00:0000 l__BSS 6 | 00:0000 l__CABS 7 | 00:0000 l__CODE_0 8 | 00:0000 l__CODE_255 9 | 00:0000 l__CRASH_HEADER 10 | 00:0000 l__CRASH_SCRATCH 11 | 00:0000 l__DABS 12 | 00:0000 l__DRAW_HEADER 13 | 00:0000 l__FONT_HEADER 14 | 00:0000 l__HEADER 15 | 00:0000 l__HEADER_LCD 16 | 00:0000 l__HEADER_SIO 17 | 00:0000 l__HEADER_TIMER 18 | 00:0000 l__HEAP 19 | 00:0000 l__HEAP_END 20 | 00:0000 l__HRAM 21 | 00:0000 l__LIT 22 | 00:0000 s__CABS 23 | 00:0000 s__CRASH_HEADER 24 | 00:0000 s__CRASH_HEADER0 25 | 00:0000 s__CRASH_HEADER1 26 | 00:0000 s__CRASH_SCRATCH 27 | 00:0000 s__CRASH_SCRATCH2 28 | 00:0000 s__DABS 29 | 00:0000 s__DRAW_HEADER 30 | 00:0000 s__DRAW_HEADER0 31 | 00:0000 s__DRAW_HEADER1 32 | 00:0000 s__FONT_HEADER 33 | 00:0000 s__FONT_HEADER0 34 | 00:0000 s__HEADER 35 | 00:0000 s__HEADER0 36 | 00:0000 s__HEADER1 37 | 00:0000 s__HEADER10 38 | 00:0000 s__HEADER11 39 | 00:0000 s__HEADER2 40 | 00:0000 s__HEADER3 41 | 00:0000 s__HEADER4 42 | 00:0000 s__HEADER5 43 | 00:0000 s__HEADER6 44 | 00:0000 s__HEADER7 45 | 00:0000 s__HEADER8 46 | 00:0000 s__HEADER9 47 | 00:0000 s__HEADER_LCD 48 | 00:0000 s__HEADER_LCD0 49 | 00:0000 s__HEADER_SIO 50 | 00:0000 s__HEADER_SIO0 51 | 00:0000 s__HEADER_TIMER 52 | 00:0000 s__HEADER_TIMER0 53 | 00:0000 s__HEADERa 54 | 00:0000 s__HEADERb 55 | 00:0000 s__HEADERc 56 | 00:0000 s__HEADERd 57 | 00:0000 s__HEADERe 58 | 00:0000 s__HEADERf 59 | 00:0000 s__HRAM 60 | 00:0000 s__HRAM12 61 | 00:0001 ___bank_VM_GAME 62 | 00:0001 ___bank_VM_MAIN 63 | 00:0001 b___HandleCrash_banked 64 | 00:0001 b_controller_behave_topdown_idl 65 | 00:0001 b_controller_behave_topdown_mov 66 | 00:0001 b_controller_behave_topdown_pla 67 | 00:0001 b_game_init 68 | 00:0001 b_raise 69 | 00:0001 b_reset_contexts 70 | 00:0001 b_script_detach_hthread 71 | 00:0001 b_script_execute 72 | 00:0001 b_script_on_error 73 | 00:0001 b_script_runner_init 74 | 00:0001 b_script_set_reentry 75 | 00:0001 b_script_terminate 76 | 00:0001 b_sleep 77 | 00:0001 b_vm_acc 78 | 00:0001 b_vm_begin_thread 79 | 00:0001 b_vm_call 80 | 00:0001 b_vm_call_far 81 | 00:0001 b_vm_debug 82 | 00:0001 b_vm_for 83 | 00:0001 b_vm_get_indirect 84 | 00:0001 b_vm_get_int16 85 | 00:0001 b_vm_get_int8 86 | 00:0001 b_vm_get_tlocal 87 | 00:0001 b_vm_get_uint8 88 | 00:0001 b_vm_if 89 | 00:0001 b_vm_if_const 90 | 00:0001 b_vm_iif 91 | 00:0001 b_vm_invoke_fn 92 | 00:0001 b_vm_join 93 | 00:0001 b_vm_jump 94 | 00:0001 b_vm_jump_far 95 | 00:0001 b_vm_locate 96 | 00:0001 b_vm_lock 97 | 00:0001 b_vm_loop 98 | 00:0001 b_vm_memset 99 | 00:0001 b_vm_next_bank 100 | 00:0001 b_vm_nop 101 | 00:0001 b_vm_on_error 102 | 00:0001 b_vm_peek 103 | 00:0001 b_vm_poke 104 | 00:0001 b_vm_pop 105 | 00:0001 b_vm_pop_1 106 | 00:0001 b_vm_pop_1_count 107 | 00:0001 b_vm_print 108 | 00:0001 b_vm_push 109 | 00:0001 b_vm_push_value 110 | 00:0001 b_vm_rand 111 | 00:0001 b_vm_read 112 | 00:0001 b_vm_reserve 113 | 00:0001 b_vm_restore 114 | 00:0001 b_vm_ret 115 | 00:0001 b_vm_ret_far 116 | 00:0001 b_vm_set 117 | 00:0001 b_vm_set_const 118 | 00:0001 b_vm_set_indirect 119 | 00:0001 b_vm_sleep 120 | 00:0001 b_vm_srand 121 | 00:0001 b_vm_swap 122 | 00:0001 b_vm_sys_time 123 | 00:0001 b_vm_terminate 124 | 00:0001 b_vm_unlock 125 | 00:0001 b_vm_update 126 | 00:0001 b_vm_wait 127 | 00:0001 b_vm_wait_n 128 | 00:0001 b_wait_frames 129 | 00:0001 l__GSFINAL 130 | 00:0001 l__HEADER0 131 | 00:0001 l__HEADER11 132 | 00:0001 l__HEADER9 133 | 00:0001 l__HEADERa 134 | 00:0001 l__HEADERb 135 | 00:0001 l__HEADERd 136 | 00:0001 l__HEADERe 137 | 00:0002 ___bank_VM_ACTOR 138 | 00:0002 ___bank_VM_SERIAL 139 | 00:0002 b_actor_active_count 140 | 00:0002 b_actor_begin_hit_thread 141 | 00:0002 b_actor_begin_update_thread 142 | 00:0002 b_actor_ctor 143 | 00:0002 b_actor_def 144 | 00:0002 b_actor_delete 145 | 00:0002 b_actor_free_count 146 | 00:0002 b_actor_hits 147 | 00:0002 b_actor_init 148 | 00:0002 b_actor_move 149 | 00:0002 b_actor_new 150 | 00:0002 b_actor_terminate_thread 151 | 00:0002 b_actor_try_terminate_thread 152 | 00:0002 b_actor_update 153 | 00:0002 b_controller_find_ladder_down 154 | 00:0002 b_controller_find_ladder_up 155 | 00:0002 b_controller_get_blocking_down 156 | 00:0002 b_controller_get_blocking_down_ 157 | 00:0002 b_controller_get_blocking_left 158 | 00:0002 b_controller_get_blocking_right 159 | 00:0002 b_controller_get_blocking_up 160 | 00:0002 b_controller_get_blocking_up_po 161 | 00:0002 b_controller_get_ladder_blockin 162 | 00:0002 b_controller_get_ladder_blockin 163 | 00:0002 b_controller_get_ladder_down 164 | 00:0002 b_controller_get_ladder_up 165 | 00:0002 b_vm_def_actor 166 | 00:0002 b_vm_del_actor 167 | 00:0002 b_vm_get_actor_prop 168 | 00:0002 b_vm_move_actor 169 | 00:0002 b_vm_new_actor 170 | 00:0002 b_vm_on_actor 171 | 00:0002 b_vm_play_actor 172 | 00:0002 b_vm_set_actor_prop 173 | 00:0002 b_vm_sread 174 | 00:0002 b_vm_swrite 175 | 00:0002 b_vm_thread_actor 176 | 00:0002 l__HEADER5 177 | 00:0002 l__HEADERc 178 | 00:0002 l__HEADERf 179 | 00:0003 ___bank_VM_EFFECTS 180 | 00:0003 ___bank_VM_GRAPHICS 181 | 00:0003 ___bank_VM_INPUT 182 | 00:0003 ___bank_VM_SCENE 183 | 00:0003 b_controller_behave_platformer_ 184 | 00:0003 b_controller_behave_platformer_ 185 | 00:0003 b_controller_behave_platformer_ 186 | 00:0003 b_effects_init 187 | 00:0003 b_effects_parallax_sync 188 | 00:0003 b_effects_wobble_sync 189 | 00:0003 b_effects_wobble_update 190 | 00:0003 b_graphics_init 191 | 00:0003 b_graphics_put_map 192 | 00:0003 b_input_init 193 | 00:0003 b_scene_camera 194 | 00:0003 b_scene_get_actor 195 | 00:0003 b_scene_get_attr 196 | 00:0003 b_scene_get_prop 197 | 00:0003 b_scene_init 198 | 00:0003 b_vm_btn 199 | 00:0003 b_vm_btnd 200 | 00:0003 b_vm_btnu 201 | 00:0003 b_vm_camera 202 | 00:0003 b_vm_color 203 | 00:0003 b_vm_def_map 204 | 00:0003 b_vm_def_scene 205 | 00:0003 b_vm_def_sprite 206 | 00:0003 b_vm_def_window 207 | 00:0003 b_vm_fill_tile 208 | 00:0003 b_vm_fx 209 | 00:0003 b_vm_get_scene_prop 210 | 00:0003 b_vm_get_sprite_prop 211 | 00:0003 b_vm_gotoxy 212 | 00:0003 b_vm_image 213 | 00:0003 b_vm_line 214 | 00:0003 b_vm_map 215 | 00:0003 b_vm_mget 216 | 00:0003 b_vm_mset 217 | 00:0003 b_vm_on_input 218 | 00:0003 b_vm_on_scene 219 | 00:0003 b_vm_palette 220 | 00:0003 b_vm_plot 221 | 00:0003 b_vm_point 222 | 00:0003 b_vm_rect 223 | 00:0003 b_vm_rgb 224 | 00:0003 b_vm_set_scene_prop 225 | 00:0003 b_vm_set_sprite_prop 226 | 00:0003 b_vm_sget 227 | 00:0003 b_vm_sprite 228 | 00:0003 b_vm_sset 229 | 00:0003 b_vm_text 230 | 00:0003 b_vm_touch 231 | 00:0003 b_vm_touchd 232 | 00:0003 b_vm_touchu 233 | 00:0003 b_vm_viewport 234 | 00:0003 b_vm_wget 235 | 00:0003 b_vm_window 236 | 00:0003 b_vm_wset 237 | 00:0003 l__DRAW_HEADER1 238 | 00:0003 l__FONT_HEADER0 239 | 00:0003 l__HEADER8 240 | 00:0003 l__HEADER_LCD0 241 | 00:0003 l__HRAM12 242 | 00:0004 ___bank_VM_AUDIO 243 | 00:0004 ___bank_VM_DEVICE 244 | 00:0004 ___bank_VM_GUI 245 | 00:0004 ___bank_VM_PERSISTENCE 246 | 00:0004 ___bank_VM_PHYSICS 247 | 00:0004 b_audio_init 248 | 00:0004 b_audio_mute_all_channels 249 | 00:0004 b_audio_mute_channel 250 | 00:0004 b_audio_play_music 251 | 00:0004 b_audio_play_sound 252 | 00:0004 b_audio_stop_music 253 | 00:0004 b_device_init 254 | 00:0004 b_gui_blit_arbitrary 255 | 00:0004 b_gui_blit_char 256 | 00:0004 b_gui_blit_new_line 257 | 00:0004 b_gui_clear 258 | 00:0004 b_gui_init 259 | 00:0004 b_gui_label_btn_down 260 | 00:0004 b_gui_label_new_line 261 | 00:0004 b_gui_label_terminate 262 | 00:0004 b_gui_tile_filled 263 | 00:0004 b_int16_to_str 264 | 00:0004 b_persistence_init 265 | 00:0004 b_persistence_max_files 266 | 00:0004 b_print_banked 267 | 00:0004 b_uint16_to_hex 268 | 00:0004 b_vm_def_label 269 | 00:0004 b_vm_fclose 270 | 00:0004 b_vm_fopen 271 | 00:0004 b_vm_fread 272 | 00:0004 b_vm_fwrite 273 | 00:0004 b_vm_hits 274 | 00:0004 b_vm_label 275 | 00:0004 b_vm_option 276 | 00:0004 b_vm_play 277 | 00:0004 b_vm_query 278 | 00:0004 b_vm_sound 279 | 00:0004 b_vm_stop 280 | 00:0004 l__CRASH_HEADER1 281 | 00:0004 l__HEADER_TIMER0 282 | 00:0005 l__CRASH_HEADER0 283 | 00:0005 l__HEADER1 284 | 00:0006 ___bank_BOOTSTRAP 285 | 00:0006 l__HEADER7 286 | 00:0007 l__HEADER2 287 | 00:0008 l__HEADER3 288 | 00:0008 l__HEADER_SIO0 289 | 00:000C l__INITIALIZED 290 | 00:000C l__INITIALIZER 291 | 00:0010 l__DRAW_HEADER0 292 | 00:0012 l__CODE_6 293 | 00:0025 l__GSINIT 294 | 00:0030 l__HEADER6 295 | 00:004C l__HEADER4 296 | 00:0084 l__HEADER10 297 | 00:01CB l__CRASH_SCRATCH2 298 | 00:0200 s__CODE 299 | 00:0B3C l__CODE 300 | 00:0D3C s__HOME 301 | 00:1781 l__DATA 302 | 00:2000 _rROMB0 303 | 00:205D l__CODE_5 304 | 00:25B5 l__CODE_4 305 | 00:2915 l__HOME 306 | 00:3000 _rROMB1 307 | 00:3651 s__BASE 308 | 00:3651 s__CODE_0 309 | 00:3651 s__INITIALIZER 310 | 00:3651 s__LIT 311 | 00:365D s__GSINIT 312 | 00:3682 s__GSFINAL 313 | 00:3F8A l__CODE_3 314 | 00:3FA5 l__CODE_2 315 | 00:3FFB l__CODE_1 316 | 00:4000 _RTC_SELECT_REG 317 | 00:4000 _rRAMB 318 | 00:6000 _RTC_LATCH_REG 319 | 00:8000 __VRAM 320 | 00:8000 __VRAM8000 321 | 00:8800 __VRAM8800 322 | 00:9000 __VRAM9000 323 | 00:9800 __SCRN0 324 | 00:9C00 __SCRN1 325 | 00:A000 _RTC_VALUE_REG 326 | 00:A000 __SRAM 327 | 00:C000 __RAM 328 | 00:C000 _shadow_OAM 329 | 00:C0A0 s__DATA 330 | 00:D000 __RAMBANK 331 | 00:D821 s__BSS 332 | 00:D821 s__INITIALIZED 333 | 00:D82D s__HEAP 334 | 00:D82D s__HEAP_END 335 | 00:E000 .STACK 336 | 00:FE00 __OAMRAM 337 | 00:FF00 _P1_REG 338 | 00:FF00 __IO 339 | 00:FF01 _SB_REG 340 | 00:FF02 _SC_REG 341 | 00:FF04 _DIV_REG 342 | 00:FF05 _TIMA_REG 343 | 00:FF06 _TMA_REG 344 | 00:FF07 _TAC_REG 345 | 00:FF0F _IF_REG 346 | 00:FF10 _NR10_REG 347 | 00:FF11 _NR11_REG 348 | 00:FF12 _NR12_REG 349 | 00:FF13 _NR13_REG 350 | 00:FF14 _NR14_REG 351 | 00:FF16 _NR21_REG 352 | 00:FF17 _NR22_REG 353 | 00:FF18 _NR23_REG 354 | 00:FF19 _NR24_REG 355 | 00:FF1A _NR30_REG 356 | 00:FF1B _NR31_REG 357 | 00:FF1C _NR32_REG 358 | 00:FF1D _NR33_REG 359 | 00:FF1E _NR34_REG 360 | 00:FF20 _NR41_REG 361 | 00:FF21 _NR42_REG 362 | 00:FF22 _NR43_REG 363 | 00:FF23 _NR44_REG 364 | 00:FF24 _NR50_REG 365 | 00:FF25 _NR51_REG 366 | 00:FF26 _NR52_REG 367 | 00:FF30 _AUD3WAVE 368 | 00:FF30 _PCM_SAMPLE 369 | 00:FF30 __AUD3WAVERAM 370 | 00:FF40 _LCDC_REG 371 | 00:FF41 _STAT_REG 372 | 00:FF42 _SCY_REG 373 | 00:FF43 _SCX_REG 374 | 00:FF44 _LY_REG 375 | 00:FF45 _LYC_REG 376 | 00:FF46 _DMA_REG 377 | 00:FF47 _BGP_REG 378 | 00:FF48 _OBP0_REG 379 | 00:FF49 _OBP1_REG 380 | 00:FF4A _WY_REG 381 | 00:FF4B _WX_REG 382 | 00:FF4D _KEY1_REG 383 | 00:FF4F _VBK_REG 384 | 00:FF51 _HDMA1_REG 385 | 00:FF52 _HDMA2_REG 386 | 00:FF53 _HDMA3_REG 387 | 00:FF54 _HDMA4_REG 388 | 00:FF55 _HDMA5_REG 389 | 00:FF56 _RP_REG 390 | 00:FF68 _BCPS_REG 391 | 00:FF69 _BCPD_REG 392 | 00:FF6A _OCPS_REG 393 | 00:FF6B _OCPD_REG 394 | 00:FF70 _SVBK_REG 395 | 00:FF76 _PCM12_REG 396 | 00:FF77 _PCM34_REG 397 | 00:FF80 .refresh_OAM 398 | 00:FF80 __HRAM 399 | 00:FFFF _IE_REG 400 | 01:4000 s__CODE_1 401 | 02:4000 s__CODE_2 402 | 03:4000 s__CODE_3 403 | 04:4000 s__CODE_4 404 | 05:4000 s__CODE_5 405 | 06:4000 s__CODE_6 406 | 00:0200 _direction_lookup 407 | 00:0208 ___HandleCrash 408 | 00:021E _main 409 | 00:025E _set_sprite_palette 410 | 00:0263 _set_bkg_palette 411 | 00:0266 .set_palette 412 | 00:0285 _set_sprite_palette_entry 413 | 00:028A _set_bkg_palette_entry 414 | 00:028D .set_palette_entry 415 | 00:02A9 _hUGE_init_banked 416 | 00:02AD _hUGE_init 417 | 00:02B8 _hUGE_mute_channel_banked 418 | 00:02BC _hUGE_mute_channel 419 | 00:02C9 _hUGE_set_position_banked 420 | 00:02CD _hUGE_set_position 421 | 00:02D6 hUGE_init 422 | 00:032C hUGE_mute_channel 423 | 00:0522 hUGE_set_position 424 | 00:068A _hUGE_dosound 425 | 00:068A _hUGE_dosound_banked 426 | 00:068A hUGE_dosound 427 | 00:0979 _get_vram_byte 428 | 00:0981 _get_win_tile_xy 429 | 00:0989 _get_bkg_tile_xy 430 | 00:09B0 _cpu_slow 431 | 00:09CB _cpu_fast 432 | 00:09D2 _send_byte 433 | 00:09E5 _receive_byte 434 | 00:09F6 __mulsuchar 435 | 00:09F9 __muluschar 436 | 00:0A02 __mulschar 437 | 00:0A0A __mulint 438 | 00:0A29 __muluchar 439 | 00:0A3B _set_vram_byte 440 | 00:0A4A _set_win_tile_xy 441 | 00:0A52 _set_bkg_tile_xy 442 | 00:0A7C ___hide_metasprite 443 | 00:0AA3 ___move_metasprite_hflip 444 | 00:0AE6 ___move_metasprite_vflip 445 | 00:0B29 ___move_metasprite_hvflip 446 | 00:0B6E ___move_metasprite 447 | 00:0BAD .sgb_check 448 | 00:0BAD _sgb_check 449 | 00:0BF5 _sgb_transfer 450 | 00:0BFA .sgb_transfer 451 | 00:0C3B __divsuchar 452 | 00:0C41 __modsuchar 453 | 00:0C4A __divuschar 454 | 00:0C53 __moduschar 455 | 00:0C60 __divschar 456 | 00:0C65 __modschar 457 | 00:0C6C __divsint 458 | 00:0C75 __modsint 459 | 00:0C81 __divuchar 460 | 00:0C86 __moduchar 461 | 00:0C8D __divuint 462 | 00:0C96 __moduint 463 | 00:0CA2 .div8 464 | 00:0CA2 .mod8 465 | 00:0CAA .div16 466 | 00:0CAA .mod16 467 | 00:0CE0 .divu8 468 | 00:0CE0 .modu8 469 | 00:0CE3 .divu16 470 | 00:0CE3 .modu16 471 | 00:0D23 _cgb_compatibility 472 | 00:0D23 _set_default_palette 473 | 00:0020 .call_hl 474 | 00:0028 .MemsetSmall 475 | 00:0030 .MemcpySmall 476 | 00:0080 .int 477 | 00:008F _wait_int_handler 478 | 00:009C __standard_VBL_handler 479 | 00:00AC _refresh_OAM 480 | 00:0150 .reset 481 | 00:0150 _reset 482 | 00:0157 .code_start 483 | 00:01B9 _exit 484 | 00:01BD _set_interrupts 485 | 00:0D3C .memset_simple 486 | 00:0D45 .memcpy_simple 487 | 00:0D62 .remove_VBL 488 | 00:0D65 .remove_int 489 | 00:0D82 .add_VBL 490 | 00:0D85 .add_int 491 | 00:0D90 .wait_vbl_done 492 | 00:0D90 _wait_vbl_done 493 | 00:0DA0 .display_off 494 | 00:0DA0 _display_off 495 | 00:0DB8 _remove_VBL 496 | 00:0DC3 _add_VBL 497 | 00:0DCE .TIM_isr 498 | 00:0DE0 _font_load_from 499 | 00:0DE7 font_load 500 | 00:0E2F font_copy_current 501 | 00:0E65 font_set 502 | 00:0E72 .put_char 503 | 00:0E8A .out_char 504 | 00:0E90 .del_char 505 | 00:0EF4 _putchar 506 | 00:0EFD _setchar 507 | 00:0F06 _font_load 508 | 00:0F14 _font_set 509 | 00:0F23 _font_init 510 | 00:0F42 .cls 511 | 00:0F42 _cls 512 | 00:0F64 _gotoxy 513 | 00:0F6F _posx 514 | 00:0F80 _posy 515 | 00:0FA8 .cr_curs 516 | 00:0FBD .adv_curs 517 | 00:1019 .tmode 518 | 00:1042 .tmode_out 519 | 00:104B _font_color 520 | 00:1056 .gmode 521 | 00:10B8 .adv_gcurs 522 | 00:10D5 .box 523 | 00:11AB .line 524 | 00:12CC .xonly 525 | 00:141E .yonly 526 | 00:143F .plot 527 | 00:145C .wrbyte 528 | 00:14DE .getpix 529 | 00:1513 .wrtchr 530 | 00:1577 _gotogxy 531 | 00:1582 _wrtchr 532 | 00:1597 _newline 533 | 00:15AE _getpix 534 | 00:15BA _box 535 | 00:15DE _line 536 | 00:15F6 _plot_point 537 | 00:160A .y_table 538 | 00:172A _print 539 | 00:192E _get_uint8 540 | 00:194A _get_chunk 541 | 00:198A _call_v_bbp 542 | 00:19BF _call_v_bbbbpb 543 | 00:1A00 _call_b_bbb 544 | 00:1A37 _clamp_uint8 545 | 00:1A95 _sine_wave 546 | 00:1B95 _sqrt_uint16 547 | 00:1BF1 _pow_int16 548 | 00:1C43 _vm_switch 549 | 00:1DFD _vm_rpn 550 | 00:2559 _VM_STEP 551 | 00:25C7 _VBL_isr 552 | 00:25C8 _vm_exception_params_offset 553 | 00:25CA _LCD_isr 554 | 00:25E4 _script_runner_update 555 | 00:2745 _audio_update 556 | 00:2793 _audio_play_music_nonbanked 557 | 00:27B6 _script_cmds 558 | 00:2976 ____vm_dummy_fn 559 | 00:29A6 _add_LCD 560 | 00:29B1 .add_LCD 561 | 00:29B7 _remove_LCD 562 | 00:29C2 .remove_LCD 563 | 00:29C8 _set_bkg_1bpp_data 564 | 00:29C8 _set_win_1bpp_data 565 | 00:29D0 _set_sprite_1bpp_data 566 | 00:2A28 _add_SIO 567 | 00:2A33 .add_SIO 568 | 00:2A39 _remove_SIO 569 | 00:2A44 .remove_SIO 570 | 00:2A4A .serial_IO 571 | 00:2A75 _set_tile_data 572 | 00:2A7A _set_bkg_data 573 | 00:2A7A _set_win_data 574 | 00:2A82 _set_sprite_data 575 | 00:2AB2 _abs 576 | 00:2AC1 ___setjmp 577 | 00:2AD6 _longjmp 578 | 00:2AEF ___call__banked 579 | 00:2B0C _to_far_ptr 580 | 00:2B16 _font_ibm_fixed 581 | 00:2C18 _font_ibm_fixed_tiles 582 | 00:3418 _color 583 | 00:3418 _set_1bpp_colors_ex 584 | 00:3427 _set_bkg_submap 585 | 00:346A .set_xy_win_submap 586 | 00:3473 .set_xy_bkg_submap 587 | 00:3482 .set_xy_submap 588 | 00:34CC .padup 589 | 00:34CC _waitpadup 590 | 00:34DC .jpad 591 | 00:34DC _joypad 592 | 00:3504 _waitpad 593 | 00:3505 .wait_pad 594 | 00:350C ___sdcc_call_hl 595 | 00:350D _memset 596 | 00:3540 .drawing_vbl 597 | 00:354B .drawing_lcd 598 | 00:3558 ___sdcc_bcall_ehl 599 | 00:3572 .init_wtt 600 | 00:357A .init_btt 601 | 00:3588 .init_tt 602 | 00:358B .init_vram 603 | 00:35B0 _rand 604 | 00:35B0 _randw 605 | 00:35DB _initrand 606 | 00:35DD .initrand 607 | 00:35E6 .copy_vram 608 | 00:35FA _get_data 609 | 00:35FA _set_data 610 | 00:35FA _vmemcpy 611 | 00:360D _set_win_submap 612 | 00:365D gsinit 613 | 00:C0A0 __cpu 614 | 00:C0A1 __is_GBA 615 | 00:C0A2 .mode 616 | 00:C0A3 .sys_time 617 | 00:C0A3 _sys_time 618 | 00:C0A5 .int_0x40 619 | 00:C0B1 font_current 620 | 00:C0B4 font_first_free_tile 621 | 00:C0B5 font_table 622 | 00:C0DB _script_memory 623 | 00:D0DB _CTXS 624 | 00:D1FB _first_ctx 625 | 00:D1FD _free_ctxs 626 | 00:D1FF _vm_lock_state 627 | 00:D200 _vm_exception_code 628 | 00:D201 _vm_exception_params_length 629 | 00:D202 _vm_exception_params_bank 630 | 00:D203 _vm_error_handler_bank 631 | 00:D204 _vm_error_handler_address 632 | 00:D6F7 _device_type 633 | 00:D6F8 _effects_wobble 634 | 00:D6F9 _effects_parallax 635 | 00:D703 _graphics_map_x 636 | 00:D705 _graphics_map_y 637 | 00:D713 _gui_label_blit_interval 638 | 00:D714 _gui_label_blit_ticks 639 | 00:D715 _gui_label_next_btn 640 | 00:D716 _input_button_pressed 641 | 00:D717 _input_button_previous 642 | 00:D718 _input_touch_state 643 | 00:D719 _input_handlers 644 | 00:D791 _input_handler_count 645 | 00:D792 _input_handler_cursor 646 | 00:D793 _persistence_file_handles 647 | 00:D795 _scene 648 | 00:D7B4 _scene_camera_x 649 | 00:D7B6 _scene_camera_y 650 | 00:D7D8 _hUGE_current_wave 651 | 00:D7D8 hUGE_current_wave 652 | 00:D7D9 _hUGE_mute_mask 653 | 00:D802 .int_0x48 654 | 00:D80A __io_out 655 | 00:D80B __io_in 656 | 00:D80C __io_status 657 | 00:D80D .int_0x58 658 | 00:D817 ___call_banked_addr 659 | 00:D817 ___call_banked_ptr 660 | 00:D819 ___call_banked_bank 661 | 00:D81B .image_tile_width 662 | 00:D81C ___current_metasprite 663 | 00:D81E ___current_base_tile 664 | 00:D81F ___rand_seed 665 | 00:D821 .curx 666 | 00:D822 .cury 667 | 00:D823 _feature_states 668 | 00:D824 _current_data_cursor 669 | 00:D828 .fg_colour 670 | 00:D828 __current_1bpp_colors 671 | 00:D829 .bg_colour 672 | 00:D82A .draw_mode 673 | 00:D82B __submap_tile_offset 674 | 00:D82C ___render_shadow_OAM 675 | 00:FF90 __current_bank 676 | 00:FF92 __shadow_OAM_base 677 | 00:0070 .drawing_bits_tbl 678 | 01:4000 .sleep 679 | 01:4000 _sleep 680 | 01:402C ___HandleCrash_banked 681 | 01:4393 _controller_behave_topdown_play 682 | 01:54F9 _controller_behave_topdown_idle 683 | 01:5721 _controller_behave_topdown_move 684 | 01:5CB3 ___func_VM_MAIN 685 | 01:5CB3 _vm_nop 686 | 01:5CB4 _vm_push 687 | 01:5CDE _vm_push_value 688 | 01:5D37 _vm_reserve 689 | 01:5D64 _vm_pop 690 | 01:5D9F _vm_pop_1 691 | 01:5DEC _vm_pop_1_count 692 | 01:5E5E _vm_call 693 | 01:5EA0 _vm_ret 694 | 01:5EFF _vm_call_far 695 | 01:5F7C _vm_ret_far 696 | 01:5FFE _vm_jump 697 | 01:600A _vm_jump_far 698 | 01:601B _vm_next_bank 699 | 01:602C _vm_if 700 | 01:6199 _vm_if_const 701 | 01:62D5 _vm_iif 702 | 01:6401 _vm_loop 703 | 01:647B _vm_for 704 | 01:65AC _vm_set 705 | 01:6609 _vm_set_const 706 | 01:6636 _vm_set_indirect 707 | 01:66B3 _vm_get_indirect 708 | 01:6730 _vm_acc 709 | 01:67D9 _vm_get_uint8 710 | 01:680D _vm_get_int8 711 | 01:6842 _vm_get_int16 712 | 01:6885 _vm_get_tlocal 713 | 01:6911 _vm_swap 714 | 01:6988 _vm_memset 715 | 01:69CE _vm_read 716 | 01:6A10 _vm_restore 717 | 01:6A41 _vm_begin_thread 718 | 01:6B6C _vm_join 719 | 01:6BAE _vm_terminate 720 | 01:6BE0 _vm_wait 721 | 01:6BEC _wait_frames 722 | 01:6C64 _vm_wait_n 723 | 01:6D92 _vm_lock 724 | 01:6DA1 _vm_unlock 725 | 01:6DB4 _vm_invoke_fn 726 | 01:6EF0 _vm_sys_time 727 | 01:6F1D _vm_locate 728 | 01:6F85 _vm_print 729 | 01:6F97 _vm_srand 730 | 01:6FC4 _vm_rand 731 | 01:7077 _vm_peek 732 | 01:70DB _vm_poke 733 | 01:7142 _vm_sleep 734 | 01:7171 _vm_on_error 735 | 01:7184 _vm_debug 736 | 01:7296 _reset_contexts 737 | 01:734C _script_runner_init 738 | 01:73FA _script_execute 739 | 01:755C _script_terminate 740 | 01:75CA _script_detach_hthread 741 | 01:75FE _raise 742 | 01:7602 _script_set_reentry 743 | 01:760B _script_on_error 744 | 01:7656 ___func_VM_GAME 745 | 01:7656 _game_init 746 | 01:765C _vm_update 747 | 04:4000 _int16_to_str 748 | 04:413F _uint16_to_hex 749 | 04:42FE _print_banked 750 | 04:434A ___func_VM_AUDIO 751 | 04:434A _audio_init 752 | 04:4376 _audio_play_music 753 | 04:43B1 _audio_stop_music 754 | 04:43D5 _audio_mute_channel 755 | 04:43E0 _audio_mute_all_channels 756 | 04:4409 _audio_play_sound 757 | 04:4516 _vm_play 758 | 04:452C _vm_stop 759 | 04:4534 _vm_sound 760 | 04:4598 ___func_VM_DEVICE 761 | 04:4598 _device_init 762 | 04:461E _vm_option 763 | 04:4BC8 _vm_query 764 | 04:513F ___func_VM_GUI 765 | 04:513F _gui_blit_char 766 | 04:5544 _gui_blit_arbitrary 767 | 04:55BB _gui_blit_new_line 768 | 04:55CF _gui_clear 769 | 04:5636 _gui_init 770 | 04:567A _gui_tile_filled 771 | 04:56B3 _vm_def_label 772 | 04:583D _gui_label_btn_down 773 | 04:5854 _gui_label_new_line 774 | 04:5863 _gui_label_terminate 775 | 04:589C _vm_label 776 | 04:5DE0 ___func_VM_PERSISTENCE 777 | 04:5DE0 _persistence_signature 778 | 04:5E06 _persistence_init 779 | 04:5E6F _persistence_max_files 780 | 04:5E9D _vm_fopen 781 | 04:5F67 _vm_fclose 782 | 04:6021 _vm_fread 783 | 04:6123 _vm_fwrite 784 | 04:6269 ___func_VM_PHYSICS 785 | 04:6269 _vm_hits 786 | 02:4000 _controller_get_blocking_up 787 | 02:40D4 _controller_get_blocking_down 788 | 02:41A8 _controller_get_blocking_left 789 | 02:4279 _controller_get_blocking_right 790 | 02:434C _controller_get_blocking_up_pos 791 | 02:448D _controller_get_blocking_down_p 792 | 02:45CE _controller_find_ladder_up 793 | 02:46BE _controller_find_ladder_down 794 | 02:47AF _controller_get_ladder_up 795 | 02:47F6 _controller_get_ladder_down 796 | 02:483D _controller_get_ladder_blocking 797 | 02:48C2 _controller_get_ladder_blocking 798 | 02:4947 ___func_VM_ACTOR 799 | 02:4947 _actor_terminate_thread 800 | 02:496E _actor_try_terminate_thread 801 | 02:49DE _actor_begin_hit_thread 802 | 02:4ABF _actor_init 803 | 02:4B5E _actor_update 804 | 02:5301 _actor_new 805 | 02:5462 _actor_delete 806 | 02:5602 _actor_active_count 807 | 02:5628 _actor_free_count 808 | 02:564E _actor_ctor 809 | 02:56BE _actor_move 810 | 02:59CD _actor_begin_update_thread 811 | 02:5A05 _actor_hits 812 | 02:5BCD _vm_new_actor 813 | 02:5C01 _vm_del_actor 814 | 02:5C2F _actor_def 815 | 02:602D _vm_def_actor 816 | 02:6195 _vm_get_actor_prop 817 | 02:66DF _vm_set_actor_prop 818 | 02:7526 _vm_play_actor 819 | 02:75B0 _vm_thread_actor 820 | 02:77A6 _vm_move_actor 821 | 02:7DB9 _vm_on_actor 822 | 02:7DFA ___func_VM_SERIAL 823 | 02:7DFA _vm_sread 824 | 02:7EC8 _vm_swrite 825 | 03:4000 _controller_behave_platformer_p 826 | 03:4F05 _controller_behave_platformer_i 827 | 03:50DF _controller_behave_platformer_m 828 | 03:5526 ___func_VM_EFFECTS 829 | 03:5526 _effects_init 830 | 03:554C _effects_wobble_sync 831 | 03:55BB _effects_wobble_update 832 | 03:55DB _effects_parallax_sync 833 | 03:5697 _vm_fx 834 | 03:5890 ___func_VM_GRAPHICS 835 | 03:5890 _graphics_init 836 | 03:589D _graphics_put_map 837 | 03:58B2 _vm_color 838 | 03:592C _vm_palette 839 | 03:5A6C _vm_rgb 840 | 03:5B0B _vm_plot 841 | 03:5B64 _vm_point 842 | 03:5BDE _vm_line 843 | 03:5C7B _vm_rect 844 | 03:5D2B _vm_gotoxy 845 | 03:5D84 _vm_text 846 | 03:5D96 _vm_fill_tile 847 | 03:5F5C _vm_def_map 848 | 03:6143 _vm_map 849 | 03:618B _vm_mget 850 | 03:61DC _vm_mset 851 | 03:6232 _vm_def_window 852 | 03:6412 _vm_window 853 | 03:6437 _vm_wget 854 | 03:6488 _vm_wset 855 | 03:64DE _vm_def_sprite 856 | 03:6511 _vm_sprite 857 | 03:656D _vm_sget 858 | 03:65BB _vm_sset 859 | 03:65EE _vm_get_sprite_prop 860 | 03:6703 _vm_set_sprite_prop 861 | 03:685F _vm_image 862 | 03:6860 ___func_VM_INPUT 863 | 03:6860 _input_init 864 | 03:6891 _vm_btn 865 | 03:68D6 _vm_btnd 866 | 03:692C _vm_btnu 867 | 03:6980 _vm_touch 868 | 03:6A7C _vm_touchd 869 | 03:6B8C _vm_touchu 870 | 03:6C9B _vm_on_input 871 | 03:6D6A ___func_VM_SCENE 872 | 03:6D6A _scene_init 873 | 03:6D9C _scene_camera 874 | 03:7354 _scene_get_prop 875 | 03:7386 _scene_get_attr 876 | 03:73B8 _scene_get_actor 877 | 03:73EA _vm_camera 878 | 03:742D _vm_viewport 879 | 03:74B7 _vm_def_scene 880 | 03:7B2A _vm_get_scene_prop 881 | 03:7E8C _vm_set_scene_prop 882 | 03:7F69 _vm_on_scene 883 | 06:4000 _BOOTSTRAP 884 | 05:4000 _VERSION 885 | 05:4001 _IconSize 886 | 05:4003 _Icon 887 | 05:4103 _Font 888 | 05:4A05 _Card 889 | 05:4A85 _card_frame0 890 | 05:4A91 _card_frame1 891 | 05:4A9D _CardFrames 892 | 05:4AA3 _Elephant 893 | 05:4E23 _elephant_frame0 894 | 05:4E73 _elephant_frame1 895 | 05:4EC7 _elephant_frame2 896 | 05:4F1B _elephant_frame3 897 | 05:4F6F _elephant_frame4 898 | 05:4FC3 _ElephantFrames 899 | 05:4FCF _Beep 900 | 05:6048 _Song 901 | --------------------------------------------------------------------------------