diff options
author | Michael Pavone <pavone@retrodev.com> | 2020-04-29 01:00:57 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2020-04-29 01:00:57 -0700 |
commit | 2071d8e545b9aca6af08852f721e9a7b7a617398 (patch) | |
tree | 75148c6c893661c0e6b0bada4c7ca5b71cd8255d /system.c | |
parent | 6641d3825bb931c5af37b98fc6420c972cfb3fd1 (diff) |
WIP netplay support
Diffstat (limited to 'system.c')
-rw-r--r-- | system.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -1,6 +1,7 @@ #include <string.h> #include "system.h" #include "genesis.h" +#include "gen_player.h" #include "sms.h" uint8_t safe_cmp(char *str, long offset, uint8_t *buffer, long filesize) @@ -21,6 +22,14 @@ system_type detect_system_type(system_media *media) ) { return SYSTEM_SMS; } + if (safe_cmp("BLSTEL\x02", 0, media->buffer, media->size)) { + uint8_t *buffer = media->buffer; + if (media->size > 9 && buffer[7] == 0) { + return buffer[8] + 1; + } + } + + //TODO: Detect Jaguar ROMs here //Header based detection failed, examine filename for clues @@ -60,6 +69,8 @@ system_header *alloc_config_system(system_type stype, system_media *media, uint3 { case SYSTEM_GENESIS: return &(alloc_config_genesis(media->buffer, media->size, lock_on, lock_on_size, opts, force_region))->header; + case SYSTEM_GENESIS_PLAYER: + return &(alloc_config_gen_player(media->buffer, media->size))->header; #ifndef NO_Z80 case SYSTEM_SMS: return &(alloc_configure_sms(media, opts, force_region))->header; @@ -68,3 +79,13 @@ system_header *alloc_config_system(system_type stype, system_media *media, uint3 return NULL; } } + +system_header *alloc_config_player(system_type stype, event_reader *reader) +{ + switch(stype) + { + case SYSTEM_GENESIS: + return &(alloc_config_gen_player_reader(reader))->header; + } + return NULL; +} |