├── out ├── main.o ├── sega.o ├── rom.bin ├── rom.out ├── rom.smd ├── rom_head.o ├── src │ ├── main.o │ └── main.d ├── rom_head.bin ├── res │ ├── resources.o │ └── resources.d ├── main.d └── symbol.txt ├── res ├── data │ ├── throw_X.bin │ ├── throw_Y.bin │ ├── virus_Y.bin │ └── virus_X.bin ├── image │ ├── title_.png │ ├── paused_.png │ ├── bgpause_224.png │ ├── blacktile.png │ ├── options_2.png │ ├── orangetile_.png │ ├── finished_tiles_.png │ └── pills_and_virus.png ├── music │ ├── chill.vgm │ ├── fever.vgm │ ├── title.vgm │ └── options.vgm ├── sprite │ ├── start.png │ ├── pills_.png │ ├── mario_3pc_.png │ ├── title_foot.png │ ├── options_diff.png │ ├── options_sel1.png │ ├── options_sel2.png │ ├── options_sel3.png │ ├── title_logo_A.png │ ├── title_logo_B.png │ ├── virusguy_blu.png │ ├── virusguy_red.png │ ├── virusguy_yel.png │ ├── mario_gameover.png │ ├── mario_throwhand.png │ ├── options_level.png │ ├── title_virus_blk.png │ ├── options_musicbox.png │ ├── options_musicbox_off.png │ └── virusguy_disappear.png ├── wav │ ├── pill-move-2x.wav │ ├── kill-virus-16k.wav │ ├── menu-change-16k.wav │ ├── match-louder-16k.wav │ └── pill-rotate-32k-new-louder.wav ├── tileset │ └── Font_Namco.png ├── resources.h └── resources.res ├── README.md └── src ├── boot ├── rom_head.c └── sega.s └── main.c /out/main.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/main.o -------------------------------------------------------------------------------- /out/sega.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/sega.o -------------------------------------------------------------------------------- /out/rom.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/rom.bin -------------------------------------------------------------------------------- /out/rom.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/rom.out -------------------------------------------------------------------------------- /out/rom.smd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/rom.smd -------------------------------------------------------------------------------- /out/rom_head.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/rom_head.o -------------------------------------------------------------------------------- /out/src/main.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/src/main.o -------------------------------------------------------------------------------- /out/rom_head.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/rom_head.bin -------------------------------------------------------------------------------- /out/res/resources.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/out/res/resources.o -------------------------------------------------------------------------------- /res/data/throw_X.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/data/throw_X.bin -------------------------------------------------------------------------------- /res/data/throw_Y.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/data/throw_Y.bin -------------------------------------------------------------------------------- /res/data/virus_Y.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/data/virus_Y.bin -------------------------------------------------------------------------------- /res/image/title_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/title_.png -------------------------------------------------------------------------------- /res/music/chill.vgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/music/chill.vgm -------------------------------------------------------------------------------- /res/music/fever.vgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/music/fever.vgm -------------------------------------------------------------------------------- /res/music/title.vgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/music/title.vgm -------------------------------------------------------------------------------- /res/sprite/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/start.png -------------------------------------------------------------------------------- /res/image/paused_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/paused_.png -------------------------------------------------------------------------------- /res/music/options.vgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/music/options.vgm -------------------------------------------------------------------------------- /res/sprite/pills_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/pills_.png -------------------------------------------------------------------------------- /res/image/bgpause_224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/bgpause_224.png -------------------------------------------------------------------------------- /res/image/blacktile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/blacktile.png -------------------------------------------------------------------------------- /res/image/options_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/options_2.png -------------------------------------------------------------------------------- /res/image/orangetile_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/orangetile_.png -------------------------------------------------------------------------------- /res/sprite/mario_3pc_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/mario_3pc_.png -------------------------------------------------------------------------------- /res/sprite/title_foot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/title_foot.png -------------------------------------------------------------------------------- /res/wav/pill-move-2x.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/wav/pill-move-2x.wav -------------------------------------------------------------------------------- /res/sprite/options_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_diff.png -------------------------------------------------------------------------------- /res/sprite/options_sel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_sel1.png -------------------------------------------------------------------------------- /res/sprite/options_sel2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_sel2.png -------------------------------------------------------------------------------- /res/sprite/options_sel3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_sel3.png -------------------------------------------------------------------------------- /res/sprite/title_logo_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/title_logo_A.png -------------------------------------------------------------------------------- /res/sprite/title_logo_B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/title_logo_B.png -------------------------------------------------------------------------------- /res/sprite/virusguy_blu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/virusguy_blu.png -------------------------------------------------------------------------------- /res/sprite/virusguy_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/virusguy_red.png -------------------------------------------------------------------------------- /res/sprite/virusguy_yel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/virusguy_yel.png -------------------------------------------------------------------------------- /res/tileset/Font_Namco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/tileset/Font_Namco.png -------------------------------------------------------------------------------- /res/wav/kill-virus-16k.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/wav/kill-virus-16k.wav -------------------------------------------------------------------------------- /res/wav/menu-change-16k.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/wav/menu-change-16k.wav -------------------------------------------------------------------------------- /res/image/finished_tiles_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/finished_tiles_.png -------------------------------------------------------------------------------- /res/image/pills_and_virus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/image/pills_and_virus.png -------------------------------------------------------------------------------- /res/sprite/mario_gameover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/mario_gameover.png -------------------------------------------------------------------------------- /res/sprite/mario_throwhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/mario_throwhand.png -------------------------------------------------------------------------------- /res/sprite/options_level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_level.png -------------------------------------------------------------------------------- /res/sprite/title_virus_blk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/title_virus_blk.png -------------------------------------------------------------------------------- /res/wav/match-louder-16k.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/wav/match-louder-16k.wav -------------------------------------------------------------------------------- /res/sprite/options_musicbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_musicbox.png -------------------------------------------------------------------------------- /res/sprite/options_musicbox_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/options_musicbox_off.png -------------------------------------------------------------------------------- /res/sprite/virusguy_disappear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/sprite/virusguy_disappear.png -------------------------------------------------------------------------------- /res/wav/pill-rotate-32k-new-louder.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Strugglemeat/drmariomd/HEAD/res/wav/pill-rotate-32k-new-louder.wav -------------------------------------------------------------------------------- /res/data/virus_X.bin: -------------------------------------------------------------------------------- 1 | "$%'(*+,-.///00000///.-,+*('%$"  "$%'(*+,-.///00000///.-,+*('%$"  -------------------------------------------------------------------------------- /out/main.d: -------------------------------------------------------------------------------- 1 | out/main.o: main.c C:/sgdk/inc/genesis.h C:/sgdk/inc/config.h \ 2 | C:/sgdk/inc/asm.h C:/sgdk/inc/types.h C:/sgdk/inc/sys.h \ 3 | C:/sgdk/inc/sram.h C:/sgdk/inc/mapper.h C:/sgdk/inc/memory.h \ 4 | C:/sgdk/inc/tools.h C:/sgdk/inc/bmp.h C:/sgdk/inc/maths.h \ 5 | C:/sgdk/inc/vdp.h C:/sgdk/inc/pal.h C:/sgdk/inc/vdp_tile.h \ 6 | C:/sgdk/inc/dma.h C:/sgdk/inc/vdp_bg.h C:/sgdk/inc/map.h \ 7 | C:/sgdk/inc/font.h C:\sgdk\res\libres.h C:/sgdk/inc/string.h \ 8 | C:/sgdk/inc/tab_cnv.h C:/sgdk/inc/maths3D.h C:/sgdk/inc/vdp_dma.h \ 9 | C:/sgdk/inc/vdp_spr.h C:/sgdk/inc/vdp_pal.h C:/sgdk/inc/vram.h \ 10 | C:/sgdk/inc/sprite_eng.h C:/sgdk/inc/sound.h C:/sgdk/inc/xgm.h \ 11 | C:/sgdk/inc/z80_ctrl.h C:/sgdk/inc/ym2612.h C:/sgdk/inc/psg.h \ 12 | C:/sgdk/inc/joy.h C:/sgdk/inc/timer.h res/resources.h 13 | -------------------------------------------------------------------------------- /out/src/main.d: -------------------------------------------------------------------------------- 1 | out/src/main.o: src/main.c C:/sgdk/inc/genesis.h C:/sgdk/inc/config.h \ 2 | C:/sgdk/inc/asm.h C:/sgdk/inc/types.h C:/sgdk/inc/sys.h \ 3 | C:/sgdk/inc/sram.h C:/sgdk/inc/mapper.h C:/sgdk/inc/memory.h \ 4 | C:/sgdk/inc/tools.h C:/sgdk/inc/bmp.h C:/sgdk/inc/maths.h \ 5 | C:/sgdk/inc/vdp.h C:/sgdk/inc/pal.h C:/sgdk/inc/vdp_tile.h \ 6 | C:/sgdk/inc/dma.h C:/sgdk/inc/vdp_bg.h C:/sgdk/inc/map.h \ 7 | C:/sgdk/inc/font.h C:\sgdk\res\libres.h C:/sgdk/inc/string.h \ 8 | C:/sgdk/inc/tab_cnv.h C:/sgdk/inc/maths3D.h C:/sgdk/inc/vdp_dma.h \ 9 | C:/sgdk/inc/vdp_spr.h C:/sgdk/inc/vdp_pal.h C:/sgdk/inc/vram.h \ 10 | C:/sgdk/inc/sprite_eng.h C:/sgdk/inc/sound.h C:/sgdk/inc/xgm.h \ 11 | C:/sgdk/inc/z80_ctrl.h C:/sgdk/inc/ym2612.h C:/sgdk/inc/psg.h \ 12 | C:/sgdk/inc/joy.h C:/sgdk/inc/timer.h res/resources.h 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # drmariomd 2 | Dr. Mario ported from NES to Sega Mega Drive 3 | 4 | project was done in SGDK v1.60 5 | 6 | had some help from this disassembly: https://github.com/brianhuffman/drmario/blob/master/drmario.a65 7 | 8 | thanks for Stef for making SGDK, Sik for always answering questions quickly on discord, and ohsat and danibus for making great examples. 9 | I was also inspired by Mairtrus who did the SMB port to MD and Alekmaul who did the Puzzli port to MD. 10 | 11 | note that this port is far from complete. here are some of the things it's missing: 12 | * 2P VS 13 | * ending screens 14 | * title screen music (couldn't find a suitable MIDI to convert) 15 | * many sound effects 16 | * the monsters don't play their dying animation, they just disappear 17 | 18 | and some of the bugs/problems: 19 | * when generating a field of viruses, there are no checks done - this isn't the way the original game does it. sometimes there'll be matches from the very start, especially at higher levels 20 | * the movement is not progressive - the pill moves the same amount regardless of how long you hold the dpad direction down. in the original game, the longer you hold down or left/right, the faster the pill will move. 21 | * rotating the pill right before it lands can be buggy 22 | * sometimes the music doesn't loop 23 | * I used waitMs(500) instead of properly implementing timers, so the virus monsters stop dancing during the 'pause' of tiles being destroyed and gravity. 24 | -------------------------------------------------------------------------------- /res/resources.h: -------------------------------------------------------------------------------- 1 | #ifndef _RES_RESOURCES_H_ 2 | #define _RES_RESOURCES_H_ 3 | 4 | extern const u8 fever[25600]; 5 | extern const u8 rotatewav[1792]; 6 | extern const u8 pillmovewav[768]; 7 | extern const u8 menuchangewav[2048]; 8 | extern const u8 matchwav[7168]; 9 | extern const u8 killviruswav[6912]; 10 | extern const u8 optionsmus[12544]; 11 | extern const u8 titlemus[4864]; 12 | extern const u8 danceX[128]; 13 | extern const u8 danceY[128]; 14 | extern const u8 throwX[26]; 15 | extern const u8 throwY[26]; 16 | extern const TileSet tileset_Font_Namco; 17 | extern const SpriteDefinition pillsprite; 18 | extern const SpriteDefinition mario; 19 | extern const SpriteDefinition mariohand; 20 | extern const SpriteDefinition mario_gameover; 21 | extern const SpriteDefinition virusguy1; 22 | extern const SpriteDefinition virusguy2; 23 | extern const SpriteDefinition virusguy3; 24 | extern const SpriteDefinition title_logoA; 25 | extern const SpriteDefinition title_logoB; 26 | extern const SpriteDefinition title_foot; 27 | extern const SpriteDefinition title_virus; 28 | extern const SpriteDefinition optlevel; 29 | extern const SpriteDefinition optdiff; 30 | extern const SpriteDefinition musicbox; 31 | extern const SpriteDefinition musicboxoff; 32 | extern const SpriteDefinition optionssel1spr; 33 | extern const SpriteDefinition optionssel2spr; 34 | extern const SpriteDefinition optionssel3spr; 35 | extern const SpriteDefinition startspr; 36 | extern const Image background; 37 | extern const Image pausedpalette; 38 | extern const Image pillbg; 39 | extern const Image title; 40 | extern const Image options; 41 | extern const Image finishedtiles; 42 | extern const Image blacktile; 43 | extern const Image orangetile; 44 | 45 | #endif // _RES_RESOURCES_H_ 46 | -------------------------------------------------------------------------------- /src/boot/rom_head.c: -------------------------------------------------------------------------------- 1 | #include "genesis.h" 2 | 3 | __attribute__((externally_visible)) 4 | const struct 5 | { 6 | char console[16]; /* Console Name (16) */ 7 | char copyright[16]; /* Copyright Information (16) */ 8 | char title_local[48]; /* Domestic Name (48) */ 9 | char title_int[48]; /* Overseas Name (48) */ 10 | char serial[14]; /* Serial Number (2, 12) */ 11 | u16 checksum; /* Checksum (2) */ 12 | char IOSupport[16]; /* I/O Support (16) */ 13 | u32 rom_start; /* ROM Start Address (4) */ 14 | u32 rom_end; /* ROM End Address (4) */ 15 | u32 ram_start; /* Start of Backup RAM (4) */ 16 | u32 ram_end; /* End of Backup RAM (4) */ 17 | char sram_sig[2]; /* "RA" for save ram (2) */ 18 | u16 sram_type; /* 0xF820 for save ram on odd bytes (2) */ 19 | u32 sram_start; /* SRAM start address - normally 0x200001 (4) */ 20 | u32 sram_end; /* SRAM end address - start + 2*sram_size (4) */ 21 | char modem_support[12]; /* Modem Support (24) */ 22 | char notes[40]; /* Memo (40) */ 23 | char region[16]; /* Country Support (16) */ 24 | } rom_header = { 25 | #if (ENABLE_BANK_SWITCH != 0) 26 | "SEGA SSF ", 27 | #else 28 | "SEGA MEGA DRIVE ", 29 | #endif 30 | "(C)SGDK 2020 ", 31 | "SAMPLE PROGRAM ", 32 | "SAMPLE PROGRAM ", 33 | "GM 00000000-00", 34 | 0x0000, 35 | "JD ", 36 | 0x00000000, 37 | #if (ENABLE_BANK_SWITCH != 0) 38 | 0x003FFFFF, 39 | #else 40 | 0x000FFFFF, 41 | #endif 42 | 0x00FF0000, 43 | 0x00FFFFFF, 44 | "RA", 45 | 0xF820, 46 | 0x00200000, 47 | 0x002001FF, 48 | " ", 49 | "DEMONSTRATION PROGRAM ", 50 | "JUE " 51 | }; 52 | -------------------------------------------------------------------------------- /out/res/resources.d: -------------------------------------------------------------------------------- 1 | out/res/resources.o: res/resources.res \ 2 | C:/sgdk/projects/drmario/res/virus_X.bin \ 3 | C:/sgdk/projects/drmario/res/wav/pill-rotate-32k-new-louder.wav \ 4 | C:/sgdk/projects/drmario/res/orangetile_.png \ 5 | C:/sgdk/projects/drmario/res/title_foot.png \ 6 | C:/sgdk/projects/drmario/res/options_level.png \ 7 | C:/sgdk/projects/drmario/res/music/fever.vgm \ 8 | C:/sgdk/projects/drmario/res/virusguy_red.png \ 9 | C:/sgdk/projects/drmario/res/wav/pill-move-2x.wav \ 10 | C:/sgdk/projects/drmario/res/music/options.vgm \ 11 | C:/sgdk/projects/drmario/res/virusguy_yel.png \ 12 | C:/sgdk/projects/drmario/res/virusguy_blu.png \ 13 | C:/sgdk/projects/drmario/res/wav/kill-virus-16k.wav \ 14 | C:/sgdk/projects/drmario/res/options_musicbox_off.png \ 15 | C:/sgdk/projects/drmario/res/start.png \ 16 | C:/sgdk/projects/drmario/res/mario_throwhand.png \ 17 | C:/sgdk/projects/drmario/res/title_logo_B.png \ 18 | C:/sgdk/projects/drmario/res/virus_Y.bin \ 19 | C:/sgdk/projects/drmario/res/mario_3pc_.png \ 20 | C:/sgdk/projects/drmario/res/Font_Namco.png \ 21 | C:/sgdk/projects/drmario/res/music/title.vgm \ 22 | C:/sgdk/projects/drmario/res/title_logo_A.png \ 23 | C:/sgdk/projects/drmario/res/throw_Y.bin \ 24 | C:/sgdk/projects/drmario/res/bgpause_224.png \ 25 | C:/sgdk/projects/drmario/res/options_sel3.png \ 26 | C:/sgdk/projects/drmario/res/blacktile.png \ 27 | C:/sgdk/projects/drmario/res/mario_gameover.png \ 28 | C:/sgdk/projects/drmario/res/pills_.png \ 29 | C:/sgdk/projects/drmario/res/finished_tiles_.png \ 30 | C:/sgdk/projects/drmario/res/options_2.png \ 31 | C:/sgdk/projects/drmario/res/wav/match-louder-16k.wav \ 32 | C:/sgdk/projects/drmario/res/options_sel2.png \ 33 | C:/sgdk/projects/drmario/res/pills_and_virus.png \ 34 | C:/sgdk/projects/drmario/res/title_.png \ 35 | C:/sgdk/projects/drmario/res/title_virus_blk.png \ 36 | C:/sgdk/projects/drmario/res/throw_X.bin \ 37 | C:/sgdk/projects/drmario/res/paused_.png \ 38 | C:/sgdk/projects/drmario/res/options_sel1.png \ 39 | C:/sgdk/projects/drmario/res/options_musicbox.png \ 40 | C:/sgdk/projects/drmario/res/options_diff.png \ 41 | C:/sgdk/projects/drmario/res/wav/menu-change-16k.wav -------------------------------------------------------------------------------- /res/resources.res: -------------------------------------------------------------------------------- 1 | IMAGE background "image\bgpause_224.png" AUTO 2 | IMAGE pausedpalette "image\paused_.png" AUTO 3 | 4 | SPRITE pillsprite "sprite\pills_.png" 1 1 FAST 0 5 | IMAGE pillbg "image\pills_and_virus.png" -1 6 | 7 | SPRITE mario "sprite\mario_3pc_.png" 3 5 FAST 0 8 | SPRITE mariohand "sprite\mario_throwhand.png" 1 1 FAST 0 9 | SPRITE mario_gameover "sprite\mario_gameover.png" 5 5 FAST 0 10 | 11 | TILESET tileset_Font_Namco "tileset\Font_Namco.png" 12 | 13 | XGM fever "music\fever.vgm" 14 | 15 | SPRITE virusguy1 "sprite\virusguy_red.png" 3 3 FAST 0 16 | SPRITE virusguy2 "sprite\virusguy_yel.png" 3 3 FAST 0 17 | SPRITE virusguy3 "sprite\virusguy_blu.png" 3 3 FAST 0 18 | #SPRITE virusguypopspr "sprite\virusguy_disappear.png" 3 3 FAST 0 19 | 20 | WAV rotatewav "wav\pill-rotate-32k-new-louder.wav" 0 16000 21 | WAV pillmovewav "wav\pill-move-2x.wav" 0 16000 22 | WAV menuchangewav "wav\menu-change-16k.wav" 0 16000 23 | WAV matchwav "wav\match-louder-16k.wav" 0 16000 24 | WAV killviruswav "wav\kill-virus-16k.wav" 0 16000 25 | 26 | IMAGE title "image\title_.png" AUTO 27 | SPRITE title_logoA "sprite\title_logo_A.png" 16 5 FAST 0 28 | SPRITE title_logoB "sprite\title_logo_B.png" 7 5 FAST 0 29 | SPRITE title_foot "sprite\title_foot.png" 2 1 FAST 0 30 | SPRITE title_virus "sprite\title_virus_blk.png" 3 3 FAST 0 31 | 32 | IMAGE options "image\options_2.png" AUTO 33 | 34 | SPRITE optlevel "sprite\options_level.png" 1 1 FAST 0 35 | SPRITE optdiff "sprite\options_diff.png" 3 1 FAST 0 36 | SPRITE musicbox "sprite\options_musicbox.png" 7 3 FAST 0 37 | SPRITE musicboxoff "sprite\options_musicbox_off.png" 5 3 FAST 0 38 | SPRITE optionssel1spr "sprite\options_sel1.png" 13 3 FAST 0 39 | SPRITE optionssel2spr "sprite\options_sel2.png" 7 3 FAST 0 40 | SPRITE optionssel3spr "sprite\options_sel3.png" 12 3 FAST 0 41 | 42 | XGM optionsmus "music\options.vgm" 43 | XGM titlemus "music\title.vgm" 44 | 45 | SPRITE startspr "sprite\start.png" 5 1 FAST 0 46 | 47 | BIN danceX "data\virus_X.bin" 48 | BIN danceY "data\virus_Y.bin" 49 | 50 | IMAGE finishedtiles "image\finished_tiles_.png" NONE 51 | IMAGE blacktile "image\blacktile.png" AUTO 52 | IMAGE orangetile "image\orangetile_.png" AUTO 53 | 54 | BIN throwX "data\throw_X.bin" 55 | BIN throwY "data\throw_Y.bin" -------------------------------------------------------------------------------- /src/boot/sega.s: -------------------------------------------------------------------------------- 1 | .section .text.keepboot 2 | 3 | *------------------------------------------------------- 4 | * 5 | * Sega startup code for the GNU Assembler 6 | * Translated from: 7 | * Sega startup code for the Sozobon C compiler 8 | * Written by Paul W. Lee 9 | * Modified by Charles Coty 10 | * Modified by Stephane Dallongeville 11 | * 12 | *------------------------------------------------------- 13 | 14 | .globl _hard_reset 15 | 16 | .org 0x00000000 17 | 18 | _Start_Of_Rom: 19 | _Vecteurs_68K: 20 | dc.l 0x00000000 /* Stack address */ 21 | dc.l _Entry_Point /* Program start address */ 22 | dc.l _Bus_Error 23 | dc.l _Address_Error 24 | dc.l _Illegal_Instruction 25 | dc.l _Zero_Divide 26 | dc.l _Chk_Instruction 27 | dc.l _Trapv_Instruction 28 | dc.l _Privilege_Violation 29 | dc.l _Trace 30 | dc.l _Line_1010_Emulation 31 | dc.l _Line_1111_Emulation 32 | dc.l _Error_Exception, _Error_Exception, _Error_Exception, _Error_Exception 33 | dc.l _Error_Exception, _Error_Exception, _Error_Exception, _Error_Exception 34 | dc.l _Error_Exception, _Error_Exception, _Error_Exception, _Error_Exception 35 | dc.l _Error_Exception, _INT, _EXTINT, _INT 36 | dc.l _HINT 37 | dc.l _INT 38 | dc.l _VINT 39 | dc.l _INT 40 | dc.l _INT,_INT,_INT,_INT,_INT,_INT,_INT,_INT 41 | dc.l _INT,_INT,_INT,_INT,_INT,_INT,_INT,_INT 42 | dc.l _INT,_INT,_INT,_INT,_INT,_INT,_INT,_INT 43 | dc.l _INT,_INT,_INT,_INT,_INT,_INT,_INT,_INT 44 | 45 | .incbin "out/rom_head.bin", 0x10, 0x100 46 | 47 | _Entry_Point: 48 | move #0x2700,%sr 49 | tst.l 0xa10008 50 | bne.s SkipJoyDetect 51 | 52 | tst.w 0xa1000c 53 | 54 | SkipJoyDetect: 55 | bne.s SkipSetup 56 | 57 | lea Table,%a5 58 | movem.w (%a5)+,%d5-%d7 59 | movem.l (%a5)+,%a0-%a4 60 | * Check Version Number 61 | move.b -0x10ff(%a1),%d0 62 | andi.b #0x0f,%d0 63 | beq.s WrongVersion 64 | 65 | * Sega Security Code (SEGA) 66 | move.l #0x53454741,0x2f00(%a1) 67 | WrongVersion: 68 | move.w (%a4),%d0 69 | moveq #0x00,%d0 70 | movea.l %d0,%a6 71 | move %a6,%usp 72 | move.w %d7,(%a1) 73 | move.w %d7,(%a2) 74 | 75 | * Jump to initialisation process now... 76 | 77 | jmp _start_entry 78 | 79 | SkipSetup: 80 | jmp _reset_entry 81 | 82 | 83 | Table: 84 | dc.w 0x8000,0x3fff,0x0100 85 | dc.l 0xA00000,0xA11100,0xA11200,0xC00000,0xC00004 86 | 87 | 88 | *------------------------------------------------ 89 | * 90 | * interrupt functions 91 | * 92 | *------------------------------------------------ 93 | 94 | registersDump: 95 | move.l %d0,registerState+0 96 | move.l %d1,registerState+4 97 | move.l %d2,registerState+8 98 | move.l %d3,registerState+12 99 | move.l %d4,registerState+16 100 | move.l %d5,registerState+20 101 | move.l %d6,registerState+24 102 | move.l %d7,registerState+28 103 | move.l %a0,registerState+32 104 | move.l %a1,registerState+36 105 | move.l %a2,registerState+40 106 | move.l %a3,registerState+44 107 | move.l %a4,registerState+48 108 | move.l %a5,registerState+52 109 | move.l %a6,registerState+56 110 | move.l %a7,registerState+60 111 | rts 112 | 113 | busAddressErrorDump: 114 | move.w 4(%sp),ext1State 115 | move.l 6(%sp),addrState 116 | move.w 10(%sp),ext2State 117 | move.w 12(%sp),srState 118 | move.l 14(%sp),pcState 119 | jmp registersDump 120 | 121 | exception4WDump: 122 | move.w 4(%sp),srState 123 | move.l 6(%sp),pcState 124 | move.w 10(%sp),ext1State 125 | jmp registersDump 126 | 127 | exceptionDump: 128 | move.w 4(%sp),srState 129 | move.l 6(%sp),pcState 130 | jmp registersDump 131 | 132 | 133 | _Bus_Error: 134 | jsr busAddressErrorDump 135 | movem.l %d0-%d1/%a0-%a1,-(%sp) 136 | move.l busErrorCB, %a0 137 | jsr (%a0) 138 | movem.l (%sp)+,%d0-%d1/%a0-%a1 139 | rte 140 | 141 | _Address_Error: 142 | jsr busAddressErrorDump 143 | movem.l %d0-%d1/%a0-%a1,-(%sp) 144 | move.l addressErrorCB, %a0 145 | jsr (%a0) 146 | movem.l (%sp)+,%d0-%d1/%a0-%a1 147 | rte 148 | 149 | _Illegal_Instruction: 150 | jsr exception4WDump 151 | movem.l %d0-%d1/%a0-%a1,-(%sp) 152 | move.l illegalInstCB, %a0 153 | jsr (%a0) 154 | movem.l (%sp)+,%d0-%d1/%a0-%a1 155 | rte 156 | 157 | _Zero_Divide: 158 | jsr exceptionDump 159 | movem.l %d0-%d1/%a0-%a1,-(%sp) 160 | move.l zeroDivideCB, %a0 161 | jsr (%a0) 162 | movem.l (%sp)+,%d0-%d1/%a0-%a1 163 | rte 164 | 165 | _Chk_Instruction: 166 | jsr exception4WDump 167 | movem.l %d0-%d1/%a0-%a1,-(%sp) 168 | move.l chkInstCB, %a0 169 | jsr (%a0) 170 | movem.l (%sp)+,%d0-%d1/%a0-%a1 171 | rte 172 | 173 | _Trapv_Instruction: 174 | jsr exception4WDump 175 | movem.l %d0-%d1/%a0-%a1,-(%sp) 176 | move.l trapvInstCB, %a0 177 | jsr (%a0) 178 | movem.l (%sp)+,%d0-%d1/%a0-%a1 179 | rte 180 | 181 | _Privilege_Violation: 182 | jsr exceptionDump 183 | movem.l %d0-%d1/%a0-%a1,-(%sp) 184 | move.l privilegeViolationCB, %a0 185 | jsr (%a0) 186 | movem.l (%sp)+,%d0-%d1/%a0-%a1 187 | rte 188 | 189 | _Trace: 190 | jsr exceptionDump 191 | movem.l %d0-%d1/%a0-%a1,-(%sp) 192 | move.l traceCB, %a0 193 | jsr (%a0) 194 | movem.l (%sp)+,%d0-%d1/%a0-%a1 195 | rte 196 | 197 | _Line_1010_Emulation: 198 | _Line_1111_Emulation: 199 | jsr exceptionDump 200 | movem.l %d0-%d1/%a0-%a1,-(%sp) 201 | move.l line1x1xCB, %a0 202 | jsr (%a0) 203 | movem.l (%sp)+,%d0-%d1/%a0-%a1 204 | rte 205 | 206 | _Error_Exception: 207 | jsr exceptionDump 208 | movem.l %d0-%d1/%a0-%a1,-(%sp) 209 | move.l errorExceptionCB, %a0 210 | jsr (%a0) 211 | movem.l (%sp)+,%d0-%d1/%a0-%a1 212 | rte 213 | 214 | _INT: 215 | movem.l %d0-%d1/%a0-%a1,-(%sp) 216 | move.l intCB, %a0 217 | jsr (%a0) 218 | movem.l (%sp)+,%d0-%d1/%a0-%a1 219 | rte 220 | 221 | _EXTINT: 222 | movem.l %d0-%d1/%a0-%a1,-(%sp) 223 | move.l eintCB, %a0 224 | jsr (%a0) 225 | movem.l (%sp)+,%d0-%d1/%a0-%a1 226 | rte 227 | 228 | _HINT: 229 | movem.l %d0-%d1/%a0-%a1,-(%sp) 230 | move.l hintCB, %a0 231 | jsr (%a0) 232 | movem.l (%sp)+,%d0-%d1/%a0-%a1 233 | rte 234 | 235 | _VINT: 236 | movem.l %d0-%d1/%a0-%a1,-(%sp) 237 | ori.w #0x0001, intTrace // in V-Int 238 | addq.l #1, vtimer // increment frame counter (more a vint counter) 239 | btst #3, VBlankProcess+1 // PROCESS_XGM_TASK ? (use VBlankProcess+1 as btst is a byte operation) 240 | beq.s _no_xgm_task 241 | 242 | jsr XGM_doVBlankProcess // do XGM vblank task 243 | 244 | _no_xgm_task: 245 | btst #1, VBlankProcess+1 // PROCESS_BITMAP_TASK ? (use VBlankProcess+1 as btst is a byte operation) 246 | beq.s _no_bmp_task 247 | 248 | jsr BMP_doVBlankProcess // do BMP vblank task 249 | 250 | _no_bmp_task: 251 | move.l vintCB, %a0 // load user callback 252 | jsr (%a0) // call user callback 253 | andi.w #0xFFFE, intTrace // out V-Int 254 | movem.l (%sp)+,%d0-%d1/%a0-%a1 255 | rte 256 | 257 | 258 | *------------------------------------------------ 259 | * 260 | * Copyright (c) 1988 by Sozobon, Limited. Author: Johann Ruegg 261 | * 262 | * Permission is granted to anyone to use this software for any purpose 263 | * on any computer system, and to redistribute it freely, with the 264 | * following restrictions: 265 | * 1) No charge may be made other than reasonable charges for reproduction. 266 | * 2) Modified versions must be clearly marked as such. 267 | * 3) The authors are not responsible for any harmful consequences 268 | * of using this software, even if they result from defects in it. 269 | * 270 | *------------------------------------------------ 271 | 272 | ldiv: 273 | move.l 4(%a7),%d0 274 | bpl ld1 275 | neg.l %d0 276 | ld1: 277 | move.l 8(%a7),%d1 278 | bpl ld2 279 | neg.l %d1 280 | eor.b #0x80,4(%a7) 281 | ld2: 282 | bsr i_ldiv /* d0 = d0/d1 */ 283 | tst.b 4(%a7) 284 | bpl ld3 285 | neg.l %d0 286 | ld3: 287 | rts 288 | 289 | lmul: 290 | move.l 4(%a7),%d0 291 | bpl lm1 292 | neg.l %d0 293 | lm1: 294 | move.l 8(%a7),%d1 295 | bpl lm2 296 | neg.l %d1 297 | eor.b #0x80,4(%a7) 298 | lm2: 299 | bsr i_lmul /* d0 = d0*d1 */ 300 | tst.b 4(%a7) 301 | bpl lm3 302 | neg.l %d0 303 | lm3: 304 | rts 305 | 306 | lrem: 307 | move.l 4(%a7),%d0 308 | bpl lr1 309 | neg.l %d0 310 | lr1: 311 | move.l 8(%a7),%d1 312 | bpl lr2 313 | neg.l %d1 314 | lr2: 315 | bsr i_ldiv /* d1 = d0%d1 */ 316 | move.l %d1,%d0 317 | tst.b 4(%a7) 318 | bpl lr3 319 | neg.l %d0 320 | lr3: 321 | rts 322 | 323 | ldivu: 324 | move.l 4(%a7),%d0 325 | move.l 8(%a7),%d1 326 | bsr i_ldiv 327 | rts 328 | 329 | lmulu: 330 | move.l 4(%a7),%d0 331 | move.l 8(%a7),%d1 332 | bsr i_lmul 333 | rts 334 | 335 | lremu: 336 | move.l 4(%a7),%d0 337 | move.l 8(%a7),%d1 338 | bsr i_ldiv 339 | move.l %d1,%d0 340 | rts 341 | * 342 | * A in d0, B in d1, return A*B in d0 343 | * 344 | i_lmul: 345 | move.l %d3,%a2 /* save d3 */ 346 | move.w %d1,%d2 347 | mulu %d0,%d2 /* d2 = Al * Bl */ 348 | 349 | move.l %d1,%d3 350 | swap %d3 351 | mulu %d0,%d3 /* d3 = Al * Bh */ 352 | 353 | swap %d0 354 | mulu %d1,%d0 /* d0 = Ah * Bl */ 355 | 356 | add.l %d3,%d0 /* d0 = (Ah*Bl + Al*Bh) */ 357 | swap %d0 358 | clr.w %d0 /* d0 = (Ah*Bl + Al*Bh) << 16 */ 359 | 360 | add.l %d2,%d0 /* d0 = A*B */ 361 | move.l %a2,%d3 /* restore d3 */ 362 | rts 363 | * 364 | *A in d0, B in d1, return A/B in d0, A%B in d1 365 | * 366 | i_ldiv: 367 | tst.l %d1 368 | bne nz1 369 | 370 | * divide by zero 371 | * divu #0,%d0 /* cause trap */ 372 | move.l #0x80000000,%d0 373 | move.l %d0,%d1 374 | rts 375 | nz1: 376 | move.l %d3,%a2 /* save d3 */ 377 | cmp.l %d1,%d0 378 | bhi norm 379 | beq is1 380 | * AB and B is not 0 392 | norm: 393 | cmp.l #1,%d1 394 | bne not1 395 | * B==1, so ret A, rem 0 396 | clr.l %d1 397 | move.l %a2,%d3 /* restore d3 */ 398 | rts 399 | * check for A short (implies B short also) 400 | not1: 401 | cmp.l #0xffff,%d0 402 | bhi slow 403 | * A short and B short -- use 'divu' 404 | divu %d1,%d0 /* d0 = REM:ANS */ 405 | swap %d0 /* d0 = ANS:REM */ 406 | clr.l %d1 407 | move.w %d0,%d1 /* d1 = REM */ 408 | clr.w %d0 409 | swap %d0 410 | move.l %a2,%d3 /* restore d3 */ 411 | rts 412 | * check for B short 413 | slow: 414 | cmp.l #0xffff,%d1 415 | bhi slower 416 | * A long and B short -- use special stuff from gnu 417 | move.l %d0,%d2 418 | clr.w %d2 419 | swap %d2 420 | divu %d1,%d2 /* d2 = REM:ANS of Ahi/B */ 421 | clr.l %d3 422 | move.w %d2,%d3 /* d3 = Ahi/B */ 423 | swap %d3 424 | 425 | move.w %d0,%d2 /* d2 = REM << 16 + Alo */ 426 | divu %d1,%d2 /* d2 = REM:ANS of stuff/B */ 427 | 428 | move.l %d2,%d1 429 | clr.w %d1 430 | swap %d1 /* d1 = REM */ 431 | 432 | clr.l %d0 433 | move.w %d2,%d0 434 | add.l %d3,%d0 /* d0 = ANS */ 435 | move.l %a2,%d3 /* restore d3 */ 436 | rts 437 | * A>B, B > 1 438 | slower: 439 | move.l #1,%d2 440 | clr.l %d3 441 | moreadj: 442 | cmp.l %d0,%d1 443 | bhs adj 444 | add.l %d2,%d2 445 | add.l %d1,%d1 446 | bpl moreadj 447 | * we shifted B until its >A or sign bit set 448 | * we shifted #1 (d2) along with it 449 | adj: 450 | cmp.l %d0,%d1 451 | bhi ltuns 452 | or.l %d2,%d3 453 | sub.l %d1,%d0 454 | ltuns: 455 | lsr.l #1,%d1 456 | lsr.l #1,%d2 457 | bne adj 458 | * d3=answer, d0=rem 459 | move.l %d0,%d1 460 | move.l %d3,%d0 461 | move.l %a2,%d3 /* restore d3 */ 462 | rts 463 | -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- 1 | //dr mario ported to mega drive in SGDK 1.60 by Strugglemeat in Jan/Feb 2021 2 | #include 3 | #include 4 | 5 | void drawFallingPill(); 6 | void drawBGpills(); 7 | void joyEvent(u16 joy, u16 changed, u16 state); 8 | void handleInput(); 9 | void drawScreenText(); 10 | void createVirus(); 11 | void animateVirus(); 12 | void drawGameOver(u8 which); 13 | void checkMatches(); 14 | void adjustGraphics(); 15 | void doGravity(); 16 | 17 | typedef struct { 18 | u8 x;//from 0 to 7 19 | u8 y;//from 0 to 15 20 | u8 color1;//1=red,2=yellow,3=blue -- can't use 0 for red because 0 stands for a blank cell in the playfield array 21 | u8 color2; 22 | bool rotated;//0=horiz,1=vert 23 | Sprite* sprite1;//first section of the pill - in horiz, it's the left half. in vert, it's the bottom 24 | Sprite* sprite2;//second section of the pill - in horiz, it's the right half. in vert, it's the top 25 | } Pill; 26 | 27 | Pill fallingpill = {3,0,0,0,0,0,0}; 28 | Pill previewpill = {0,0,0,0,0,0,0}; 29 | 30 | #define VERT_TOP 0 31 | #define VERT_BOT 1 32 | #define HORI_LEFT 2 33 | #define HORI_RIGHT 3 34 | 35 | u8 playfield[9][17][2];//game board is 8x16 but in my experience using arrays in SGDK, you want to make them 1 bigger to avoid funky stuff from happening 36 | //playfield dimensions are: 0=tile color (1,2,3), 1=frame to draw 37 | 38 | #define playfieldX 96//96 39 | #define playfieldY 72//80 40 | #define wellMaxX 8 41 | #define wellMaxY 16 42 | 43 | u8 inputDelay,rotateDelay; 44 | const u8 inputDelayAmt=6, downInputDelayAmt=4; 45 | u8 displayDev=0,gameoverdrawn; 46 | bool paused, pieceLanded=1, donedrawing=0, OKtopress; 47 | int score, topscore=10000; 48 | u8 level=0,virus,speed=1,music,gameState=0,menuItem;//state 0=title, state 1=options, state2=load game, state3=play game, state4=game over, state5=game won 49 | s8 virusred,virusyel,virusblu; 50 | char hud_string[40] = ""; 51 | u8 chain=0; u8 scoreMultiplier[11]={1,2,4,8,16,32,32,32,32,32,32}; 52 | u8 throwindex; 53 | 54 | Sprite* virus1; 55 | Sprite* virus2; 56 | Sprite* virus3; 57 | Sprite* drmario; 58 | Sprite* drmario_dead; 59 | Sprite* drmario_hand; 60 | 61 | Sprite* titlelogoA;Sprite* titlelogoB;Sprite* titlefoot;Sprite* titlevirus; 62 | 63 | Sprite* options_level; 64 | Sprite* options_diff; 65 | Sprite* options_musbox; 66 | Sprite* options_musboxoff; 67 | Sprite* optionssel1; Sprite* optionssel2; Sprite* optionssel3; 68 | 69 | Sprite* start_spr; 70 | 71 | u8 fallingDelay=50,fallingDelayAmt,animDelay=255; 72 | 73 | int main() 74 | { 75 | VDP_setScreenWidth256();//we use 256x224 - same as NTSC NES. note that code probably needs to be changed for this to play properly in PAL regions 76 | 77 | VDP_loadFontData(tileset_Font_Namco.tiles, 96, CPU); 78 | 79 | SPR_init(); 80 | 81 | JOY_init(); 82 | JOY_setEventHandler(&joyEvent); 83 | 84 | u8 titleAnim;u8 titleAnim2; 85 | while(1) 86 | { 87 | 88 | if(gameState==0) 89 | { 90 | if(donedrawing==0) 91 | { 92 | VDP_drawImage(BG_B,&title,0,0); 93 | titlelogoA = SPR_addSprite(&title_logoA,32,55,TILE_ATTR(PAL0,0,FALSE,FALSE)); 94 | titlelogoB = SPR_addSprite(&title_logoB,160,55,TILE_ATTR(PAL0,0,FALSE,FALSE)); 95 | titlefoot = SPR_addSprite(&title_foot,52,192,TILE_ATTR(PAL0,0,FALSE,FALSE)); 96 | titlevirus= SPR_addSprite(&title_virus,191,170,TILE_ATTR(PAL0,0,FALSE,FALSE));SPR_setAnim(titlevirus,1); 97 | SPR_update(); 98 | XGM_setLoopNumber(-1); 99 | //XGM_startPlay(titlemus); 100 | donedrawing=1; 101 | } 102 | u16 value = JOY_readJoypad(JOY_1); 103 | if (value & BUTTON_START){gameState=1;inputDelay=inputDelayAmt;donedrawing=0;XGM_setLoopNumber(-1);XGM_startPlay(optionsmus);//VDP_clearPlane(BG_A,FALSE); 104 | SPR_reset(); 105 | } 106 | 107 | titleAnim++;titleAnim2++; 108 | if(titleAnim>32)titleAnim=0; 109 | if(titleAnim2>64)titleAnim2=0; 110 | if(titleAnim==0){ 111 | SPR_setVisibility(titlelogoA,VISIBLE);SPR_setVisibility(titlelogoB,VISIBLE);SPR_setVisibility(titlefoot,VISIBLE); 112 | SPR_update();} 113 | else if(titleAnim==16) { 114 | SPR_setVisibility(titlelogoA,HIDDEN);SPR_setVisibility(titlelogoB,HIDDEN);SPR_setVisibility(titlefoot,HIDDEN); 115 | SPR_update();} 116 | 117 | if(titleAnim2==16){SPR_setAnim(titlevirus,0);SPR_update();}//dancing LEFT 118 | else if(titleAnim2==32){SPR_setAnim(titlevirus,1);SPR_update();}//neutral 119 | else if(titleAnim2==48){SPR_setVisibility(titlevirus,HIDDEN);SPR_update();}//dancing RIGHT 120 | else if(titleAnim2==64){SPR_setVisibility(titlevirus,VISIBLE);SPR_setAnim(titlevirus,1);SPR_update();}//neutral 121 | } 122 | 123 | if(gameState==1) 124 | { 125 | if(donedrawing==0) 126 | { 127 | gameoverdrawn=0;//re-initialize after they lost 128 | VDP_clearPlane(BG_A,TRUE);VDP_clearPlane(BG_B,TRUE); 129 | VDP_drawImageEx(BG_B,&options,16,0,0,TRUE,TRUE); 130 | VDP_fillTileData(0, 155, 1,FALSE); 131 | menuItem=0;score=0;//reset everything level=0;speed=1;music=0; 132 | options_level = SPR_addSprite(&optlevel,87,76,TILE_ATTR(PAL0,0,FALSE,FALSE)); 133 | options_diff = SPR_addSprite(&optdiff,128,128,TILE_ATTR(PAL0,0,FALSE,FALSE)); 134 | options_musbox = SPR_addSprite(&musicbox,59,179,TILE_ATTR(PAL0,0,FALSE,FALSE)); 135 | options_musboxoff = SPR_addSprite(&musicboxoff,170,179,TILE_ATTR(PAL0,0,FALSE,FALSE)); 136 | SPR_setVisibility(options_musboxoff,HIDDEN); 137 | optionssel1 = SPR_addSprite(&optionssel1spr,40,49,TILE_ATTR(PAL0,0,FALSE,FALSE)); 138 | optionssel2 = SPR_addSprite(&optionssel2spr,40,105,TILE_ATTR(PAL0,0,FALSE,FALSE)); 139 | SPR_setVisibility(optionssel2,HIDDEN); 140 | optionssel3 = SPR_addSprite(&optionssel3spr,40,153,TILE_ATTR(PAL0,0,FALSE,FALSE)); 141 | SPR_setVisibility(optionssel3,HIDDEN); 142 | SPR_update(); 143 | VDP_setPaletteColor(15,RGB24_TO_VDPCOLOR(0xFFFFFF)); 144 | VDP_drawText("00",23,9); 145 | XGM_setPCM(64, rotatewav, sizeof(rotatewav)); 146 | XGM_setPCM(65, pillmovewav, sizeof(pillmovewav)); 147 | XGM_setPCM(66, menuchangewav, sizeof(menuchangewav)); 148 | XGM_setPCM(67,matchwav,sizeof(matchwav)); 149 | //XGM_setPCM(68,killviruswav,sizeof(killviruswav)); 150 | //XGM_setPCM(68,landedwav,sizeof(landedwav)); 151 | 152 | if(level>0){ 153 | SPR_setPosition(options_level,87+(level*4),76); 154 | 155 | if(level<10)sprintf(hud_string,"0%d",level); 156 | else if(level>=10)sprintf(hud_string,"%d",level); 157 | VDP_drawText(hud_string,23,9); 158 | } 159 | 160 | if(speed!=0){SPR_setPosition(options_diff,88+(speed*40),128);SPR_update();} 161 | 162 | if(music!=0){SPR_setVisibility(options_musboxoff,VISIBLE);SPR_setVisibility(options_musbox,HIDDEN);SPR_update();} 163 | 164 | donedrawing=1; 165 | } 166 | 167 | if(inputDelay>0)inputDelay--; 168 | u16 value = JOY_readJoypad(JOY_1); 169 | if(!(value & BUTTON_START))OKtopress=1; 170 | if (value & BUTTON_START && inputDelay==0 && OKtopress==1){ 171 | VDP_clearText(23,9,2); 172 | SPR_reset(); 173 | gameState=2; 174 | } 175 | 176 | if(value & BUTTON_RIGHT && inputDelay==0 && level<20 && menuItem==0){level++;inputDelay=6;SPR_setPosition(options_level,87+(level*4),76);SPR_update(); 177 | if(level<10)sprintf(hud_string,"0%d",level); 178 | else if(level>=10)sprintf(hud_string,"%d",level); 179 | VDP_drawText(hud_string,23,9); 180 | XGM_startPlayPCM(65,1,SOUND_PCM_CH2); 181 | } 182 | if(value & BUTTON_LEFT && inputDelay==0 && level>0 && menuItem==0){level--;inputDelay=6;SPR_setPosition(options_level,87+(level*4),76);SPR_update(); 183 | if(level<10)sprintf(hud_string,"0%d",level); 184 | else if(level>=10)sprintf(hud_string,"%d",level); 185 | VDP_drawText(hud_string,23,9); 186 | XGM_startPlayPCM(65,1,SOUND_PCM_CH2); 187 | } 188 | 189 | if(menuItem!=0){SPR_setVisibility(optionssel1,HIDDEN);SPR_update();} 190 | else if(menuItem==0){SPR_setVisibility(optionssel1,VISIBLE);SPR_update();} 191 | 192 | if(menuItem==1){SPR_setVisibility(optionssel2,VISIBLE);SPR_update();} 193 | else if(menuItem!=1){SPR_setVisibility(optionssel2,HIDDEN);SPR_update();} 194 | 195 | if(menuItem==2){SPR_setVisibility(optionssel3,VISIBLE);SPR_update();} 196 | else if(menuItem!=2){SPR_setVisibility(optionssel3,HIDDEN);SPR_update();} 197 | } 198 | 199 | if(gameState==2){//loading the game 200 | waitMs(20); 201 | gameoverdrawn=0;//re-initialize after winning 202 | VDP_drawImageEx(BG_B,&background,16,0,0,TRUE,TRUE); 203 | #define BGend 131 204 | VDP_loadTileSet(orangetile.tileset,8,DMA);//re-initialize after setting this as black after player won 205 | VDP_setPaletteColor(8,RGB24_TO_VDPCOLOR(0xf0bc3c));//rescomp auto-picks a funny color for orange, fixes 206 | VDP_setPaletteColor(2,RGB24_TO_VDPCOLOR(0x887000));//same thing but for mario's hair 207 | if(speed==1)VDP_setPaletteColor(5,RGB24_TO_VDPCOLOR(0x44009C));//replace colors for bg in MED and HI 208 | else if(speed==2)VDP_setPaletteColor(5,RGB24_TO_VDPCOLOR(0x747474)); 209 | 210 | VDP_loadTileSet(pillbg.tileset,BGend,DMA);//load the pill graphics into TILES after the background 211 | 212 | if(speed==0)fallingDelayAmt=70; 213 | else if(speed==1)fallingDelayAmt=50; 214 | else if(speed==2)fallingDelayAmt=30; 215 | 216 | fallingpill.sprite1 = SPR_addSprite(&pillsprite,(fallingpill.x*8)+playfieldX,(fallingpill.y*8)+playfieldY,TILE_ATTR(PAL0,0,FALSE,FALSE)); 217 | fallingpill.sprite2 = SPR_addSprite(&pillsprite,(fallingpill.x*8)+playfieldX+8,(fallingpill.y*8)+playfieldY,TILE_ATTR(PAL0,0,FALSE,FALSE)); 218 | SPR_setVisibility(fallingpill.sprite1,HIDDEN);SPR_setVisibility(fallingpill.sprite2,HIDDEN); 219 | fallingpill.color1=(random() % (3-1+1))+1, fallingpill.color2=(random() % (3-1+1))+1;//drawFallingPill(); 220 | 221 | drmario = SPR_addSprite(&mario,192,69,TILE_ATTR(PAL0,1,FALSE,FALSE)); 222 | SPR_setDepth(drmario,1); 223 | drmario_hand = SPR_addSprite(&mariohand,184,80,TILE_ATTR(PAL0,1,FALSE,FALSE)); 224 | SPR_setVisibility(drmario_hand,HIDDEN); 225 | 226 | previewpill.sprite1 = SPR_addSprite(&pillsprite,190,62,TILE_ATTR(PAL0,0,FALSE,FALSE)); 227 | previewpill.sprite2 = SPR_addSprite(&pillsprite,198,62,TILE_ATTR(PAL0,0,FALSE,FALSE)); 228 | SPR_setDepth(previewpill.sprite1,0); 229 | SPR_setDepth(previewpill.sprite2,0); 230 | previewpill.color1=(random() % (3-1+1))+1, previewpill.color2=(random() % (3-1+1))+1; 231 | SPR_setAnim(previewpill.sprite1,HORI_LEFT); 232 | SPR_setAnim(previewpill.sprite2,HORI_RIGHT); 233 | SPR_setFrame(previewpill.sprite1,previewpill.color1-1); 234 | SPR_setFrame(previewpill.sprite2,previewpill.color2-1); 235 | 236 | virus=(level+1)*4; 237 | 238 | drawScreenText(); 239 | 240 | virus1= SPR_addSprite(&virusguy1,44,140,TILE_ATTR(PAL0,0,FALSE,FALSE));//red - starts at top right 241 | virus2= SPR_addSprite(&virusguy2,32,170,TILE_ATTR(PAL0,0,FALSE,FALSE));//yel - starts at bot mid 242 | virus3= SPR_addSprite(&virusguy3,20,140,TILE_ATTR(PAL0,0,FALSE,FALSE));//blue - starts at top left 243 | 244 | createVirus(); 245 | 246 | start_spr = SPR_addSprite(&startspr,110,184,TILE_ATTR(PAL1,0,FALSE,FALSE));//because it was crashing the game when I put it in drawGameOver() 247 | SPR_setVisibility(start_spr,HIDDEN); 248 | VDP_setPalette(PAL1, startspr.palette->data); 249 | 250 | //XGM_stopPlay(); 251 | XGM_setLoopNumber(-1); 252 | if(music==0)XGM_startPlay(fever); 253 | gameState=3; 254 | } 255 | if(gameState==3){//playing the game 256 | if(inputDelay>0)inputDelay--; 257 | if(rotateDelay>0)rotateDelay--; 258 | if(fallingDelay>0)fallingDelay--; 259 | if(paused==0 && gameoverdrawn==0){ 260 | if(pieceLanded==0){ 261 | SPR_setVisibility(fallingpill.sprite1,VISIBLE); 262 | SPR_setVisibility(fallingpill.sprite2,VISIBLE); 263 | SPR_update(); 264 | if(fallingpill.rotated==0 && fallingpill.y0 || playfield[fallingpill.x+1][fallingpill.y+1][0]>0 || fallingpill.y==wellMaxY-1)){ 268 | playfield[fallingpill.x][fallingpill.y][1]=fallingpill.color1+6;playfield[fallingpill.x][fallingpill.y][0]=fallingpill.color1; 269 | playfield[fallingpill.x+1][fallingpill.y][1]=fallingpill.color2+3+6;playfield[fallingpill.x+1][fallingpill.y][0]=fallingpill.color2; 270 | pieceLanded=1;fallingDelay=20; 271 | //XGM_startPlayPCM(XX,1,SOUND_PCM_CH2); 272 | SPR_setPosition(fallingpill.sprite1,(fallingpill.x*8)+playfieldX,(fallingpill.y*8)+1+playfieldY); 273 | SPR_setPosition(fallingpill.sprite2,((fallingpill.x+1)*8)+playfieldX,(fallingpill.y*8)+1+playfieldY); 274 | SPR_update();//need this to make the pill fall +1 and then come back 275 | waitMs(animDelay); 276 | checkMatches();throwindex=0; 277 | } 278 | else if(fallingpill.rotated==1 && (playfield[fallingpill.x][fallingpill.y+1][0]>0 || fallingpill.y==wellMaxY-1)){ 279 | playfield[fallingpill.x][fallingpill.y][1]=fallingpill.color1+3;playfield[fallingpill.x][fallingpill.y][0]=fallingpill.color1; 280 | playfield[fallingpill.x][fallingpill.y-1][1]=fallingpill.color2;playfield[fallingpill.x][fallingpill.y-1][0]=fallingpill.color2; 281 | pieceLanded=1;fallingDelay=20; 282 | //XGM_startPlayPCM(XX,1,SOUND_PCM_CH2); 283 | SPR_setPosition(fallingpill.sprite1,(fallingpill.x*8)+playfieldX,(fallingpill.y*8)+1+playfieldY); 284 | SPR_setPosition(fallingpill.sprite2,(fallingpill.x*8)+playfieldX,((fallingpill.y-1)*8)+1+playfieldY); 285 | SPR_update();//need this to make the pill fall +1 and then come back 286 | waitMs(animDelay); 287 | checkMatches();throwindex=0; 288 | } 289 | if(inputDelay==0)handleInput(); 290 | } 291 | drawFallingPill(); 292 | 293 | while(throwindex<25){ 294 | if(throwX[throwindex]<240 && throwindex%2!=0){ 295 | SPR_setPosition(previewpill.sprite1,throwX[throwindex]+8,throwY[throwindex]-8-8); 296 | SPR_setPosition(previewpill.sprite2,throwX[throwindex]+8,throwY[throwindex]-8); 297 | SPR_setAnim(previewpill.sprite1,VERT_TOP); 298 | SPR_setAnim(previewpill.sprite2,VERT_BOT); 299 | } 300 | else if(throwX[throwindex]<240 && throwindex%2==0){ 301 | SPR_setPosition(previewpill.sprite1,throwX[throwindex]-8+8,throwY[throwindex]-8); 302 | SPR_setPosition(previewpill.sprite2,throwX[throwindex]+8,throwY[throwindex]-8); 303 | SPR_setAnim(previewpill.sprite1,HORI_LEFT); 304 | SPR_setAnim(previewpill.sprite2,HORI_RIGHT); 305 | } 306 | else if(throwX[throwindex]==240)SPR_setFrame(drmario,0); 307 | else if(throwX[throwindex]==241){SPR_setVisibility(drmario_hand,VISIBLE);SPR_setFrame(drmario,1);} 308 | else if(throwX[throwindex]==242){SPR_setVisibility(drmario_hand,HIDDEN);SPR_setFrame(drmario,2);} 309 | else if(throwX[throwindex]==243)SPR_setFrame(drmario,0); 310 | 311 | SPR_setFrame(previewpill.sprite1,previewpill.color1-1); 312 | SPR_setFrame(previewpill.sprite2,previewpill.color2-1); 313 | 314 | SPR_update(); 315 | waitMs(32); 316 | throwindex++; 317 | } 318 | //return it to normal: 319 | if(pieceLanded==1 && playfield[3][0][0]==0){ 320 | fallingpill.rotated=0, fallingpill.x=3,fallingpill.y=0; 321 | SPR_setAnim(previewpill.sprite1,HORI_LEFT); 322 | SPR_setAnim(previewpill.sprite2,HORI_RIGHT); 323 | SPR_setPosition(previewpill.sprite1,190,62); 324 | SPR_setPosition(previewpill.sprite2,198,62); 325 | fallingpill.color1=previewpill.color1; fallingpill.color2=previewpill.color2; 326 | previewpill.color1=(random() % (3-1+1))+1, previewpill.color2=(random() % (3-1+1))+1; 327 | SPR_setFrame(previewpill.sprite1,previewpill.color1-1); 328 | SPR_setFrame(previewpill.sprite2,previewpill.color2-1); 329 | SPR_setPosition(fallingpill.sprite1,-8,-8); 330 | SPR_setPosition(fallingpill.sprite2,-8,-8); 331 | pieceLanded=0; 332 | } 333 | 334 | if (playfield[3][0][0]>0 && pieceLanded==1){ 335 | XGM_stopPlay(); 336 | drawGameOver(1); 337 | } 338 | 339 | drawBGpills(); 340 | drawScreenText(); 341 | if(score>topscore)topscore=score; 342 | } 343 | animateVirus(); 344 | if(displayDev>100){VDP_setTextPalette(PAL1);VDP_drawText("Strugglemeat",10,27);} 345 | //sprintf(hud_string,"%d",chain); VDP_drawText(hud_string,3,5); //<- chaining debug 346 | } 347 | SYS_doVBlankProcess(); 348 | } 349 | return(0); 350 | } 351 | 352 | void drawFallingPill() 353 | { 354 | SPR_setFrame(fallingpill.sprite1,fallingpill.color1-1);//can't use 0 for the color red 355 | SPR_setFrame(fallingpill.sprite2,fallingpill.color2-1); 356 | 357 | SPR_setPosition(fallingpill.sprite1,(fallingpill.x*8)+playfieldX,(fallingpill.y*8)+playfieldY);//first section of pill is always drawn in the same spot 358 | 359 | if(fallingpill.rotated==0){ 360 | SPR_setAnim(fallingpill.sprite1,HORI_LEFT); 361 | SPR_setAnim(fallingpill.sprite2,HORI_RIGHT); 362 | SPR_setPosition(fallingpill.sprite2,(fallingpill.x*8)+playfieldX+8,(fallingpill.y*8)+playfieldY);} 363 | else if(fallingpill.rotated==1){ 364 | SPR_setAnim(fallingpill.sprite1,VERT_BOT); 365 | SPR_setAnim(fallingpill.sprite2,VERT_TOP); 366 | SPR_setPosition(fallingpill.sprite2,(fallingpill.x*8)+playfieldX,(fallingpill.y*8)+playfieldY-8);} 367 | } 368 | 369 | u8 virusTimer; 370 | void drawBGpills() 371 | {//go through the entire platfield and draw the pills that are set into the playfield 372 | u8 iX,iY; 373 | for(iX=0;iX18 && virusTimer<=8)VDP_setTileMapXY(BG_A, BGend+playfield[iX][iY][1]-1, (playfieldX/8)+iX, (playfieldY/8)+iY); 379 | else if(playfield[iX][iY][1]!=0 && playfield[iX][iY][1]>18 && virusTimer>8)VDP_setTileMapXY(BG_A, BGend+playfield[iX][iY][1]-1+3, (playfieldX/8)+iX, (playfieldY/8)+iY); 380 | } 381 | } 382 | virusTimer++; 383 | if(virusTimer>16)virusTimer=0; 384 | } 385 | 386 | void joyEvent(u16 joy, u16 changed, u16 state)//abc start - this allows for single press (can't hold down the button to continuously rotate) 387 | { 388 | u8 tempcolor=0; 389 | if(joy==JOY_1) 390 | { 391 | if(gameState==1) 392 | { 393 | if(state & BUTTON_DOWN && inputDelay==0 && menuItem<2){menuItem++;inputDelay=6;XGM_startPlayPCM(66,1,SOUND_PCM_CH2);} 394 | if(state & BUTTON_UP && inputDelay==0 && menuItem>0){menuItem--;inputDelay=6;XGM_startPlayPCM(66,1,SOUND_PCM_CH2);} 395 | 396 | if(state & BUTTON_RIGHT && inputDelay==0 && speed<2 && menuItem==1){speed++;inputDelay=6;SPR_setPosition(options_diff,88+(speed*40),128);SPR_update();XGM_startPlayPCM(65,1,SOUND_PCM_CH2);} 397 | if(state & BUTTON_LEFT && inputDelay==0 && speed>0 && menuItem==1){speed--;inputDelay=6;SPR_setPosition(options_diff,88+(speed*40),128);SPR_update();XGM_startPlayPCM(65,1,SOUND_PCM_CH2);} 398 | 399 | if(state & BUTTON_RIGHT && inputDelay==0 && music==0 && menuItem==2){music=2;inputDelay=6;SPR_setVisibility(options_musboxoff,VISIBLE);SPR_setVisibility(options_musbox,HIDDEN);SPR_update();XGM_startPlayPCM(65,1,SOUND_PCM_CH2);} 400 | if(state & BUTTON_LEFT && inputDelay==0 && music==2 && menuItem==2){music=0;inputDelay=6;SPR_setVisibility(options_musboxoff,HIDDEN);SPR_setVisibility(options_musbox,VISIBLE);SPR_update();XGM_startPlayPCM(65,1,SOUND_PCM_CH2);} 401 | } 402 | if(gameState==3){ 403 | if (((state & BUTTON_A) || (state & BUTTON_C)) && rotateDelay==0 && fallingpill.rotated==0 && playfield[fallingpill.x][fallingpill.y-1][0]==0 && pieceLanded==0 && fallingpill.y>0){ 404 | fallingpill.rotated=1; 405 | rotateDelay=inputDelayAmt; 406 | //drawFallingPill(); 407 | XGM_startPlayPCM(64,1,SOUND_PCM_CH2); 408 | } 409 | else if (((state & BUTTON_A) || (state & BUTTON_C)) && rotateDelay==0 && fallingpill.rotated==1 && playfield[fallingpill.x+1][fallingpill.y][0]==0 && fallingpill.x < wellMaxX-1 && pieceLanded==0){ 410 | fallingpill.rotated=0; 411 | rotateDelay=inputDelayAmt; 412 | tempcolor=fallingpill.color1; 413 | fallingpill.color1=fallingpill.color2; 414 | fallingpill.color2=tempcolor; 415 | //drawFallingPill(); 416 | XGM_startPlayPCM(64,1,SOUND_PCM_CH2); 417 | } 418 | else if (((state & BUTTON_A) || (state & BUTTON_C)) && rotateDelay==0 && fallingpill.rotated==1 && playfield[fallingpill.x+1][fallingpill.y][0]!=0 && playfield[fallingpill.x-1][fallingpill.y][0]==0 && pieceLanded==0){//shift position 1 to the left if we can rotate to hori and it's open 419 | fallingpill.x--; 420 | fallingpill.rotated=0; 421 | rotateDelay=inputDelayAmt; 422 | tempcolor=fallingpill.color1; 423 | fallingpill.color1=fallingpill.color2; 424 | fallingpill.color2=tempcolor; 425 | //drawFallingPill(); 426 | XGM_startPlayPCM(64,1,SOUND_PCM_CH2); 427 | } 428 | else if (((state & BUTTON_A) || (state & BUTTON_C)) && rotateDelay==0 && fallingpill.rotated==1 && playfield[fallingpill.x-1][fallingpill.y][0]==0 && fallingpill.x == wellMaxX-1 && pieceLanded==0){//shift position 1 to the left if we can rotate to hori and it's open 429 | fallingpill.x--; 430 | fallingpill.rotated=0; 431 | rotateDelay=inputDelayAmt; 432 | tempcolor=fallingpill.color1; 433 | fallingpill.color1=fallingpill.color2; 434 | fallingpill.color2=tempcolor; 435 | //drawFallingPill(); 436 | XGM_startPlayPCM(64,1,SOUND_PCM_CH2); 437 | }//the above is for rotating from vert to horiz while at the right wall... it SHOULD be combined into the 3rd condition, but it got too confusing and I suck 438 | 439 | if (state & BUTTON_START && paused==0 && inputDelay==0 && gameoverdrawn==0)//pause the game 440 | { 441 | paused=1; 442 | VDP_setPalette(PAL0, pausedpalette.palette->data); 443 | SPR_setVisibility(fallingpill.sprite1,HIDDEN); 444 | SPR_setVisibility(fallingpill.sprite2,HIDDEN); 445 | SPR_update(); 446 | VDP_clearPlane(BG_A,FALSE); 447 | inputDelay=inputDelayAmt; 448 | XGM_pausePlay(); 449 | } 450 | else if(state & BUTTON_START && paused==1 && inputDelay==0 && gameoverdrawn==0)//unpause the game 451 | { 452 | paused=0; 453 | SPR_setVisibility(fallingpill.sprite1,VISIBLE); 454 | SPR_setVisibility(fallingpill.sprite2,VISIBLE); 455 | SPR_update(); 456 | VDP_setPalette(PAL0, background.palette->data); 457 | VDP_setPaletteColor(8,RGB24_TO_VDPCOLOR(0xf0bc3c));//rescomp auto-picks a funny color for orange, fixes 458 | if(speed==1)VDP_setPaletteColor(5,RGB24_TO_VDPCOLOR(0x44009C));//replace colors for bg in MED and HI 459 | else if(speed==2)VDP_setPaletteColor(5,RGB24_TO_VDPCOLOR(0x747474)); 460 | VDP_clearText(12,8,6); 461 | inputDelay=inputDelayAmt; 462 | XGM_resumePlay(); 463 | } 464 | 465 | if(state & BUTTON_START && gameoverdrawn==1){ 466 | SPR_releaseSprite(drmario_dead); 467 | SPR_releaseSprite(virus1);SPR_releaseSprite(virus2);SPR_releaseSprite(virus3); 468 | //SPR_releaseSprite(start_spr); 469 | SPR_setVisibility(start_spr,HIDDEN); 470 | donedrawing=0; 471 | inputDelay=(inputDelayAmt*2); 472 | //VDP_resetScreen(); 473 | SPR_reset(); 474 | gameState=1;//should be 1 475 | } 476 | else if(state & BUTTON_START && gameoverdrawn==2){ 477 | VDP_setTextPalette(PAL0); 478 | SPR_releaseSprite(previewpill.sprite1);SPR_releaseSprite(previewpill.sprite2);//it gets re-initialized in gameState==2 479 | //SPR_releaseSprite(start_spr); 480 | SPR_setVisibility(start_spr,HIDDEN); 481 | VDP_loadTileSet(blacktile.tileset,8,DMA);//replace orange 482 | donedrawing=0; 483 | level++; 484 | inputDelay=inputDelayAmt; 485 | //VDP_resetScreen(); 486 | SPR_reset(); 487 | gameState=2; 488 | } 489 | } 490 | } 491 | } 492 | 493 | void handleInput()//dpad - this allows for continual press 494 | { 495 | u16 value = JOY_readJoypad(JOY_1); 496 | 497 | if (value & BUTTON_LEFT && fallingpill.x>0 && playfield[fallingpill.x-1][fallingpill.y][0]==0 && fallingpill.rotated==0){fallingpill.x--;inputDelay=inputDelayAmt;XGM_startPlayPCM(65,1,SOUND_PCM_CH2);} 498 | else if(value & BUTTON_LEFT && fallingpill.x>0 && playfield[fallingpill.x-1][fallingpill.y][0]==0 && playfield[fallingpill.x-1][fallingpill.y-1][0]==0 && fallingpill.rotated==1){fallingpill.x--;inputDelay=inputDelayAmt;XGM_startPlayPCM(65,1,SOUND_PCM_CH2);} 499 | 500 | if (value & BUTTON_RIGHT && fallingpill.x9)sprintf(hud_string,"%d",level); 514 | VDP_drawText(hud_string,27,18); 515 | 516 | if(speed==0)sprintf(hud_string,"LOW"); 517 | else if(speed==1)sprintf(hud_string,"MED"); 518 | else if(speed==2)sprintf(hud_string," HI"); 519 | VDP_drawText(hud_string,26,21); 520 | 521 | if(virus<10)sprintf(hud_string,"0%d",virus); 522 | else if(virus>=10)sprintf(hud_string,"%d",virus); 523 | VDP_drawText(hud_string,27,24); 524 | 525 | if(topscore<=10000)sprintf(hud_string,"00%d",topscore); 526 | else if(topscore>10000 && topscore<=100000)sprintf(hud_string,"0%d",topscore); 527 | else if(topscore>100000)sprintf(hud_string,"%d",topscore); 528 | VDP_drawText(hud_string,2,7); 529 | 530 | if(score==0)VDP_drawText("0000000",2,10); 531 | if(score>0 && score<1000){sprintf(hud_string,"%d",score);VDP_drawText(hud_string,6,10);} 532 | else if(score>=1000 && score<10000){sprintf(hud_string,"%d",score);VDP_drawText(hud_string,5,10);} 533 | else if(score>=10000 && score<100000){sprintf(hud_string,"%d",score);VDP_drawText(hud_string,4,10);} 534 | else if(score>=100000){sprintf(hud_string,"%d",score);VDP_drawText(hud_string,3,10);} 535 | //sprintf(hud_string,"%d",score); VDP_drawText(hud_string,3,5);//debug 536 | } 537 | 538 | void createVirus()//gameState==2 when this is called 539 | { 540 | virusred=0;virusyel=0;virusblu=0;//re-initialize 541 | u8 create=virus,createX,createY,createColor; 542 | while(create>0) 543 | { 544 | createX=(random() % (wellMaxX-1+1)); 545 | if(level>13)createY=(random() % (wellMaxY-4-1+1))+4; 546 | else if(level>9 && level<=13)createY=(random() % (wellMaxY-6-1+1))+6; 547 | else if(level<=9)createY=(random() % (wellMaxY-8-1+1))+8; 548 | if(create>3)createColor=(random() % (3-1+1))+1; 549 | else if(create==3)createColor=3; 550 | else if(create==2)createColor=2; 551 | else if(create==1)createColor=1; 552 | 553 | if(createColor==1)virusred++; 554 | else if(createColor==2)virusyel++; 555 | else if(createColor==3)virusblu++; 556 | 557 | if(playfield[createX][createY][0]==0){ 558 | playfield[createX][createY][0]=createColor; 559 | playfield[createX][createY][1]=18+createColor; 560 | create--;drawBGpills(); 561 | } 562 | } 563 | checkMatches(); 564 | } 565 | 566 | u8 virusFrame,virusMoveIndex1,virusMoveIndex2=21,virusMoveIndex3=42; 567 | void animateVirus()//for the dancing guys 568 | { 569 | if(virusFrame>0 && virusFrame<20){ 570 | SPR_setHFlip(virus1,TRUE); 571 | SPR_setHFlip(virus2,TRUE); 572 | SPR_setHFlip(virus3,TRUE); 573 | } 574 | else if(virusFrame>=20 && virusFrame<40){ 575 | SPR_setAnim(virus1,1); 576 | SPR_setAnim(virus2,1); 577 | SPR_setAnim(virus3,1); 578 | } 579 | else if(virusFrame>=40){ 580 | SPR_setAnim(virus1,0);SPR_setHFlip(virus1,FALSE); 581 | SPR_setAnim(virus2,0);SPR_setHFlip(virus2,FALSE); 582 | SPR_setAnim(virus3,0);SPR_setHFlip(virus3,FALSE); 583 | } 584 | virusFrame++; 585 | if(virusFrame>60)virusFrame=1; 586 | 587 | if(virusFrame%20==0){ 588 | virusMoveIndex1++; 589 | virusMoveIndex2++; 590 | virusMoveIndex3++;} 591 | if(virusMoveIndex1>127)virusMoveIndex1=0; 592 | else if(virusMoveIndex2>127)virusMoveIndex2=0; 593 | else if(virusMoveIndex3>127)virusMoveIndex3=0; 594 | 595 | SPR_setPosition(virus1,danceX[virusMoveIndex1],danceY[virusMoveIndex1]-8); 596 | SPR_setPosition(virus2,danceX[virusMoveIndex2],danceY[virusMoveIndex2]-8); 597 | SPR_setPosition(virus3,danceX[virusMoveIndex3],danceY[virusMoveIndex3]-8); 598 | } 599 | 600 | void checkMatches() 601 | { 602 | u8 iX,iY,conn=0,start=10,i,matched=0; 603 | 604 | for(i=1;i<4;i++){//horizontal matches 605 | for(iY=wellMaxY-1;iY>0;iY--) 606 | { 607 | for(iX=0;iX=4){ 614 | while(conn>0) 615 | { 616 | 617 | if(i==1 && playfield[start][iY][1]>=19){virusred--;virus--;chain++;score+=((scoreMultiplier[chain-1]*100)*(speed+1));drawScreenText();} 618 | else if(i==2 && playfield[start][iY][1]>=19){virusyel--;virus--;chain++;score+=((scoreMultiplier[chain-1]*100)*(speed+1));drawScreenText();} 619 | else if(i==3 && playfield[start][iY][1]>=19){virusblu--;virus--;chain++;score+=((scoreMultiplier[chain-1]*100)*(speed+1));drawScreenText();} 620 | XGM_startPlayPCM(67,1,SOUND_PCM_CH2); 621 | playfield[start][iY][1]=15+playfield[start][iY][0]; 622 | playfield[start][iY][0]=0; 623 | start++; 624 | conn--; 625 | 626 | } 627 | matched=1; 628 | } 629 | } 630 | } 631 | } 632 | 633 | start=20; 634 | 635 | for(i=1;i<4;i++){//vertical matches 636 | for(iX=0;iX=4){ 645 | while(conn>0) 646 | { 647 | 648 | if(i==1 && playfield[iX][start][1]>=19){virusred--;virus--;chain++;score+=((scoreMultiplier[chain-1]*100)*(speed+1));drawScreenText();} 649 | else if(i==2 && playfield[iX][start][1]>=19){virusyel--;virus--;chain++;score+=((scoreMultiplier[chain-1]*100)*(speed+1));drawScreenText();} 650 | else if(i==3 && playfield[iX][start][1]>=19){virusblu--;virus--;chain++;score+=((scoreMultiplier[chain-1]*100)*(speed+1));drawScreenText();} 651 | XGM_startPlayPCM(67,1,SOUND_PCM_CH2); 652 | playfield[iX][start][1]=15+playfield[iX][start][0]; 653 | playfield[iX][start][0]=0; 654 | start++; 655 | conn--; 656 | 657 | } 658 | matched=1; 659 | } 660 | } 661 | } 662 | } 663 | 664 | if(virusred==0){SPR_setVisibility(virus1,HIDDEN);virusred=-1;}//this needs to be updated to show an animation of the virus dying 665 | if(virusyel==0){SPR_setVisibility(virus2,HIDDEN);virusyel=-1;} 666 | if(virusblu==0){SPR_setVisibility(virus3,HIDDEN);virusblu=-1;} 667 | 668 | if(virus==0)drawGameOver(2); 669 | 670 | if(matched==1)adjustGraphics(); 671 | else if(matched==0)chain=0; 672 | } 673 | 674 | void adjustGraphics()//create the 'orphan' pieces if they've broken off of a partially destroyed pill 675 | { 676 | u8 iX,iY; 677 | for(iX=0;iX=1 && playfield[iX][iY][1]<=3 && (playfield[iX][iY+1][1]>=7 || playfield[iX][iY+1][1]<=3))playfield[iX][iY][1]=12+playfield[iX][iY][1]; 682 | if(playfield[iX][iY][1]>=4 && playfield[iX][iY][1]<=6 && playfield[iX][iY-1][1]>=4)playfield[iX][iY][1]=9+playfield[iX][iY][1]; 683 | if(playfield[iX][iY][1]>=7 && playfield[iX][iY][1]<=9 && (playfield[iX+1][iY][1]<10 || playfield[iX+1][iY][1]>12))playfield[iX][iY][1]=6+playfield[iX][iY][1]; 684 | if(playfield[iX][iY][1]>=10 && playfield[iX][iY][1]<=12 && (playfield[iX-1][iY][1]<7 || playfield[iX-1][iY][1]>9))playfield[iX][iY][1]=3+playfield[iX][iY][1]; 685 | } 686 | } 687 | SPR_setVisibility(fallingpill.sprite1,HIDDEN);//make the dropping pill sprite invisible during this process 688 | SPR_setVisibility(fallingpill.sprite2,HIDDEN); 689 | SPR_update(); 690 | drawBGpills(); 691 | waitMs(500); 692 | for(iX=0;iX=16 && playfield[iX][iY][1]<=18)playfield[iX][iY][1]=0; 697 | } 698 | } 699 | doGravity(); 700 | } 701 | 702 | void doGravity() 703 | { 704 | bool usedGravity=0; 705 | u8 iX,iY; 706 | 707 | do{ 708 | usedGravity=0; 709 | for(iX=0;iX0;iY--) 712 | { 713 | if(playfield[iX][iY][1]>=4 && playfield[iX][iY][1]<=6 && playfield[iX][iY+1][0]==0){//whole vert pills 714 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 715 | playfield[iX][iY][0]=playfield[iX][iY-1][0];playfield[iX][iY][1]=playfield[iX][iY-1][1];playfield[iX][iY-1][0]=0;playfield[iX][iY-1][1]=0; 716 | usedGravity=1;} 717 | 718 | if(playfield[iX][iY][1]>=13 && playfield[iX][iY][1]<=15 && playfield[iX][iY+1][0]==0){//orphans 719 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 720 | usedGravity=1;} 721 | 722 | if(playfield[iX][iY][1]>=7 && playfield[iX][iY][1]<=8 && playfield[iX][iY+1][0]==0 && playfield[iX+1][iY+1][0]==0){//whole hori pills LEFT 723 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 724 | playfield[iX+1][iY+1][0]=playfield[iX+1][iY][0];playfield[iX+1][iY+1][1]=playfield[iX+1][iY][1];playfield[iX+1][iY][0]=0;playfield[iX+1][iY][1]=0; 725 | usedGravity=1; 726 | } 727 | 728 | if(playfield[iX][iY][1]>=10 && playfield[iX][iY][1]<=11 && playfield[iX][iY+1][0]==0 && playfield[iX-1][iY+1][0]==0){//whole hori pills RIGHT 729 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 730 | playfield[iX-1][iY+1][0]=playfield[iX-1][iY][0];playfield[iX-1][iY+1][1]=playfield[iX-1][iY][1];playfield[iX-1][iY][0]=0;playfield[iX-1][iY][1]=0; 731 | usedGravity=1; 732 | } 733 | 734 | } 735 | iY=0; 736 | if(playfield[iX][iY][1]>=13 && playfield[iX][iY][1]<=15 && playfield[iX][iY+1][0]==0){//orphans in top row 737 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 738 | usedGravity=1;} 739 | iY=0; 740 | if(playfield[iX][iY][1]>=4 && playfield[iX][iY][1]<=6 && playfield[iX][iY+1][0]==0){//whole vert pills 741 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 742 | playfield[iX][iY][0]=playfield[iX][iY-1][0];playfield[iX][iY][1]=playfield[iX][iY-1][1];playfield[iX][iY-1][0]=0;playfield[iX][iY-1][1]=0; 743 | usedGravity=1;} 744 | iY=0; 745 | if(playfield[iX][iY][1]>=7 && playfield[iX][iY][1]<=8 && playfield[iX][iY+1][0]==0 && playfield[iX+1][iY+1][0]==0){//whole hori pills 746 | playfield[iX][iY+1][0]=playfield[iX][iY][0];playfield[iX][iY+1][1]=playfield[iX][iY][1];playfield[iX][iY][0]=0;playfield[iX][iY][1]=0; 747 | playfield[iX+1][iY+1][0]=playfield[iX+1][iY][0];playfield[iX+1][iY+1][1]=playfield[iX+1][iY][1];playfield[iX+1][iY][0]=0;playfield[iX+1][iY][1]=0; 748 | usedGravity=1; 749 | } 750 | drawBGpills(); 751 | waitMs(20); 752 | } 753 | 754 | 755 | }while(usedGravity>0); 756 | 757 | checkMatches(); 758 | } 759 | 760 | u8 pulseStart; 761 | void drawGameOver(u8 which)//1=lost,2=won 762 | { 763 | u8 iX,iY; 764 | if(which==1){ 765 | //SPR_releaseSprite(drmario); 766 | //SPR_releaseSprite(drmario_hand); 767 | SPR_setVisibility(drmario,HIDDEN); 768 | SPR_setVisibility(drmario_hand,HIDDEN); 769 | drmario_dead = SPR_addSprite(&mario_gameover,184,68,TILE_ATTR(PAL0,1,FALSE,FALSE)); 770 | SPR_setVisibility(drmario_dead,VISIBLE); 771 | //SPR_releaseSprite(previewpill.sprite1); 772 | //SPR_releaseSprite(previewpill.sprite2); 773 | SPR_setVisibility(previewpill.sprite1,HIDDEN); 774 | SPR_setVisibility(previewpill.sprite2,HIDDEN); 775 | } 776 | //SPR_releaseSprite(fallingpill.sprite1); 777 | //SPR_releaseSprite(fallingpill.sprite2); 778 | SPR_setVisibility(fallingpill.sprite1,HIDDEN); 779 | SPR_setVisibility(fallingpill.sprite2,HIDDEN); 780 | SPR_update(); 781 | 782 | 783 | if(gameoverdrawn==0){ 784 | 785 | for(iY=wellMaxY;iY>0;iY--) 786 | {for(iX=0;iX32){pulseStart=0;SPR_setVisibility(start_spr,HIDDEN);} 849 | if(pulseStart==16)SPR_setVisibility(start_spr,VISIBLE); 850 | animateVirus(); 851 | SPR_update(); 852 | SYS_doVBlankProcess(); 853 | } 854 | } 855 | -------------------------------------------------------------------------------- /out/symbol.txt: -------------------------------------------------------------------------------- 1 | U _hard_reset 2 | 00000000 a __DYNAMIC 3 | 00000000 t _Start_Of_Rom 4 | 00000000 t _Vecteurs_68K 5 | 00000026 A _sdata 6 | 00000200 t _Entry_Point 7 | 00000212 t SkipJoyDetect 8 | 00000232 t WrongVersion 9 | 00000244 t SkipSetup 10 | 0000024a t Table 11 | 00000264 t registersDump 12 | 000002c6 t busAddressErrorDump 13 | 000002f2 t exception4WDump 14 | 0000030e t exceptionDump 15 | 00000322 t _Bus_Error 16 | 00000338 t _Address_Error 17 | 0000034e t _Illegal_Instruction 18 | 00000364 t _Zero_Divide 19 | 0000037a t _Chk_Instruction 20 | 00000390 t _Trapv_Instruction 21 | 000003a6 t _Privilege_Violation 22 | 000003bc t _Trace 23 | 000003d2 t _Line_1010_Emulation 24 | 000003d2 t _Line_1111_Emulation 25 | 000003e8 t _Error_Exception 26 | 000003fe t _INT 27 | 00000410 t _EXTINT 28 | 00000422 t _HINT 29 | 00000434 t _VINT 30 | 00000456 t _no_xgm_task 31 | 00000466 t _no_bmp_task 32 | 0000047c t ldiv 33 | 00000486 t ld1 34 | 00000496 t ld2 35 | 000004a4 t ld3 36 | 000004a6 t lmul 37 | 000004b0 t lm1 38 | 000004c0 t lm2 39 | 000004ce t lm3 40 | 000004d0 t lrem 41 | 000004da t lr1 42 | 000004e4 t lr2 43 | 000004f4 t lr3 44 | 000004f6 t ldivu 45 | 00000504 t lmulu 46 | 00000512 t lremu 47 | 00000522 t i_lmul 48 | 0000053e t i_ldiv 49 | 0000054e t nz1 50 | 00000562 t is1 51 | 0000056a t norm 52 | 0000057a t not1 53 | 00000594 t slow 54 | 000005c0 t slower 55 | 000005c4 t moreadj 56 | 000005d2 t adj 57 | 000005dc t ltuns 58 | 000005ec T main 59 | 00003752 T flushQueueSafe 60 | 00003778 t .fqs_loop 61 | 0000378e t .fqs_end 62 | 00003790 T KDebug_Alert 63 | 000037ac T memset_ 64 | 00003824 T memsetU16 65 | 00003882 T memcpy_ 66 | 00003926 T SYS_getInterruptMaskLevel 67 | 00003930 T SYS_setInterruptMaskLevel 68 | 00003948 T SYS_getAndSetInterruptMaskLevel 69 | 00003962 T aplib_unpack 70 | 00003968 t aplib_decrunch 71 | 0000397c t .copy_byte 72 | 0000397e t .next_sequence_init 73 | 00003980 t .next_sequence 74 | 00003990 t .get_3_bits 75 | 000039a0 t .write_byte 76 | 000039a4 t .short_match 77 | 000039b2 t .code_pair 78 | 000039be t .normal_code_pair 79 | 000039cc t .compare_1280 80 | 000039d0 t .compare_128 81 | 000039d4 t .domatch_with_2inc 82 | 000039d6 t .domatch_with_inc 83 | 000039d8 t .domatch_new_lastpos 84 | 000039da t .copy_code_pair 85 | 000039e0 t .loop_do_copy 86 | 000039ea t .get_bit 87 | 000039f2 t .still_bits_left 88 | 000039f4 t .decode_gamma 89 | 000039f6 t .get_more_gamma 90 | 00003a00 t .end_decrunch 91 | 00003a0a T lz4w_unpack 92 | 00003a12 t lz4w_unpack_a 93 | 00003a1c t .next 94 | 00003a26 t .jump_base 95 | 00003a2c t .jump_table 96 | 00003e2c t .lm_len_FF 97 | 00003e2e t .lm_len_FE 98 | 00003e30 t .lm_len_FD 99 | 00003e32 t .lm_len_FC 100 | 00003e34 t .lm_len_FB 101 | 00003e36 t .lm_len_FA 102 | 00003e38 t .lm_len_F9 103 | 00003e3a t .lm_len_F8 104 | 00003e3c t .lm_len_F7 105 | 00003e3e t .lm_len_F6 106 | 00003e40 t .lm_len_F5 107 | 00003e42 t .lm_len_F4 108 | 00003e44 t .lm_len_F3 109 | 00003e46 t .lm_len_F2 110 | 00003e48 t .lm_len_F1 111 | 00003e4a t .lm_len_F0 112 | 00003e4c t .lm_len_EF 113 | 00003e4e t .lm_len_EE 114 | 00003e50 t .lm_len_ED 115 | 00003e52 t .lm_len_EC 116 | 00003e54 t .lm_len_EB 117 | 00003e56 t .lm_len_EA 118 | 00003e58 t .lm_len_E9 119 | 00003e5a t .lm_len_E8 120 | 00003e5c t .lm_len_E7 121 | 00003e5e t .lm_len_E6 122 | 00003e60 t .lm_len_E5 123 | 00003e62 t .lm_len_E4 124 | 00003e64 t .lm_len_E3 125 | 00003e66 t .lm_len_E2 126 | 00003e68 t .lm_len_E1 127 | 00003e6a t .lm_len_E0 128 | 00003e6c t .lm_len_DF 129 | 00003e6e t .lm_len_DE 130 | 00003e70 t .lm_len_DD 131 | 00003e72 t .lm_len_DC 132 | 00003e74 t .lm_len_DB 133 | 00003e76 t .lm_len_DA 134 | 00003e78 t .lm_len_D9 135 | 00003e7a t .lm_len_D8 136 | 00003e7c t .lm_len_D7 137 | 00003e7e t .lm_len_D6 138 | 00003e80 t .lm_len_D5 139 | 00003e82 t .lm_len_D4 140 | 00003e84 t .lm_len_D3 141 | 00003e86 t .lm_len_D2 142 | 00003e88 t .lm_len_D1 143 | 00003e8a t .lm_len_D0 144 | 00003e8c t .lm_len_CF 145 | 00003e8e t .lm_len_CE 146 | 00003e90 t .lm_len_CD 147 | 00003e92 t .lm_len_CC 148 | 00003e94 t .lm_len_CB 149 | 00003e96 t .lm_len_CA 150 | 00003e98 t .lm_len_C9 151 | 00003e9a t .lm_len_C8 152 | 00003e9c t .lm_len_C7 153 | 00003e9e t .lm_len_C6 154 | 00003ea0 t .lm_len_C5 155 | 00003ea2 t .lm_len_C4 156 | 00003ea4 t .lm_len_C3 157 | 00003ea6 t .lm_len_C2 158 | 00003ea8 t .lm_len_C1 159 | 00003eaa t .lm_len_C0 160 | 00003eac t .lm_len_BF 161 | 00003eae t .lm_len_BE 162 | 00003eb0 t .lm_len_BD 163 | 00003eb2 t .lm_len_BC 164 | 00003eb4 t .lm_len_BB 165 | 00003eb6 t .lm_len_BA 166 | 00003eb8 t .lm_len_B9 167 | 00003eba t .lm_len_B8 168 | 00003ebc t .lm_len_B7 169 | 00003ebe t .lm_len_B6 170 | 00003ec0 t .lm_len_B5 171 | 00003ec2 t .lm_len_B4 172 | 00003ec4 t .lm_len_B3 173 | 00003ec6 t .lm_len_B2 174 | 00003ec8 t .lm_len_B1 175 | 00003eca t .lm_len_B0 176 | 00003ecc t .lm_len_AF 177 | 00003ece t .lm_len_AE 178 | 00003ed0 t .lm_len_AD 179 | 00003ed2 t .lm_len_AC 180 | 00003ed4 t .lm_len_AB 181 | 00003ed6 t .lm_len_AA 182 | 00003ed8 t .lm_len_A9 183 | 00003eda t .lm_len_A8 184 | 00003edc t .lm_len_A7 185 | 00003ede t .lm_len_A6 186 | 00003ee0 t .lm_len_A5 187 | 00003ee2 t .lm_len_A4 188 | 00003ee4 t .lm_len_A3 189 | 00003ee6 t .lm_len_A2 190 | 00003ee8 t .lm_len_A1 191 | 00003eea t .lm_len_A0 192 | 00003eec t .lm_len_9F 193 | 00003eee t .lm_len_9E 194 | 00003ef0 t .lm_len_9D 195 | 00003ef2 t .lm_len_9C 196 | 00003ef4 t .lm_len_9B 197 | 00003ef6 t .lm_len_9A 198 | 00003ef8 t .lm_len_99 199 | 00003efa t .lm_len_98 200 | 00003efc t .lm_len_97 201 | 00003efe t .lm_len_96 202 | 00003f00 t .lm_len_95 203 | 00003f02 t .lm_len_94 204 | 00003f04 t .lm_len_93 205 | 00003f06 t .lm_len_92 206 | 00003f08 t .lm_len_91 207 | 00003f0a t .lm_len_90 208 | 00003f0c t .lm_len_8F 209 | 00003f0e t .lm_len_8E 210 | 00003f10 t .lm_len_8D 211 | 00003f12 t .lm_len_8C 212 | 00003f14 t .lm_len_8B 213 | 00003f16 t .lm_len_8A 214 | 00003f18 t .lm_len_89 215 | 00003f1a t .lm_len_88 216 | 00003f1c t .lm_len_87 217 | 00003f1e t .lm_len_86 218 | 00003f20 t .lm_len_85 219 | 00003f22 t .lm_len_84 220 | 00003f24 t .lm_len_83 221 | 00003f26 t .lm_len_82 222 | 00003f28 t .lm_len_81 223 | 00003f2a t .lm_len_80 224 | 00003f2c t .lm_len_7F 225 | 00003f2e t .lm_len_7E 226 | 00003f30 t .lm_len_7D 227 | 00003f32 t .lm_len_7C 228 | 00003f34 t .lm_len_7B 229 | 00003f36 t .lm_len_7A 230 | 00003f38 t .lm_len_79 231 | 00003f3a t .lm_len_78 232 | 00003f3c t .lm_len_77 233 | 00003f3e t .lm_len_76 234 | 00003f40 t .lm_len_75 235 | 00003f42 t .lm_len_74 236 | 00003f44 t .lm_len_73 237 | 00003f46 t .lm_len_72 238 | 00003f48 t .lm_len_71 239 | 00003f4a t .lm_len_70 240 | 00003f4c t .lm_len_6F 241 | 00003f4e t .lm_len_6E 242 | 00003f50 t .lm_len_6D 243 | 00003f52 t .lm_len_6C 244 | 00003f54 t .lm_len_6B 245 | 00003f56 t .lm_len_6A 246 | 00003f58 t .lm_len_69 247 | 00003f5a t .lm_len_68 248 | 00003f5c t .lm_len_67 249 | 00003f5e t .lm_len_66 250 | 00003f60 t .lm_len_65 251 | 00003f62 t .lm_len_64 252 | 00003f64 t .lm_len_63 253 | 00003f66 t .lm_len_62 254 | 00003f68 t .lm_len_61 255 | 00003f6a t .lm_len_60 256 | 00003f6c t .lm_len_5F 257 | 00003f6e t .lm_len_5E 258 | 00003f70 t .lm_len_5D 259 | 00003f72 t .lm_len_5C 260 | 00003f74 t .lm_len_5B 261 | 00003f76 t .lm_len_5A 262 | 00003f78 t .lm_len_59 263 | 00003f7a t .lm_len_58 264 | 00003f7c t .lm_len_57 265 | 00003f7e t .lm_len_56 266 | 00003f80 t .lm_len_55 267 | 00003f82 t .lm_len_54 268 | 00003f84 t .lm_len_53 269 | 00003f86 t .lm_len_52 270 | 00003f88 t .lm_len_51 271 | 00003f8a t .lm_len_50 272 | 00003f8c t .lm_len_4F 273 | 00003f8e t .lm_len_4E 274 | 00003f90 t .lm_len_4D 275 | 00003f92 t .lm_len_4C 276 | 00003f94 t .lm_len_4B 277 | 00003f96 t .lm_len_4A 278 | 00003f98 t .lm_len_49 279 | 00003f9a t .lm_len_48 280 | 00003f9c t .lm_len_47 281 | 00003f9e t .lm_len_46 282 | 00003fa0 t .lm_len_45 283 | 00003fa2 t .lm_len_44 284 | 00003fa4 t .lm_len_43 285 | 00003fa6 t .lm_len_42 286 | 00003fa8 t .lm_len_41 287 | 00003faa t .lm_len_40 288 | 00003fac t .lm_len_3F 289 | 00003fae t .lm_len_3E 290 | 00003fb0 t .lm_len_3D 291 | 00003fb2 t .lm_len_3C 292 | 00003fb4 t .lm_len_3B 293 | 00003fb6 t .lm_len_3A 294 | 00003fb8 t .lm_len_39 295 | 00003fba t .lm_len_38 296 | 00003fbc t .lm_len_37 297 | 00003fbe t .lm_len_36 298 | 00003fc0 t .lm_len_35 299 | 00003fc2 t .lm_len_34 300 | 00003fc4 t .lm_len_33 301 | 00003fc6 t .lm_len_32 302 | 00003fc8 t .lm_len_31 303 | 00003fca t .lm_len_30 304 | 00003fcc t .lm_len_2F 305 | 00003fce t .lm_len_2E 306 | 00003fd0 t .lm_len_2D 307 | 00003fd2 t .lm_len_2C 308 | 00003fd4 t .lm_len_2B 309 | 00003fd6 t .lm_len_2A 310 | 00003fd8 t .lm_len_29 311 | 00003fda t .lm_len_28 312 | 00003fdc t .lm_len_27 313 | 00003fde t .lm_len_26 314 | 00003fe0 t .lm_len_25 315 | 00003fe2 t .lm_len_24 316 | 00003fe4 t .lm_len_23 317 | 00003fe6 t .lm_len_22 318 | 00003fe8 t .lm_len_21 319 | 00003fea t .lm_len_20 320 | 00003fec t .lm_len_1F 321 | 00003fee t .lm_len_1E 322 | 00003ff0 t .lm_len_1D 323 | 00003ff2 t .lm_len_1C 324 | 00003ff4 t .lm_len_1B 325 | 00003ff6 t .lm_len_1A 326 | 00003ff8 t .lm_len_19 327 | 00003ffa t .lm_len_18 328 | 00003ffc t .lm_len_17 329 | 00003ffe t .lm_len_16 330 | 00004000 t .lm_len_15 331 | 00004002 t .lm_len_14 332 | 00004004 t .lm_len_13 333 | 00004006 t .lm_len_12 334 | 00004008 t .lm_len_11 335 | 0000400a t .lm_len_10 336 | 0000400c t .lm_len_0F 337 | 0000400e t .lm_len_0E 338 | 00004010 t .lm_len_0D 339 | 00004012 t .lm_len_0C 340 | 00004014 t .lm_len_0B 341 | 00004016 t .lm_len_0A 342 | 00004018 t .lm_len_09 343 | 0000401a t .lm_len_08 344 | 0000401c t .lm_len_07 345 | 0000401e t .lm_len_06 346 | 00004020 t .lm_len_05 347 | 00004022 t .lm_len_04 348 | 00004024 t .lm_len_03 349 | 00004026 t .lm_len_02 350 | 00004028 t .lm_len_01 351 | 0000402a t .lm_len_00 352 | 00004034 t .lmr_len_FF 353 | 00004036 t .lmr_len_FD 354 | 00004038 t .lmr_len_FB 355 | 0000403a t .lmr_len_F9 356 | 0000403c t .lmr_len_F7 357 | 0000403e t .lmr_len_F5 358 | 00004040 t .lmr_len_F3 359 | 00004042 t .lmr_len_F1 360 | 00004044 t .lmr_len_EF 361 | 00004046 t .lmr_len_ED 362 | 00004048 t .lmr_len_EB 363 | 0000404a t .lmr_len_E9 364 | 0000404c t .lmr_len_E7 365 | 0000404e t .lmr_len_E5 366 | 00004050 t .lmr_len_E3 367 | 00004052 t .lmr_len_E1 368 | 00004054 t .lmr_len_DF 369 | 00004056 t .lmr_len_DD 370 | 00004058 t .lmr_len_DB 371 | 0000405a t .lmr_len_D9 372 | 0000405c t .lmr_len_D7 373 | 0000405e t .lmr_len_D5 374 | 00004060 t .lmr_len_D3 375 | 00004062 t .lmr_len_D1 376 | 00004064 t .lmr_len_CF 377 | 00004066 t .lmr_len_CD 378 | 00004068 t .lmr_len_CB 379 | 0000406a t .lmr_len_C9 380 | 0000406c t .lmr_len_C7 381 | 0000406e t .lmr_len_C5 382 | 00004070 t .lmr_len_C3 383 | 00004072 t .lmr_len_C1 384 | 00004074 t .lmr_len_BF 385 | 00004076 t .lmr_len_BD 386 | 00004078 t .lmr_len_BB 387 | 0000407a t .lmr_len_B9 388 | 0000407c t .lmr_len_B7 389 | 0000407e t .lmr_len_B5 390 | 00004080 t .lmr_len_B3 391 | 00004082 t .lmr_len_B1 392 | 00004084 t .lmr_len_AF 393 | 00004086 t .lmr_len_AD 394 | 00004088 t .lmr_len_AB 395 | 0000408a t .lmr_len_A9 396 | 0000408c t .lmr_len_A7 397 | 0000408e t .lmr_len_A5 398 | 00004090 t .lmr_len_A3 399 | 00004092 t .lmr_len_A1 400 | 00004094 t .lmr_len_9F 401 | 00004096 t .lmr_len_9D 402 | 00004098 t .lmr_len_9B 403 | 0000409a t .lmr_len_99 404 | 0000409c t .lmr_len_97 405 | 0000409e t .lmr_len_95 406 | 000040a0 t .lmr_len_93 407 | 000040a2 t .lmr_len_91 408 | 000040a4 t .lmr_len_8F 409 | 000040a6 t .lmr_len_8D 410 | 000040a8 t .lmr_len_8B 411 | 000040aa t .lmr_len_89 412 | 000040ac t .lmr_len_87 413 | 000040ae t .lmr_len_85 414 | 000040b0 t .lmr_len_83 415 | 000040b2 t .lmr_len_81 416 | 000040b4 t .lmr_len_7F 417 | 000040b6 t .lmr_len_7D 418 | 000040b8 t .lmr_len_7B 419 | 000040ba t .lmr_len_79 420 | 000040bc t .lmr_len_77 421 | 000040be t .lmr_len_75 422 | 000040c0 t .lmr_len_73 423 | 000040c2 t .lmr_len_71 424 | 000040c4 t .lmr_len_6F 425 | 000040c6 t .lmr_len_6D 426 | 000040c8 t .lmr_len_6B 427 | 000040ca t .lmr_len_69 428 | 000040cc t .lmr_len_67 429 | 000040ce t .lmr_len_65 430 | 000040d0 t .lmr_len_63 431 | 000040d2 t .lmr_len_61 432 | 000040d4 t .lmr_len_5F 433 | 000040d6 t .lmr_len_5D 434 | 000040d8 t .lmr_len_5B 435 | 000040da t .lmr_len_59 436 | 000040dc t .lmr_len_57 437 | 000040de t .lmr_len_55 438 | 000040e0 t .lmr_len_53 439 | 000040e2 t .lmr_len_51 440 | 000040e4 t .lmr_len_4F 441 | 000040e6 t .lmr_len_4D 442 | 000040e8 t .lmr_len_4B 443 | 000040ea t .lmr_len_49 444 | 000040ec t .lmr_len_47 445 | 000040ee t .lmr_len_45 446 | 000040f0 t .lmr_len_43 447 | 000040f2 t .lmr_len_41 448 | 000040f4 t .lmr_len_3F 449 | 000040f6 t .lmr_len_3D 450 | 000040f8 t .lmr_len_3B 451 | 000040fa t .lmr_len_39 452 | 000040fc t .lmr_len_37 453 | 000040fe t .lmr_len_35 454 | 00004100 t .lmr_len_33 455 | 00004102 t .lmr_len_31 456 | 00004104 t .lmr_len_2F 457 | 00004106 t .lmr_len_2D 458 | 00004108 t .lmr_len_2B 459 | 0000410a t .lmr_len_29 460 | 0000410c t .lmr_len_27 461 | 0000410e t .lmr_len_25 462 | 00004110 t .lmr_len_23 463 | 00004112 t .lmr_len_21 464 | 00004114 t .lmr_len_1F 465 | 00004116 t .lmr_len_1D 466 | 00004118 t .lmr_len_1B 467 | 0000411a t .lmr_len_19 468 | 0000411c t .lmr_len_17 469 | 0000411e t .lmr_len_15 470 | 00004120 t .lmr_len_13 471 | 00004122 t .lmr_len_11 472 | 00004124 t .lmr_len_0F 473 | 00004126 t .lmr_len_0D 474 | 00004128 t .lmr_len_0B 475 | 0000412a t .lmr_len_09 476 | 0000412c t .lmr_len_07 477 | 0000412e t .lmr_len_05 478 | 00004130 t .lmr_len_03 479 | 00004132 t .lmr_len_01 480 | 0000413c t .lmr_len_FE 481 | 0000413e t .lmr_len_FC 482 | 00004140 t .lmr_len_FA 483 | 00004142 t .lmr_len_F8 484 | 00004144 t .lmr_len_F6 485 | 00004146 t .lmr_len_F4 486 | 00004148 t .lmr_len_F2 487 | 0000414a t .lmr_len_F0 488 | 0000414c t .lmr_len_EE 489 | 0000414e t .lmr_len_EC 490 | 00004150 t .lmr_len_EA 491 | 00004152 t .lmr_len_E8 492 | 00004154 t .lmr_len_E6 493 | 00004156 t .lmr_len_E4 494 | 00004158 t .lmr_len_E2 495 | 0000415a t .lmr_len_E0 496 | 0000415c t .lmr_len_DE 497 | 0000415e t .lmr_len_DC 498 | 00004160 t .lmr_len_DA 499 | 00004162 t .lmr_len_D8 500 | 00004164 t .lmr_len_D6 501 | 00004166 t .lmr_len_D4 502 | 00004168 t .lmr_len_D2 503 | 0000416a t .lmr_len_D0 504 | 0000416c t .lmr_len_CE 505 | 0000416e t .lmr_len_CC 506 | 00004170 t .lmr_len_CA 507 | 00004172 t .lmr_len_C8 508 | 00004174 t .lmr_len_C6 509 | 00004176 t .lmr_len_C4 510 | 00004178 t .lmr_len_C2 511 | 0000417a t .lmr_len_C0 512 | 0000417c t .lmr_len_BE 513 | 0000417e t .lmr_len_BC 514 | 00004180 t .lmr_len_BA 515 | 00004182 t .lmr_len_B8 516 | 00004184 t .lmr_len_B6 517 | 00004186 t .lmr_len_B4 518 | 00004188 t .lmr_len_B2 519 | 0000418a t .lmr_len_B0 520 | 0000418c t .lmr_len_AE 521 | 0000418e t .lmr_len_AC 522 | 00004190 t .lmr_len_AA 523 | 00004192 t .lmr_len_A8 524 | 00004194 t .lmr_len_A6 525 | 00004196 t .lmr_len_A4 526 | 00004198 t .lmr_len_A2 527 | 0000419a t .lmr_len_A0 528 | 0000419c t .lmr_len_9E 529 | 0000419e t .lmr_len_9C 530 | 000041a0 t .lmr_len_9A 531 | 000041a2 t .lmr_len_98 532 | 000041a4 t .lmr_len_96 533 | 000041a6 t .lmr_len_94 534 | 000041a8 t .lmr_len_92 535 | 000041aa t .lmr_len_90 536 | 000041ac t .lmr_len_8E 537 | 000041ae t .lmr_len_8C 538 | 000041b0 t .lmr_len_8A 539 | 000041b2 t .lmr_len_88 540 | 000041b4 t .lmr_len_86 541 | 000041b6 t .lmr_len_84 542 | 000041b8 t .lmr_len_82 543 | 000041ba t .lmr_len_80 544 | 000041bc t .lmr_len_7E 545 | 000041be t .lmr_len_7C 546 | 000041c0 t .lmr_len_7A 547 | 000041c2 t .lmr_len_78 548 | 000041c4 t .lmr_len_76 549 | 000041c6 t .lmr_len_74 550 | 000041c8 t .lmr_len_72 551 | 000041ca t .lmr_len_70 552 | 000041cc t .lmr_len_6E 553 | 000041ce t .lmr_len_6C 554 | 000041d0 t .lmr_len_6A 555 | 000041d2 t .lmr_len_68 556 | 000041d4 t .lmr_len_66 557 | 000041d6 t .lmr_len_64 558 | 000041d8 t .lmr_len_62 559 | 000041da t .lmr_len_60 560 | 000041dc t .lmr_len_5E 561 | 000041de t .lmr_len_5C 562 | 000041e0 t .lmr_len_5A 563 | 000041e2 t .lmr_len_58 564 | 000041e4 t .lmr_len_56 565 | 000041e6 t .lmr_len_54 566 | 000041e8 t .lmr_len_52 567 | 000041ea t .lmr_len_50 568 | 000041ec t .lmr_len_4E 569 | 000041ee t .lmr_len_4C 570 | 000041f0 t .lmr_len_4A 571 | 000041f2 t .lmr_len_48 572 | 000041f4 t .lmr_len_46 573 | 000041f6 t .lmr_len_44 574 | 000041f8 t .lmr_len_42 575 | 000041fa t .lmr_len_40 576 | 000041fc t .lmr_len_3E 577 | 000041fe t .lmr_len_3C 578 | 00004200 t .lmr_len_3A 579 | 00004202 t .lmr_len_38 580 | 00004204 t .lmr_len_36 581 | 00004206 t .lmr_len_34 582 | 00004208 t .lmr_len_32 583 | 0000420a t .lmr_len_30 584 | 0000420c t .lmr_len_2E 585 | 0000420e t .lmr_len_2C 586 | 00004210 t .lmr_len_2A 587 | 00004212 t .lmr_len_28 588 | 00004214 t .lmr_len_26 589 | 00004216 t .lmr_len_24 590 | 00004218 t .lmr_len_22 591 | 0000421a t .lmr_len_20 592 | 0000421c t .lmr_len_1E 593 | 0000421e t .lmr_len_1C 594 | 00004220 t .lmr_len_1A 595 | 00004222 t .lmr_len_18 596 | 00004224 t .lmr_len_16 597 | 00004226 t .lmr_len_14 598 | 00004228 t .lmr_len_12 599 | 0000422a t .lmr_len_10 600 | 0000422c t .lmr_len_0E 601 | 0000422e t .lmr_len_0C 602 | 00004230 t .lmr_len_0A 603 | 00004232 t .lmr_len_08 604 | 00004234 t .lmr_len_06 605 | 00004236 t .lmr_len_04 606 | 00004238 t .lmr_len_02 607 | 0000423a t .lmr_len_00 608 | 00004242 t .litE_mat0 609 | 00004244 t .litC_mat0 610 | 00004246 t .litA_mat0 611 | 00004248 t .lit8_mat0 612 | 0000424a t .lit6_mat0 613 | 0000424c t .lit4_mat0 614 | 0000424e t .lit2_mat0 615 | 00004256 t .long_match_1 616 | 00004266 t .lm1_jump_base 617 | 0000426c t .litF_mat0 618 | 0000426e t .litD_mat0 619 | 00004270 t .litB_mat0 620 | 00004272 t .lit9_mat0 621 | 00004274 t .lit7_mat0 622 | 00004276 t .lit5_mat0 623 | 00004278 t .lit3_mat0 624 | 0000427a t .lit1_mat0 625 | 00004282 t .long_match_2 626 | 00004292 t .lm2_jump_base 627 | 00004298 t .lit0_mat0 628 | 0000429e t .long_match_3 629 | 000042ae t .lm3_jump_base 630 | 000042b4 t .lm_jump_table 631 | 000046b4 t .lm_rom 632 | 000046b8 t .lmr_jump_base 633 | 000046be t .lmr_jump_table 634 | 00004abe t .litE_mat1 635 | 00004ac0 t .litC_mat1 636 | 00004ac2 t .litA_mat1 637 | 00004ac4 t .lit8_mat1 638 | 00004ac6 t .lit6_mat1 639 | 00004ac8 t .lit4_mat1 640 | 00004aca t .lit2_mat1 641 | 00004acc t .lit0_mat1 642 | 00004adc t .litF_mat1 643 | 00004ade t .litD_mat1 644 | 00004ae0 t .litB_mat1 645 | 00004ae2 t .lit9_mat1 646 | 00004ae4 t .lit7_mat1 647 | 00004ae6 t .lit5_mat1 648 | 00004ae8 t .lit3_mat1 649 | 00004aea t .lit1_mat1 650 | 00004afc t .litE_mat2 651 | 00004afe t .litC_mat2 652 | 00004b00 t .litA_mat2 653 | 00004b02 t .lit8_mat2 654 | 00004b04 t .lit6_mat2 655 | 00004b06 t .lit4_mat2 656 | 00004b08 t .lit2_mat2 657 | 00004b0a t .lit0_mat2 658 | 00004b1c t .litF_mat2 659 | 00004b1e t .litD_mat2 660 | 00004b20 t .litB_mat2 661 | 00004b22 t .lit9_mat2 662 | 00004b24 t .lit7_mat2 663 | 00004b26 t .lit5_mat2 664 | 00004b28 t .lit3_mat2 665 | 00004b2a t .lit1_mat2 666 | 00004b3e t .litE_mat3 667 | 00004b40 t .litC_mat3 668 | 00004b42 t .litA_mat3 669 | 00004b44 t .lit8_mat3 670 | 00004b46 t .lit6_mat3 671 | 00004b48 t .lit4_mat3 672 | 00004b4a t .lit2_mat3 673 | 00004b4c t .lit0_mat3 674 | 00004b60 t .litF_mat3 675 | 00004b62 t .litD_mat3 676 | 00004b64 t .litB_mat3 677 | 00004b66 t .lit9_mat3 678 | 00004b68 t .lit7_mat3 679 | 00004b6a t .lit5_mat3 680 | 00004b6c t .lit3_mat3 681 | 00004b6e t .lit1_mat3 682 | 00004b84 t .litE_mat4 683 | 00004b86 t .litC_mat4 684 | 00004b88 t .litA_mat4 685 | 00004b8a t .lit8_mat4 686 | 00004b8c t .lit6_mat4 687 | 00004b8e t .lit4_mat4 688 | 00004b90 t .lit2_mat4 689 | 00004b92 t .lit0_mat4 690 | 00004ba8 t .litF_mat4 691 | 00004baa t .litD_mat4 692 | 00004bac t .litB_mat4 693 | 00004bae t .lit9_mat4 694 | 00004bb0 t .lit7_mat4 695 | 00004bb2 t .lit5_mat4 696 | 00004bb4 t .lit3_mat4 697 | 00004bb6 t .lit1_mat4 698 | 00004bce t .litE_mat5 699 | 00004bd0 t .litC_mat5 700 | 00004bd2 t .litA_mat5 701 | 00004bd4 t .lit8_mat5 702 | 00004bd6 t .lit6_mat5 703 | 00004bd8 t .lit4_mat5 704 | 00004bda t .lit2_mat5 705 | 00004bdc t .lit0_mat5 706 | 00004bf4 t .litF_mat5 707 | 00004bf6 t .litD_mat5 708 | 00004bf8 t .litB_mat5 709 | 00004bfa t .lit9_mat5 710 | 00004bfc t .lit7_mat5 711 | 00004bfe t .lit5_mat5 712 | 00004c00 t .lit3_mat5 713 | 00004c02 t .lit1_mat5 714 | 00004c1c t .litE_mat6 715 | 00004c1e t .litC_mat6 716 | 00004c20 t .litA_mat6 717 | 00004c22 t .lit8_mat6 718 | 00004c24 t .lit6_mat6 719 | 00004c26 t .lit4_mat6 720 | 00004c28 t .lit2_mat6 721 | 00004c2a t .lit0_mat6 722 | 00004c44 t .litF_mat6 723 | 00004c46 t .litD_mat6 724 | 00004c48 t .litB_mat6 725 | 00004c4a t .lit9_mat6 726 | 00004c4c t .lit7_mat6 727 | 00004c4e t .lit5_mat6 728 | 00004c50 t .lit3_mat6 729 | 00004c52 t .lit1_mat6 730 | 00004c6e t .litE_mat7 731 | 00004c70 t .litC_mat7 732 | 00004c72 t .litA_mat7 733 | 00004c74 t .lit8_mat7 734 | 00004c76 t .lit6_mat7 735 | 00004c78 t .lit4_mat7 736 | 00004c7a t .lit2_mat7 737 | 00004c7c t .lit0_mat7 738 | 00004c98 t .litF_mat7 739 | 00004c9a t .litD_mat7 740 | 00004c9c t .litB_mat7 741 | 00004c9e t .lit9_mat7 742 | 00004ca0 t .lit7_mat7 743 | 00004ca2 t .lit5_mat7 744 | 00004ca4 t .lit3_mat7 745 | 00004ca6 t .lit1_mat7 746 | 00004cc4 t .litE_mat8 747 | 00004cc6 t .litC_mat8 748 | 00004cc8 t .litA_mat8 749 | 00004cca t .lit8_mat8 750 | 00004ccc t .lit6_mat8 751 | 00004cce t .lit4_mat8 752 | 00004cd0 t .lit2_mat8 753 | 00004cd2 t .lit0_mat8 754 | 00004cf0 t .litF_mat8 755 | 00004cf2 t .litD_mat8 756 | 00004cf4 t .litB_mat8 757 | 00004cf6 t .lit9_mat8 758 | 00004cf8 t .lit7_mat8 759 | 00004cfa t .lit5_mat8 760 | 00004cfc t .lit3_mat8 761 | 00004cfe t .lit1_mat8 762 | 00004d1e t .litE_mat9 763 | 00004d20 t .litC_mat9 764 | 00004d22 t .litA_mat9 765 | 00004d24 t .lit8_mat9 766 | 00004d26 t .lit6_mat9 767 | 00004d28 t .lit4_mat9 768 | 00004d2a t .lit2_mat9 769 | 00004d2c t .lit0_mat9 770 | 00004d4c t .litF_mat9 771 | 00004d4e t .litD_mat9 772 | 00004d50 t .litB_mat9 773 | 00004d52 t .lit9_mat9 774 | 00004d54 t .lit7_mat9 775 | 00004d56 t .lit5_mat9 776 | 00004d58 t .lit3_mat9 777 | 00004d5a t .lit1_mat9 778 | 00004d7c t .litE_matA 779 | 00004d7e t .litC_matA 780 | 00004d80 t .litA_matA 781 | 00004d82 t .lit8_matA 782 | 00004d84 t .lit6_matA 783 | 00004d86 t .lit4_matA 784 | 00004d88 t .lit2_matA 785 | 00004d8a t .lit0_matA 786 | 00004dac t .litF_matA 787 | 00004dae t .litD_matA 788 | 00004db0 t .litB_matA 789 | 00004db2 t .lit9_matA 790 | 00004db4 t .lit7_matA 791 | 00004db6 t .lit5_matA 792 | 00004db8 t .lit3_matA 793 | 00004dba t .lit1_matA 794 | 00004dde t .litE_matB 795 | 00004de0 t .litC_matB 796 | 00004de2 t .litA_matB 797 | 00004de4 t .lit8_matB 798 | 00004de6 t .lit6_matB 799 | 00004de8 t .lit4_matB 800 | 00004dea t .lit2_matB 801 | 00004dec t .lit0_matB 802 | 00004e10 t .litF_matB 803 | 00004e12 t .litD_matB 804 | 00004e14 t .litB_matB 805 | 00004e16 t .lit9_matB 806 | 00004e18 t .lit7_matB 807 | 00004e1a t .lit5_matB 808 | 00004e1c t .lit3_matB 809 | 00004e1e t .lit1_matB 810 | 00004e44 t .litE_matC 811 | 00004e46 t .litC_matC 812 | 00004e48 t .litA_matC 813 | 00004e4a t .lit8_matC 814 | 00004e4c t .lit6_matC 815 | 00004e4e t .lit4_matC 816 | 00004e50 t .lit2_matC 817 | 00004e52 t .lit0_matC 818 | 00004e78 t .litF_matC 819 | 00004e7a t .litD_matC 820 | 00004e7c t .litB_matC 821 | 00004e7e t .lit9_matC 822 | 00004e80 t .lit7_matC 823 | 00004e82 t .lit5_matC 824 | 00004e84 t .lit3_matC 825 | 00004e86 t .lit1_matC 826 | 00004eae t .litE_matD 827 | 00004eb0 t .litC_matD 828 | 00004eb2 t .litA_matD 829 | 00004eb4 t .lit8_matD 830 | 00004eb6 t .lit6_matD 831 | 00004eb8 t .lit4_matD 832 | 00004eba t .lit2_matD 833 | 00004ebc t .lit0_matD 834 | 00004ee4 t .litF_matD 835 | 00004ee6 t .litD_matD 836 | 00004ee8 t .litB_matD 837 | 00004eea t .lit9_matD 838 | 00004eec t .lit7_matD 839 | 00004eee t .lit5_matD 840 | 00004ef0 t .lit3_matD 841 | 00004ef2 t .lit1_matD 842 | 00004f1c t .litE_matE 843 | 00004f1e t .litC_matE 844 | 00004f20 t .litA_matE 845 | 00004f22 t .lit8_matE 846 | 00004f24 t .lit6_matE 847 | 00004f26 t .lit4_matE 848 | 00004f28 t .lit2_matE 849 | 00004f2a t .lit0_matE 850 | 00004f54 t .litF_matE 851 | 00004f56 t .litD_matE 852 | 00004f58 t .litB_matE 853 | 00004f5a t .lit9_matE 854 | 00004f5c t .lit7_matE 855 | 00004f5e t .lit5_matE 856 | 00004f60 t .lit3_matE 857 | 00004f62 t .lit1_matE 858 | 00004f8e t .litE_matF 859 | 00004f90 t .litC_matF 860 | 00004f92 t .litA_matF 861 | 00004f94 t .lit8_matF 862 | 00004f96 t .lit6_matF 863 | 00004f98 t .lit4_matF 864 | 00004f9a t .lit2_matF 865 | 00004f9c t .lit0_matF 866 | 00004fc8 t .litF_matF 867 | 00004fca t .litD_matF 868 | 00004fcc t .litB_matF 869 | 00004fce t .lit9_matF 870 | 00004fd0 t .lit7_matF 871 | 00004fd2 t .lit5_matF 872 | 00004fd4 t .lit3_matF 873 | 00004fd6 t .lit1_matF 874 | 00005004 t .done 875 | 0000500a t .no_byte 876 | 00005018 T strcat 877 | 0000503c T addValueU32.lto_priv.138 878 | 000052d4 T showValueU32U32U32.lto_priv.156 879 | 00005334 T addValueU16.lto_priv.137 880 | 00005586 T releaseSprite.part.0.lto_priv.126 881 | 000055f4 T moveAfter.lto_priv.180 882 | 0000574c T SPR_setFrame 883 | 00005788 T SPR_setHFlip 884 | 000057fa T SPR_setPosition 885 | 0000584c T SPR_releaseSprite 886 | 0000597a T PAL_doFadeStep 887 | 00005d0a T PAL_setPalette 888 | 00005d5e T SPR_update 889 | 000064e6 T SPR_reset 890 | 000065d4 T joyEvent 891 | 00006f48 T animateVirus 892 | 000073fc T drawScreenText 893 | 000077b8 T SYS_doVBlankProcessEx.constprop.111 894 | 00007c00 T Z80_loadDriver.constprop.102 895 | 00007fcc T XGM_startPlayPCM.constprop.101 896 | 0000802e T XGM_startPlayPCM.constprop.100 897 | 0000808e T SPR_setVisibility.constprop.91 898 | 000080be T SPR_setVisibility.constprop.90 899 | 000080f4 T DMA_doVRamFill.constprop.88 900 | 000081da T SPR_setAnim.constprop.65 901 | 0000821c T SPR_setAnim.constprop.64 902 | 00008258 T VDP_setTileMapXY.constprop.60 903 | 000082c4 T DMA_transfer.constprop.72 904 | 000083e8 T updateMapsAddress.lto_priv.134 905 | 00008468 T updateUserTileMaxIndex 906 | 00008482 T VDP_waitVSync 907 | 000085da T VDP_waitVBlank 908 | 00008746 T VDP_setHVLatching 909 | 00008784 T VDP_setAutoInc 910 | 0000879e T VDP_init 911 | 00008ab2 T random 912 | 00008ad8 T waitSubTick.part.0 913 | 00008c94 T waitSubTick 914 | 00008cd6 T waitTick.part.1 915 | 000091e4 t VDP_setTileMapDataRectEx.constprop.36 916 | 000095b8 T VDP_getPlaneAddress 917 | 00009674 T VDP_setReg.constprop.19 918 | 0000968e T showBusAddressErrorDump.constprop.6 919 | 00009750 T showExceptionDump.constprop.1 920 | 000097c0 T YM2612_reset 921 | 000098ec T PSG_init 922 | 00009924 T Z80_requestBus.part.0 923 | 00009932 T XGM_doVBlankProcess 924 | 000099ce T VDP_setTileMapEx.constprop.34 925 | 00009b84 T VDP_loadTileSet.part.0 926 | 00009d84 T externalIntCB.lto_priv.162 927 | 00009e30 T readTrackball.lto_priv.167 928 | 00009f08 T readLightgun.lto_priv.165 929 | 0000a240 T readTeamPlayer.lto_priv.166 930 | 0000a7c0 T readMouse.lto_priv.168 931 | 0000ab24 T read6Btn.lto_priv.169 932 | 0000abd2 T JOY_reset 933 | 0000b1d2 T DMA_queueDma.part.2 934 | 0000b3de T DMA_doCPUCopy 935 | 0000b568 T checkMatches 936 | 0000c8e0 t _trace_callback 937 | 0000c8e2 T _extint_dummy_callback 938 | 0000c8e4 t _hint_dummy_callback 939 | 0000c8e6 t _vint_dummy_callback 940 | 0000c8e8 t _int_callback 941 | 0000c8ea t _line1x1x_callback 942 | 0000c8ec t internal_reset 943 | 0000cb68 t _buserror_callback 944 | 0000cb98 t _addresserror_callback 945 | 0000cbc8 t _zerodivide_callback 946 | 0000cbf8 t _privilegeviolation_callback 947 | 0000cc28 t _errorexception_callback 948 | 0000cc58 T _reset_entry 949 | 0000cc64 T showStackState.lto_priv.136 950 | 0000d40e T showRegisterState.lto_priv.135 951 | 0000d55c t showException4WDump 952 | 0000d5e6 t _illegalinst_callback 953 | 0000d618 t _chkinst_callback 954 | 0000d64a t _trapvinst_callback 955 | 0000d67c T _start_entry 956 | 0000d830 T VDP_resetSprites 957 | 0000d86a T VDP_drawText 958 | 0000dd26 T VDP_loadTileSet 959 | 0000e04c T PAL_setColors 960 | 0000e176 T memcpy 961 | 0000e186 T memset 962 | 0000e19e T MEM_pack 963 | 0000e212 T MEM_free 964 | 0000e224 T MEM_alloc 965 | 0000e2f0 T JOY_setSupport.part.0 966 | 0000e788 T JOY_update 967 | 0000eda0 t vsprintf.constprop.53 968 | 0000f776 T sprintf.constprop.52 969 | 0000f78c T sprintf.constprop.51 970 | 0000f7a4 T sprintf.constprop.50 971 | 0000f7bc T SPR_addSpriteEx.constprop.47 972 | 0000fb04 T setTileMapDataColumnEx.constprop.37 973 | 0000fc44 T drawBGpills 974 | 0000fe70 T DMA_doDma 975 | 000101d4 T DMA_queueDmaFast 976 | 00010306 T DMA_setBufferSize 977 | 0001038c T BMP_doVBlankProcess 978 | 00010400 T smp_null 979 | 00010500 T __mulsi3 980 | 00010524 T __udivsi3 981 | 0001054c t L3 982 | 0001054e t L4 983 | 0001057a t L5 984 | 0001057c t L6 985 | 00010580 T __divsi3 986 | 0001058e t L1 987 | 00010598 t L2 988 | 000105aa t L3 989 | 000105b0 T __umodsi3 990 | 000105e0 T __modsi3 991 | 00010610 T __CTOR_LIST__ 992 | 00010618 T __CTOR_END__ 993 | 00010618 T __DTOR_LIST__ 994 | 00010620 T __DTOR_END__ 995 | 00010620 t pillsprite_animation0_frame0_base_sprite0 996 | 00010624 t pillsprite_animation0_frame0_hflip_sprite0 997 | 00010628 t pillsprite_animation0_frame0_vflip_sprite0 998 | 0001062c t pillsprite_animation0_frame0_hvflip_sprite0 999 | 00010630 t mario_animation0_frame0_base_sprite0 1000 | 00010634 t mario_animation0_frame0_base_sprite1 1001 | 00010638 t mario_animation0_frame0_vflip_sprite0 1002 | 0001063c t mario_animation0_frame0_vflip_sprite1 1003 | 00010640 t mariohand_animation0_frame0_base_sprite0 1004 | 00010644 t mariohand_animation0_frame0_hflip_sprite0 1005 | 00010648 t mariohand_animation0_frame0_vflip_sprite0 1006 | 0001064c t mariohand_animation0_frame0_hvflip_sprite0 1007 | 00010650 t mario_gameover_animation0_frame0_base_sprite0 1008 | 00010654 t mario_gameover_animation0_frame0_base_sprite1 1009 | 00010658 t mario_gameover_animation0_frame0_base_sprite2 1010 | 0001065c t mario_gameover_animation0_frame0_base_sprite3 1011 | 00010660 t mario_gameover_animation0_frame0_hflip_sprite0 1012 | 00010664 t mario_gameover_animation0_frame0_hflip_sprite1 1013 | 00010668 t mario_gameover_animation0_frame0_hflip_sprite2 1014 | 0001066c t mario_gameover_animation0_frame0_hflip_sprite3 1015 | 00010670 t mario_gameover_animation0_frame0_vflip_sprite0 1016 | 00010674 t mario_gameover_animation0_frame0_vflip_sprite1 1017 | 00010678 t mario_gameover_animation0_frame0_vflip_sprite2 1018 | 0001067c t mario_gameover_animation0_frame0_vflip_sprite3 1019 | 00010680 t mario_gameover_animation0_frame0_hvflip_sprite0 1020 | 00010684 t mario_gameover_animation0_frame0_hvflip_sprite1 1021 | 00010688 t mario_gameover_animation0_frame0_hvflip_sprite2 1022 | 0001068c t mario_gameover_animation0_frame0_hvflip_sprite3 1023 | 00010690 t virusguy1_animation0_frame0_base_sprite0 1024 | 00010694 t virusguy1_animation1_frame0_base_sprite0 1025 | 00010698 t virusguy1_animation1_frame0_vflip_sprite0 1026 | 0001069c t virusguy2_animation1_frame0_base_sprite0 1027 | 000106a0 t virusguy2_animation1_frame0_vflip_sprite0 1028 | 000106a4 t virusguy3_animation0_frame0_base_sprite0 1029 | 000106a8 t virusguy3_animation0_frame0_hflip_sprite0 1030 | 000106ac t virusguy3_animation1_frame0_base_sprite0 1031 | 000106b0 t virusguy3_animation1_frame0_vflip_sprite0 1032 | 000106b4 t title_logoA_animation0_frame0_base_sprite0 1033 | 000106b8 t title_logoA_animation0_frame0_base_sprite1 1034 | 000106bc t title_logoA_animation0_frame0_base_sprite2 1035 | 000106c0 t title_logoA_animation0_frame0_base_sprite3 1036 | 000106c4 t title_logoA_animation0_frame0_base_sprite4 1037 | 000106c8 t title_logoA_animation0_frame0_base_sprite5 1038 | 000106cc t title_logoA_animation0_frame0_base_sprite6 1039 | 000106d0 t title_logoA_animation0_frame0_base_sprite7 1040 | 000106d4 t title_logoA_animation0_frame0_base_sprite8 1041 | 000106d8 t title_logoA_animation0_frame0_hflip_sprite0 1042 | 000106dc t title_logoA_animation0_frame0_hflip_sprite1 1043 | 000106e0 t title_logoA_animation0_frame0_hflip_sprite2 1044 | 000106e4 t title_logoA_animation0_frame0_hflip_sprite3 1045 | 000106e8 t title_logoA_animation0_frame0_hflip_sprite4 1046 | 000106ec t title_logoA_animation0_frame0_hflip_sprite5 1047 | 000106f0 t title_logoA_animation0_frame0_hflip_sprite6 1048 | 000106f4 t title_logoA_animation0_frame0_hflip_sprite7 1049 | 000106f8 t title_logoA_animation0_frame0_hflip_sprite8 1050 | 000106fc t title_logoA_animation0_frame0_vflip_sprite0 1051 | 00010700 t title_logoA_animation0_frame0_vflip_sprite1 1052 | 00010704 t title_logoA_animation0_frame0_vflip_sprite2 1053 | 00010708 t title_logoA_animation0_frame0_vflip_sprite3 1054 | 0001070c t title_logoA_animation0_frame0_vflip_sprite4 1055 | 00010710 t title_logoA_animation0_frame0_vflip_sprite5 1056 | 00010714 t title_logoA_animation0_frame0_vflip_sprite6 1057 | 00010718 t title_logoA_animation0_frame0_vflip_sprite7 1058 | 0001071c t title_logoA_animation0_frame0_vflip_sprite8 1059 | 00010720 t title_logoA_animation0_frame0_hvflip_sprite0 1060 | 00010724 t title_logoA_animation0_frame0_hvflip_sprite1 1061 | 00010728 t title_logoA_animation0_frame0_hvflip_sprite2 1062 | 0001072c t title_logoA_animation0_frame0_hvflip_sprite3 1063 | 00010730 t title_logoA_animation0_frame0_hvflip_sprite4 1064 | 00010734 t title_logoA_animation0_frame0_hvflip_sprite5 1065 | 00010738 t title_logoA_animation0_frame0_hvflip_sprite6 1066 | 0001073c t title_logoA_animation0_frame0_hvflip_sprite7 1067 | 00010740 t title_logoA_animation0_frame0_hvflip_sprite8 1068 | 00010744 t title_logoB_animation0_frame0_base_sprite0 1069 | 00010748 t title_logoB_animation0_frame0_base_sprite1 1070 | 0001074c t title_logoB_animation0_frame0_base_sprite2 1071 | 00010750 t title_logoB_animation0_frame0_base_sprite3 1072 | 00010754 t title_logoB_animation0_frame0_hflip_sprite0 1073 | 00010758 t title_logoB_animation0_frame0_hflip_sprite1 1074 | 0001075c t title_logoB_animation0_frame0_hflip_sprite2 1075 | 00010760 t title_logoB_animation0_frame0_hflip_sprite3 1076 | 00010764 t title_logoB_animation0_frame0_vflip_sprite0 1077 | 00010768 t title_logoB_animation0_frame0_vflip_sprite1 1078 | 0001076c t title_logoB_animation0_frame0_vflip_sprite2 1079 | 00010770 t title_logoB_animation0_frame0_vflip_sprite3 1080 | 00010774 t title_logoB_animation0_frame0_hvflip_sprite0 1081 | 00010778 t title_logoB_animation0_frame0_hvflip_sprite1 1082 | 0001077c t title_logoB_animation0_frame0_hvflip_sprite2 1083 | 00010780 t title_logoB_animation0_frame0_hvflip_sprite3 1084 | 00010784 t title_foot_animation0_frame0_base_sprite0 1085 | 00010788 t title_foot_animation0_frame0_hflip_sprite0 1086 | 0001078c t optdiff_animation0_frame0_base_sprite0 1087 | 00010790 t optdiff_animation0_frame0_hflip_sprite0 1088 | 00010794 t optdiff_animation0_frame0_vflip_sprite0 1089 | 00010798 t optdiff_animation0_frame0_hvflip_sprite0 1090 | 0001079c t musicbox_animation0_frame0_base_sprite0 1091 | 000107a0 t musicbox_animation0_frame0_base_sprite1 1092 | 000107a4 t musicbox_animation0_frame0_hflip_sprite0 1093 | 000107a8 t musicbox_animation0_frame0_hflip_sprite1 1094 | 000107ac t musicbox_animation0_frame0_vflip_sprite0 1095 | 000107b0 t musicbox_animation0_frame0_vflip_sprite1 1096 | 000107b4 t musicbox_animation0_frame0_hvflip_sprite0 1097 | 000107b8 t musicbox_animation0_frame0_hvflip_sprite1 1098 | 000107bc t musicboxoff_animation0_frame0_base_sprite0 1099 | 000107c0 t musicboxoff_animation0_frame0_base_sprite1 1100 | 000107c4 t musicboxoff_animation0_frame0_hflip_sprite0 1101 | 000107c8 t musicboxoff_animation0_frame0_hflip_sprite1 1102 | 000107cc t musicboxoff_animation0_frame0_vflip_sprite0 1103 | 000107d0 t musicboxoff_animation0_frame0_vflip_sprite1 1104 | 000107d4 t musicboxoff_animation0_frame0_hvflip_sprite0 1105 | 000107d8 t musicboxoff_animation0_frame0_hvflip_sprite1 1106 | 000107dc t optionssel1spr_animation0_frame0_base_sprite0 1107 | 000107e0 t optionssel1spr_animation0_frame0_base_sprite1 1108 | 000107e4 t optionssel1spr_animation0_frame0_base_sprite2 1109 | 000107e8 t optionssel1spr_animation0_frame0_base_sprite3 1110 | 000107ec t optionssel1spr_animation0_frame0_base_sprite4 1111 | 000107f0 t optionssel1spr_animation0_frame0_base_sprite5 1112 | 000107f4 t optionssel1spr_animation0_frame0_base_sprite6 1113 | 000107f8 t optionssel1spr_animation0_frame0_base_sprite7 1114 | 000107fc t optionssel1spr_animation0_frame0_hflip_sprite0 1115 | 00010800 t optionssel1spr_animation0_frame0_hflip_sprite1 1116 | 00010804 t optionssel1spr_animation0_frame0_hflip_sprite2 1117 | 00010808 t optionssel1spr_animation0_frame0_hflip_sprite3 1118 | 0001080c t optionssel1spr_animation0_frame0_hflip_sprite4 1119 | 00010810 t optionssel1spr_animation0_frame0_hflip_sprite5 1120 | 00010814 t optionssel1spr_animation0_frame0_hflip_sprite6 1121 | 00010818 t optionssel1spr_animation0_frame0_hflip_sprite7 1122 | 0001081c t optionssel1spr_animation0_frame0_vflip_sprite0 1123 | 00010820 t optionssel1spr_animation0_frame0_vflip_sprite1 1124 | 00010824 t optionssel1spr_animation0_frame0_vflip_sprite2 1125 | 00010828 t optionssel1spr_animation0_frame0_vflip_sprite3 1126 | 0001082c t optionssel1spr_animation0_frame0_vflip_sprite4 1127 | 00010830 t optionssel1spr_animation0_frame0_vflip_sprite5 1128 | 00010834 t optionssel1spr_animation0_frame0_vflip_sprite6 1129 | 00010838 t optionssel1spr_animation0_frame0_vflip_sprite7 1130 | 0001083c t optionssel1spr_animation0_frame0_hvflip_sprite0 1131 | 00010840 t optionssel1spr_animation0_frame0_hvflip_sprite1 1132 | 00010844 t optionssel1spr_animation0_frame0_hvflip_sprite2 1133 | 00010848 t optionssel1spr_animation0_frame0_hvflip_sprite3 1134 | 0001084c t optionssel1spr_animation0_frame0_hvflip_sprite4 1135 | 00010850 t optionssel1spr_animation0_frame0_hvflip_sprite5 1136 | 00010854 t optionssel1spr_animation0_frame0_hvflip_sprite6 1137 | 00010858 t optionssel1spr_animation0_frame0_hvflip_sprite7 1138 | 0001085c t optionssel2spr_animation0_frame0_base_sprite0 1139 | 00010860 t optionssel2spr_animation0_frame0_base_sprite1 1140 | 00010864 t optionssel2spr_animation0_frame0_hflip_sprite0 1141 | 00010868 t optionssel2spr_animation0_frame0_hflip_sprite1 1142 | 0001086c t optionssel2spr_animation0_frame0_vflip_sprite0 1143 | 00010870 t optionssel2spr_animation0_frame0_vflip_sprite1 1144 | 00010874 t optionssel2spr_animation0_frame0_hvflip_sprite0 1145 | 00010878 t optionssel2spr_animation0_frame0_hvflip_sprite1 1146 | 0001087c t optionssel3spr_animation0_frame0_base_sprite0 1147 | 00010880 t optionssel3spr_animation0_frame0_base_sprite1 1148 | 00010884 t optionssel3spr_animation0_frame0_base_sprite2 1149 | 00010888 t optionssel3spr_animation0_frame0_hflip_sprite0 1150 | 0001088c t optionssel3spr_animation0_frame0_hflip_sprite1 1151 | 00010890 t optionssel3spr_animation0_frame0_vflip_sprite0 1152 | 00010894 t optionssel3spr_animation0_frame0_vflip_sprite1 1153 | 00010898 t optionssel3spr_animation0_frame0_vflip_sprite2 1154 | 0001089c t optionssel3spr_animation0_frame0_hvflip_sprite0 1155 | 000108a0 t optionssel3spr_animation0_frame0_hvflip_sprite1 1156 | 000108a4 t startspr_animation0_frame0_base_sprite1 1157 | 000108a8 t startspr_animation0_frame0_hflip_sprite0 1158 | 000108ac t startspr_animation0_frame0_hflip_sprite1 1159 | 000108b0 t startspr_animation0_frame0_vflip_sprite1 1160 | 000108b4 t startspr_animation0_frame0_hvflip_sprite0 1161 | 000108b8 t startspr_animation0_frame0_hvflip_sprite1 1162 | 000108bc t background_palette 1163 | 000108c2 t pausedpalette_palette 1164 | 000108c8 t pillsprite_palette 1165 | 000108ce t title_palette 1166 | 000108d4 t options_palette 1167 | 000108da t startspr_palette 1168 | 000108e0 t orangetile_palette 1169 | 000108e6 t background_tileset 1170 | 000108ee t pausedpalette_tileset 1171 | 000108f6 t pillsprite_animation0_frame0_tileset 1172 | 000108fe t pillsprite_animation0_frame1_tileset 1173 | 00010906 t pillsprite_animation0_frame2_tileset 1174 | 0001090e t pillsprite_animation1_frame0_tileset 1175 | 00010916 t pillsprite_animation1_frame1_tileset 1176 | 0001091e t pillsprite_animation1_frame2_tileset 1177 | 00010926 t pillsprite_animation2_frame0_tileset 1178 | 0001092e t pillsprite_animation2_frame1_tileset 1179 | 00010936 t pillsprite_animation2_frame2_tileset 1180 | 0001093e t pillsprite_animation3_frame0_tileset 1181 | 00010946 t pillsprite_animation3_frame1_tileset 1182 | 0001094e t pillsprite_animation3_frame2_tileset 1183 | 00010956 t pillsprite_animation4_frame0_tileset 1184 | 0001095e t pillsprite_animation4_frame1_tileset 1185 | 00010966 t pillsprite_animation4_frame2_tileset 1186 | 0001096e t pillsprite_animation5_frame0_tileset 1187 | 00010976 t pillsprite_animation5_frame1_tileset 1188 | 0001097e t pillsprite_animation5_frame2_tileset 1189 | 00010986 t pillbg_tileset 1190 | 0001098e t mario_animation0_frame0_tileset 1191 | 00010996 t mario_animation0_frame1_tileset 1192 | 0001099e t mario_animation0_frame2_tileset 1193 | 000109a6 t mariohand_animation0_frame0_tileset 1194 | 000109ae t mario_gameover_animation0_frame0_tileset 1195 | 000109b6 T tileset_Font_Namco 1196 | 000109be t virusguy1_animation0_frame0_tileset 1197 | 000109c6 t virusguy1_animation1_frame0_tileset 1198 | 000109ce t virusguy2_animation0_frame0_tileset 1199 | 000109d6 t virusguy2_animation1_frame0_tileset 1200 | 000109de t virusguy3_animation0_frame0_tileset 1201 | 000109e6 t virusguy3_animation1_frame0_tileset 1202 | 000109ee t title_tileset 1203 | 000109f6 t title_logoA_animation0_frame0_tileset 1204 | 000109fe t title_logoB_animation0_frame0_tileset 1205 | 00010a06 t title_foot_animation0_frame0_tileset 1206 | 00010a0e t title_virus_animation0_frame0_tileset 1207 | 00010a16 t title_virus_animation1_frame0_tileset 1208 | 00010a1e t options_tileset 1209 | 00010a26 t optlevel_animation0_frame0_tileset 1210 | 00010a2e t optdiff_animation0_frame0_tileset 1211 | 00010a36 t musicbox_animation0_frame0_tileset 1212 | 00010a3e t musicboxoff_animation0_frame0_tileset 1213 | 00010a46 t optionssel1spr_animation0_frame0_tileset 1214 | 00010a4e t optionssel2spr_animation0_frame0_tileset 1215 | 00010a56 t optionssel3spr_animation0_frame0_tileset 1216 | 00010a5e t startspr_animation0_frame0_tileset 1217 | 00010a66 t finishedtiles_tileset 1218 | 00010a6e t blacktile_tileset 1219 | 00010a76 t orangetile_tileset 1220 | 00010a7e t background_tilemap 1221 | 00010a88 t pausedpalette_tilemap 1222 | 00010a92 t pillbg_tilemap 1223 | 00010a9c t title_tilemap 1224 | 00010aa6 t options_tilemap 1225 | 00010ab0 t finishedtiles_tilemap 1226 | 00010aba t blacktile_tilemap 1227 | 00010ac4 t pillsprite_animation0_frame0_base_sprites 1228 | 00010ac8 t pillsprite_animation0_frame0_hflip_sprites 1229 | 00010acc t pillsprite_animation0_frame0_vflip_sprites 1230 | 00010ad0 t pillsprite_animation0_frame0_hvflip_sprites 1231 | 00010ad4 t mario_animation0_frame0_base_sprites 1232 | 00010adc t mario_animation0_frame0_vflip_sprites 1233 | 00010ae4 t mariohand_animation0_frame0_base_sprites 1234 | 00010ae8 t mariohand_animation0_frame0_hflip_sprites 1235 | 00010aec t mariohand_animation0_frame0_vflip_sprites 1236 | 00010af0 t mariohand_animation0_frame0_hvflip_sprites 1237 | 00010af4 t mario_gameover_animation0_frame0_base_sprites 1238 | 00010b04 t mario_gameover_animation0_frame0_hflip_sprites 1239 | 00010b14 t mario_gameover_animation0_frame0_vflip_sprites 1240 | 00010b24 t mario_gameover_animation0_frame0_hvflip_sprites 1241 | 00010b34 t virusguy1_animation0_frame0_base_sprites 1242 | 00010b38 t virusguy1_animation1_frame0_base_sprites 1243 | 00010b3c t virusguy1_animation1_frame0_vflip_sprites 1244 | 00010b40 t virusguy2_animation1_frame0_base_sprites 1245 | 00010b44 t virusguy2_animation1_frame0_vflip_sprites 1246 | 00010b48 t virusguy3_animation0_frame0_base_sprites 1247 | 00010b4c t virusguy3_animation0_frame0_hflip_sprites 1248 | 00010b50 t virusguy3_animation1_frame0_base_sprites 1249 | 00010b54 t virusguy3_animation1_frame0_vflip_sprites 1250 | 00010b58 t title_logoA_animation0_frame0_base_sprites 1251 | 00010b7c t title_logoA_animation0_frame0_hflip_sprites 1252 | 00010ba0 t title_logoA_animation0_frame0_vflip_sprites 1253 | 00010bc4 t title_logoA_animation0_frame0_hvflip_sprites 1254 | 00010be8 t title_logoB_animation0_frame0_base_sprites 1255 | 00010bf8 t title_logoB_animation0_frame0_hflip_sprites 1256 | 00010c08 t title_logoB_animation0_frame0_vflip_sprites 1257 | 00010c18 t title_logoB_animation0_frame0_hvflip_sprites 1258 | 00010c28 t title_foot_animation0_frame0_base_sprites 1259 | 00010c2c t title_foot_animation0_frame0_hflip_sprites 1260 | 00010c30 t optdiff_animation0_frame0_base_sprites 1261 | 00010c34 t optdiff_animation0_frame0_hflip_sprites 1262 | 00010c38 t optdiff_animation0_frame0_vflip_sprites 1263 | 00010c3c t optdiff_animation0_frame0_hvflip_sprites 1264 | 00010c40 t musicbox_animation0_frame0_base_sprites 1265 | 00010c48 t musicbox_animation0_frame0_hflip_sprites 1266 | 00010c50 t musicbox_animation0_frame0_vflip_sprites 1267 | 00010c58 t musicbox_animation0_frame0_hvflip_sprites 1268 | 00010c60 t musicboxoff_animation0_frame0_base_sprites 1269 | 00010c68 t musicboxoff_animation0_frame0_hflip_sprites 1270 | 00010c70 t musicboxoff_animation0_frame0_vflip_sprites 1271 | 00010c78 t musicboxoff_animation0_frame0_hvflip_sprites 1272 | 00010c80 t optionssel1spr_animation0_frame0_base_sprites 1273 | 00010ca0 t optionssel1spr_animation0_frame0_hflip_sprites 1274 | 00010cc0 t optionssel1spr_animation0_frame0_vflip_sprites 1275 | 00010ce0 t optionssel1spr_animation0_frame0_hvflip_sprites 1276 | 00010d00 t optionssel2spr_animation0_frame0_base_sprites 1277 | 00010d08 t optionssel2spr_animation0_frame0_hflip_sprites 1278 | 00010d10 t optionssel2spr_animation0_frame0_vflip_sprites 1279 | 00010d18 t optionssel2spr_animation0_frame0_hvflip_sprites 1280 | 00010d20 t optionssel3spr_animation0_frame0_base_sprites 1281 | 00010d2c t optionssel3spr_animation0_frame0_hflip_sprites 1282 | 00010d38 t optionssel3spr_animation0_frame0_vflip_sprites 1283 | 00010d44 t optionssel3spr_animation0_frame0_hvflip_sprites 1284 | 00010d50 t startspr_animation0_frame0_base_sprites 1285 | 00010d58 t startspr_animation0_frame0_hflip_sprites 1286 | 00010d60 t startspr_animation0_frame0_vflip_sprites 1287 | 00010d68 t startspr_animation0_frame0_hvflip_sprites 1288 | 00010d70 t pillsprite_animation0_frame0 1289 | 00010d98 t pillsprite_animation0_frame1 1290 | 00010dc0 t pillsprite_animation0_frame2 1291 | 00010de8 t pillsprite_animation1_frame0 1292 | 00010e10 t pillsprite_animation1_frame1 1293 | 00010e38 t pillsprite_animation1_frame2 1294 | 00010e60 t pillsprite_animation2_frame0 1295 | 00010e88 t pillsprite_animation2_frame1 1296 | 00010eb0 t pillsprite_animation2_frame2 1297 | 00010ed8 t pillsprite_animation3_frame0 1298 | 00010f00 t pillsprite_animation3_frame1 1299 | 00010f28 t pillsprite_animation3_frame2 1300 | 00010f50 t pillsprite_animation4_frame0 1301 | 00010f78 t pillsprite_animation4_frame1 1302 | 00010fa0 t pillsprite_animation4_frame2 1303 | 00010fc8 t pillsprite_animation5_frame0 1304 | 00010ff0 t pillsprite_animation5_frame1 1305 | 00011018 t pillsprite_animation5_frame2 1306 | 00011040 t mario_animation0_frame0 1307 | 00011068 t mario_animation0_frame1 1308 | 00011090 t mario_animation0_frame2 1309 | 000110b8 t mariohand_animation0_frame0 1310 | 000110e0 t mario_gameover_animation0_frame0 1311 | 00011108 t virusguy1_animation0_frame0 1312 | 00011130 t virusguy1_animation1_frame0 1313 | 00011158 t virusguy2_animation0_frame0 1314 | 00011180 t virusguy2_animation1_frame0 1315 | 000111a8 t virusguy3_animation0_frame0 1316 | 000111d0 t virusguy3_animation1_frame0 1317 | 000111f8 t title_logoA_animation0_frame0 1318 | 00011220 t title_logoB_animation0_frame0 1319 | 00011248 t title_foot_animation0_frame0 1320 | 00011270 t title_virus_animation0_frame0 1321 | 00011298 t title_virus_animation1_frame0 1322 | 000112c0 t optlevel_animation0_frame0 1323 | 000112e8 t optdiff_animation0_frame0 1324 | 00011310 t musicbox_animation0_frame0 1325 | 00011338 t musicboxoff_animation0_frame0 1326 | 00011360 t optionssel1spr_animation0_frame0 1327 | 00011388 t optionssel2spr_animation0_frame0 1328 | 000113b0 t optionssel3spr_animation0_frame0 1329 | 000113d8 t startspr_animation0_frame0 1330 | 00011400 t pillsprite_animation0_frames 1331 | 0001140c t pillsprite_animation0_sequence 1332 | 00011410 t pillsprite_animation0 1333 | 0001141e t pillsprite_animation1_frames 1334 | 0001142a t pillsprite_animation1_sequence 1335 | 0001142e t pillsprite_animation1 1336 | 0001143c t pillsprite_animation2_frames 1337 | 00011448 t pillsprite_animation2_sequence 1338 | 0001144c t pillsprite_animation2 1339 | 0001145a t pillsprite_animation3_frames 1340 | 00011466 t pillsprite_animation3_sequence 1341 | 0001146a t pillsprite_animation3 1342 | 00011478 t pillsprite_animation4_frames 1343 | 00011484 t pillsprite_animation4_sequence 1344 | 00011488 t pillsprite_animation4 1345 | 00011496 t pillsprite_animation5_frames 1346 | 000114a2 t pillsprite_animation5_sequence 1347 | 000114a6 t pillsprite_animation5 1348 | 000114b4 t mario_animation0_frames 1349 | 000114c0 t mario_animation0_sequence 1350 | 000114c4 t mario_animation0 1351 | 000114d2 t mariohand_animation0_frames 1352 | 000114d6 t mariohand_animation0_sequence 1353 | 000114d8 t mariohand_animation0 1354 | 000114e6 t mario_gameover_animation0_frames 1355 | 000114ea t mario_gameover_animation0_sequence 1356 | 000114ec t mario_gameover_animation0 1357 | 000114fa t virusguy1_animation0_frames 1358 | 000114fe t virusguy1_animation0_sequence 1359 | 00011500 t virusguy1_animation0 1360 | 0001150e t virusguy1_animation1_frames 1361 | 00011512 t virusguy1_animation1_sequence 1362 | 00011514 t virusguy1_animation1 1363 | 00011522 t virusguy2_animation0_frames 1364 | 00011526 t virusguy2_animation0_sequence 1365 | 00011528 t virusguy2_animation0 1366 | 00011536 t virusguy2_animation1_frames 1367 | 0001153a t virusguy2_animation1_sequence 1368 | 0001153c t virusguy2_animation1 1369 | 0001154a t virusguy3_animation0_frames 1370 | 0001154e t virusguy3_animation0_sequence 1371 | 00011550 t virusguy3_animation0 1372 | 0001155e t virusguy3_animation1_frames 1373 | 00011562 t virusguy3_animation1_sequence 1374 | 00011564 t virusguy3_animation1 1375 | 00011572 t title_logoA_animation0_frames 1376 | 00011576 t title_logoA_animation0_sequence 1377 | 00011578 t title_logoA_animation0 1378 | 00011586 t title_logoB_animation0_frames 1379 | 0001158a t title_logoB_animation0_sequence 1380 | 0001158c t title_logoB_animation0 1381 | 0001159a t title_foot_animation0_frames 1382 | 0001159e t title_foot_animation0_sequence 1383 | 000115a0 t title_foot_animation0 1384 | 000115ae t title_virus_animation0_frames 1385 | 000115b2 t title_virus_animation0_sequence 1386 | 000115b4 t title_virus_animation0 1387 | 000115c2 t title_virus_animation1_frames 1388 | 000115c6 t title_virus_animation1_sequence 1389 | 000115c8 t title_virus_animation1 1390 | 000115d6 t optlevel_animation0_frames 1391 | 000115da t optlevel_animation0_sequence 1392 | 000115dc t optlevel_animation0 1393 | 000115ea t optdiff_animation0_frames 1394 | 000115ee t optdiff_animation0_sequence 1395 | 000115f0 t optdiff_animation0 1396 | 000115fe t musicbox_animation0_frames 1397 | 00011602 t musicbox_animation0_sequence 1398 | 00011604 t musicbox_animation0 1399 | 00011612 t musicboxoff_animation0_frames 1400 | 00011616 t musicboxoff_animation0_sequence 1401 | 00011618 t musicboxoff_animation0 1402 | 00011626 t optionssel1spr_animation0_frames 1403 | 0001162a t optionssel1spr_animation0_sequence 1404 | 0001162c t optionssel1spr_animation0 1405 | 0001163a t optionssel2spr_animation0_frames 1406 | 0001163e t optionssel2spr_animation0_sequence 1407 | 00011640 t optionssel2spr_animation0 1408 | 0001164e t optionssel3spr_animation0_frames 1409 | 00011652 t optionssel3spr_animation0_sequence 1410 | 00011654 t optionssel3spr_animation0 1411 | 00011662 t startspr_animation0_frames 1412 | 00011666 t startspr_animation0_sequence 1413 | 00011668 t startspr_animation0 1414 | 00011676 t pillsprite_animations 1415 | 0001168e T pillsprite 1416 | 0001169c t mario_animations 1417 | 000116a0 T mario 1418 | 000116ae t mariohand_animations 1419 | 000116b2 T mariohand 1420 | 000116c0 t mario_gameover_animations 1421 | 000116c4 T mario_gameover 1422 | 000116d2 t virusguy1_animations 1423 | 000116da T virusguy1 1424 | 000116e8 t virusguy2_animations 1425 | 000116f0 T virusguy2 1426 | 000116fe t virusguy3_animations 1427 | 00011706 T virusguy3 1428 | 00011714 t title_logoA_animations 1429 | 00011718 T title_logoA 1430 | 00011726 t title_logoB_animations 1431 | 0001172a T title_logoB 1432 | 00011738 t title_foot_animations 1433 | 0001173c T title_foot 1434 | 0001174a t title_virus_animations 1435 | 00011752 T title_virus 1436 | 00011760 t optlevel_animations 1437 | 00011764 T optlevel 1438 | 00011772 t optdiff_animations 1439 | 00011776 T optdiff 1440 | 00011784 t musicbox_animations 1441 | 00011788 T musicbox 1442 | 00011796 t musicboxoff_animations 1443 | 0001179a T musicboxoff 1444 | 000117a8 t optionssel1spr_animations 1445 | 000117ac T optionssel1spr 1446 | 000117ba t optionssel2spr_animations 1447 | 000117be T optionssel2spr 1448 | 000117cc t optionssel3spr_animations 1449 | 000117d0 T optionssel3spr 1450 | 000117de t startspr_animations 1451 | 000117e2 T startspr 1452 | 000117f0 T background 1453 | 000117fc T pausedpalette 1454 | 00011808 T pillbg 1455 | 00011814 T title 1456 | 00011820 T options 1457 | 0001182c T finishedtiles 1458 | 00011838 T blacktile 1459 | 00011844 T orangetile 1460 | 000118e4 t palette_white 1461 | 000118e8 t palette_blue 1462 | 00011908 t palette_green 1463 | 00011928 t palette_red 1464 | 00011948 t palette_grey 1465 | 00011986 t xlt_all.1408 1466 | 00011aac t lowercase_hexchars 1467 | 00011abd t uppercase_hexchars 1468 | 00011ace t sgdk_logo_palette 1469 | 00011ad4 T font_pal_default 1470 | 00011ada T font_default 1471 | 00011ae2 T sgdk_logo 1472 | 00011af0 T z80_drv0 1473 | 00011b2a T z80_xgm 1474 | 0001322c T __INIT_SECTION__ 1475 | 0001322e T __FINI_SECTION__ 1476 | 00013230 T _etext 1477 | 00013300 t background_palette_data 1478 | 00013320 t pausedpalette_palette_data 1479 | 00013340 t pillsprite_palette_data 1480 | 00013360 t title_palette_data 1481 | 00013380 t options_palette_data 1482 | 000133a0 t startspr_palette_data 1483 | 000133c0 t orangetile_palette_data 1484 | 00013400 T fever 1485 | 00019800 T rotatewav 1486 | 00019f00 T pillmovewav 1487 | 0001a200 T menuchangewav 1488 | 0001aa00 T matchwav 1489 | 0001c600 T killviruswav 1490 | 0001e100 T optionsmus 1491 | 00021200 T titlemus 1492 | 00022500 t sgdk_logo_palette_data 1493 | 00022520 t font_pal_default_data 1494 | 00022540 T stop_xgm 1495 | 000225ec T danceX 1496 | 0002266c T danceY 1497 | 000226ec T throwX 1498 | 00022706 T throwY 1499 | 00022720 t background_tilemap_data 1500 | 0002290a t pausedpalette_tilemap_data 1501 | 00022914 t pillbg_tilemap_data 1502 | 00022944 t title_tilemap_data 1503 | 00022b70 t options_tilemap_data 1504 | 00022ca2 t finishedtiles_tilemap_data 1505 | 00022ca8 t blacktile_tilemap_data 1506 | 00022caa t background_tileset_data 1507 | 0002313c t pausedpalette_tileset_data 1508 | 00023174 t pillsprite_animation0_frame0_tileset_data 1509 | 0002318e t pillsprite_animation0_frame1_tileset_data 1510 | 000231a8 t pillsprite_animation0_frame2_tileset_data 1511 | 000231c2 t pillsprite_animation1_frame0_tileset_data 1512 | 000231da t pillsprite_animation1_frame1_tileset_data 1513 | 000231f2 t pillsprite_animation1_frame2_tileset_data 1514 | 0002320a t pillsprite_animation2_frame0_tileset_data 1515 | 00023222 t pillsprite_animation2_frame1_tileset_data 1516 | 0002323a t pillsprite_animation2_frame2_tileset_data 1517 | 00023252 t pillsprite_animation3_frame0_tileset_data 1518 | 0002326c t pillsprite_animation3_frame1_tileset_data 1519 | 00023286 t pillsprite_animation3_frame2_tileset_data 1520 | 000232a0 t pillsprite_animation4_frame0_tileset_data 1521 | 000232ae t pillsprite_animation4_frame1_tileset_data 1522 | 000232bc t pillsprite_animation4_frame2_tileset_data 1523 | 000232ca t pillsprite_animation5_frame0_tileset_data 1524 | 000232da t pillsprite_animation5_frame1_tileset_data 1525 | 000232ea t pillsprite_animation5_frame2_tileset_data 1526 | 000232fa t pillbg_tileset_data 1527 | 0002341c t mario_animation0_frame0_tileset_data 1528 | 00023576 t mario_animation0_frame1_tileset_data 1529 | 00023658 t mario_animation0_frame2_tileset_data 1530 | 0002374e t mariohand_animation0_frame0_tileset_data 1531 | 0002376a t mario_gameover_animation0_frame0_tileset_data 1532 | 000238dc t tileset_Font_Namco_data 1533 | 000244bc t virusguy1_animation0_frame0_tileset_data 1534 | 000245bc t virusguy1_animation1_frame0_tileset_data 1535 | 000246a2 t virusguy2_animation0_frame0_tileset_data 1536 | 00024786 t virusguy2_animation1_frame0_tileset_data 1537 | 00024868 t virusguy3_animation0_frame0_tileset_data 1538 | 00024950 t virusguy3_animation1_frame0_tileset_data 1539 | 00024a26 t title_tileset_data 1540 | 00025220 t title_logoA_animation0_frame0_tileset_data 1541 | 000255a4 t title_logoB_animation0_frame0_tileset_data 1542 | 00025786 t title_foot_animation0_frame0_tileset_data 1543 | 000257b4 t title_virus_animation0_frame0_tileset_data 1544 | 00025868 t title_virus_animation1_frame0_tileset_data 1545 | 00025900 t options_tileset_data 1546 | 00025ab8 t optlevel_animation0_frame0_tileset_data 1547 | 00025ad6 t optdiff_animation0_frame0_tileset_data 1548 | 00025b06 t musicbox_animation0_frame0_tileset_data 1549 | 00025b3a t musicboxoff_animation0_frame0_tileset_data 1550 | 00025b6c t optionssel1spr_animation0_frame0_tileset_data 1551 | 00025bf4 t optionssel2spr_animation0_frame0_tileset_data 1552 | 00025c4c t optionssel3spr_animation0_frame0_tileset_data 1553 | 00025ca6 t startspr_animation0_frame0_tileset_data 1554 | 00025d02 t finishedtiles_tileset_data 1555 | 00025d62 t blacktile_tileset_data 1556 | 00025d68 t orangetile_tileset_data 1557 | 00025d6e t font_default_data 1558 | 00025fd0 t sgdk_logo_data 1559 | 00026412 A _stext 1560 | 00ff0000 d animDelay 1561 | 00ff0001 d fallingDelay 1562 | 00ff0004 D pieceLanded 1563 | 00ff0006 D topscore 1564 | 00ff000a d virusMoveIndex3 1565 | 00ff000b d virusMoveIndex2 1566 | 00ff000c D fallingpill 1567 | 00ff001a D speed 1568 | 00ff001b d scoreMultiplier 1569 | 00ff0026 D _edata 1570 | 00ff0026 B _start 1571 | 00ff0028 b bmp_buffer_read 1572 | 00ff002c b bmp_buffer_0 1573 | 00ff0030 b bmp_buffer_1 1574 | 00ff0034 b bmp_plan 1575 | 00ff0038 b bmp_plan_adr 1576 | 00ff003c b flag 1577 | 00ff003e b pal 1578 | 00ff0040 b prio 1579 | 00ff0042 b state 1580 | 00ff0044 b pos_i.3016 1581 | 00ff0046 b result.3133 1582 | 00ff004a b result.3138 1583 | 00ff004e b timer 1584 | 00ff008e b displayDev 1585 | 00ff008f b throwindex 1586 | 00ff0090 b fallingDelayAmt 1587 | 00ff0092 b OKtopress 1588 | 00ff0094 b optionssel3 1589 | 00ff0098 b optionssel2 1590 | 00ff009c b optionssel1 1591 | 00ff00a0 b options_level 1592 | 00ff00a4 b titlevirus 1593 | 00ff00a8 b titlefoot 1594 | 00ff00ac b titlelogoB 1595 | 00ff00b0 b titlelogoA 1596 | 00ff00b4 B spritesBank.lto_priv.179 1597 | 00ff00b8 b lastVTimer.1512 1598 | 00ff00bc b fadeEndPal 1599 | 00ff013c b fadeSB 1600 | 00ff01bc b fadeSG 1601 | 00ff023c b fadeSR 1602 | 00ff02bc b fadeB 1603 | 00ff033c b fadeG 1604 | 00ff03bc b fadeR 1605 | 00ff043c b fadeCurrentPal 1606 | 00ff04bc b fadeInd 1607 | 00ff04be b fadeSize 1608 | 00ff04c0 b fadeCounter 1609 | 00ff04c4 B donedrawing 1610 | 00ff04c6 B paused 1611 | 00ff04c8 B rotateDelay 1612 | 00ff04ca B options_musbox 1613 | 00ff04ce B options_musboxoff 1614 | 00ff04d2 B music 1615 | 00ff04d4 B options_diff 1616 | 00ff04d8 B menuItem 1617 | 00ff04d9 B inputDelay 1618 | 00ff04da B level 1619 | 00ff04db b virusMoveIndex1 1620 | 00ff04dc b virusFrame 1621 | 00ff04e0 B bga_addr 1622 | 00ff04e2 B window_addr 1623 | 00ff04e4 B windowWidthSft 1624 | 00ff04e6 B windowWidth 1625 | 00ff04e8 B bgb_addr 1626 | 00ff04ea B planeWidthSft 1627 | 00ff04ec B planeHeight 1628 | 00ff04ee B planeWidth 1629 | 00ff04f0 B dataBufferSize.lto_priv.131 1630 | 00ff04f2 B queueSize.lto_priv.133 1631 | 00ff04f4 B xgmWaitMean.lto_priv.155 1632 | 00ff04f6 B xgmIdleMean.lto_priv.154 1633 | 00ff04f8 B xgmTabInd.lto_priv.153 1634 | 00ff04fc B xgmWaitTab.lto_priv.152 1635 | 00ff053c B xgmIdleTab.lto_priv.151 1636 | 00ff057c B xgmTempoDef.lto_priv.127 1637 | 00ff057e B xgmTempo.lto_priv.128 1638 | 00ff0580 B hscrl_addr 1639 | 00ff0582 B scrollY.lto_priv.144 1640 | 00ff0586 B scrollX.lto_priv.143 1641 | 00ff058a B updateScroll.lto_priv.142 1642 | 00ff058e B regValues.lto_priv.125 1643 | 00ff05a2 B nextDataBuffer.lto_priv.129 1644 | 00ff05a6 B dataBuffer.lto_priv.130 1645 | 00ff05aa B queueTransferSize.lto_priv.147 1646 | 00ff05ac B flag.lto_priv.146 1647 | 00ff05ae B queueIndexLimit.lto_priv.145 1648 | 00ff05b0 B queueIndex.lto_priv.132 1649 | 00ff05b2 B driverFlags 1650 | 00ff05b4 B slist_addr 1651 | 00ff05b6 B vdpSpriteCache 1652 | 00ff0836 B lastVCnt 1653 | 00ff0838 B flags.lto_priv.141 1654 | 00ff083a B currentDriver 1655 | 00ff083c B randbase 1656 | 00ff083e B curTileInd 1657 | 00ff0840 B frameLoads.lto_priv.148 1658 | 00ff0850 B frameLoadIndex.lto_priv.149 1659 | 00ff0852 B cpuFrameLoad.lto_priv.150 1660 | 00ff0854 B userTileMaxIndex 1661 | 00ff0856 B spriteVramSize 1662 | 00ff0858 b lastTick 1663 | 00ff085c b lastVTimer.3145 1664 | 00ff0860 B planeHeightSft 1665 | 00ff0862 B screenWidth 1666 | 00ff0864 B screenHeight 1667 | 00ff0866 b xgmTempoCnt 1668 | 00ff0868 b retry 1669 | 00ff0869 b phase 1670 | 00ff086c B gameState 1671 | 00ff086e B start_spr 1672 | 00ff0872 B pulseStart 1673 | 00ff0873 B gameoverdrawn 1674 | 00ff0874 B previewpill 1675 | 00ff0882 B drmario_dead 1676 | 00ff0886 B drmario_hand 1677 | 00ff088a B drmario 1678 | 00ff088e B virus3 1679 | 00ff0892 B virus2 1680 | 00ff0896 B virus1 1681 | 00ff089a B virusblu 1682 | 00ff089b B virusyel 1683 | 00ff089c B score 1684 | 00ff08a0 B virus 1685 | 00ff08a1 B virusred 1686 | 00ff08a2 B playfield 1687 | 00ff09d4 b chain 1688 | 00ff09d8 B free.lto_priv.161 1689 | 00ff09dc B heap.lto_priv.160 1690 | 00ff09e0 B dmaQueues 1691 | 00ff09e4 B maxTransferPerFrame.lto_priv.158 1692 | 00ff09e6 B joyEventCB.lto_priv.163 1693 | 00ff09ea B disableIntStack.lto_priv.164 1694 | 00ff09ec b lastSubTick 1695 | 00ff09f0 b frameCnt 1696 | 00ff09f4 B text_basetile.lto_priv.139 1697 | 00ff09f6 B maps_addr 1698 | 00ff09f8 B text_plan.lto_priv.140 1699 | 00ff09fc B gport.lto_priv.177 1700 | 00ff09fe B extSet.lto_priv.174 1701 | 00ff09ff B gun.lto_priv.173 1702 | 00ff0a00 B joyAxisY.lto_priv.171 1703 | 00ff0a10 B joyAxisX.lto_priv.170 1704 | 00ff0a20 B joyState.lto_priv.175 1705 | 00ff0a30 B joyType.lto_priv.176 1706 | 00ff0a38 B portSupport.lto_priv.178 1707 | 00ff0a3a B portType.lto_priv.172 1708 | 00ff0a3c B lastAllocatedVDPSprite 1709 | 00ff0a40 B highestVDPSpriteIndex 1710 | 00ff0a42 B allocStack.lto_priv.124 1711 | 00ff0b82 B free.lto_priv.122 1712 | 00ff0b86 B lastSprite 1713 | 00ff0b8a B firstSprite 1714 | 00ff0b8e B allocStack.lto_priv.123 1715 | 00ff0b92 B free.lto_priv.121 1716 | 00ff0b96 B vram.lto_priv.159 1717 | 00ff0ba2 B starter.lto_priv.157 1718 | 00ff0ba6 B hud_string 1719 | 00ff0bd0 b virusTimer 1720 | 00ff0bd4 b phase 1721 | 00ff0bd6 B intTrace 1722 | 00ff0bd8 B VBlankProcess 1723 | 00ff0bda B vtimer 1724 | 00ff0bde B srState 1725 | 00ff0be0 B ext2State 1726 | 00ff0be2 B pcState 1727 | 00ff0be6 B ext1State 1728 | 00ff0be8 B addrState 1729 | 00ff0bec B illegalInstCB 1730 | 00ff0bf0 B errorExceptionCB 1731 | 00ff0bf4 B trapvInstCB 1732 | 00ff0bf8 B hintCB 1733 | 00ff0bfc B chkInstCB 1734 | 00ff0c00 B registerState 1735 | 00ff0c40 B line1x1xCB 1736 | 00ff0c44 B intLevelSave 1737 | 00ff0c46 B traceCB 1738 | 00ff0c4a B zeroDivideCB 1739 | 00ff0c4e B intCB 1740 | 00ff0c52 B addressErrorCB 1741 | 00ff0c56 B eintCB 1742 | 00ff0c5a B privilegeViolationCB 1743 | 00ff0c5e B vintCB 1744 | 00ff0c62 B busErrorCB 1745 | 00ff0c66 B _bend 1746 | --------------------------------------------------------------------------------