Jump to content

Tony Cruise

Members
  • Posts

    401
  • Joined

  • Last visited

Posts posted by Tony Cruise

  1. 10 hours ago, Captain Cozmos said:

    Space Dungeon.
    Would love to see the setup and code to plot a line from one end of the screen to the other in several directions.

    I would suspect give each of the tiles 0-768 a separate tile number such as 0 is 0 all the way up to 768 so there are no duplicates.

    Now if all the tile spaces are used you would be limited to the 4 sprites, 8 per line using your order routine.

     

    But looking at your other screen shot I would say that using a portion of the screen you are left with 12 per row? at 24 rows fives you 288 pattern slots.

     

     

    An organizational nightmare to be.

     

     

    I like what you did with the color picker stays put but...........the "choose paste options" shoots across the screen

    and the color picker loses it's place when you close the program.  It's not permanent like the main screen.

     

     

     

    looooove youuuuuuuuuu

    Player can only shoot up/down/left/right and the four straight diagonals, so laser can be implemented using 4 tile patterns.

     

    I'll have a look at the other window placements in the Editor in my next session.

  2. I have uploaded a new version of my Sprite and Tile Editor: Version 1.0.8115.34244

    I have made the following changes:

    • You can now select a background colour that is used for all sprites, tiles and screen layouts.  The colour you select is saved with your file.
    • I have adjusted the output ASM code so that is works with the Glass Assembler (shouldn't effect any of the existing ones but let me know if it does).

    Some screen shots:

    image.thumb.jpeg.e0de3502b0765a1867c9154df4d5844d.jpeg image.thumb.jpeg.5dd09d33131087c19035a1ae0432fbc3.jpeg

    image.thumb.jpeg.f07ac15385e3149098a24cbacd8d4dd3.jpeg image.thumb.jpeg.fb82de75a8a98581ae9ed55ba626bb9e.jpeg

    Extra points if you guess my next game (after Kangaroo) ;)

    • Like 2
  3. Most assemblers allow a range of expressions when assigning values, that are evaluated at compile time and the final value output.  This allows you to make  your code more readable.

     

    The << and >> expressions are left and right bit shift statements and the value on the left will be left or right shifted the number of times of the right value.

     

    So in your examples:

    0 << 2 = 0

    1 << 2 = 4 i.e. 00000001 becomes 00000100

    2 << 2 = 8 i.e. 00000010 becomes 00001000

    • Thanks 1
  4. 21 hours ago, thegeps said:

    So, to run a game that need more RAM (even without AY chip) is enough to test if there is RAM at some expected address simply writing at that address and reading back to check if the value is the one written a moment ago.

    In that case we could let the game run (no matter if you write to AY ports if AY isn't present, right?)

    Just to do some tests...

    ;=========================
    ; Enable SGM Memory
    ;=========================
    ENABLE_SGM_MEMORY:
        XOR A
        LD (MACHINE),A ; By default a machine is a ColecoVision
        ; don't enable SGM memory if we have an Adam
        CALL IS_ADAM
        CP 1
        RET Z
        ; look for the SGM PSG
        CALL PSG_TST
        ; maybe save this somewhere so we know we know what machine we have
        CP 1
        RET NZ
        LD A,2
        LD (MACHINE),A
        ; enable SGM memory
        LD A,00000001bh
        OUT(53h),A
        RET
    
    ;=========================
    ; The presence of RAM between 2000h-5FFFh on boot means we have an Adam
    ; A = 1 if an Adam, 0 otherwise
    ;=========================
    IS_ADAM:
        ; check for Ram at 2000h-5FFFh
        ; write values to 2000h-20FFh
        LD HL,02000h
        LD B,0FFh
    ISA1:
        LD (HL),B
        INC HL
        DJNZ ISA1
        ; now read values back
        LD HL,02000h
        LD B,0FFh
    ISA2:
        LD A,(HL)
        CP B
        JP Z, ISA3
        ; not a match so probably ROM
        XOR A
        RET
    ISA3:
        INC HL
        DJNZ ISA2
        LD A,1
        LD (MACHINE),A ; for the moment make this machine an Adam
        RET
    
    ;=========================
    ; SGM PSG Ports
    ;=========================
    PSGCTR: EQU 050h
    PSGWRT: EQU 051h
    PSGRD:  EQU 052h
    
    ;=========================
    ;Check for the existence of a SGM PSG
    ; A = 1 if found, false otherwise
    ;=========================
    PSG_TST:
        LD HL,5502H
        LD DE,0AA00H
        CALL PSG_SET
        EX DE,HL                ;5502H
        CALL PSG_SET
        EX DE,HL                ;AA00H
        CALL PSG_TST1           ;TEST BYTE
        EX DE,HL                ;5502H
        CALL PSG_TST1           ;TEST BYTE
    PSG_TST3:
        ; PSG Found
        LD A,1
        RET
    
    ;1st PSG Test
    PSG_TST1:
        LD A,E
        OUT (PSGCTR),A
        LD D,D
        IN A,(PSGRD)            ;READ BACK
        CP D
        RET Z                   ;RETURN IF OK
        ;IF PSG NOT FOUND
        POP DE ; Remove return point
        XOR A
        RET
    
    ;=========================
    ; SET SGM PSG
    ;=========================
    PSG_SET:
        LD A,E
        OUT (PSGCTR),A          ;SET PSG REG #0
        LD A,D
        OUT (PSGWRT),A
        RET
    

     

    Call ENABLE_SGM_MEMORY and the memory location MACHINE will contain 0 = No SGM or Adam, 1 = Just Adam, 2 = Coleco with SGM and if 0 or 2 then the SGM memory will be enabled.

     

    If you get the result 'Just Adam', then you can call PSG_TST separately to see if you have a SGM plugged into an Adam and thus use the extra sound chip.

    • Like 2
  5. 4 hours ago, Pixelboy said:

    I'm not sure 100% about the ADAM, I'm just assuming that it works the same as the ColecoVision, since it's always possible that a ColecoVision cartridge will interact with the Coleco BIOS which is expected to be in the first 8K range, regardless if this cart is used on the CV or the ADAM.

     

    Yep it just depends what you want selected, but by using Port 7Fh you can select what is in the lower memory from the follow options:

    image.thumb.png.31ef752a299fbde4d2e544fc2e12a40d.png

    and what is in the upper memory from the following options:

    image.png.15cbd73a532419c76ab6395a9f1d0a26.png

    of course always ensuring bits 4-7 are left as zero.

  6. You are going to need to use a Megacart (or Megacart like) ROM layout and the game will need to use the Super Game Module (and this also gives you the MSX sound chip which will make your port easier), which will give you up tp 32k of Ram if you need it.

     

    A number of MSX ports, use the bottom 16k Ram space to replace the Coleco BIOS with a MSX BIOS.

     

    The Megacart info (from my book is as follows):

    The MegaCart is a special design (originally by Bryan Edward) that allows ROMs to contain up to 1MB if required.
    The cartridge can be several different sizes as follows:

    • 128K - 8 banks of 16K
    • 256K - 16 banks of 16K
    • 512K - 32 banks of 16K
    • 1MB - 64 banks of 16K

    The first 16K of ROM is fixed to the last 16k section of the ROM and is located at 8000h to BFFFh on
    the ColecoVision (and Adam).
    The 2nd 16K area (C000h to FFFFh) can be changed to any of the banks in the cartridge (including the
    last one) by reading from memory address FFC0h to FFFFh i.e. each location represents one of the
    64 possible memory banks to select.
    This also means the top 64 bytes (FFC0h to FFFFh) of each 16K ROM bank can’t be used.
    Example Usage (from MegaCart documentation):

    ; For 128K Megacart (for 256K one I start on $fff0 up
    ; to SLOT_15 at $ffff)
    SLOT_0: equ $fff8
    SLOT_1: equ $fff9
    SLOT_2: equ $fffa
    SLOT_3: equ $fffb
    SLOT_4: equ $fffc
    SLOT_5: equ $fffd
    SLOT_6: equ $fffe
    SLOT_7: equ $ffff
    ; At start of code
    ld hl,SLOT_0 ; Default slot of Megacart,
    ; but set again because user can do a ColecoVision RESET
    call sel_slot
    ; My typical switching code
    ld hl,SLOT_3
    call sel_slot
    ; Slot selection
    sel_slot:
    ld (slot),hl ; Saves current slot, useful because in NMI
    ; routine sometimes I switch slots to play music from OTHER slot
    ld a,(hl)
    ret

     

  7. On 4/30/2022 at 8:17 AM, Captain Cozmos said:

    I have been fortunate enough to catch on when it comes to Z80 programing and finding my way around.

    However, IDE's are not my thing.

     

    I started out in the late 80's, early 90's with Borlands Turbo C under Dos.

     

    I can find myself around Visual studio because youtube is ripe with examples.

     

    When I started learning with Tony Cruise's youtube series he set up his environment with Sublime and TNIASM.

    Well I switch to Notepad ++ because Sublime costs money as far as I remember, been awhile.

     

    So, does anyone out there have a script or tutorial how to merge TNIASM with NP++?

     

    At present I use the command line and if I get an error it lets me know where.

     

    In Tony's setup all he has to do is press a key and it compiles.  If there is an error it goes to the error.

     

    I mean, I have been able to get by with the CLI (amiga reference) but if NP++ is capable I would like to make it easier on myself.

     

    Anyone have a clue?

     

     

    Assuming you are using TNIASM and it is a directory c:\tniasm045.

     

    1. Add the NppExec plugin to Notepad++

    2. Select Plugins->NppExec->Execute Npp Script.. F6

    3. Paste in the following commands:

     

    cd $(CURRENT_DIRECTORY) // go to directory of the current file
    c:\tniasm045\tniasm.exe "$(FILE_NAME)"

     

    4. Press the [Save] button and give it a name e.g. Compile

     

    You should now be able to compile your code and see the output in the console window that appears below.

    You need to make sure you have your primary ASM file in focus at the time.

     

    Jumping from an error to the line I still need to figure out.

     

  8. On 4/16/2022 at 8:02 AM, 5-11under said:

    If I recall correctly, it's mirrored 8 times between $6000 and $7FFF, so any 1K block within there will work.

     

    Yep this is correct, it is mirrored eight times and thus each block represents the same section of actual memory.

  9. 2 hours ago, youki said:

    thanks Tony!

     

    Could you make a quick modification in your tool for me?  I would really like to be able to choose the background color of the sprite editor grid.

     

    Color of this grid

    image.png.3ad0cb48ffd0260d7f3eabaced734ef7.png

     

    Or if it is more easy for you , to be able to choose the windows background color for the entire tool. 

     

    It will be very better to see how a sprite looks on different background colors.

    Your wish is my command :) Version 1.0.8116.39475 uploaded.

    image.thumb.png.4939c6bca589d7eb49663d6637e41f1f.png

    It saves the selected background colour with the file.

  10. I have uploaded a new version of my MSX/Coleco Sprite and Tile Editor: Version 1.0.8115.34244

    Small update, you can now move tile patterns around in the set of 256 tile patterns using the directional buttons below the Tile Set.

    image.png.540ee36b538826404ab3656861698c91.png

    Moving a tile, swaps it with the tile in the direction you press.

    Suggested by long term friend and fellow home brewer Claus Baekkel

    Download the latest version here: https://www.electricadventures.net/Pages/Category/24

    • Like 2
  11. Oh wow, doesn't time fly when you are having fun.  Is it really six years since I started this thread!  This is just me having a day off for once and catching up on a few things.

     

    A quick update on the conversion of my most popular selling game from the mid 80's (1987 in fact), here is the state of Pyxidis converted to run on a ColecoVision. Dare I say actually running faster than the original, more colours, ship drop shadow, colour cycles for the bullets to make them easier to see.

    Still some quite obvious bugs, and probably a bit mean to start with (my games really were hard back in the day!).

    More to come...

    https://fb.watch/b9Gjjg5LJH/

    • Like 5
  12. I thought I would do a general update of what I am working on and also wish everyone a Happy New Years.

    Berzerk

    1681276464_2020-01-26(8).thumb.png.0ae3f4a009493cbfed44dd71e43ad6b3.png

    Berzerk for ColecoVision is in final testing stage and will be released by Collectorvision this year.

     

    Pyxidis

    unqonc5u.gif

    The conversion (with some enhancements) of my biggest selling game that I released in the 80's for MSX and Spectravideo computers, Pyxidis is also almost complete ready to start some play testing.

     

    EA's 70 Arcade Classics

    My next title, this will be a collection of three classic 70's arcade games, Lunar Rescue, Depth Charge and Stunt Cycle released on one cartridge.  The first two games are completely finished, I just have a bit more work to do on Stunt Cycle and then combine them into a single cartridge image and it will be ready for testing.

     

    Seaquest 99

    Seaquest99-1.png

    My take on the classic Activision title for the Atari 2600 on the ColecoVision.  I haven't worked on this one for a while, but intend to continue and finish it this year.

     

    Upcoming titles where I have done graphics layouts for and should be progressed this year are:

     

    Kangaroo

    image.png.1877d2735b5d5e6983961d4874b20221.png image.png.29675a75a1715133f55758261815f970.png image.png.d75b6abbe9b30d211463cb6556183f7f.png

    My take on the classic Atari arcade game.

     

    TRON

    839599238_Screenshot2022-01-02225111.thumb.jpg.f7adf59653cd45238245d7ffdad9db10.jpg 2038940865_Screenshot2022-01-02225154.thumb.jpg.4c80023908789df89ff3e16296f89ef9.jpg 264754558_Screenshot2022-01-02225248.thumb.jpg.42901d8850988c777ca6a7afd227ff1a.jpg

    My conversion of the arcade game of one of my favourite movies of all time!  Graphics in the very early stages.

     

    More uas I make more progress during the year.

    • Like 21
    • Thanks 1
  13. I thought I remember hearing someone was making Atari's Food Fight for the Colecovision?  Anyone remember this?
     
    -AS

    I think I might have put my hand up for that on one of the other threads. I haven’t started any work on it though.


    Sent from my iPhone using Tapatalk
×
×
  • Create New...