| @@ -16,7 +16,7 @@ | |||||
| #define ROMS_DIR "roms" | #define ROMS_DIR "roms" | ||||
| /* Print command-line help/usage. */ | /* Print command-line help/usage. */ | ||||
| static void print_help(char *arg1) | |||||
| static void print_help(const char *arg1) | |||||
| { | { | ||||
| printf("%s [--help|-h] [--version|-v] [rom_path]\n", arg1); | printf("%s [--help|-h] [--version|-v] [rom_path]\n", arg1); | ||||
| } | } | ||||
| @@ -54,7 +54,7 @@ static void parse_args(int argc, char *argv[]) | |||||
| } | } | ||||
| /* Return whether the given string ends with the given suffix. */ | /* Return whether the given string ends with the given suffix. */ | ||||
| static bool ends_with(char *input, char *suffix) | |||||
| static bool ends_with(const char *input, const char *suffix) | |||||
| { | { | ||||
| size_t ilen = strlen(input), slen = strlen(suffix); | size_t ilen = strlen(input), slen = strlen(suffix); | ||||
| @@ -156,9 +156,11 @@ int main(int argc, char *argv[]) | |||||
| else | else | ||||
| FATAL_ERRNO("couldn't load ROM image '%s'", rom_path) | FATAL_ERRNO("couldn't load ROM image '%s'", rom_path) | ||||
| } | } | ||||
| printf("Loaded ROM image: %s.\n", rom_path); | |||||
| if (argc <= 1) | if (argc <= 1) | ||||
| free(rom_path); | free(rom_path); | ||||
| printf("Loaded ROM image: %s.\n", rom->name); | |||||
| // TODO: start from here | |||||
| close_rom(rom); | close_rom(rom); | ||||
| return 0; | return 0; | ||||
| @@ -3,12 +3,13 @@ | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <string.h> | |||||
| #include "rom.h" | #include "rom.h" | ||||
| /* Create and return a ROM object located at the given path. Return NULL if | /* Create and return a ROM object located at the given path. Return NULL if | ||||
| there was an error; errno will be set appropriately. */ | there was an error; errno will be set appropriately. */ | ||||
| rom_type* open_rom(char *path) | |||||
| rom_type* open_rom(const char *path) | |||||
| { | { | ||||
| rom_type *rom; | rom_type *rom; | ||||
| FILE* fp; | FILE* fp; | ||||
| @@ -17,9 +18,12 @@ rom_type* open_rom(char *path) | |||||
| return NULL; | return NULL; | ||||
| if (!(rom = malloc(sizeof(rom_type)))) | if (!(rom = malloc(sizeof(rom_type)))) | ||||
| return NULL; | return NULL; | ||||
| rom->name = malloc(sizeof(char) * (strlen(path) + 1)); | |||||
| strcpy(rom->name, path); | |||||
| // load data from file into a buffer | // load data from file into a buffer | ||||
| fclose(fp); | |||||
| return rom; | return rom; | ||||
| } | } | ||||
| @@ -12,5 +12,5 @@ typedef struct { | |||||
| /* Functions */ | /* Functions */ | ||||
| rom_type* open_rom(char*); | |||||
| rom_type* open_rom(const char*); | |||||
| void close_rom(rom_type*); | void close_rom(rom_type*); | ||||
| @@ -3,6 +3,11 @@ | |||||
| #pragma once | #pragma once | ||||
| /* Clock speed in Hz was taken from the official Sega GG documentation */ | |||||
| #define CLOCK_SPEED 3579545 | |||||
| /* Structs */ | |||||
| typedef struct { | typedef struct { | ||||
| int pc; | int pc; | ||||
| } register_type; | |||||
| } z80_type; | |||||