Monday, December 24, 2018

#CSpect 2.1.4

In this version of CSpect, I have the new sprite engine implemented. You can now have all 64 sprites in a line, except when expanded - which they can not be by 32,64 and 128 pixel sizes. You can also now have 16 colour shapes, allowing double the number of images a sprite can have.

On top of this, is the new L2 pixel priority engine and lighten/darken L2+ULA modes which you can get by setting the SLU order to %110 and %111 respectively.


CSpect V2.1.4 changes

  • Added logging debug command (see readme)
  • Added Layer 2 pixel priority mode - top bit of second colour palette byte (the single bit of blue) specifies over the top of everything.
  • Added Next OS streaming API ( see readme )
  • Added DMA reverse mode (R0 BASE, bit 2)
  • Added BSLA DE,B (ED 28) shift DE left by B places - uses bits 4..0 of B only
  • Added BSRA DE,B (ED 28) arithmetic shift right DE by B places - uses bits 4..0 of B only - bit 15 is replicated to keep sign
  • Added BSRL DE,B (ED 2A) logical shift right DE by B places - uses bits 4..0 of B only
  • Added BSRF DE,B (ED 2B) shift right DE by B places, filling from left with 1s - uses bits 4..0 of B only
  • Added BRLC DE,B (ED 2C) rotate DE left by B places - uses bits 3..0 of B only (to rotate right, use B=16-places)
  • Added JP (C) (ED 98) JP ( IN(C)*64 + PC&$c000 )
  • Added new sprite control byte
  • Added sprite expand on X (16,32,64 or 128)
  • Added sprite expand on Y (16,32,64 or 128)
  • Added 16 colour shape mode
  • Removed 12 sprite limit, limitations still apply when expanding on X (100 16x16s per line ma
  • Sprite pixel wrapping on X and Y (out one side, back in the other)
  • Added "lighten" mode. L2+ULA colours clamped. (selected using SLU layer order of 110)
  • Added "darken" mode. L2+ULA-555 colours clamped. (selected using SLU layer order of 111)

CSpect V2.2.0 updates
  • Fixed reg 0x43 bit 7- disable palette auto increment.
  • Fixed NextReg access for sprites. Was using the wrong index.


SNasm V2.0.15 changes
  • Removed MIRROR DE instruction
  • Added “JP(C)” instruction
  • Added “BSLA DE, B” instruction
  • Added “BSRA DE, B” instruction
  • Added “BSRL DE, B” instruction
  • Added “BSRF DE, B” instruction
  • Added “BRLC DE, B” instruction
  • Fixed error reporting on command like "and a" when a user gives "and a,7" etc.





Saturday, November 10, 2018

#CSpect 2.1.0

In this release I add back in Mouse and Gamepads. I've tested both on Windows, but not on OSX and Linux, so if someone can give that a go and let me know, I'd be grateful.

I've also fixed the bug when esxDOS is trying to save that was crashing things.
EDIT: Also fixed a bug in sprite palettes that was causing a crash

I'll leave the install and running in this post, but it'll vanish next post.


Installing
----------
Windows - You will need the latest .NET, and openAL ( https://www.openal.org/downloads/ )
Linux - You will need the full MONO (on ubuntu do "apt-get install mono-devel" )
OSX - You will need the latest mono from https://www.mono-project.com/


Running
-------
Windows - CSpect.exe [options] game.sna/game.nex
Linux - mono ./CSpect.exe [options] game.sna/game.nex
OSX - mono ./CSpect.exe [options] game.sna/game.nex

There are a few things not yet in/finished for this version.

  • Some esxDOS functions (F_FSTAT, F_STAT, M_GETDATE)
  • 128K SNA files are not currently loading
  • File dialog (F2) will not work on OSX due to windows Forms not working in x64 mode in mono.
  • Due to the way openAL appears to work, things aren't as smooth as i'd like. Disabling audio (using -sound) will smooth out movement for now...



Friday, November 02, 2018

#CSpect 2.0!!

So I'm very pleased to announce the release of #CSpect! A port of CSpect to C#!

This version runs under .NET and so is fully cross platform running under Windows, OSX and Linux using the Mono runtime. So finally Mac and Linux users can have access CSpect for developing ZX Spectrum Next games.

Installing
----------
Windows - You will need the latest .NET, and openAL ( https://www.openal.org/downloads/ )
Linux - You will need the full MONO (on ubuntu do "apt-get install mono-devel" )
OSX - You will need the latest mono from https://www.mono-project.com/


Running
-------
Windows - CSpect.exe [options] game.sna/game.nex
Linux - mono ./CSpect.exe [options] game.sna/game.nex
OSX - mono ./CSpect.exe [options] game.sna/game.nex

There are a few things not yet in/finished for this version.

  • Gamepads
  • Some esxDOS functions (F_FSTAT, F_STAT, M_GETDATE)
  • 128K SNA files are not currently loading
  • File dialog (F2) will not work on OSX due to windows Forms not working in x64 mode in mono.
  • Mouse is not currently implemented.
  • Due to the way openAL appears to work, things aren't as smooth as i'd like. Disabling audio (using -sound) will smooth out movement for now...
  • Probably a few more things....




Sunday, September 16, 2018

CSpect 1.18

Changes to the debugger. This allows you set breakpoints using the physical address, allowing you to set breakpoints in code not yet paged in. This allows for simpler debugging of proper overlay code.
Also, if your using another assembler, you can use the new -16bit command line to use logical addresses only.

CSpect changes
  • added -16bit to use only the logical address of the MAP file
  • Execution Breakpoints are now set in physical address space. A HEX number or SHIFT+F9 will set a logical address breakpoint. This means you can now set breakpoints on code that is not banked in yet.
  • Next mode enabled when loading a .NEX file



Monday, September 10, 2018

CSpect 1.17.1

Minor update to SNasm. 48K SNAs weren't saving out correctly, and labels under $8000 were whacky. This is now fixed.

SNasm changes
  • Fixed labels
  • Fixed SNA saving



Sunday, September 09, 2018

CSpect V1.17

New version  of CSpect and SNasm with some big changes for those using it to dev. You can now specify segments and save out NEX format packages, allowing you to build "large" packages all from within SNasm.
CSpect will now load the new symbol format and correctly display the proper symbol when that bank is paged in, allowing overlays to work more seamlessly.

CSpect changes
  • ULA colours updated to match new core colours. Bright Magenta no longer transparent by default. Now matches with $E7 (not $E3)
  • Fixed debugger bug where "0" is just left blank
  • New MAP format allowing overlays mapped in. Labels in the debugger are now based on physical addresses depending on the MMU
  • You can now specify a bank+offset in the debuggers memory view (M $00:$0000) to display physical addresses. 
  • Numeric Keypad added for debugger use.
  • EQUates are no longer displayed in the debugger, only addresses. This makes the view much cleaner

SNasm changes
  • SEG command added for Segment control on ZX Spectrum Next machines. Banks are 8K in size.
                                    SEG  NAME,BANK:OFFSET,TARGET_PC ; to create

                                    SEG  NAME              ;to use
  • SAVENEX "name",StartPC,[StackSP] added.
  • New MAP format exported for CSpect



Saturday, August 25, 2018

CSpect V1.16

Okay, so the last version was actually a debug version and so some folk had problems running it. This is a proper release build. There are a couple of additions...

CSpect changes
  • Fixed sprite transparency to use the index before the palette and colour conversion is done
  • -r on the command line will now allow CSpect to remember the window location, so if you move it somewhere, it'll start up there again next time. Just delete the cspect.dat file to reset.



Friday, August 24, 2018

CSpect V1.15

There's been a few folk requesting an updated version so even though it's not a huge change, here it is...


CSpect changes
  • Fixed sprite transparancy index. now reads transparancy colour from sprite palette.
  • Timex Hi-Colour mode fixed
  • M_GETDATE added to esxDOS emulation (MSDOS format)
M_GETDATE 
BC = DATE
DE = TIME

Bits Description
0-4     Day of the month (1–31)
5-8     Month (1 = January, 2 = February, and so on)
9-15    Year offset from 1980 (add 1980 to get actual year)

Bits    Description
0-4     Second divided by 2
5-10    Minute (0–59)
11-15   Hour (0–23 on a 24-hour clock)






    Sunday, August 19, 2018

    Z80 shifts...

    Being a 6502 boy, I have to continually hunt for the shift opcode that I need. So after doing this for about a year now, I thought I'd knock up a little diagram to make it easy. So on the off chance someone else is in the same situation - here it is.


    Saturday, July 21, 2018

    CSpect 1.14

    CSpect changes

    • -joy to disable DirectInput gamepads
    • Re-added OUTINB instruction (16Ts)
    • Fixed a but with MMU1 mapping when reading, it was reading using MMU0 instead.
    • In ZXNext mode, if you have RAM paged in MMU0, then RST8 will be called, and esxDOS not simulated
    • Palette control registers are now readable (Hires Pawn demo now works)
    • Reg 0 now returns 10 as Machine ID
    • Reg 1 now returns 0x1A as core version (1.10)
    • Layer2 transparancy now checks the final colour, not the index
    • Fixed sprites in the right border area (the 320x192 picture demo)
    • Timex Hires colours now correct (Pawn demo)


    SNASM
    • Re-added OUTINB instruction