Jump to content

vitoco

Members
  • Content Count

    427
  • Joined

  • Last visited

Community Reputation

643 Excellent

1 Follower

About vitoco

  • Rank
    Moonsweeper

Contact / Social Media

Profile Information

  • Gender
    Male

Recent Profile Visitors

6,794 profile views
  1. Well... it was a very quick stats analisys. I don't know about different Commodore platforms, but I just grouped them all. The same for the remaining ones. About Windows entries, all of them went directly to the WILD category!!! I wish Bunsen could publish better stats, including that one with countries
  2. I saw that line, but I couldn't run your code. I wrote my own 8 ways fine scrolling test using a 64x63 "map" (~4K of RAM) displayed using a GR.2-like doisplay list, and you are right, it is quite slow in pure FastBasic with a FOR-NEXT loop to update each pointer: graphics 0 data dlist() byte = $70,$70,$70, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $57,$00,$00, data byte = $41,$00,$00 dl=adr(dlist) dlptr=dl+4 dlact=$5900 dlactptr=dlact+4 dpoke dl+43,dlact dlcache=$6000 pfdata=$9020 ? "Initializing playfield data..." mset pfdata,$FC0,3 for j=1 to 61 for i=1 to 62 poke pfdata+j*64+i,j+64*(i mod 4) next i next j move dl,dlact,45 dpoke 560,dlact x=256 y=512 repeat s=15-stick(0) x=x-(s&4>0)*(x>80)+(s&8>0)*(x<432) y=y-2*(s&1>0)*(y>48)+2*(s&2>0)*(y<862) a=x-80 b=y-48 a1=a/8 a2=8-a mod 8 b1=b/16 b2=b mod 16 d=dlptr m=pfdata+a1+b1*64-1 for i=0 to 12 dpoke d,m d=d+3 m=m+64 next i pause 0 move dlptr,dlactptr,38 poke $D404,a2 poke $D405,b2 until key() I modified the code and replaced the FOR-NEXT loop with pre-cached display lists. It took me less than 9K to get all 2250 "portions" of DL. The result was a lot better: graphics 0 data dlist() byte = $70,$70,$70, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $77,$00,$00, data byte = $57,$00,$00, data byte = $41,$00,$00 dl=adr(dlist) dlptr=dl+4 dlact=$5900 dlactptr=dlact+4 dpoke dl+43,dlact dlcache=$6000 pfdata=$9020 ? "Initializing DL cache..." mset dlcache,$3000,$77 d=dlcache for i=0 to 44 m=pfdata+i-1 for j=0 to 62 dpoke d,m m=m+64 d=d+3 next j next i ? "Initializing playfield data..." mset pfdata,$FC0,3 for j=1 to 61 for i=1 to 62 poke pfdata+j*64+i,j+64*(i mod 4) next i next j move dl,dlact,45 dpoke 560,dlact x=256 y=512 repeat s=15-stick(0) x=x-(s&4>0)*(x>80)+(s&8>0)*(x<432) y=y-2*(s&1>0)*(y>48)+2*(s&2>0)*(y<862) a=x-80 b=y-48 a1=a/8 a2=8-a mod 8 b1=b/16 b2=b mod 16 move dlcache+3*(b1+a1*63),dlptr,38 dlist(39)=$57 pause 0 move dlptr,dlactptr,38 poke $D404,a2 poke $D405,b2 until key() Notes: - I used a 64x63 map to keep it bellow 4096 bytes and avoid the 4K boundary problem of display lists. - In the cache, I stored a DL list of the first column for all the rows, then the second column and so on. - To use it, I copied (MOVE) just the selected rows to a temporary DL (in DATA array) and update the ANTIC command for the last line (with the vertical scroll bit unset). After the PAUSE 0 (VBI sync), I updated the active DL and both horizontal and vertical fine scroll registers. - X and Y user coordinates are expressed in pixels, and the view starts in the center of the map. To compute the upper-left byte of the map to be displayed, half a screen nedds to be substracted. - To get nice diagonal movement in GR.2, I had to multiply the delta values by 2 on each step.
  3. Just as it is now, it won't qualify for a 10liner because of the VBI() array contents and the runvbi=usr($688). But I'm sure it could be converted to plain FastBasic. It might be not as fine as now, but I think that steps of double width/height will do very well too. With "Wazers" I was about to fine-scroll horizontally each line (at different speeds), but I finally discarded the idea because constant 4 color clocks for horizontal scroll was fine for what I wanted (and fit in PUR-120 category).
  4. If no more entries are in Bunsen's email queue, these are the quick 2020 stats: 174 entries: PUR-80: 94 PUR-120: 34 EXTREM-256: 25 SCHAU: 12 WILD: 9 68 authors: Logiker with 22 games or variations of the same game in many platforms. Charlemagne with 21 different games. Fabrizio Caruso with 12 games or variations of the same game in many platforms. Sergio Yukio Koshimizu with 7 games. Toolkitman & Vitoco with 6 games each. RoePipi & Bushy555 with 4 games each. 10 authors with 3 games each. 12 authors with 2 games each. 38 authors with only 1 game. 36 platforms: 44 entries for Commodore (except C64) 29 entries for MSX 27 entries for Commodore 64 18 entries for Atari 800XL 11 entries for ZX Spectrum 45 entries for the remaining platforms 33 flavors of BASIC: 35 entries in Commodore BASIC V2 30 entries in Commodore BASIC V3.5 27 entries in MSX BASIC 1.0 12 entries in Sinclair BASIC 7 entries in Atari BASIC 6 entries in FastBASIC 4.3 6 entries in Locomotive BASIC 1.1 51 entries in 26 other BASICs
  5. This is my last contribution to this years contest: Tunnel Hunt I started this as a prototype almost a year ago, and it took too much development time in the addition of some elements to make it attractive and playable, but as at the end I had some free space, I finally added some extra features... I still have more than 90 bytes available, but I don't know what more to add in 10 hours. I guess I'm tired, sleepy and stressed (and in quarantine). I allready sent it to Bunsen.
  6. About difficulty levels for both Simona's games: EASY: There are only 4 different basic movements to remember, one for each joystick direction (up, down, left and right). REGULAR: There are 4 extra movements in addition to the 4 basic ones, but you only have to move the joystick in the same 4 directions, and the extra ones will be automatically selected for the series. HARD: You have to press the trigger to select the extra movements along with the joystick, giving real 8 different movements to remember. I hope this helps understanding it. HARD is really hard!!!!! Hint: the trigger allows you to select the steps that uses the arms.
  7. 🤣 I won't distract you with my code... Resume your endless runner, 'cause I want to know how it will finally be.
  8. I've attached a preview for both Simona's games... Please try them and comment... soon!!! I couldn't test them in real hardware, so it might be needed some fine tunning... Code will be released after the contest's results (April 4?). ++V SIMONAF-preview.XEX SIMONAR-preview.XEX
  9. I've just sent two different games with the same engine I called Personal Trainer Simona. The games are: Name: Following Simona Category: EXTREM-256 Platform: Atari XL/XE Language: FastBAsic 4.3 Description: Try to follow Simona in her exercise series as fast as you can. Game is over after 100 misses. Name: Repeat after Simona Category: EXTREM-256 Platform: Atari XL/XE Language: FastBAsic 4.3 Description: Repeat each Simona's excercise series. You win if all 10 series are completed, but the game is over at the first fail. Now, I'm trying to finish the last one: Tunnel Hunt, a simplified version of the arcade game (c) 1979 by Atari and licensed by Centuri in 1981. I hope I could do it in 11 hours...
  10. Sorry for the delay. I was updating it for a 256 bytes per line listing. It is working now. To use it with FastBasic programs, just extract your GAME.BAS file from the ATR and then give it to the ATASCII Printer in the File parameter. Then select "ATASCII listed file" as the Filetype, the line length in the Page parameter and choose one of the Background options. The printer will wrap lines longer than the selected size, but when a line has exactly the same amount of chars than the line size, a blank line will be included, just like when you LIST in Atari BASIC, and to avoid that blank line, check the Skip empty lines option. Please note that an "ATASCII listed file" should have ATASCII char $9B=155 as EOL (end of line), not the CR-LF from MS-DOS or WINDOWS. You can use any tool to extract the GAME.BAS file from the ATR, but I got used to use drag&drop from the "Explore disk..." option in the "Disk Drives..." at the File menu of Altirra.
  11. Just use my ATASCII Printer Oh... It seems that I have to enable 256 (255) as a valid line length option.
  12. Nice parallax effect!!! How do you go from one level to another? Are there some rules on that? Few days for the deadline... I have to decide if I send a couple of undocumented games and try to finish a work in progress (from last year), or to just document the ready ones and keep the wip for the next year... 🤔
  13. Sad to read that. I just sent you a "commemorative" game about this pandemia... I called it Coronavirus for the PUR-80 category and it looks like this:
  14. I've just packaged a FastBasic game called Wazers for the PUR-120 category, and it looks like this: I'll send it to you in a moment. Time goes too fast, and I haven't packaged my almost-finished EXTREME-256 games yet. Docs are in progress...
  15. I always submit the .LST (BASIC source listing) with the loading instructions to comply with the rules, along with the .BAS (tokenized) file as AUTORUN.BAS to autostart in the same .ATR file for Atari BASIC or TurboBasic XL. FastBasic's .XEX (or .COM) files are the runable file equivalent to tokenized files from other BASIC flavors. Of course it contains FastBasic's runtime library and can be stored as AUTORUN.SYS in DOS 2.5 compatible disks to autostart it, but the .LST file and load instructions must also be included in the submission, so it could be manually loaded in FastBasic's IDE (using CTRL-L) and be parsed ("compiled") and run from there (using CTRL-R).
×
×
  • Create New...