Mercurial > repos > blastem
comparison genesis.c @ 1113:45db303fc705
Restore 68K address logging functionality
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 19 Dec 2016 13:58:51 -0800 |
parents | 2eb54e24914e |
children | fe8c79f82c22 |
comparison
equal
deleted
inserted
replaced
1112:7ab7c8fb34ba | 1113:45db303fc705 |
---|---|
880 free(gen->save_storage); | 880 free(gen->save_storage); |
881 free(gen->header.save_dir); | 881 free(gen->header.save_dir); |
882 free(gen->lock_on); | 882 free(gen->lock_on); |
883 } | 883 } |
884 | 884 |
885 genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t ym_opts, uint8_t force_region) | 885 genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t system_opts, uint8_t force_region) |
886 { | 886 { |
887 static memmap_chunk z80_map[] = { | 887 static memmap_chunk z80_map[] = { |
888 { 0x0000, 0x4000, 0x1FFF, 0, 0, MMAP_READ | MMAP_WRITE | MMAP_CODE, NULL, NULL, NULL, NULL, NULL }, | 888 { 0x0000, 0x4000, 0x1FFF, 0, 0, MMAP_READ | MMAP_WRITE | MMAP_CODE, NULL, NULL, NULL, NULL, NULL }, |
889 { 0x8000, 0x10000, 0x7FFF, 0, 0, 0, NULL, NULL, NULL, z80_read_bank, z80_write_bank}, | 889 { 0x8000, 0x10000, 0x7FFF, 0, 0, 0, NULL, NULL, NULL, z80_read_bank, z80_write_bank}, |
890 { 0x4000, 0x6000, 0x0003, 0, 0, 0, NULL, NULL, NULL, z80_read_ym, z80_write_ym}, | 890 { 0x4000, 0x6000, 0x0003, 0, 0, 0, NULL, NULL, NULL, z80_read_ym, z80_write_ym}, |
911 | 911 |
912 char * lowpass_cutoff_str = tern_find_path(config, "audio\0lowpass_cutoff\0").ptrval; | 912 char * lowpass_cutoff_str = tern_find_path(config, "audio\0lowpass_cutoff\0").ptrval; |
913 uint32_t lowpass_cutoff = lowpass_cutoff_str ? atoi(lowpass_cutoff_str) : DEFAULT_LOWPASS_CUTOFF; | 913 uint32_t lowpass_cutoff = lowpass_cutoff_str ? atoi(lowpass_cutoff_str) : DEFAULT_LOWPASS_CUTOFF; |
914 | 914 |
915 gen->ym = malloc(sizeof(ym2612_context)); | 915 gen->ym = malloc(sizeof(ym2612_context)); |
916 ym_init(gen->ym, render_sample_rate(), gen->master_clock, MCLKS_PER_YM, render_audio_buffer(), ym_opts, lowpass_cutoff); | 916 ym_init(gen->ym, render_sample_rate(), gen->master_clock, MCLKS_PER_YM, render_audio_buffer(), system_opts, lowpass_cutoff); |
917 | 917 |
918 gen->psg = malloc(sizeof(psg_context)); | 918 gen->psg = malloc(sizeof(psg_context)); |
919 psg_init(gen->psg, render_sample_rate(), gen->master_clock, MCLKS_PER_PSG, render_audio_buffer(), lowpass_cutoff); | 919 psg_init(gen->psg, render_sample_rate(), gen->master_clock, MCLKS_PER_PSG, render_audio_buffer(), lowpass_cutoff); |
920 | 920 |
921 gen->z80 = calloc(1, sizeof(z80_context)); | 921 gen->z80 = calloc(1, sizeof(z80_context)); |
966 init_m68k_opts(opts, rom->map, rom->map_chunks, MCLKS_PER_68K); | 966 init_m68k_opts(opts, rom->map, rom->map_chunks, MCLKS_PER_68K); |
967 //TODO: make this configurable | 967 //TODO: make this configurable |
968 opts->gen.flags |= M68K_OPT_BROKEN_READ_MODIFY; | 968 opts->gen.flags |= M68K_OPT_BROKEN_READ_MODIFY; |
969 gen->m68k = init_68k_context(opts, NULL); | 969 gen->m68k = init_68k_context(opts, NULL); |
970 gen->m68k->system = gen; | 970 gen->m68k->system = gen; |
971 opts->address_log = (system_opts & OPT_ADDRESS_LOG) ? fopen("address.log", "w") : NULL; | |
971 | 972 |
972 return gen; | 973 return gen; |
973 } | 974 } |
974 | 975 |
975 genesis_context *alloc_config_genesis(void *rom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, uint32_t ym_opts, uint8_t force_region, rom_info *info_out) | 976 genesis_context *alloc_config_genesis(void *rom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, uint32_t ym_opts, uint8_t force_region, rom_info *info_out) |