Skip to content

x16-emulator-r36 ("Berlin")

Compare
Choose a tag to compare
@mist64 mist64 released this 03 Jan 23:56
· 150 commits to master since this release

Main differences:

BREAKING CHANGES:

  • The host filesystem interface is now on device 8, also, device 8 is the default for LOAD and SAVE. So if you don't specify a device number, LOAD and SAVE behave as before. If an SD card is attached (-sdcard), the host filesystem interface is disabled, and the SD card is used instead.
  • GRAPH_init needs to be called with r0 = 0 for the r35 behavior.
  • GRAPH_get_char_size behaves differently for control characters. See documentation for details.

A lot of new APIs have been added:

  • sprites
  • console
  • memory

See the Programmer's Reference Guide for details on the new and changed APIs:

https://github.com/commanderx16/x16-docs

Emulator:

  • added VERA UART emulation (-uart-in, -uart-out)
  • correctly emulate missing SD card
  • moved host filesystem interface from device 1 to device 8, only available if no SD card is attached
  • require numeric argument for -test to auto-run test
  • fixed JMP (a,x) for 65c02
  • Fixed ESC as RUN/STOP [Ingo Hinterding]

ROM:

  • API Features

    • added console API for text-based interfaces with proportional font and styles support: console_init, console_put_char, console_get_char
    • added memory API:
      • memory_fill
      • memory_copy
      • memory_crc
      • memory_decompress (LZSA2)
    • added sprite API: sprite_set_image, sprite_set_position
    • renamed GRAPH_LL to FB (framebuffer)
    • GRAPH_init takes an FB graphics driver as an argument
  • KERNAL features

    • detect SD card on TALK and LISTEN, properly fall back to serial
    • joystick scanning is done automatically in VBLANK IRQ; no need to call it manually any more
    • added VERA UART driver (device 2)
    • bank 1 is now the default after startup; KERNAL won't touch it
    • sprites and layer 0 are cleared on RESET
    • changed F5 to LOAD":* (filename required for IEEE devices)
    • GRAPH_move_rect supports overlapping [gaekwad]
  • BASIC

    • default LOAD/SAVE device is now 8
    • added RESET statement [Ingo Hinterding]
    • added CLS statement [Ingo Hinterding]
  • CHARSET

    • fixed capital Ö [Ingo Hinterding]
    • Changed Û, î, ã to be more consistent [Ingo Hinterding]
  • bug fixes

    • COLOR statement with two arguments
    • PEEK for ROM addresses
    • keyboard code no longer changes RAM bank
    • fixed clock update
    • fixed side effects of Ctrl+A and color control codes [codewar65]
  • misc

    • added 3 more tests, start with "TEST1"/"TEST2"/"TEST3" in BASIC:
    • TEST0: existing misc graphics test
    • TEST1: console text rendering, character wrapping
    • TEST2: console text rendering, word wrapping
    • TEST3: console text input, echo