the cutting room mirror

olsen

This article has a talk page!
view on tcrf.net

This is a sub-page of Proto:Croc.

Development files#

There are large pieces of Development files scattered throughout the ROM, including files in raw formats and files in text form.

Archives#

To do:

  • More archives. Update information on all archives.

Address

Info

0x0008000 - 0x00091BA

The 1st archive. The archive's contents are not known.

0x007C000 - 0x007F200

The 2nd archive. The archive's contents are not known.

Variables#

0x00AFFFF to 0x00B3FE8

?00:de56 anyname 
00:0023 gardenballblock 
00:00ff true 
00:0000 tony 
00:0000 debug 
00:2100 bnkad 
00:0000 j_right 
00:0001 j_left 
00:0002 j_up 
00:0003 j_down 
00:0004 j_firea 
00:0005 j_fireb 
00:0006 j_select 
00:0007 j_start 
00:0000 objxpos 
00:0002 objypos 
00:0004 objheight 
00:0005 objfr 
00:0007 objatt 
00:0008 objwidth 
00:0009 objanimtime 
00:000a objanimloc 
00:000c objnext_anim 
00:000e objcurranim 
00:000f objdir 
00:0010 objxspeed 
00:0012 objyspeed 
00:0014 objmaxx 
00:0016 objmaxy 
00:0018 objcurrent 
00:001a objrequested 
00:001b objstage 
00:001c objcount 
00:001d objtargetx 
00:001e objtargety 
00:001f objorgx 
00:001f objspare1 
00:001f objloopcntr 
00:0020 objspare2 
00:0020 objdirection 
00:0021 objorgy 
00:0021 objspare3 
00:0022 objhitrad 
00:0022 objspare4 
00:0023 objtable1 
00:0023 objinstruct 
00:0025 objtable2 
00:0025 objlistptr 
00:0027 objalloc 
00:0028 objoldfr 
00:002a objinit 
00:002c objcollstat 
00:002d objcollected 
00:002e objculled 
00:002f objeasy 
00:0030 objss 
00:0005 sthflipb 
00:0080 stactive 
00:0040 stvisible 
00:0020 sthflip 
00:0010 stdead 
00:0008 stwaiting 
00:0004 stflash 
00:0002 stonscreen 
00:0001 stpallette 
00:0007 b_stactive 
00:0006 b_stvisible 
00:0005 b_sthflip 
00:9000 charbase 
00:9800 screenbase 
00:0001 at 
00:0002 skip 
00:8000 vram 
00:9800 bg_display1 
00:9c00 bg_display2 
00:a000 xram 
00:c000 wram 
00:d000 wram_x 
00:fe00 oam 
00:0007 daf_pri 
00:0006 daf_vf 
00:0005 daf_hf 
00:0004 daf_mpal 
00:0003 daf_cbk 
00:00a0 sz_scn_x 
00:0090 sz_scn_y 
00:0028 max_objs 
00:0008 obj_x_org 
00:0010 obj_y_org 
00:0007 win_x_org 
00:2100 io_bank 
00:ff00 p1 
00:ff01 sb 
00:ff02 sc 
00:ff04 div 
00:ff05 tima 
00:ff06 tma 
00:ff07 tac 
00:ff0f if 
00:ffff ie 
00:ff40 lcdc 
00:ff41 stat 
00:ff42 scy 
00:ff43 scx 
00:ff44 ly 
00:ff45 lyc 
00:ff46 dma 
00:ff47 bgp 
00:ff48 obp0 
00:ff49 obp1 
00:ff4a wy 
00:ff4b wx 
00:ff4d key1 
00:ff4f vbk 
00:ff51 hdma1 
00:ff52 hdma2 
00:ff53 hdma3 
00:ff54 hdma4 
00:ff55 hdma5 
00:ff68 bcps 
00:ff69 bcpd 
00:ff6a ocps 
00:ff6b ocpd 
00:ff70 svbk 
00:ff80 fram 
00:00fe sc_ext_tf 
00:00ff sc_int_tf 
00:0004 ie_pinlo 
00:0003 ie_serend 
00:0002 ie_timo 
00:0001 ie_lcdc 
00:0000 ie_vblank 
00:0007 lcf_enable 
00:0006 lcf_wdsel 
00:0005 lcf_wd 
00:0004 lcf_bgcsel 
00:0003 lcf_bgdsel 
00:0002 lcf_obysz 
00:0001 lcf_obd 
00:0000 lcf_bgd 
00:0040 stat_lyc_ena 
00:ff80 bnkvl 
00:ff81 busy 
00:ff82 dodma 
00:ff8e hitemp 
00:ff90 temp 
00:ff92 temp1 
00:ff94 temp2 
00:ff96 temp3 
00:ff98 temp4 
00:ff9a tempx 
00:ff9c tempy 
00:ff9e mapxb 
00:ffa0 mapyb 
00:ffa2 mapx 
00:ffa4 mapy 
00:ffa6 baseval 
00:ffa8 mapbytewidth 
00:ffa9 tempst_loc 
00:ffab tempobjatt_loc 
00:ffad which_spr 
00:ffae sprites_done 
00:ffaf norm_spr 
00:ffb0 scroll_ready 
00:ffb1 sppal 
00:ffb2 spriteheight 
00:ffb3 spritewidth 
00:ffb4 obj_no 
00:ffb5 dx 
00:ffb7 dy 
00:ffb7 alloc_loc 
00:ffb9 spritenumber 
00:ffba blockleft 
00:ffbb blockabove 
00:ffbc blockright 
00:ffbd blockon 
00:ffbe blockunder 
00:ffbf colheight 
00:ffc0 colheightl 
00:ffc1 colheightr 
00:ffc2 footloc 
00:ffc4 oem_loc 
00:ffc6 usesameframe 
00:ffc7 objoldfrloc 
00:ffc9 usedthistime 
00:ffca sprites_available 
00:ffcb sprites_used 
00:ffcc used_loc 
00:ffcd dealloc_loc 
00:ffce objattloc 
00:ffd0 objframeloc 
00:ffd2 objallocloc 
00:ffd4 used_chars 
00:ffd5 this_objs_chars 
00:ffd7 actualframeno 
00:ffd9 tempobjatt 
00:ffda spritecount 
00:ffdb framedef 
00:ffdd banktmp 
00:0040 vb 
00:0048 lcd 
00:0050 tim 
00:0058 sio 
00:0060 key 
00:0150 begin 
00:0150 soft_reset 
00:0226 m_loop 
00:0267 stillonmap 
00:0278 testd 
00:0279 checkrooms 
00:0392 checkdoor 
00:0000 l1main 
00:0001 l1room1 
00:0002 l1room2 
00:0003 l1room3 
00:0004 l2main 
00:0005 l2room1 
00:0006 l2room2 
00:0007 l2room3 
00:03ee level1main 
00:0436 level1room1 
00:043f level1room2 
00:0448 level1room3 
00:0451 level2main 
00:04a7 level2room1 
00:04b0 level2room2 
00:04b9 level2room3 
00:04c9 updatescroll 
00:0543 screenblockx 
00:0561 attriblockx 
00:0573 dooverlays 
00:05b2 fastmaploc 
00:0018 leftedge 
00:0070 rightedge 
00:003c topedge 
00:003c bottomedge 
00:0050 cameraangle 
00:003c cameraxmin 
00:05ed newscrollsc 
00:060c slidetomap 
00:066d doy 
00:06cd speedindxp 
00:06db speedindxn 
00:0005 endspd 
00:06e9 speedindyp 
00:06f7 speedindyn 
00:0705 movemap 
00:076c movecam 
00:079e idle 
00:079f getmainxyds 
00:07ef flash 
00:07f6 doright 
00:0835 doleft 
00:0858 doedge 
00:088e writetovid 
00:08e6 buildedge 
00:0917 screenblockx2 
00:0935 attriblockx2 
00:0942 dobotline 
00:0975 dotopline 
00:098c doline 
00:09e6 dmatokenline 
00:0a17 dofullscreen 
00:0ac2 dump_fullscr 
00:0afc fastscreen 
00:0b1d dosection 
00:0b1d loop1 
00:0b95 vsync 
00:0ba2 ldirvsc 
00:0bce ldirvsc2 
00:0bfc ldirvid 
00:0c1a ldvid 
00:0c29 stbnk 
00:0c38 lcdc_off 
00:0c45 lcdc_of10 
00:0c57 setdma 
00:0c5e wl2 
00:0c65 dmastart 
00:000a lendma 
00:0c6f wait_vblank 
00:0c7e writeone 
00:0c92 writebyte 
00:0ca6 writehl 
00:0cb8 cont 
00:0d10 fadeout 
00:0d75 squares 
00:0f75 ai_snow 
00:0f92 walkinsnow 
00:0fa7 ai_swim 
00:0fc4 swimaround 
00:0fdb routine 
00:0fdc d_routines 
00:0ffc d_nothing 
00:0ffd d_nu 
00:0ffe d_downright 
00:1004 d_downleft 
00:100a d_upright 
00:1010 d_upleft 
00:1016 d_right 
00:102f d_left 
00:1048 inertia 
00:106f inertrr 
00:1096 inertur 
00:10b2 inertdr 
00:10cf inertf 
00:0002 dspeed 
00:10d0 s_right 
00:10f5 s_left 
00:112d d_anim 
00:1139 d_anim2 
00:1145 d_down 
00:1170 d_up 
00:11ae checkbounce 
00:120a ai_moblr 
00:1212 ai_turn 
00:1224 ai_spin 
00:0001 climbspeed 
00:123e ai_climb 
00:1298 ai_kick 
00:1298 ai_jump 
00:0002 jumpspeed 
00:1387 moveinflight 
00:13b2 docheckx 
00:13c0 moveleft 
00:13dd ai_fall 
00:141b pass1 
00:1427 stop_it 
00:142d bai_santa 
00:14d7 bai_icesculp 
00:14e4 bai_bobcat 
00:0020 iwidth 
00:1534 bai_iceicle 
00:156f bai_released 
00:1592 bai_right 
00:159d bai_left 
00:0001 bspeed 
00:15ab bg_right 
00:15c6 bg_left 
00:15f4 bai_bird 
00:1622 noinitbird 
00:1656 init_turnbird 
00:1656 redotarg 
00:168e startturn 
00:1696 birdgoleft 
00:169c gostraightbird 
00:16ac goturnbird 
00:16bc bai_null 
00:16bf bai_elfstand 
00:16e4 bai_elfskate 
00:1720 pointtopoint 
00:1724 pointtopoint2 
00:1764 movehimright 
00:1784 okitspos 
00:1784 okitsneg 
00:178d gotit 
00:17af oknm1 
00:17c0 checkradius 
00:182b blah 
00:1862 exitpass 
00:1863 exitrange 
00:1864 exitfail 
00:1866 exitfail2 
00:0001 gravconstant 
00:1869 logic 
00:18a9 logic_loop 
00:18dc notwaiting 
00:18e5 ok_hes_active 
00:1919 pass_return 
00:192c checkdead 
00:1936 redohim 
00:1960 getspinfo 
00:1986 convertoffsets 
00:19ac getallcblks 
00:1a20 readblks 
00:1a3a getxypos 
00:1a50 gravity 
00:1a67 give 
00:1a6d continue_grav 
00:1a82 stop_grav 
00:1a8b noworries 
00:1ac1 belowp 
00:1ad4 do_norm 
00:0006 maxgravspeed 
00:1ae7 checkmaxgrav 
00:1b05 ai_stand 
00:1b3b testfire 
00:1b56 allowpreview 
00:1b64 up_pressed 
00:1b88 climb 
00:1baa down_pressed 
00:1bdf gravitytestfall 
00:1c08 teeter 
00:0001 slidespeed 
00:1c1f teststand 
00:1cf6 checksanim 
00:1d0d stand_still 
00:0002 walkspeed 
00:1d23 walkright 
00:1d59 walkleft 
00:1da1 checkanim 
00:1dc0 jump_needed 
00:1dcf kick_needed 
00:1ddc spin_needed 
00:1ded turn_neededl 
00:1df2 turn_neededr 
00:1df4 setfliplr 
00:1df8 forcelogic 
00:1dfe forcelogic2 
00:1e0d force_anim 
00:1e13 force_anim_2 
00:000d nominal_value 
00:1e27 checkslope 
00:1f73 movement 
00:1fce incstage 
00:1fd4 incstage2 
00:1fda checkonscreen 
00:200f sprite_coinc 
00:204e hometotarget 
00:8000 sp_base 
00:2097 init_sprites 
00:20bc sprite_handle 
00:20eb manage_loop 
00:2130 mapbased 
00:21e0 lets_do_sprites 
00:2234 diff 
00:2237 diff2 
00:224c use_used 
00:224e ok_there_is_enough 
00:227c doset 
00:228b not_currently_active 
00:2292 endsprites 
00:22d4 none_done 
00:22e6 none_used 
00:2304 dealloc_my_sprites 
00:2324 setupthesprite 
00:237a l1_1 
00:2382 l1 
00:239e outl 
00:23ab nosprites 
00:23c6 smove 
00:23da sloop 
00:2415 exittest 
00:2419 exitroutine 
00:2423 clear_sprites 
00:243d getspriteinfo 
00:2443 getspinfo2 
00:244a notg 
00:2483 getspriteinfo2 
00:2489 getspriteinfo2_2 
00:24b7 vblank 
00:2549 outv 
00:2564 int_timer 
00:25b8 colpanel 
00:25f8 init_baddies 
00:2616 setmap 
00:2653 objfill 
00:26b1 re_init 
00:2719 getoffsets 
00:2755 getrnd1 
00:2763 getrnd2 
00:2771 seedrnd 
00:2780 randtab 
00:2785 rnd 
00:27d3 ranval30 
00:28e1 ramcode 
00:28e4 rbnk 
00:28eb rjmp 
00:0014 ramcodelen 
00:28f5 maplocs 
00:2925 map_palls 
00:2931 baddievals 
00:2939 roomcoord 
00:2941 setupmap 
00:000e launcher 
00:000f b1walk1 
00:0010 b1walk2 
00:0011 b1walk3 
00:0012 b1walk4 
00:0013 b2lie1 
00:2a41 anim_launcher 
00:2a49 b2anim_lie 
00:2a51 b1anim_walk 
00:0004 walkingspeed 
00:0000 blank 
00:0001 walk1 
00:0002 walk2 
00:0003 walk3 
00:0004 walk4 
00:0005 walk5 
00:0006 walk6 
00:0012 jump1 
00:0013 jump2 
00:0014 jump3 
00:0015 jump4 
00:0020 bounce1 
00:0021 bounce2 
00:0022 bounce3 
00:0023 bounce4 
00:0024 bounce5 
00:0025 bounce6 
00:0026 bounce7 
00:0005 fall1 
00:0011 duck1 
00:000a liestab1 
00:000b liestab2 
00:0006 squat 
00:0001 teeter1 
00:0001 teeter2 
00:0001 teeter3 
00:0001 teeter4 
00:0001 teeter5 
00:0001 teeter6 
00:0001 teeter7 
00:0001 teeter8 
00:0001 teeter9 
00:0001 teeter10 
00:0001 teeter11 
00:0001 teeter12 
00:0001 turn1 
00:0001 turn2 
00:0001 turn3 
00:0001 turn4 
00:0001 turn5 
00:0007 kick1 
00:0008 kick2 
00:0009 kick3 
00:000a kick4 
00:000b kick5 
00:000c climb1 
00:000d climb2 
00:000e climb3 
00:000f climb4 
00:0010 climb5 
00:0016 stand1 
00:0017 stand2 
00:0018 stand3 
00:0019 stand4 
00:0001 swim1 
00:0001 swim2 
00:0001 swim3 
00:0001 swim4 
00:0001 swim5 
00:0001 swim6 
00:0001 swim7 
00:0001 swalk1 
00:0001 swalk2 
00:0001 swalk3 
00:0001 swalk4 
00:0001 swalk5 
00:0001 swalk6 
00:0001 swalk7 
00:0001 swalk8 
00:0001 swalk9 
00:0001 swalk10 
00:0001 swalk11 
00:0001 swalk12 
00:0001 swalk13 
00:0001 swalk14 
00:0001 stab1 
00:0001 stab2 
00:0000 an_null 
00:0001 an_stand 
00:0002 an_walk 
00:0003 an_jump 
00:0004 an_duck 
00:0005 an_fall 
00:0006 an_land 
00:0007 an_panicfall 
00:0008 an_hit 
00:0009 an_dloop 
00:000a an_bounce 
00:000b an_turn 
00:000c an_swalk 
00:000d an_teeter 
00:000e an_spin 
00:000f an_stab 
00:0010 an_climb 
00:0011 an_locked 
00:0012 an_moblr 
00:0013 an_hold 
00:0014 an_swim 
00:2a62 anim_fall 
00:2a6a anim_hold 
00:2a72 anim_panicfall 
00:2a7a anim_land 
00:2a82 anim_climb 
00:2aa5 anim_duck 
00:2aad anim_jump 
00:2abe anim_null 
00:2ac6 anim_walk 
00:2add anim_stand 
00:2aee anim_spin 
00:2b02 anim_teeter 
00:2b4c anim_stab 
00:2b5a anim_stabj 
00:2b68 anim_blank 
00:2b70 anim_hit 
00:2b78 anim_swim 
00:0080 atgoto 
00:0081 atend 
00:0082 atfx 
00:0083 atrnddel 
00:0084 atid 
00:0085 atrndgoto 
00:0086 at_count 
00:0087 at_settime 
00:0088 at_flipdir 
00:0089 at_fallback 
00:008a at_clrfall 
00:008b at_anadvance 
00:008c at_animwait 
00:008d at_animwaitk 
00:008e at_kill 
00:008f at_gexaction 
00:0090 at_gexsafe 
00:0091 at_max 
00:2b99 animate 
00:2ba3 main_rout 
00:2bab getanimloc 
00:2baf nextval 
00:2bb4 storetime 
00:2bd2 command 
00:2bd6 oops 
00:2bd9 okacommand 
00:2bef anim_commands 
00:2c11 c_nu 
00:2c19 c_gexattack 
00:2c2d c_gexsafe 
00:2c40 c_fallback 
00:2c76 c_clrfall 
00:2c7e c_settime 
00:2c90 c_flipdir 
00:2cb0 c_killobj 
00:2cbe c_animwait 
00:2cd3 c_animwaitk 
00:2ce8 c_anadvance 
00:0008 holdmax 
00:2d0a c_count 
00:2d2d release 
00:2d2d moveon 
00:2d31 c_goto 
00:2d40 c_end 
00:2d52 newaddress 
00:2d5f c_fx 
00:2d66 save_loc 
00:2d73 c_rnddel 
00:2d95 c_id 
00:2dab c_rndgoto 
00:2dba baddies 
00:2dba w1level1_bads 
00:2dc7 w1level2_bads 
00:2dd4 w1level3_bads 
00:2de1 w1level4_bads 
00:2dee paneldata 
00:2e3e showpanel 
00:2e77 showvars 
00:2eea showrega 
00:2f22 testdebug 
00:2f58 hextab 
00:2f68 set_black 
00:2f71 set_pal 
00:2f89 doblack 
00:2fa1 dosppal 
00:2faa dopal 
00:2fb1 ploop 
00:2fc5 black 
00:3005 endbank0 
01:4000 l1chrpal1 
01:4040 l1chrpal2 
01:4080 l1chrpal3 
01:40c0 l1chrpal4 
01:4100 sprpal 
00:0002 sprite_start 
08:4000 sptable 
00:004e lensptable 
09:4000 coll_patterns 
09:4000 solidc 
09:41f8 ladderc 
09:4200 icec 
09:4208 waterc 
09:4210 snowc 
09:4218 wallc 
09:4220 endtab 
00:0000 null 
00:0001 solid 
00:0040 ladder 
00:0041 ice 
00:0042 water 
00:0043 snow 
00:0044 wall 
09:4220 l1collmap1 
09:4301 l1collmap2 
09:440d l1collmap3 
09:44dd l1collmap4 
0a:4000 level1map1 
0a:4dd2 level1map2 
0a:676c level1map3 
0d:4000 level1map4 
0c:4000 level1blk1 
0c:4708 level1blk2 
0c:4f68 level1blk3 
0f:4000 level1blk4 
10:4000 level1chr1 
10:4dd0 level1chr2 
11:4000 level1chr3 
11:4df0 level1chr4 
14:4000 ascii 
15:4000 animdump 
00:c000 sprites 
00:c0a0 ramcodeloc 
00:c0a3 rambnk 
00:c0aa ramjmp 
00:c0b4 difficulty 
00:c0b5 can_i_reset? 
00:c0b6 togcnt 
00:c0b7 cnt1 
00:c0b8 dcnt1 
00:c0b9 nextfree 
00:c0bb faded? 
00:c0bc oly 
00:c0bd oldmap 
00:c0be oldmxpos 
00:c0c0 oldmypos 
00:c0c2 oldmapx 
00:c0c4 oldmapy 
00:c0c6 sublevel 
00:c0c7 levelcoords 
00:c100 coll_page 
00:c300 sprites_stack 
00:c30c ieb 
00:c30d vblank_fl 
00:c30e frameno 
00:c30f goalloc 
00:c311 objsneeded 
00:c312 objsrequired 
00:c313 tempstat 
00:c314 camerax 
00:c316 cameray 
00:c318 cameramaxx 
00:c31a cameramaxy 
00:c31c xspeed 
00:c31d yspeed 
00:c31e oldmainx 
00:c320 oldmainy 
00:c322 ctrackx 
00:c323 ctracky 
00:c324 stimer 
00:c325 acc 
00:c326 righttouched? 
00:c327 lefttouched? 
00:c328 oldscx 
00:c32a movedleft 
00:c32b movedright 
00:c32c vdirection 
00:c32d dostrips 
00:c32e maploc 
00:c330 maploc1 
00:c332 maploc2 
00:c334 maploce 
00:c336 scrolly 
00:c337 scrollx 
00:c338 timer 
00:c339 updatescrn 
00:c33a updatesc 
00:c33b currentx 
00:c33d currenty 
00:c33f delayed_count 
00:c340 delayed_sprites 
00:c35e pausedata 
00:c360 inertr 
00:c361 oldertr 
00:c362 inertl 
00:c363 oldertl 
00:c364 inertu 
00:c365 oldertu 
00:c366 inertd 
00:c367 oldertd 
00:c368 targetx 
00:c369 tabreset 
00:c36a rand0 
00:c36b rand1 
00:c36c rand2 
00:c36d rand3 
00:c36e rand4 
00:c36f rand5 
00:c370 action 
00:c371 buttonhold 
00:c372 lasthold 
00:c373 bounceon 
00:c374 gravitystop 
00:c375 backtimer 
00:c376 count1 
00:c377 count2 
00:c378 do_frame 
00:c379 mapno 
00:c37a oldxpos 
00:c37c oldypos 
00:c37e failed 
00:c37f wherecart 
00:c381 which 
00:c382 secondcnt 
00:c383 totalseconds 
00:c385 timeout 
00:c386 control_hold 
00:c387 frame_counter 
00:c388 hitdebounce 
00:c389 whichchar 
00:c38a anims_ready 
00:c38b howmanyanims 
00:c38c holdanim 
00:c38d preview 
00:c38e coincfl 
00:c400 available_sprites 
00:c450 whichanims 
00:c478 map_base 
00:c47b token_base 
00:c47e map_chars 
00:c481 map_colls 
00:c484 blksaround 
00:c48e no_objs 
00:c48f mapheight 
00:c491 reset 
00:c492 chrpalram 
00:c512 objpalram 
00:c600 onscreen_heap 
00:c680 charstodump 
00:c689 screenhc1 
00:c68a screenhc2 
00:c68b screenvc1 
00:c68c screenvc2 
00:c68d gravblock 
00:c68e footsx 
00:c690 footsy 
00:c692 overlayneeded 
00:c693 screenmapovloc 
00:c695 firsttime 
00:c696 calctype 
00:c700 dummy_screen 
00:cb00 dummy_screen2 
00:cf00 dealloc_heap 
00:d000 used_heap 
00:d080 objbase 
00:d0b0 objbase2 
00:d0e0 objbase3 
00:d110 objbase4 
00:dd40 endobjs 
00:dd40 mapoffsets 
00:dde0 endvar 
00:dde0 scorestring 
00:ddea sgb_in 
00:ddeb workspace 
00:ddeb sgbwork 
00:ddfb palstore 
00:de0b workspace2 
00:de4b sgbfade 
00:de4c ctarget 
00:de4e fintarget 
00:de50 framewhat 
00:de51 looksee 
00:de52 fintarg 
00:de54 totaltime 
00:de55 bounceflag

Other things#

EASE
MOVEON
C_GOTO
1-C_END
NEWADDRESS
C_FX
SAVE_LOC
C_RNDDEL
C_ID
C_RNDGOTO
BADDIES
W1LEVEL1_BADS
W1LEVEL2_BADS
W1LEVEL3_BADS
W1LEVEL4_BADS
PANELDATA
SHOWPANEL
SHOWVARS
SHOWREGA
TESTDEBUG
HEXTAB
SET_BLACK
SET_PAL
DOBLACK
DOSPPAL
DOPAL
PLOOP
BLACK
ENDBANK0
L1CHRPAL1
L1CHRPAL2
L1CHRPAL3
L1CHRPAL4
SPRPAL
A
SPRITE_START
SPTABLE
LENSPTABLE
COLL_PATTERNS
SOLIDC
LADDERC
ICEC
WATERC
SNOWC
WALLC
ENDTAB
NULL
SOLID
LADDER
ICE
WATER
SNOW
WALL
L1COLLMAP1 B
L1COLLMAP2 C
L1COLLMAP3  
D
L1COLLMAP4 D
LEVEL1MAP1

LEVEL1MAP2

LEVEL1MAP3

LEVEL1MAP4

LEVEL1BLK1
LEVEL1BLK2
LEVEL1BLK3
LEVEL1BLK4
LEVEL1CHR1
LEVEL1CHR2
LEVEL1CHR3
LEVEL1CHR4
ASCII
ANIMDUMP
SPRITES
RAMCODELOC
RAMBNK
RAMJMP
DIFFICULTY
CAN_I_RESET
TOGCNT
CNT1
DCNT1
NEXTFREE
FADED?
OLY
OLDMAP
OLDMXPOS
OLDMYPOS
OLDMAPX
OLDMAPY
SUBLEVEL
LEVELCOORDS
ЗА  COLL_PAGE
SPRITES_STACK
IEB
VBLANK_FL
FRAMENO
GOALLOC
OBJSNEEDED
OBJSREQUIRED
TEMPSTAT
CAMERAX
CAMERAY
CAMERAMAXX
CAMERAMAXY
XSPEED
YSPEED
OLDMAINX
OLDMAINY
CTRACKX
CTRACKY
STIMER
ACC
RIGHTTOUCHED?
LEFTTOUCHED?
OLDSCX
MOVEDLEFT
MOVEDRIGHT
VDIRECTION
DOSTRIPS
MAPLOC
MAPLOC1
MAPLOCE
SCROLLY
SCROLLX
TIMER
UPDATESCRN
UPDATESC
CURRENTX
CURRENTY
DELAYED_COUNT
DELAYED_SPRITES
PAUSEDATA
INERTR
OLDERTR
INERTL
OLDERTL
INERTU
OLDERTU
INERTD
OLDERTD
TARGETX
TABRESET
RAND0
RAND1
RAND2
RAND3
RAND4
RAND5
ACTION
BUTTONHOLD
LASTHOLD
BOUNCEON
GRAVITYSTOP
BACKTIMER
COUNT1
COUNT2
DO_FRAME
MAPNO
OLDXPOS
OLDYPOS
FAILED
WHERECART
WHICH
SECONDCNT
TOTALSECONDS
TIMEOUT
CONTROL_HOLD
FRAME_COUNTER
HITDEBOUNCE
WHICHCHAR
ANIMS_READY
HOWMANYANIMS
HOLDANIM
PREVIEW
COINCFL
AVAILABLE_SPRITES
WHICHANIMS
MAP_BASE
TOKEN_BASE
MAP_CHARS
MAP_COLLS
BLKSAROUND
NO_OBJS
MAPHEIGHT
RESET
CHRPALRAM
OBJPALRAM
ONSCREEN_HEAP
CHARSTODUMP
SCREENHC1
SCREENHC2
SCREENVC1
SCREENVC2
GRAVBLOCK
FOOTSX
FOOTSY
OVERLAYNEEDED
SCREENMAPOVLOC
FIRSTTIME
CALCTYPE
DUMMY_SCREEN
DUMMY_SCREEN2
DEALLOC_HEAP
USED_HEAP
OBJBASE
OBJBASE2
OBJBASE3
OBJBASE4
ENDOBJS
MAPOFFSETS
ENDVAR
SCORESTRING
SGB_IN
WORKSPACE
SGBWORK
PALSTORE
WORKSPACE2
SGBFADE
CTARGET
FINTARGET
FRAMEWHAT
LOOKSEE
FINTARG
TOTALTIME
BOUNCEFLAG

Batch commands#

0x00BC000 to 0x00BC128

[edit-]
screen=80 50
toggles=1 0 0 1 0 0
srch=
src=
rpl=
file=d:\gameboy\virtu\croc\makefile 1 1 34 19
[brief]
file=d:\gameboy\virtu\croc\makefile 1 1 34 19 1 47 78 25 c=1
file=d:\gameboy\virtu\croc\make.bat 1 1 1 1 1 23 78 1 c=0
[shared-]
pmark=d:\gameboy\virtu\croc\makefile 34 19

Engine Source Code#

em

    call    vsync
        xor a
    ld  (vbk),a 
    lda map_chars+1
    ld  de,$9000
    ld  bc,127 ;
    ld  a,(map_chars)
        call    ldirvid
    ld  bc,$800
    lda map_chars+1
    add hl,bc
    ld  de,$8800
    ld  bc,127 ;
    ld  a,(map_chars)
        call    ldirvid

    call    vsync
    ld  a,1
    ld  (vbk),a
    ld  bc,$1000
    lda map_chars+1
    add hl,bc 
    ld  de,$9000
    ld  bc,127 ; 264
    ld  a,(map_chars)
        call    ldirvid 
    ld  bc,$1800
    lda map_chars+1
    add hl,bc
        ld  de,$8800
        ld  bc,127 ;
    ld  a,(map_chars)
        call    ldirvid
    xor a
    ld  (vbk),a

          


        ldy map_base+1    ; ld de original ram map pointer
        inc de        ; skip map size 
        inc de            ; was bug in original 
    ld  hl,mapoffsets
    ld  b,80          ; 80 this is big enough now 
_off1   ld  a,e
    ld  (hli),a
    ld  a,d
    ld  (hli),a
    
    ld  a,(mapbytewidth)
    add a,e
    ld  e,a
    ld  a,d
    adc a,0
    ld  d,a

    djnz    _off1
    ret
 
    file    anim.s
baddies file    lev1bads.s
    file    screen.s


endbank0

    file    banks.s 


    org 20:$4000



ascii        libbin ..\maps\charsset.chr
;   libbin  ..\maps\panel1.chr

    org 21:$4000
animdump    ret 
    ld  a,(holdanim)
    and a
    ret nz

    ld  a,(howmanyanims)
    add a,a
    add a,a
    ld  l,a
    ld  h,0
    ld  de,whichanims
    add hl,de
    ld  a,(hli)
    ld  c,a
    ld  a,(hli)
    ld  b,a
    ld  a,(hli)
    ld  e,a
    ld  d,(hl)
    ld  l,c
    ld  h,b

;12 repeats of this

    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de

    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de



    ld  a,8
    ld  (stat),a    ;switch on halts 
    
    ld  b,20

_dloop1 
    ld  a,d
    cp  98h
    jc  _loop
    sub 10h ;bring down to #8000
    ld  d,a
    

_loop   
    ld  a,(hli)
    halt        ;sync to the hblank

    ld  (de),a      ;1
    inc e   
    ld  a,(hli)      
    ld  (de),a      ;2 
    inc e        

    ld  a,(hli)      
    ld  (de),a      ;3 
    inc e        

    ld  a,(hli)      
    ld  (de),a      ;4 
    inc de       



    djnz    _dloop1

    xor a
    ld  (stat),a

    
        ld  a,(howmanyanims)
        dec a
        ld  (howmanyanims),a
        ret nz
;fames are done now
        xor a
        ld  (anims_ready),a
        ld  (do_frame),a

        ret






    org 0:$c000
    file lowram.s




    end

;Platform game engine
    ;parent file to bind it all together
    ;

    ISDMG
    puball

lb  def <
hb  def >
word    def dw
byte    def db

ANYNAME GROUP

gardenballblock     equ 35
true        equ 255

tony    equ 0
debug   equ 0

    file        macros.s
    file        equates.s
    file        boyequs.s
    file        asmequs.s



;hiram stuff placed here to allow assebler to recognise it and use 2 byte opcodes
    file hiram.s

    org 0:$0
    jp  begin


    file    vectors.s

    org $100    ;'code'
    nop
    jp  begin

;file the default gameboy header

    file header.s





begin   ;entry to your program


     

    file initprog.s
    
    ;main stuff goes here
    ld  a,1
    ld  (busy),a


    ld  a,7
    ld  (ie),a
    ei
    call    wait_vblank
    ld  a,11100100b
    ld  (obp0),a
    ld  (obp1),a
    ld  (bgp),a
            ld  a,^sprpal ;pal bank 
            call    stbnk
            ld  a,$c0
                ld  hl,sprpal
            ld  b,8
                call    dosppal
    ld  a,0
    ld  (mapno),a
            call    set_pal
            xor a
                call    stbnk
                xor a
            ld  (vbk),a

;put window on
    ld  a,144-16
    ld  (wy),a
    ld  a,7
    ld  (wx),a
    call    vsync        ; set standard chr set into place 
    ld  a,1
    ld  (vbk),a
    ld  hl,ascii
    ld  de,$8400  ; base +32*16 
    ld  bc,64 ;   ; $400  
    ld  a,^ascii
        call    ldirvid 
         
    call    setupmap
    call    showpanel
    
    
    ld  a,10 ;  24
    ld  (no_objs),a
    call    init_baddies
    call    init_sprites
    ;;call  dofullscreen   ; update current screen 
  

m_loop  call    cont
    ld  a,(togcnt)
    bit j_firea,a
    jz  _isclr
    ld  a,(cnt1)
    and %10000  ; a action debounce
    jnz _isclr  ; still pressed
    ld  (togcnt),a  ; clear used flag
        
_isclr  call    wait_vblank
            
            ld  a,(stimer)
    inc a
    ld  (stimer),a
            
    
    
              call  logic   
    call    Sprite_handle

                call    newscrollsc ; man moved
                call    updatescroll ; update screen info
    
                        
            ;   call    showvars
             ; get ready for next frame 
                                   
    call    rnd
    call    checkrooms
    call    stillonmap
    
            jnc     m_loop
    ld  a,1
    ld  (busy),a


    call    init_baddies
    
    call    dofullscreen 
    
           ;    ld  a,(timer)  
           ;    ld  (totaltime),a
            jr  m_loop


stillonmap  
    ldy objbase+2 
    ld  a,(mapheight)
    sub    e
    ld  a,(mapheight+1)
    sbc a,d
    ret 


testd   db  $0f

    file mapcoords.s 
    file scroll2.s
    file bank0sys.s
    file logic.s
    file sprites.s
    file ints.s
    file bank0cod.s
    file random.s




ramcode ld  a,(bnkvl)
    push    af
rbnk    ld  a,0
    ld  (bnkvl),a
    ld  (bnkad),a
rjmp    call    0

    pop af
    ld  (bnkvl),a
    ld  (bnkad),a
    ret

ramcodelen  equ *-ramcode






maplocs 
    def3    level1map1   ; 0
    def3    level1blk1
    def3    level1chr1
    def3    l1collmap1
    

    def3    level1map2   ; 1
    def3    level1blk2
    def3    level1chr2
    def3    l1collmap2
    

    def3    level1map3   ; 2
    def3    level1blk3
    def3    level1chr3
    def3    l1collmap3


    def3    level1map4   ; 3 
    def3    level1blk4
    def3    level1chr4
    def3    l1collmap4

 



map_palls   def3    l1chrpal1
    def3    l1chrpal2
    def3    l1chrpal3
    def3    l1chrpal4

baddievals   
    word    w1level1_bads
    word    w1level2_bads 
    word    w1level3_bads
    word    w1level4_bads 
            
    
; pointers to doors and map locations in rooms 
roomcoord
    word    level1main   ; 0 
    word    level1room1  ; 1 
    word    level1room2  ; 2 
    word    level1room3  ; 3 
            

setupmap
    ld  a,-1
    ld  (currentx),a
    ld  (currenty),a
    ld  a,(mapno)
    push    af
    ld  hl,roomcoord
    add a,a
    add a,l
    ld  l,a
    ld  a,h
    adc a,0
    ld  h,a ; 256 max 
    ld  a,(hli)
    ld  (levelcoords),a
    ld  a,(hli)
    ld  (levelcoords+1),a
    
        pop af ; ld a,(mapno)
    ld  c,a
    add a,a ;2
    add a,a ;4
    add a,a ;8 
    add a,c ;*9
    add a,c ;*10
    add a,c ;*11
    add a,c;*12

    ld  l,a
    ld  h,0
     
    ld  de,maplocs  ; 3 bytes 
    add hl,de       ; 0 for first map 
    
    ld  de,map_base ; ram pointers 
    ld  b,12
    ldir8       ; transfer hl to de     so first 12 bytes transfered to ram 
    
    dec hl
    dec hl
    dec hl
    ld  a,(hli)       ; bank for collision data 
    call    stbnk
    ld  a,(hli) ; were is data from 
    ld  h,(hl)
    ld  l,a
    ld  de,coll_page     ; ram location 
    ld  b,0
    
    ldir8   ; set 256

    ldir8   ; set 512 bytes 

                ld  a,(map_base)
                call    stbnk


    lda    map_base+1   ; map variable start 
    ld  a,(hli)
    ld  (mapbytewidth),a  ; 50 
    ld  a,(hl)
            ld  l,a
    xor a
    ld  h,a
                add hl,hl ;2 
    add hl,hl ; 4
    add hl,hl ; 8
    add hl,hl  ; 16
    sta mapheight        ; in pixels 



;dump the testmap data
;put someting in video mem

    call    vsync
        xor a
    ld  (vbk),a 
    lda map_chars+1
    ld  de,$9000
    ld  bc,127 ;
    ld  a,(map_chars)
        call    ldirvid
    ld  bc,$800
    lda map_chars+1
    add hl,bc
    ld  de,$8800
    ld  bc,127 ;
    ld  a,(map_chars)
        call    ldirvid

    call    vsync
    ld  a,1
    ld  (vbk),a
    ld  bc,$1000
    lda map_chars+1
    add hl,bc 
    ld  de,$9000
    ld  bc,127 ; 264
    ld  a,(map_chars)
        call    ldirvid 
    ld  bc,$1800
    lda map_chars+1
    add hl,bc
        ld  de,$8800
        ld  bc,127 ;
    ld  a,(map_chars)
        call    ldirvid
    xor a
    ld  (vbk),a

          


        ldy map_base+1    ; ld de original ram map pointer
        inc de        ; skip map size 
        inc de            ; was bug in original 
    ld  hl,mapoffsets
    ld  b,80          ; 80 this is big enough now 
_off1   ld  a,e
    ld  (hli),a
    ld  a,d
    ld  (hli),a
    
    ld  a,(mapbytewidth)
    add a,e
    ld  e,a
    ld  a,d
    adc a,0
    ld  d,a

    djnz    _off1
    ret
 
    file    anim.s
baddies file    lev1bads.s
    file    screen.s


endbank0

    file    banks.s 


    org 20:$4000



ascii        libbin ..\maps\charsset.chr
;   libbin  ..\maps\panel1.chr

    org 21:$4000
animdump    ret 
    ld  a,(holdanim)
    and a
    ret nz

    ld  a,(howmanyanims)
    add a,a
    add a,a
    ld  l,a
    ld  h,0
    ld  de,whichanims
    add hl,de
    ld  a,(hli)
    ld  c,a
    ld  a,(hli)
    ld  b,a
    ld  a,(hli)
    ld  e,a
    ld  d,(hl)
    ld  l,c
    ld  h,b

;12 repeats of this

    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de

    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de
    ld  a,d
    cp  98h
    jc  *+4
    sub 10h ;bring down to #8000
    ld  d,a

    ld    a,(hli)
    ld    (de),a  ;1
    inc   e
    ld    a,(hli)
    ld    (de),a  ;2
    inc   e
    ld    a,(hli)
    ld    (de),a  ;3
    inc   e
    ld    a,(hli)
    ld    (de),a  ;4
    inc   e
    ld    a,(hli)
    ld    (de),a ;5
    inc   e
    ld    a,(hli)
    ld    (de),a  ;6
    inc   e
    ld    a,(hli)
    ld    (de),a  ;7
    inc   e
    ld    a,(hli)
    ld    (de),a  ;8
    inc   e
    ld    a,(hli)
    ld    (de),a  ;9
    inc   e
    ld    a,(hli)
    ld    (de),a  ;10
    inc   e
    ld    a,(hli)
    ld    (de),a  ;11
    inc   e
    ld    a,(hli)
    ld    (de),a  ;12
    inc   e
    ld    a,(hli)
    ld    (de),a  ;13
    inc   e
    ld    a,(hli)
    ld    (de),a  ;14
    inc   e
    ld    a,(hli)
    ld    (de),a  ;15
    inc   e
    ld    a,(hli)
    ld    (de),a  ;16
    inc   de



    ld  a,8
    ld  (stat),a    ;switch on halts 
    
    ld  b,20

_dloop1 
    ld  a,d
    cp  98h
    jc  _loop
    sub 10h ;bring down to #8000
    ld  d,a
    

_loop   
    ld  a,(hli)
    halt        ;sync to the hblank

    ld  (de),a      ;1
    inc e   
    ld  a,(hli)      
    ld  (de),a      ;2 
    inc e        

    ld  a,(hli)      
    ld  (de),a      ;3 
    inc e        

    ld  a,(hli)      
    ld  (de),a      ;4 
    inc de       



    djnz    _dloop1

    xor a
    ld  (stat),a

    
        ld  a,(howmanyanims)
        dec a
        ld  (howmanyanims),a
        ret nz
;fames are done now
        xor a
        ld  (anims_ready),a
        ld  (do_frame),a

        ret






    org 0:$c000
    file lowram.s




    end

Emulator Credits#

===================================================
SMYGB - Game Boy Emulator v0.20
by Ming-yu Shih (smy@ip.csie.ncu.edu.tw)   01/02/1999
http://www.billyjr.com/smygb/
===================================================

    SMYGB is a Game Boy emulator. It has some Super Game Boy and Color
Game Boy features. I used DirectDraw and DirectSound to write this program.
I hope everybody likes this program, and I would like comments and suggestions.

=======================
What's new
=======================

- Reimplement the kernel portion
- Add CGB features
- Fix some sound problems
- Fix some SGB problems
- Fix some CPU bugs
- Fix ROM support problems
- Add joystick support
- Can adjust program priority
- Support 24 bits and 32 bits screen modes

=======================
The features of SMYGB
=======================

- Support window and full screen modes of DirectX
- Can play the sound like the real Game Boy
- Support some SGB features
- Support CGB features
- Support joystick
- Can realtime save and load the game state

=======================
System requirements
=======================

- Intel Pentium 166 at least (good for Pentium II)
- The video card support DirectDraw (must be run at 16 bit mode)
- The sound card support DirectSound (must have one sound card to run
  this program)

=======================
Control
=======================

Start                               -> Enter
Select                              -> Shift
A                                   -> X
B                                   -> Z
Joypad                              -> Arrow Keys
Window and full screen mode switch  -> Alt+Enter

=======================
Credits
=======================

- With support and assist of Billyjr
- Martin Korth for SGB document
- Marat Fayzullin, Pan of Anthrox, Pascal Felber, Paul Robson,
  Martin Korth, and kOOPa for GB document
- NoComply and F.H. for GB sound document
- Comments and suggestions of everyone