Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Getafix

  1. I think we can argue over a lot in part because there is no certainty about what's to come but I'll explain what I meant when I wrote this. Perhaps best explained as a sequence of events that I think will unfold. The Commander X8 will become available and people will post their unboxing and experiences. That will make more people buy it (also, a bird in hand is better than 2 in the bush - the CX16 is in uncertain territory till the finances get settled so may as well get the X8 now). Then, those of us that have made software for the CX16 will convert our software to run on the CX8, and go on to write more software for it. Soon, there will be more X8 software than CX16 software. When the CX16 finally becomes available, will it make financial sense to buy machine that's slower but has more RAM and isn't compatible with all the software now out there? (this all depends on how long it takes to come out, of course). I think for many the answer would be no. For some the answer would be yes - those that care about the fact that the machine isn't all FPGA or maybe want to build the kit or can afford both and see value in the CX16. It will also absolutely sell less than if the X8 doesn't exist (if only by 1 - me) - and this is more true if the CX16 is only in kit form. Retro computers are loved for their look and feel along with their inner workings. A kit computer just doesn't have that same identity. Obviously I made assumptions and as the facts cement it could alter the script but for now I think the CX16 launches later, probably as a kit or maybe as a somewhat expensive ready to go system and the above narrative plays out. Speaking just for me - If the X8 launches, I'll buy it and be done. If the X8 doesn't launch, and a CX16 ready-to-go launches, I'll try to buy that if I can afford it. I don't make the distinction between all FPGA and partially FPGA. It's real, it's hardware and I can make something for it. It's not a simulator or emulator. What I make runs exactly the same for all others that have it - unlike on an emulator. I am not a collector that want's something to display only - I want to use it and share my experiences with others that use it and the X8 will do all of that nicely at a low cost allowing more people in the ecosystem and that works for me.
  2. I believe people are very price sensitive. If you get the X8 now for under $50, it scratches the itch. How many people will spend a lot more later for the X16 when the X8 runs most of the software? I think the X8 will inevitably cannabalize the X16 market, probably killing the X16's chances. In the big picture, maybe that's not really a problem anyway?
  3. TomXP411 said it all so well - all I can say is he spoke for me too. All the best to you and your family.
    Great work! This was recently done for the Apple IIgs which was the first I saw of it and have since watched the other versions. Yours is a truly excellent implementation.
  4. It definitely works as I have used it. I am sorry I can't be more helpful right now and assuming you have r0, r1 and r2 set up, I don't see anything clearly wrong (I don't know if r2 is safe to use as your own index when calling GRAPH_put_char but I assume you checked that already). All I can say is it does work.
  5. Something I didn't know but just found out is that the mouse support works on an iPhone as a touch pointer, so I was able to play this game on my phone in Try It Now. The sound even comes through but it is almost not recognizable.
  6. That was a particularly odd choice on his part. He could rather have cancelled all other versions and stuck to this, for the good of the project. Perhaps he doesn't really feel this is his computer anymore, or he doesn't realize that as the father of the project, abandoning your child will look terrible in the eyes of the community. I would call this his biggest blunder to date - at least from my POV.
  7. I got a BBC Micro not long ago. Other than replace the capacitors to bring it back to life, and a little Basic coding, I haven't done anything with it. I do want to make a game for it though. For some reason there's no cc65 support for the BBC Micro. I was also thinking that working on adding that support may be a good thing. The fact that it doesn't have support does make me wonder if it may be harder than I imagine. I could easily make this runtime run on the BBC and it's not really tied to SHMUP games. Maybe when the time comes I'll think of something where I can repurpose this for some other 6502 based systems - I want to try and get some game I made on a lot of these. I love learning how they all work. I was astonished at how awesome the Atari 800 is technically, given it came out in 1979!
  8. Hi, Here's a video that shows the relatively early Shoot 'Em Up Engine I am building for the CX16. In the engine, enemies are scripted, and the enemies are active objects with program counters, stack pointers, local memory, etc. all in a cooperative multi-tasking environment. There's still quite some way to go before I am ready to make an actual game with this, but so far, it's looking really promising. Iteration time for building things is very quick and I love the idea of giving designers, musicians and artists the tools to do what they do (partly because I can't do that stuff ;) Thank you Stefan
  9. If you are using the default cx16-asm.cfg then it does indeed start at $22. With cc65 it's a good idea to get to know the .cfg files and how they work. You can do some useful stuff if you need to, such as aligning segments, making your own, etc.
  10. The Spectrum Next is (for a short time) available for order again. According to the latest update, production will start early next year so there's a bit more time to order one. Here's the link: https://www.specnext.com/shop/
  11. Instead of .org $22 just use .zeropage. Here's a quick discussion about this: https://www.cc65.org/faq.php#ORG I don't use .org at all. I use .code for the code and I do use .data for variables and .rodata for read-only data (not enforced, just the way I like to organize stuff). Then it's all nice and neat and the linker puts it where it needs to go. here's an example (I saved as main.s): .zeropage myzpptr: .res 2 .code lda #<mystring sta myzpptr lda #>mystring sta myzpptr + 1 ldy #0 : lda (myzpptr), y beq :+ jsr $ffd2 iny bne :- : rts .data mystring: .asciiz "hello, world!" now compile with: cl65 -t cx16 -u __EXEHDR__ main.s -C cx16-asm.cfg and you will have main that you can run in the emulator with: x16emu.exe -prg main -run The -u __EXEHDR__ creates the basic stub (the sys 2061) for you. It's all very neat
  12. Getafix

    CPU meter

    The Apple II emulator, AppleWin, counts the cycles of a "step" and shows it on-screen along with the registers, etc. You can step over a line, routine or run to a breakpoint and you can see exactly how many cycles that took. It's really great for profiling code. That's one area where x16emu could get a lot stronger - better debugging tools. Even with final hardware, having the ability to debug and profile in the emulator will be awesome and will lead to better quality software. Hopefully, over time, x16emu keeps getting features such as that.
  13. A couple of reasosn it looks like it does. I was trying to use the CX16 APIs as much as I could (this was also a learning exercise for me). The grid markers are drawn using the Graph Put Char API, which uses GEOS fonts. If I remember correctly, the put graph char API uses a proportional font, which is not what I needed for the menu or the move log. The Console API did use a mono-space font but the API wasn't well suited to how the menu code wanted to work, so I ended up using the regular text in Layer 1 for the menu and log, and the graph API to put the grid markers into Layer 0. I think you can add your own GEOS font for the Graph API but I don't know anything about GEOS so I didn't explore that route any further. Also, if I remember correctly, the built-in (regular text) font on Layer 1 is a little too wide to look nice when used as a grid marker. When I look at the screenshot now, it doesn't look great. It's probably worthwhile looking into GEOS fonts and making or finding a font that works for all cases.
  14. I did spend a bit of time looking at the "engine" and as I suspected, there are bugs for sure. Casteling can cause grief and corrupt the DB, for example. It may be worth my while to fix the bugs but I think I'd really like to rewrite the whole engine and just keep the interface to the UI (and thus have all the versions still work), now that I have been shown some chess programming resources. I don't need the game to be great, but it would be nice if it could play a fairly descent game of chess. I am just busy with a couple of other things so I think I'll just leave it as is, for now.
  15. Got my registers mixed up! Sorry about that.
  16. I just typed this in: .code lda #8 tax tay jsr $ffba lda #$a ldx #<filename ldy #>filename jsr $ffbd stz $0 lda #$70 sta $1 lda #0 ldx #0 ldy #$90 jmp $ffd8 filename: .byte "bankxx.prg" I compiled with cc65 using: cl65 -t cx16 -u __EXEHDR__ cx16.lib .\save.s -o save.prg -C cx16-asm.cfg I get BANKXX.PRG in the folder where I have the code (save.s), by using the command line (windows Powershell) ~\Games\CX16\x16emu.exe -prg .\save.prg -run I tried omitting the setting of x and y before calling SETLFS and it did not work. I know 1 and 0 worked, but 8 and 8 also worked so something of what @Greg King said made sense, but it's not quite arbitrary? I will stick with a/x/y 8/0/1.
  17. Same code works for me in r38 but I have the SETLFS parameters like this (a/y reversed from how you have it): (for completeness - I also call SETNAM before SETLFS) lda #$00 ; logical number ldx #$08 ; device 8 ldy #$01 ; secondary address jsr SETLFS
  18. The ID's are 0-127 left to right (I assume the IDs are the $FC00 + ID indicies?). The sprites are indeed 64x64 4bpp, and there are 10 on a line, yes. @StephenHorn I attach the basic file that poke's the data and shows the sprites, if you feel inclined to check it out further. If not, not a problem - I will assume there's an emulator issue which causes the delayed (onlines with 20 sprites) clipping and inconsistant results on a line by line basis. At least till I learn otherwise . sprites.bas
  19. Sure. What I am asking is why is it happening only on a few of the scan lines and not on all patterns that are exactly the same? Sprite rows 3,4 & 5 are repeated at rows 9, 10 and 11, but those rows do not exhibit the same behaviour. Is a work unit counted on a per scan line basis, or does it not neccesarily start at the left edge of the screen, at the start of a scan line? If it is the latter, then is there a way to know how it works (counts work units)? If the former (does start at the start of a scan line at the left) then why does it only run out of work units, sometimes?
  20. Hi, I am playing around with sprites. I am drawing 128 4bpp sprites in interleaved rows of 10 - using BASIC. What I see are the sprites 40-49 being clipped badly, along with some other ones. If I only draw 30-49, I see the same clipping. However, if I start drawing at 31, then 40-48 are correct, but 49 is still clipped, but in a different way. I don't really see this being a sprite work unit issue, because it should then happen consistently across other scanlines as well, or is there something I am not understanding? Just a bug in the emulator? drawing 0-127. 20 clipped, 40-48 clipped and 49 mostly missing. 59 clipped, 69 clipped, 79 clipped and 118 clipped. Drawing 30-49. Same result as drawing all 128 sprites. Drawing 31-49. 49 now half visible. Thanks Stefan
  21. Hi, This will do the trick (this is for loading / executing to 32768 and your code in yourfile.asm) cl65 -t cx16 --start-addr 32768 yourfile.asm -C cx16-asm.cfg Stefan
  22. When the hardware ships, I hope it will come with an SD card with some/any exclusive pack-in software or game? That will make for a very nice experience "out the box"
  23. Unrelated to the Pyra - I have an RG350 handheld which I love! It’s affordable and works amazingly well. Twin sticks, 4 shoulder buttons, d-pad, ABXY, start/select and now HDMI out. Plays arcade Games (mame - portrait and landscape), NES/snes, PS1, Genesis, Dreamcast, DosBox, C64, ZX Spectrum (clever key to button mapping makes quite a lot of games work), etc. It’s solid and beautiful. Open source so lots of Emulators and upgrades to download. Highly recommend for anyone wanting an all-in-one retro handheld.
  24. cc65 Chess View File Written in "C", in 2014 for the Commodore 64 and ported to CX16 in 2020. I wanted to know how hard it would be to make a chess AI. I am not a great chess player, nor did I research chess engines, so I made things up as I went. The end result is this chess which by any standards of chess, is not a good AI opponent. However, it's there and it's playable. Use and keys The user controls an on-screen cursor. The cursor changes color to indicate a state. The colors for selection are: Green - the piece can be selected Red - The piece cannot be selected as it doesn't have valid moves Purple - Empty tile or piece on the other side Blue - The currently selected piece Cyan - A valid destination for the currently selected piece To move the cursor, use the cursor keys. To select a piece, press the RETURN key while the piece is selected. To deselect the piece, press RETURN on the same piece again, or press ESC. To bring up the menu, press the M key, or the ESC key when no piece is selected. Pressing ESC in a menu backs out of the menu, to the previous menu or back to the game. Press RETURN to select a menu item and use the up and down cursor keys to change the selection. While a side is under human control, there are a few more options. Press B to toggle on/off a state showing on every tile how many of both black and white's pieces can attack that tile. Pressing A will toggle a highlight of all of the pieces on the opposing side that attack the selected tile. Pressing D will toggle a highlight of all the pieces on the side currently playing's side that can defend the selected tile. All three of these options basically give a visual representation of the Game Database. The colors are: For attackers Cyan and for defenders Red. Lastly, the game has an Undo/Redo stack that tracks the last 254 moves. Pressing U will undo the last move and R will redo the last move. In an AI/Human game, the undo will undo the last AI and human player move, so the human player can make a different move. Submitter Getafix Submitted 07/12/20 Category Games  
  • Create New...

Important Information

Please review our Terms of Use