Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by Geehaf

  1. Thanks for clarification and further details. Appreciate it.
  2. I wonder if it's worth considering the x16 with a full FPGA implementation like the X8? Not sure what it would mean for the YM chip but perhaps there is already FPGA for that too. It would allow for complete "firmware" upgrades in the future and could simplify the overall design. Not sure if it would help reduce manufacturing costs. Yes, my idea is a little radical I know, especially with all the work and time spent so far on the hybrid FPGA / non FPGA chips approach.
  3. Yes, all documented VERA registers etc. The routine does disable the tile layer between each tile line to stop VERA outputting any tile graphics (this is the space highlighted in yellow below) and dynamically determines the next relative vertical scroll position for the layer in relation to the end position of the previous line. Cheers.
  4. Thanks for the interest! It works by generating a pair of line interrupts for each visible line of tiles, then adjusting the vertical scroll position for the Tile layer accordingly based upon a sine wave pattern, i.e. the 1st line interrupt "switches on" the tile line and the 2nd "switches off" the tile line and is then repeated for all visible moving lines. Tile graphics data is not manipulated as such. Initially I did consider basing the effect on updating the tile base address register but the "grain" of this address is limited to a multiple of 2048 bytes.
  5. I did publish this link on the FB group earlier but just in case you missed it A very small sneak peek at one of the effects I've coded for my upcoming X16 demo: VERA.FX 1 Inspiration came from a C64 Flexible Line Distance (FLD) routine I wrote back in the 1980s! Hopefully the full demo will be released soon...(all fingers crossed ). Not a sprite in sight!
  6. The PSG does lack some of the SID HW features, e.g. ADSR, Filters etc, but it can still pump out some great sounds. Something like ADSR can be achieved in SW using timing and the volume control for the voice. Take a look at the link below. It's a C64 Rob Hubbard routine with its SID values being translated (approx) to PSG values.
  7. One of my fave games from the C64 days is getting a new life on the Switch - Feb 2021:
  8. Thanks Johan - Yes I'm currently using the line interrupts but was curious about the above. Cheers.
  9. I think the answer to my question is NO but does anybody know if there is a way to determine the "current" raster line being rendered by VERA? On the C64 you could simply issue a: LDA $D012 (with the MSB being held in the $D011 register) Thanks, G
  10. A great article I read recently that talks about sprite to tile collisions and other considerations when thinking about implementing a platformer style game: https://games.greggman.com/game/programming_m_c__kids/ The HW context is the NES but the principles still apply. Interestingly, the Collisions section starts with the sentence "Now for the fun part. NOT!" It won't give you the 6502 code but details some of the challenges and provides approaches to solving them. I found it useful for one of my current X16 projects.
  11. Looking good! That's one tidy power cable...
  12. Thanks - this now makes sense. Essentially collisions are detected for up to 4 potential groups and each sprite can be assigned a specific group. Does this mean collisions are only detected/generated within a specific group, e.g. if a player sprite (say) was assigned to group 0 and all enemy sprites to group 1 then collisions would not be generated when a player collides with an enemy sprite? Also thanks for the heads up re. HW vs SW collision detection approach.
  13. Hi All, Has anybody experimented with using the newly implemented sprite collisions with R38? The VERA doco mentions sprite collisions but I was hoping somebody could provide a worked example / explanation. Reading the doco it looks like each of the 128 sprites can be assigned a 4 bit collision mask but I'm not sure how this works together with the 4 bits of "sprite collisions" provided by the ISR register ($9F27). Any help much appreciated. Regards, G
  14. Thanks Stephen - I suspect it's in that space too. For my current project, my idea for a workaround is to use the Horizontal Stop register (DC=1, $9F2A) to mask it out - example below. Cheers, G
  15. Hi All, Out of curiosity, does anybody know what the coloured lines are that appear at the end of a line when I set the HSCALE ($9F2A) register to 255 - see below. Interestingly when I move the cursor around the screen area they change colour - try it out yourself by typing POKE $9F2A,255 (I'm using R38). My thought is these lines represent some form of register artefact, but I am just guessing. Cheers, G
  16. This might be something the X16 becomes part of down the line. Quoting TRSE post: Turbo Rascal Syntax Error (TRSE) is a modern and complete IDE, compiler and toolshop for game/demo development for the Commodore 64, VIC-20, NES, Gameboy, PLUS/4, C128, PET, Atari 2600, TIKI-100, Amiga 500, Atari ST (520), and old-school MS-DOS (CGA). With over 250 tutorials from 42 sample projects spanning 12 systems, an image/level/sprite/resource editor, help text and extensive documentation and a fast compiler, TRSE currently enables extremely rapid prototyping and development of 8 and 16 bit software for the 6502, m68K, z80 and x86 line of computers. TRSE also contains fully programmable real-time ray tracer (using LUA) that exports (raw/compressed) image data to C64/Amiga formats. TRSE also contain example projects for demo and game development, both on the C64, the VIC-20, Gameboy and the NES. Try out TRSE today! Promo video (0.08) : https://www.youtube.com/watch?v=H3FQDnNP2m0 Promo video (0.09) : https://www.youtube.com/watch?v=xT-8cyqTbnE TRSE showcase list: https://lemonspawn.com/gallery_/ Get your fresh copy now (win/macos/linux) from http://www.turborascal.com Join the TRSE development group on facebook : https://www.facebook.com/groups/742955836046459/ C64 demo (1st at Flashparty 2020) made with TRSE: https://www.youtube.com/watch?v=IBQmXOSjVAc Gameboy demo (2nd at Solskogen 2020) made with TRSE: https://www.youtube.com/watch?v=2jY4wqkSxBs Amiga demo placed 1st at Revision 2020 with 1 effect (twister) written in TRSE : https://www.youtube.com/watch?v=6sFuvx8Sbao C64 demo written in TRSE : https://www.youtube.com/watch?v=RH39q_Vs4rc VIC-20 demo written in TRSE: https://www.youtube.com/watch?v=KmaK8ru2pz8 OK64 demo written in TRSE : https://www.youtube.com/watch?v=BqIxwTUWUh0
  17. This is good to know - I was about to start moving my 6502 code (which uses line interrupts heavily) from R36 to R37. Any chance you can share an updated and recompiled R37 binary for use on Windows or a link to some notes on how to compile on a windows host? Thanks.
  18. As far as I can work out there isn't any way to change a memory address value when in the debugger? Sometimes it can be very useful to be able to tweak a 6502 program's data attributes in "real time". I currently hook up a inc/dec routine to the joy-pad buttons...anybody else had experience of something similar and come up with other creative ways to achieve it?
  19. HI John - Taking in the comments above I've re-cut your code a little to work with CBM Prg Studio: ; 10 SYS (2064) *=$0801 target TGT_C64 vera_bankstride = $9F22 vera_hibyte = $9f21 vera_lobyte = $9f20 vera_data0 = $9f23 BYTE $0E, $08, $0A, $00, $9E, $20, $28, $32, $30, $36, $34, $29, $00, $00, $00 YourCode lda #%00010000 sta vera_bankstride lda #$00 sta vera_lobyte sta vera_hibyte colour = #$0f ldx #$00 ldy colour loop lda string,x beq loopend sta vera_data0 sty vera_data0 inx bne loop loopend rts string text 'hello world' byte 0 Output is: Also CBM PRG Studio has a little helper piece for adding the basic line:
  20. G'day Cobbers! This is George from Sydney (not Sydney from George). Originally from the UK but set sail to Sydney back in 2003 and haven't left since. Currently set myself the challenge of dusting down my 6502 assembler skills and designing & writing my own interpretation of a Platformer style game for the X16. Progress is slow but the (personal) rewards are high! You'll find progress of my X16 journey here https://youtu.be/gDqObCsjp58 Brief History : ZX81 -> C64 -> Amiga 500 (part of European "scene" from 1984 - 1990) Looking forward to booting up the real HW. Cheers, George
  • Create New...

Important Information

Please review our Terms of Use