'**************************************************************************** '* This is a Demo of 99 Bottles written in BasiEgaXorz, a Basic based * '* language that compiles Sega Genesis Programs/Games. * '* * '* This demo includes full graphics using 3 Layers (ScrollA, ScrollB and * '* Sprites) and four 16 color pallettes. * '* * '* For more information about BasiEgaXorz, visit the Devster's website: * '* http://devster.retrodev.com/sega/basiegaxorz * '* * '* You can also download the ROM binary and play it on a Genesis emulator * '* (Gens/Kega) here: * '* http://www.seganet.com.br/backup/megadrive_files/megadrive_99bottles.zip * '* * '* Written by Tulio Adriano. Februrary 16, 2005. * '* * '* NOTE: Please respect all spaces before the command lines. * '**************************************************************************** OPTION TITLE, "99 BOTTLES OF BEER" Dim X as Integer Dim Y as Integer Dim X2 as Integer Dim Y2 as Integer Dim FatX as Integer Dim FatY as Integer Dim OffSet as Integer Dim SpriteBottle(99) as Integer Dim I as Integer Dim I2 as Integer Dim NwSprite as Integer Dim LastBottle as Integer LoadTiles Tiles, 16,256,0 LoadTiles Stars, 16,272,0 LoadTiles UpperTiles, 4,288,0 LoadTiles Bottle, 8,292,0 LoadTiles Box, 9,300,0 Pallettes PalletteTiles, 0,0,16 Pallettes PalletteBottle,1,0,16 Pallettes PalletteStars, 2,0,16 Pallettes PalletteBox, 3,0,16 Ink 0 OffSet = 256 SetGfxPlane SCROLL_B FatY = 0 Ink 2 For Y2 = 1 To 2 For X2 = 1 To 10 OffSet = 272 For X = 0 To 3 For Y = 0 To 3 DrawTile OffSet, X + FatX, Y + FatY OffSet++ Next Next FatX = FatX + 4 Next FatY = FatY + 4 FatX = 0 Next FatY = 8 Ink 0 For Y2 = 1 To 6 For X2 = 1 To 10 OffSet = 256 For X = 0 To 3 For Y = 0 To 2 DrawTile OffSet, X + FatX, Y + FatY OffSet++ Next OffSet++ Next FatX = FatX + 4 Next FatY = FatY + 3 FatX = 0 Next SetGfxPlane SCROLL_A OffSet = 288 Y = 7 FatX = 0 For X2 = 1 To 10 OffSet = 288 For X = 0 To 3 DrawTile OffSet, X + FatX, Y OffSet++ Next FatX = FatX + 4 Next For I = 99 To 80 Step - 1 SpriteBottle(I) = AddSprite(4,2) PropSprite SpriteBottle(I), 292, 1 FatX = (99 - I) * 16 MoveSprite SpriteBottle(I), FatX + 128, 32 + 128 Next X=10: Y=9: X2=30: Y2=14: GoSub DrawBox Ink 2 For I = 99 to 1 Step - 1 Locate 10,11 Print Str$(I) Locate 10,13 If I = 1 Then Print " bottle of beer" Else Print " bottles of beer" Locate 11,11 Print "on the wall!" Sleep 120 GoSub ClearBoxText Sleep 15 Locate 10,11 Print Str$(I) Locate 10,13 If I = 1 Then Print " bottle of beer!" Else Print " bottles of beer!" Sleep 120 GoSub ClearBoxText Sleep 15 Locate 10,11 If I = 1 Then Print "Take it down," Else Print "Take one down," Locate 11,11 Print "pass it arround!" For I2 = 1 To 32 ShiftSprite SpriteBottle(I), 0, 3 Sleep 1 Next For I2 = 1 To 110 ShiftSprite SpriteBottle(I), 3, 0 Sleep 1 Next FreeSprite SpriteBottle(I) If I > 1 Then If I > 20 Then NwSprite = I - 20 SpriteBottle(NwSprite) = AddSprite(4,2) PropSprite SpriteBottle(NwSprite), 292, 1 FatX = 20 * 16 MoveSprite SpriteBottle(NwSprite), FatX + 128, 32 + 128 LastBottle = I - 20 Else LastBottle = 1 End If For X = 1 to 16 For I2 = I - 1 To LastBottle Step - 1 ShiftSprite SpriteBottle(I2),-1, 0 Next Sleep 1 Next End If GoSub ClearBoxText Sleep 15 Next Locate 10,11 Print "No more bottles of" Locate 11,11 Print "beer on the wall." End DrawBox: SetGfxPlane SCROLL_B Ink 3 DrawTile 300, X, Y DrawTile 302, X, Y2 DrawTile 306, X2, Y DrawTile 308, X2, Y2 For I = Y + 1 To Y2 - 1 DrawTile 301, X, I Next For I = X + 1 To X2 - 1 DrawTile 303, I, Y Next For I = X + 1 To X2 - 1 DrawTile 305, I, Y2 Next For I = Y + 1 To Y2 - 1 DrawTile 307, X2, I Next For I2 = Y + 1 to Y2 - 1 For I = X + 1 To X2 - 1 DrawTile 304, I, I2 Next Next Return ClearBoxText: Locate 10,10 Print " " Locate 11,10 Print " " Return PalletteTiles: DATAINT $0AAA,$0EEE,$0CCC,$0AAA,$0888,$000E,$000A,$0008 ' Pallette: 0 DATAINT $0006,$0024,$0026,$0048,$0000,$0000,$0000,$0000 PalletteBottle: DATAINT $0EEE,$00EE,$00CC,$00AA,$0088,$0044,$008E,$006E ' Pallette: 1 DATAINT $006C,$004A,$0026,$0AEE,$0880,$0AA0,$0CC0,$0EE0 PalletteStars: DATAINT $0EEE,$0EEE,$0CCC,$0AAA,$0888,$0666,$0444,$0222 ' Pallette: 2 DATAINT $0000,$0ECC,$0EAA,$0E88,$0866,$0844,$0822,$0800 PalletteBox: DATAINT $0EEE,$00EE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 3 DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000 Tiles: DATALONG $BBBBBBBB ' Tile: 0 DATALONG $BAAAAAAA DATALONG $BA888888 DATALONG $BA888888 DATALONG $BA888888 DATALONG $BA888888 DATALONG $BA888888 DATALONG $BA888888 DATALONG $B9999999 ' Tile: 1 DATALONG $44444444 DATALONG $33333333 DATALONG $22222222 DATALONG $BBBBBBBB DATALONG $AAAAAAAA DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 ' Tile: 2 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $99999999 DATALONG $44444444 DATALONG $33333333 DATALONG $22222222 DATALONG $CCCCCCCC ' Tile: 3 DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $BBBBBBBB ' Tile: 4 DATALONG $AAAAAAAA DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $99999999 ' Tile: 5 DATALONG $44444444 DATALONG $33333333 DATALONG $22222232 DATALONG $BBBBB432 DATALONG $AAAAA432 DATALONG $88889432 DATALONG $88889432 DATALONG $88889432 ' Tile: 6 DATALONG $88889432 DATALONG $88889432 DATALONG $88889432 DATALONG $99999432 DATALONG $44444432 DATALONG $33333333 DATALONG $22222222 DATALONG $CCCCCCCC ' Tile: 7 DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $BBBBBBBB ' Tile: 8 DATALONG $AAAAAAAA DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $99999999 ' Tile: 9 DATALONG $44444444 DATALONG $33333333 DATALONG $22222222 DATALONG $BBBBBBBB DATALONG $BAAAAAAA DATALONG $BA888888 DATALONG $BA888888 DATALONG $BA888888 ' Tile: 10 DATALONG $BA888888 DATALONG $BA888888 DATALONG $BA888888 DATALONG $B9999999 DATALONG $44444444 DATALONG $33333333 DATALONG $22222222 DATALONG $CCCCCCCC ' Tile: 11 DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $BBBBB432 ' Tile: 12 DATALONG $AAAAA432 DATALONG $88888432 DATALONG $88888432 DATALONG $88888432 DATALONG $88888432 DATALONG $88888432 DATALONG $88888432 DATALONG $99999432 ' Tile: 13 DATALONG $44444432 DATALONG $33333333 DATALONG $22222222 DATALONG $BBBBBBBB DATALONG $AAAAAAAA DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 ' Tile: 14 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $99999999 DATALONG $44444444 DATALONG $33333333 DATALONG $22222232 DATALONG $CCCCCCCC ' Tile: 15 DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC DATALONG $CCCCCCCC UpperTiles: DATALONG $9999402B ' Tile: 0 DATALONG $889432BA DATALONG $89432BA8 DATALONG $9432BA88 DATALONG $432BA888 DATALONG $32BA8888 DATALONG $2BAAAAAA DATALONG $BBBBBBBB DATALONG $99999999 ' Tile: 1 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $AAAAAAAA DATALONG $BBBBBBBB DATALONG $99999999 ' Tile: 2 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $AAAAAAAA DATALONG $BBBBBBBB DATALONG $99999999 ' Tile: 3 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888889 DATALONG $88888894 DATALONG $AAAAAA43 DATALONG $BBBBB432 Bottle: DATALONG $000000CC ' Tile: 0 DATALONG $0000005C DATALONG $00000054 DATALONG $00000054 DATALONG $00000051 DATALONG $00000051 DATALONG $0000051B DATALONG $0000051B DATALONG $0000521B ' Tile: 1 DATALONG $0005321B DATALONG $0005321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B ' Tile: 2 DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B ' Tile: 3 DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0054321B DATALONG $0005521B DATALONG $00000555 DATALONG $00000000 DATALONG $CC000000 ' Tile: 4 DATALONG $C5000000 DATALONG $45000000 DATALONG $45000000 DATALONG $15000000 DATALONG $15000000 DATALONG $11500000 DATALONG $11500000 DATALONG $11250000 ' Tile: 5 DATALONG $11235000 DATALONG $11235000 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 ' Tile: 6 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 ' Tile: 7 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11234500 DATALONG $11255000 DATALONG $55500000 DATALONG $00000000 Stars: DATALONG $88848868 ' Tile: 0 DATALONG $88858858 DATALONG $88868848 DATALONG $88878838 DATALONG $88888525 DATALONG $88885212 DATALONG $65432111 DATALONG $88885212 DATALONG $88888525 ' Tile: 1 DATALONG $88888838 DATALONG $88888848 DATALONG $88888858 DATALONG $67888868 DATALONG $88888878 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 ' Tile: 2 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88878765 DATALONG $88868888 DATALONG $88858888 DATALONG $88848888 ' Tile: 3 DATALONG $88838888 DATALONG $88525888 DATALONG $85212588 DATALONG $32111234 DATALONG $85212588 DATALONG $88525888 DATALONG $88838878 DATALONG $88888888 ' Tile: 4 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88876543 DATALONG $58888888 DATALONG $23456788 DATALONG $58888888 DATALONG $88888888 ' Tile: 5 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88887888 DATALONG $88886888 DATALONG $88885888 ' Tile: 6 DATALONG $88884888 DATALONG $88883888 DATALONG $88852588 DATALONG $88521258 DATALONG $43211123 DATALONG $88521258 DATALONG $88852588 DATALONG $88883888 ' Tile: 7 DATALONG $88884888 DATALONG $88885888 DATALONG $88886888 DATALONG $56787888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88488888 ' Tile: 8 DATALONG $88388888 DATALONG $85258888 DATALONG $52125888 DATALONG $21112345 DATALONG $52125888 DATALONG $85258888 DATALONG $88388888 DATALONG $88488888 ' Tile: 9 DATALONG $88588888 DATALONG $88688888 DATALONG $88788888 DATALONG $88876543 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 ' Tile: 10 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888888 DATALONG $45678888 DATALONG $88888888 DATALONG $88888888 DATALONG $88888885 ' Tile: 11 DATALONG $88888852 DATALONG $87654321 DATALONG $88888852 DATALONG $88888885 DATALONG $88788888 DATALONG $88688888 DATALONG $88588888 DATALONG $68888888 ' Tile: 12 DATALONG $78888888 DATALONG $88888888 DATALONG $88888888 DATALONG $67888888 DATALONG $88788888 DATALONG $88688887 DATALONG $88588888 DATALONG $88488888 ' Tile: 13 DATALONG $88388888 DATALONG $85258888 DATALONG $52125888 DATALONG $21112345 DATALONG $52125888 DATALONG $85258888 DATALONG $88388888 DATALONG $88488888 ' Tile: 14 DATALONG $88588888 DATALONG $88688888 DATALONG $78788888 DATALONG $68888888 DATALONG $58888888 DATALONG $48888888 DATALONG $38888888 DATALONG $25888888 ' Tile: 15 DATALONG $12588888 DATALONG $11234567 DATALONG $12588888 DATALONG $25887654 DATALONG $38888888 DATALONG $48888888 DATALONG $58888888 Box: DATALONG $88888888 ' Tile: 0 DATALONG $87777777 DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE ' Tile: 1 DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE ' Tile: 2 DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87EEEEEE DATALONG $87888888 DATALONG $77777777 DATALONG $88888888 ' Tile: 3 DATALONG $77777777 DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE ' Tile: 4 DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE ' Tile: 5 DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $EEEEEEEE DATALONG $88888888 DATALONG $77777777 DATALONG $88888888 ' Tile: 6 DATALONG $77777787 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 ' Tile: 7 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 ' Tile: 8 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $EEEEEE87 DATALONG $88888887 DATALONG $77777777