annotate stateview.c @ 995:2bc27415565b

Fix some stuff with interrupt timing. The change in adjust_int_cycle gets Overdrive working again (vint was not being preferred over hint in some cases). One of the changes seems to have broken Fatal Rewind again, but no other regressions that I can see.
author Michael Pavone <pavone@retrodev.com>
date Sat, 30 Apr 2016 08:37:55 -0700
parents f7bbbf49db4e
children 56b1748a8473
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
467
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 465
diff changeset
1 /*
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 465
diff changeset
2 Copyright 2013 Michael Pavone
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 465
diff changeset
3 This file is part of BlastEm.
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 465
diff changeset
4 BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text.
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 465
diff changeset
5 */
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 #include <stdlib.h>
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 #include <stdio.h>
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 #include "vdp.h"
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 #include "render.h"
793
9aff36a172b2 Fix missing includes of util.h
Michael Pavone <pavone@retrodev.com>
parents: 792
diff changeset
10 #include "util.h"
75
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
11 #include "blastem.h"
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
12
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
13 //not used, but referenced by the renderer since it handles input
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
14 io_port gamepad_1;
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
15 io_port gamepad_2;
465
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
16 uint8_t reset = 1;
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
17 uint8_t busreq = 0;
75
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
18
783
e64975fc5f98 Fix stateview build and fix Makefile to use /bin/echo since builtin echo does not always support -e
Michael Pavone <pavone@retrodev.com>
parents: 719
diff changeset
19 uint8_t z80_ram[Z80_RAM_BYTES];
e64975fc5f98 Fix stateview build and fix Makefile to use /bin/echo since builtin echo does not always support -e
Michael Pavone <pavone@retrodev.com>
parents: 719
diff changeset
20
75
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
21 uint16_t read_dma_value(uint32_t address)
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
22 {
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
23 return 0;
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
24 }
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25
962
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
26 m68k_context *m68k_handle_code_write(uint32_t address, m68k_context *context)
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
27 {
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
28 return NULL;
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
29 }
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
30
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
31 z80_context *z80_handle_code_write(uint32_t address, z80_context *context)
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
32 {
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
33 return NULL;
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
34 }
f52cb02a1466 Fixed loading save states from menu
Michael Pavone <pavone@retrodev.com>
parents: 959
diff changeset
35
982
f7bbbf49db4e Add a trivial get_open_bus_value() function to stateview so it compiles again.
Michael Pavone <pavone@retrodev.com>
parents: 962
diff changeset
36 uint16_t get_open_bus_value()
f7bbbf49db4e Add a trivial get_open_bus_value() function to stateview so it compiles again.
Michael Pavone <pavone@retrodev.com>
parents: 962
diff changeset
37 {
f7bbbf49db4e Add a trivial get_open_bus_value() function to stateview so it compiles again.
Michael Pavone <pavone@retrodev.com>
parents: 962
diff changeset
38 return 0;
f7bbbf49db4e Add a trivial get_open_bus_value() function to stateview so it compiles again.
Michael Pavone <pavone@retrodev.com>
parents: 962
diff changeset
39 }
f7bbbf49db4e Add a trivial get_open_bus_value() function to stateview so it compiles again.
Michael Pavone <pavone@retrodev.com>
parents: 962
diff changeset
40
465
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
41 void ym_data_write(ym2612_context * context, uint8_t value)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
42 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
43 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
44
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
45 void ym_address_write_part1(ym2612_context * context, uint8_t address)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
46 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
47 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
48
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
49 void ym_address_write_part2(ym2612_context * context, uint8_t address)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
50 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
51 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
52
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
53 void handle_keydown(int keycode)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
54 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
55 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
56
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
57 void handle_keyup(int keycode)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
58 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
59 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
60
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
61 void handle_joydown(int joystick, int button)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
62 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
63 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
64
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
65 void handle_joyup(int joystick, int button)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
66 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
67 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
68
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
69 void handle_joy_dpad(int joystick, int dpadnum, uint8_t value)
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
70 {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
71 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
72
959
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
73 void handle_mousedown(int mouse, int button)
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
74 {
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
75 }
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
76
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
77 void handle_mouseup(int mouse, int button)
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
78 {
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
79 }
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
80
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
81 void handle_mouse_moved(int mouse, uint16_t x, uint16_t y, int16_t deltax, int16_t deltay)
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
82 {
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
83 }
3b270fc43ed4 Get stateview building again
Michael Pavone <pavone@retrodev.com>
parents: 931
diff changeset
84
465
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
85 tern_node * config;
703
6e751a8f46aa Get save state viewer compiling again
Michael Pavone <pavone@retrodev.com>
parents: 467
diff changeset
86 int headless = 0;
465
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
87
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
88 int main(int argc, char ** argv)
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
89 {
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
90 if (argc < 2) {
792
724bbec47f86 Use a new fatal_error function instead of calling fprintf and exit for fatal errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
Michael Pavone <pavone@retrodev.com>
parents: 783
diff changeset
91 fatal_error("Usage: stateview FILENAME\n");
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
92 }
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
93 FILE * state_file = fopen(argv[1], "rb");
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
94 if (!state_file) {
792
724bbec47f86 Use a new fatal_error function instead of calling fprintf and exit for fatal errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
Michael Pavone <pavone@retrodev.com>
parents: 783
diff changeset
95 fatal_error("Failed to open %s\n", argv[1]);
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
96 }
812
574495372d1c Finish OS X support in build_release script. Fix a name conflict in vgmplay on OS X. Call set_exe_str in vgmplay and stateview
Michael Pavone <pavone@retrodev.com>
parents: 793
diff changeset
97 set_exe_str(argv[0]);
465
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
98 config = load_config(argv[0]);
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
99 int width = -1;
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
100 int height = -1;
33
2e15fa26fe58 Add support for simple resolution scaling
Mike Pavone <pavone@retrodev.com>
parents: 20
diff changeset
101 if (argc > 2) {
2e15fa26fe58 Add support for simple resolution scaling
Mike Pavone <pavone@retrodev.com>
parents: 20
diff changeset
102 width = atoi(argv[2]);
2e15fa26fe58 Add support for simple resolution scaling
Mike Pavone <pavone@retrodev.com>
parents: 20
diff changeset
103 if (argc > 3) {
2e15fa26fe58 Add support for simple resolution scaling
Mike Pavone <pavone@retrodev.com>
parents: 20
diff changeset
104 height = atoi(argv[3]);
2e15fa26fe58 Add support for simple resolution scaling
Mike Pavone <pavone@retrodev.com>
parents: 20
diff changeset
105 }
2e15fa26fe58 Add support for simple resolution scaling
Mike Pavone <pavone@retrodev.com>
parents: 20
diff changeset
106 }
465
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
107 int def_width = 0;
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
108 char *config_width = tern_find_ptr(config, "videowidth");
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
109 if (config_width) {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
110 def_width = atoi(config_width);
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
111 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
112 if (!def_width) {
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
113 def_width = 640;
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
114 }
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
115 width = width < 320 ? def_width : width;
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
116 height = height < 240 ? (width/320) * 240 : height;
dc322bc77ea2 Fix stateview. Update "all" target in Makefile.
Mike Pavone <pavone@retrodev.com>
parents: 424
diff changeset
117
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
118 vdp_context context;
719
019d27995e32 Upgrade to SDL 2.0 and drop support for the non-OpenGL render path
Michael Pavone <pavone@retrodev.com>
parents: 703
diff changeset
119 render_init(width, height, "GST State Viewer", 60, 0);
703
6e751a8f46aa Get save state viewer compiling again
Michael Pavone <pavone@retrodev.com>
parents: 467
diff changeset
120 init_vdp_context(&context, 0);
424
7e8e179116af Add support for loading GST format savestates
Mike Pavone <pavone@retrodev.com>
parents: 322
diff changeset
121 vdp_load_gst(&context, state_file);
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
122 vdp_run_to_vblank(&context);
322
8e2fa485c0f2 Remove z80_ram reference in SDL renderer to get stateview compiling again. Print out the sprite list in stateview.
Mike Pavone <pavone@retrodev.com>
parents: 75
diff changeset
123 vdp_print_sprite_table(&context);
75
108e587165c0 Implement DMA (untested)
Mike Pavone <pavone@retrodev.com>
parents: 43
diff changeset
124 printf("Display %s\n", (context.regs[REG_MODE_2] & DISPLAY_ENABLE) ? "enabled" : "disabled");
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
125 render_context(&context);
43
3fc57e1a2c56 Add debug render mode and fix vertical flip bit for bg tiles
Mike Pavone <pavone@retrodev.com>
parents: 33
diff changeset
126 render_wait_quit(&context);
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
127 return 0;
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
128 }