瀏覽代碼

Minor cleanup; expand docs.

master
Ben Kurtovic 8 年之前
父節點
當前提交
e6c92fd38b
共有 6 個文件被更改,包括 32 次插入6 次删除
  1. +19
    -0
      README.md
  2. +4
    -0
      docs/README
  3. 二進制
     
  4. +5
    -4
      src/config.c
  5. +1
    -1
      src/emulator.c
  6. +3
    -1
      src/vdp.c

+ 19
- 0
README.md 查看文件

@@ -4,6 +4,8 @@ crater
**crater** is an emulator for the [Sega Game Gear][game gear], with an included
[Z80][z80] assembler/disassembler, written in C.

![Tails Adventure (1995)](/docs/tailsadventure.png?raw=true "Tails Adventure (1995)")

[game gear]: https://en.wikipedia.org/wiki/Sega_Game_Gear
[z80]: https://en.wikipedia.org/wiki/Zilog_Z80

@@ -82,6 +84,23 @@ the input file, with the extension replaced with `.gg` for `-a` and `.asm` for
`-d`. By default, this will never overwrite the original filename; pass
`--overwrite` (`-r`) to let crater do so.

Status
------

The emulator is almost fully functional, lacking only audio support, a few
uncommon CPU instructions, and some advanced graphics features. Most games are
playable with only minor bugs. Future goals include save states and a more
sophisticated debugging mode.

The assembler is complete. Future goals include more documentation, macros, and
additional directives.

The disassembler works, but can't differentiate between code and data yet, so
it's not very useful.

The testing infrasture is limited. The assembler has decent coverage, other
components minimal.

Credits
-------



+ 4
- 0
docs/README 查看文件

@@ -0,0 +1,4 @@
More detailed documentation isn't available yet. All your questions are
answered in the main README.

At the moment, this directory contains supporting content for said README.

二進制
查看文件


+ 5
- 4
src/config.c 查看文件

@@ -39,10 +39,11 @@ static void print_help(const char *arg1)
" to show more detailed logs, including an emulator trace\n"
" -s, --scale <n> scale the game screen by an integer factor\n"
" (applies to windowed mode only; defaults to 4)\n"
" -a, --assemble <in> [<out>] convert z80 assembly source code into a\n"
" binary file that can be run by crater\n"
" -d, --disassemble <in> [<out>] convert a binary file into z80 assembly\n"
" source code\n"
" -a, --assemble <in> [<out>]\n"
" convert z80 assembly source code into a binary file that\n"
" can be run by crater\n"
" -d, --disassemble <in> [<out>]\n"
" convert a binary file into z80 assembly source code\n"
" -r, --overwrite allow crater to write assembler output to the same\n"
" filename as the input\n",
arg1);


+ 1
- 1
src/emulator.c 查看文件

@@ -42,7 +42,7 @@ static void setup_graphics(bool fullscreen, unsigned scale)
if (fullscreen)
flags = SDL_WINDOW_FULLSCREEN_DESKTOP;
else
flags = SDL_WINDOW_BORDERLESS|SDL_WINDOW_RESIZABLE;
flags = SDL_WINDOW_RESIZABLE;

SDL_CreateWindowAndRenderer(
scale * GG_SCREEN_WIDTH, scale * GG_SCREEN_HEIGHT,


+ 3
- 1
src/vdp.c 查看文件

@@ -216,6 +216,8 @@ static void draw_background(VDP *vdp)
bool vflip = tile & 0x0400;
bool hflip = tile & 0x0200;

(void) priority; // TODO

uint8_t vshift = vflip ? (7 - src_row % 8) : (src_row % 8), hshift;
uint8_t pixel, index;
int16_t dst_col;
@@ -275,7 +277,7 @@ static void draw_sprites(VDP *vdp)
pattern |= (vdp->v_counter - y) >> 3;
vshift = (vdp->v_counter - y) % 8;
} else {
FATAL("TODO: sprite doubling")
// TODO: sprite doubling
}

uint8_t pixel, index;


Loading…
取消
儲存