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:
|
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