amaterasu 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +54 -0
  5. data/Gemfile +32 -0
  6. data/Gemfile.lock +267 -0
  7. data/LICENSE +21 -0
  8. data/README.md +115 -0
  9. data/Steepfile +7 -0
  10. data/exe/amaterasu +23 -0
  11. data/lib/amaterasu/cartridge/mbc1.rb +56 -0
  12. data/lib/amaterasu/cartridge/rom.rb +118 -0
  13. data/lib/amaterasu/cartridge.rb +68 -0
  14. data/lib/amaterasu/cli.rb +60 -0
  15. data/lib/amaterasu/emulator.rb +121 -0
  16. data/lib/amaterasu/game_boy/apu.rb +12 -0
  17. data/lib/amaterasu/game_boy/bus.rb +161 -0
  18. data/lib/amaterasu/game_boy/cpu/instructions/adc.rb +64 -0
  19. data/lib/amaterasu/game_boy/cpu/instructions/add16.rb +73 -0
  20. data/lib/amaterasu/game_boy/cpu/instructions/add8.rb +63 -0
  21. data/lib/amaterasu/game_boy/cpu/instructions/and.rb +62 -0
  22. data/lib/amaterasu/game_boy/cpu/instructions/base.rb +38 -0
  23. data/lib/amaterasu/game_boy/cpu/instructions/call.rb +48 -0
  24. data/lib/amaterasu/game_boy/cpu/instructions/cb_bit.rb +52 -0
  25. data/lib/amaterasu/game_boy/cpu/instructions/cb_res.rb +49 -0
  26. data/lib/amaterasu/game_boy/cpu/instructions/cb_rl.rb +70 -0
  27. data/lib/amaterasu/game_boy/cpu/instructions/cb_rlc.rb +68 -0
  28. data/lib/amaterasu/game_boy/cpu/instructions/cb_rr.rb +70 -0
  29. data/lib/amaterasu/game_boy/cpu/instructions/cb_rrc.rb +68 -0
  30. data/lib/amaterasu/game_boy/cpu/instructions/cb_set.rb +51 -0
  31. data/lib/amaterasu/game_boy/cpu/instructions/cb_sla.rb +69 -0
  32. data/lib/amaterasu/game_boy/cpu/instructions/cb_sra.rb +71 -0
  33. data/lib/amaterasu/game_boy/cpu/instructions/cb_srl.rb +69 -0
  34. data/lib/amaterasu/game_boy/cpu/instructions/cb_swap.rb +67 -0
  35. data/lib/amaterasu/game_boy/cpu/instructions/cp.rb +61 -0
  36. data/lib/amaterasu/game_boy/cpu/instructions/daa.rb +59 -0
  37. data/lib/amaterasu/game_boy/cpu/instructions/dec.rb +64 -0
  38. data/lib/amaterasu/game_boy/cpu/instructions/di.rb +21 -0
  39. data/lib/amaterasu/game_boy/cpu/instructions/ei.rb +19 -0
  40. data/lib/amaterasu/game_boy/cpu/instructions/halt.rb +19 -0
  41. data/lib/amaterasu/game_boy/cpu/instructions/inc.rb +64 -0
  42. data/lib/amaterasu/game_boy/cpu/instructions/jp.rb +54 -0
  43. data/lib/amaterasu/game_boy/cpu/instructions/jr.rb +45 -0
  44. data/lib/amaterasu/game_boy/cpu/instructions/ld16.rb +79 -0
  45. data/lib/amaterasu/game_boy/cpu/instructions/ld8.rb +210 -0
  46. data/lib/amaterasu/game_boy/cpu/instructions/ldh.rb +61 -0
  47. data/lib/amaterasu/game_boy/cpu/instructions/misc.rb +53 -0
  48. data/lib/amaterasu/game_boy/cpu/instructions/nop.rb +19 -0
  49. data/lib/amaterasu/game_boy/cpu/instructions/or.rb +56 -0
  50. data/lib/amaterasu/game_boy/cpu/instructions/pop.rb +39 -0
  51. data/lib/amaterasu/game_boy/cpu/instructions/push.rb +43 -0
  52. data/lib/amaterasu/game_boy/cpu/instructions/ret.rb +70 -0
  53. data/lib/amaterasu/game_boy/cpu/instructions/rotate.rb +120 -0
  54. data/lib/amaterasu/game_boy/cpu/instructions/rst.rb +33 -0
  55. data/lib/amaterasu/game_boy/cpu/instructions/sbc.rb +64 -0
  56. data/lib/amaterasu/game_boy/cpu/instructions/stop.rb +19 -0
  57. data/lib/amaterasu/game_boy/cpu/instructions/sub.rb +63 -0
  58. data/lib/amaterasu/game_boy/cpu/instructions/xor.rb +60 -0
  59. data/lib/amaterasu/game_boy/cpu/instructions.rb +600 -0
  60. data/lib/amaterasu/game_boy/cpu/registers.rb +264 -0
  61. data/lib/amaterasu/game_boy/cpu.rb +232 -0
  62. data/lib/amaterasu/game_boy/dma.rb +114 -0
  63. data/lib/amaterasu/game_boy/interrupts.rb +108 -0
  64. data/lib/amaterasu/game_boy/joypad.rb +127 -0
  65. data/lib/amaterasu/game_boy/oam/sprite.rb +106 -0
  66. data/lib/amaterasu/game_boy/oam.rb +29 -0
  67. data/lib/amaterasu/game_boy/ppu/modes/disabled.rb +29 -0
  68. data/lib/amaterasu/game_boy/ppu/modes/h_blank.rb +45 -0
  69. data/lib/amaterasu/game_boy/ppu/modes/oam_scan.rb +93 -0
  70. data/lib/amaterasu/game_boy/ppu/modes/rendering/bg_win_fetcher.rb +204 -0
  71. data/lib/amaterasu/game_boy/ppu/modes/rendering/pixel_emitter.rb +83 -0
  72. data/lib/amaterasu/game_boy/ppu/modes/rendering/pixel_fifo.rb +70 -0
  73. data/lib/amaterasu/game_boy/ppu/modes/rendering/sprite_fetcher.rb +140 -0
  74. data/lib/amaterasu/game_boy/ppu/modes/rendering.rb +108 -0
  75. data/lib/amaterasu/game_boy/ppu/modes/v_blank.rb +43 -0
  76. data/lib/amaterasu/game_boy/ppu/modes.rb +22 -0
  77. data/lib/amaterasu/game_boy/ppu/registers/lcd_control.rb +57 -0
  78. data/lib/amaterasu/game_boy/ppu/registers/lcd_status.rb +88 -0
  79. data/lib/amaterasu/game_boy/ppu/registers.rb +131 -0
  80. data/lib/amaterasu/game_boy/ppu.rb +207 -0
  81. data/lib/amaterasu/game_boy/ram.rb +70 -0
  82. data/lib/amaterasu/game_boy/serial.rb +91 -0
  83. data/lib/amaterasu/game_boy/timer.rb +230 -0
  84. data/lib/amaterasu/game_boy/vram/tile.rb +68 -0
  85. data/lib/amaterasu/game_boy/vram/tile_data.rb +52 -0
  86. data/lib/amaterasu/game_boy/vram/tile_map.rb +71 -0
  87. data/lib/amaterasu/game_boy/vram.rb +51 -0
  88. data/lib/amaterasu/hal/console.rb +23 -0
  89. data/lib/amaterasu/hal/sdl2/bindings.rb +59 -0
  90. data/lib/amaterasu/hal/sdl2.rb +127 -0
  91. data/lib/amaterasu/utils/bit_ops.rb +22 -0
  92. data/lib/amaterasu.rb +13 -0
  93. data/sig/akane/cartridge/rom.rbs +29 -0
  94. data/sig/akane/cartridge.rbs +12 -0
  95. data/sig/akane/cli.rbs +16 -0
  96. data/sig/akane/emulator.rbs +19 -0
  97. data/sig/akane/game_boy/apu.rbs +7 -0
  98. data/sig/akane/game_boy/bus.rbs +25 -0
  99. data/sig/akane/game_boy/cpu/instructions/adc.rbs +18 -0
  100. data/sig/akane/game_boy/cpu/instructions/add16.rbs +19 -0
  101. data/sig/akane/game_boy/cpu/instructions/add8.rbs +18 -0
  102. data/sig/akane/game_boy/cpu/instructions/and.rbs +18 -0
  103. data/sig/akane/game_boy/cpu/instructions/base.rbs +20 -0
  104. data/sig/akane/game_boy/cpu/instructions/call.rbs +18 -0
  105. data/sig/akane/game_boy/cpu/instructions/cb_bit.rbs +20 -0
  106. data/sig/akane/game_boy/cpu/instructions/cb_res.rbs +19 -0
  107. data/sig/akane/game_boy/cpu/instructions/cb_rl.rbs +21 -0
  108. data/sig/akane/game_boy/cpu/instructions/cb_rlc.rbs +21 -0
  109. data/sig/akane/game_boy/cpu/instructions/cb_rr.rbs +21 -0
  110. data/sig/akane/game_boy/cpu/instructions/cb_rrc.rbs +21 -0
  111. data/sig/akane/game_boy/cpu/instructions/cb_set.rbs +20 -0
  112. data/sig/akane/game_boy/cpu/instructions/cb_sla.rbs +21 -0
  113. data/sig/akane/game_boy/cpu/instructions/cb_sra.rbs +21 -0
  114. data/sig/akane/game_boy/cpu/instructions/cb_srl.rbs +21 -0
  115. data/sig/akane/game_boy/cpu/instructions/cb_swap.rbs +21 -0
  116. data/sig/akane/game_boy/cpu/instructions/cp.rbs +18 -0
  117. data/sig/akane/game_boy/cpu/instructions/daa.rbs +17 -0
  118. data/sig/akane/game_boy/cpu/instructions/dec.rbs +19 -0
  119. data/sig/akane/game_boy/cpu/instructions/di.rbs +13 -0
  120. data/sig/akane/game_boy/cpu/instructions/ei.rbs +13 -0
  121. data/sig/akane/game_boy/cpu/instructions/halt.rbs +13 -0
  122. data/sig/akane/game_boy/cpu/instructions/inc.rbs +19 -0
  123. data/sig/akane/game_boy/cpu/instructions/jp.rbs +18 -0
  124. data/sig/akane/game_boy/cpu/instructions/jr.rbs +18 -0
  125. data/sig/akane/game_boy/cpu/instructions/ld16.rbs +18 -0
  126. data/sig/akane/game_boy/cpu/instructions/ld8.rbs +31 -0
  127. data/sig/akane/game_boy/cpu/instructions/ldh.rbs +23 -0
  128. data/sig/akane/game_boy/cpu/instructions/misc.rbs +20 -0
  129. data/sig/akane/game_boy/cpu/instructions/nop.rbs +13 -0
  130. data/sig/akane/game_boy/cpu/instructions/or.rbs +18 -0
  131. data/sig/akane/game_boy/cpu/instructions/pop.rbs +17 -0
  132. data/sig/akane/game_boy/cpu/instructions/push.rbs +18 -0
  133. data/sig/akane/game_boy/cpu/instructions/ret.rbs +20 -0
  134. data/sig/akane/game_boy/cpu/instructions/rotate.rbs +23 -0
  135. data/sig/akane/game_boy/cpu/instructions/rst.rbs +17 -0
  136. data/sig/akane/game_boy/cpu/instructions/sbc.rbs +19 -0
  137. data/sig/akane/game_boy/cpu/instructions/stop.rbs +13 -0
  138. data/sig/akane/game_boy/cpu/instructions/sub.rbs +18 -0
  139. data/sig/akane/game_boy/cpu/instructions/xor.rbs +19 -0
  140. data/sig/akane/game_boy/cpu/instructions.rbs +12 -0
  141. data/sig/akane/game_boy/cpu/registers.rbs +56 -0
  142. data/sig/akane/game_boy/cpu.rbs +39 -0
  143. data/sig/akane/game_boy/interrupts.rbs +28 -0
  144. data/sig/akane/game_boy/joypad.rbs +25 -0
  145. data/sig/akane/game_boy/oam/sprite.rbs +30 -0
  146. data/sig/akane/game_boy/ppu/modes/disabled.rbs +17 -0
  147. data/sig/akane/game_boy/ppu/modes/h_blank.rbs +20 -0
  148. data/sig/akane/game_boy/ppu/modes/oam_scan.rbs +28 -0
  149. data/sig/akane/game_boy/ppu/modes/rendering.rbs +26 -0
  150. data/sig/akane/game_boy/ppu/modes/v_blank.rbs +20 -0
  151. data/sig/akane/game_boy/ppu/modes.rbs +13 -0
  152. data/sig/akane/game_boy/ppu.rbs +59 -0
  153. data/sig/akane/game_boy/ram.rbs +16 -0
  154. data/sig/akane/game_boy/serial.rbs +21 -0
  155. data/sig/akane/game_boy/timer.rbs +30 -0
  156. data/sig/akane/utils/bit_ops.rbs +11 -0
  157. data/sig/akane.rbs +3 -0
  158. metadata +226 -0
@@ -0,0 +1,59 @@
1
+ module Amaterasu
2
+ module GameBoy
3
+ class Ppu
4
+ include Utils::BitOps
5
+
6
+ MODES: Hash[Symbol, Integer]
7
+ DOTS_PER_OAM_SCAN: Integer
8
+ DOTS_PER_SCANLINE: Integer
9
+ WINDOW_TILE_MAPS: Hash[Integer, Hash[Symbol, Integer]]
10
+ BG_TILE_MAPS: Hash[Integer, Hash[Symbol, Integer]]
11
+
12
+ CONSOLE_CHARS: Array[String]
13
+
14
+ attr_reader lcdc: Integer
15
+ attr_reader scy: Integer
16
+ attr_reader scx: Integer
17
+ attr_reader ly: Integer
18
+ attr_reader lyc: Integer
19
+ attr_reader dma: Integer
20
+ attr_reader bgp: Integer
21
+ attr_reader obp0: Integer
22
+ attr_reader obp1: Integer
23
+ attr_reader wy: Integer
24
+ attr_reader wx: Integer
25
+
26
+ def initialize: (Vram vram, Oam oam, Interrupts interrupts, ?trace_ppu: bool) -> void
27
+
28
+ def stat: () -> Integer
29
+
30
+ def lcdc=: (Integer value) -> void
31
+ def stat=: (Integer value) -> void
32
+ def scy=: (Integer value) -> void
33
+ def scx=: (Integer value) -> void
34
+ def lyc=: (Integer value) -> void
35
+ def bgp=: (Integer value) -> void
36
+ def obp0=: (Integer value) -> void
37
+ def obp1=: (Integer value) -> void
38
+ def wy=: (Integer value) -> void
39
+ def wx=: (Integer value) -> void
40
+
41
+ def read_vram: (address: Integer) -> Integer
42
+ def write_vram: (address: Integer, value: Integer) -> void
43
+ def read_oam: (address: Integer) -> Integer
44
+ def write_oam: (address: Integer, value: Integer) -> void
45
+ def tick: () -> void
46
+
47
+ private
48
+
49
+ def draw_scanline: () -> void
50
+ def shade: (Integer color_index) -> Integer
51
+ def lcd_on?: () -> bool
52
+ def lcd_off?: () -> bool
53
+ def window_tile_map: () -> Hash[Symbol, Integer]
54
+ def bg_tile_map: () -> Hash[Symbol, Integer]
55
+ def addressing_mode: () -> Integer
56
+ def trace: () -> void
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,16 @@
1
+ module Amaterasu
2
+ module GameBoy
3
+ class Ram
4
+ def initialize: (size: Integer, offset: Integer) -> void
5
+
6
+ def read_byte: (address: Integer) -> Integer
7
+ def write_byte: (address: Integer, value: Integer) -> void
8
+ def read_backup: (address: Integer) -> Integer
9
+ def disk_size: () -> String
10
+ def save_data: () -> void
11
+ def restore_data: () -> void
12
+ def wipe_data: () -> void
13
+ def wipe_backup: () -> void
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,21 @@
1
+ module Amaterasu
2
+ module GameBoy
3
+ class Serial
4
+ attr_reader sb: Integer
5
+ attr_reader message_buffer: Array[Integer]
6
+
7
+ def initialize: (Interrupts interrupts, ?trace_serial: bool) -> void
8
+
9
+ def sc: () -> Integer
10
+ def sb=: (Integer value) -> void
11
+ def sc=: (Integer value) -> void
12
+
13
+ private
14
+
15
+ def transfer_enabled?: () -> bool
16
+ def clock_bit: () -> Integer
17
+ def start_transfer: () -> void
18
+ def complete_transfer: () -> void
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,30 @@
1
+ module Amaterasu
2
+ module GameBoy
3
+ class Timer
4
+ T_CYCLES: Integer
5
+ COUNTER_BITS_TO_WATCH: Array[Integer]
6
+
7
+ attr_reader tima: Integer
8
+ attr_reader tma: Integer
9
+ attr_reader tac: Integer
10
+
11
+ def initialize: (Interrupts interrupts) -> void
12
+
13
+ def div: () -> Integer
14
+ def div=: (Integer value) -> void
15
+ def tima=: (Integer value) -> void
16
+ def tma=: (Integer value) -> void
17
+ def tac=: (Integer value) -> void
18
+
19
+ def tick: () -> void
20
+
21
+ private
22
+
23
+ def increment_tima?: (Integer previous_counter) -> bool
24
+ def tac_enable: () -> Integer
25
+ def tac_clock_select: () -> Integer
26
+ def clock_bit_position: () -> Integer
27
+ def falling_edge?: (Integer previous_counter) -> bool
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Amaterasu
4
+ module Utils
5
+ module BitOps
6
+ def self?.set_bit: (Integer value, Integer pos) -> Integer
7
+ def self?.clear_bit: (Integer value, Integer pos) -> Integer
8
+ def self?.bit: (Integer value, Integer pos) -> Integer
9
+ end
10
+ end
11
+ end
data/sig/akane.rbs ADDED
@@ -0,0 +1,3 @@
1
+ module Amaterasu
2
+ VERSION: String
3
+ end
metadata ADDED
@@ -0,0 +1,226 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: amaterasu
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
5
+ platform: ruby
6
+ authors:
7
+ - Fernando Eufrásio
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ffi
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 1.15.5
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 1.15.5
26
+ - !ruby/object:Gem::Dependency
27
+ name: zeitwerk
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.8.2
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 2.8.2
40
+ executables:
41
+ - amaterasu
42
+ extensions: []
43
+ extra_rdoc_files: []
44
+ files:
45
+ - ".gitignore"
46
+ - ".rspec"
47
+ - ".rubocop.yml"
48
+ - Gemfile
49
+ - Gemfile.lock
50
+ - LICENSE
51
+ - README.md
52
+ - Steepfile
53
+ - exe/amaterasu
54
+ - lib/amaterasu.rb
55
+ - lib/amaterasu/cartridge.rb
56
+ - lib/amaterasu/cartridge/mbc1.rb
57
+ - lib/amaterasu/cartridge/rom.rb
58
+ - lib/amaterasu/cli.rb
59
+ - lib/amaterasu/emulator.rb
60
+ - lib/amaterasu/game_boy/apu.rb
61
+ - lib/amaterasu/game_boy/bus.rb
62
+ - lib/amaterasu/game_boy/cpu.rb
63
+ - lib/amaterasu/game_boy/cpu/instructions.rb
64
+ - lib/amaterasu/game_boy/cpu/instructions/adc.rb
65
+ - lib/amaterasu/game_boy/cpu/instructions/add16.rb
66
+ - lib/amaterasu/game_boy/cpu/instructions/add8.rb
67
+ - lib/amaterasu/game_boy/cpu/instructions/and.rb
68
+ - lib/amaterasu/game_boy/cpu/instructions/base.rb
69
+ - lib/amaterasu/game_boy/cpu/instructions/call.rb
70
+ - lib/amaterasu/game_boy/cpu/instructions/cb_bit.rb
71
+ - lib/amaterasu/game_boy/cpu/instructions/cb_res.rb
72
+ - lib/amaterasu/game_boy/cpu/instructions/cb_rl.rb
73
+ - lib/amaterasu/game_boy/cpu/instructions/cb_rlc.rb
74
+ - lib/amaterasu/game_boy/cpu/instructions/cb_rr.rb
75
+ - lib/amaterasu/game_boy/cpu/instructions/cb_rrc.rb
76
+ - lib/amaterasu/game_boy/cpu/instructions/cb_set.rb
77
+ - lib/amaterasu/game_boy/cpu/instructions/cb_sla.rb
78
+ - lib/amaterasu/game_boy/cpu/instructions/cb_sra.rb
79
+ - lib/amaterasu/game_boy/cpu/instructions/cb_srl.rb
80
+ - lib/amaterasu/game_boy/cpu/instructions/cb_swap.rb
81
+ - lib/amaterasu/game_boy/cpu/instructions/cp.rb
82
+ - lib/amaterasu/game_boy/cpu/instructions/daa.rb
83
+ - lib/amaterasu/game_boy/cpu/instructions/dec.rb
84
+ - lib/amaterasu/game_boy/cpu/instructions/di.rb
85
+ - lib/amaterasu/game_boy/cpu/instructions/ei.rb
86
+ - lib/amaterasu/game_boy/cpu/instructions/halt.rb
87
+ - lib/amaterasu/game_boy/cpu/instructions/inc.rb
88
+ - lib/amaterasu/game_boy/cpu/instructions/jp.rb
89
+ - lib/amaterasu/game_boy/cpu/instructions/jr.rb
90
+ - lib/amaterasu/game_boy/cpu/instructions/ld16.rb
91
+ - lib/amaterasu/game_boy/cpu/instructions/ld8.rb
92
+ - lib/amaterasu/game_boy/cpu/instructions/ldh.rb
93
+ - lib/amaterasu/game_boy/cpu/instructions/misc.rb
94
+ - lib/amaterasu/game_boy/cpu/instructions/nop.rb
95
+ - lib/amaterasu/game_boy/cpu/instructions/or.rb
96
+ - lib/amaterasu/game_boy/cpu/instructions/pop.rb
97
+ - lib/amaterasu/game_boy/cpu/instructions/push.rb
98
+ - lib/amaterasu/game_boy/cpu/instructions/ret.rb
99
+ - lib/amaterasu/game_boy/cpu/instructions/rotate.rb
100
+ - lib/amaterasu/game_boy/cpu/instructions/rst.rb
101
+ - lib/amaterasu/game_boy/cpu/instructions/sbc.rb
102
+ - lib/amaterasu/game_boy/cpu/instructions/stop.rb
103
+ - lib/amaterasu/game_boy/cpu/instructions/sub.rb
104
+ - lib/amaterasu/game_boy/cpu/instructions/xor.rb
105
+ - lib/amaterasu/game_boy/cpu/registers.rb
106
+ - lib/amaterasu/game_boy/dma.rb
107
+ - lib/amaterasu/game_boy/interrupts.rb
108
+ - lib/amaterasu/game_boy/joypad.rb
109
+ - lib/amaterasu/game_boy/oam.rb
110
+ - lib/amaterasu/game_boy/oam/sprite.rb
111
+ - lib/amaterasu/game_boy/ppu.rb
112
+ - lib/amaterasu/game_boy/ppu/modes.rb
113
+ - lib/amaterasu/game_boy/ppu/modes/disabled.rb
114
+ - lib/amaterasu/game_boy/ppu/modes/h_blank.rb
115
+ - lib/amaterasu/game_boy/ppu/modes/oam_scan.rb
116
+ - lib/amaterasu/game_boy/ppu/modes/rendering.rb
117
+ - lib/amaterasu/game_boy/ppu/modes/rendering/bg_win_fetcher.rb
118
+ - lib/amaterasu/game_boy/ppu/modes/rendering/pixel_emitter.rb
119
+ - lib/amaterasu/game_boy/ppu/modes/rendering/pixel_fifo.rb
120
+ - lib/amaterasu/game_boy/ppu/modes/rendering/sprite_fetcher.rb
121
+ - lib/amaterasu/game_boy/ppu/modes/v_blank.rb
122
+ - lib/amaterasu/game_boy/ppu/registers.rb
123
+ - lib/amaterasu/game_boy/ppu/registers/lcd_control.rb
124
+ - lib/amaterasu/game_boy/ppu/registers/lcd_status.rb
125
+ - lib/amaterasu/game_boy/ram.rb
126
+ - lib/amaterasu/game_boy/serial.rb
127
+ - lib/amaterasu/game_boy/timer.rb
128
+ - lib/amaterasu/game_boy/vram.rb
129
+ - lib/amaterasu/game_boy/vram/tile.rb
130
+ - lib/amaterasu/game_boy/vram/tile_data.rb
131
+ - lib/amaterasu/game_boy/vram/tile_map.rb
132
+ - lib/amaterasu/hal/console.rb
133
+ - lib/amaterasu/hal/sdl2.rb
134
+ - lib/amaterasu/hal/sdl2/bindings.rb
135
+ - lib/amaterasu/utils/bit_ops.rb
136
+ - sig/akane.rbs
137
+ - sig/akane/cartridge.rbs
138
+ - sig/akane/cartridge/rom.rbs
139
+ - sig/akane/cli.rbs
140
+ - sig/akane/emulator.rbs
141
+ - sig/akane/game_boy/apu.rbs
142
+ - sig/akane/game_boy/bus.rbs
143
+ - sig/akane/game_boy/cpu.rbs
144
+ - sig/akane/game_boy/cpu/instructions.rbs
145
+ - sig/akane/game_boy/cpu/instructions/adc.rbs
146
+ - sig/akane/game_boy/cpu/instructions/add16.rbs
147
+ - sig/akane/game_boy/cpu/instructions/add8.rbs
148
+ - sig/akane/game_boy/cpu/instructions/and.rbs
149
+ - sig/akane/game_boy/cpu/instructions/base.rbs
150
+ - sig/akane/game_boy/cpu/instructions/call.rbs
151
+ - sig/akane/game_boy/cpu/instructions/cb_bit.rbs
152
+ - sig/akane/game_boy/cpu/instructions/cb_res.rbs
153
+ - sig/akane/game_boy/cpu/instructions/cb_rl.rbs
154
+ - sig/akane/game_boy/cpu/instructions/cb_rlc.rbs
155
+ - sig/akane/game_boy/cpu/instructions/cb_rr.rbs
156
+ - sig/akane/game_boy/cpu/instructions/cb_rrc.rbs
157
+ - sig/akane/game_boy/cpu/instructions/cb_set.rbs
158
+ - sig/akane/game_boy/cpu/instructions/cb_sla.rbs
159
+ - sig/akane/game_boy/cpu/instructions/cb_sra.rbs
160
+ - sig/akane/game_boy/cpu/instructions/cb_srl.rbs
161
+ - sig/akane/game_boy/cpu/instructions/cb_swap.rbs
162
+ - sig/akane/game_boy/cpu/instructions/cp.rbs
163
+ - sig/akane/game_boy/cpu/instructions/daa.rbs
164
+ - sig/akane/game_boy/cpu/instructions/dec.rbs
165
+ - sig/akane/game_boy/cpu/instructions/di.rbs
166
+ - sig/akane/game_boy/cpu/instructions/ei.rbs
167
+ - sig/akane/game_boy/cpu/instructions/halt.rbs
168
+ - sig/akane/game_boy/cpu/instructions/inc.rbs
169
+ - sig/akane/game_boy/cpu/instructions/jp.rbs
170
+ - sig/akane/game_boy/cpu/instructions/jr.rbs
171
+ - sig/akane/game_boy/cpu/instructions/ld16.rbs
172
+ - sig/akane/game_boy/cpu/instructions/ld8.rbs
173
+ - sig/akane/game_boy/cpu/instructions/ldh.rbs
174
+ - sig/akane/game_boy/cpu/instructions/misc.rbs
175
+ - sig/akane/game_boy/cpu/instructions/nop.rbs
176
+ - sig/akane/game_boy/cpu/instructions/or.rbs
177
+ - sig/akane/game_boy/cpu/instructions/pop.rbs
178
+ - sig/akane/game_boy/cpu/instructions/push.rbs
179
+ - sig/akane/game_boy/cpu/instructions/ret.rbs
180
+ - sig/akane/game_boy/cpu/instructions/rotate.rbs
181
+ - sig/akane/game_boy/cpu/instructions/rst.rbs
182
+ - sig/akane/game_boy/cpu/instructions/sbc.rbs
183
+ - sig/akane/game_boy/cpu/instructions/stop.rbs
184
+ - sig/akane/game_boy/cpu/instructions/sub.rbs
185
+ - sig/akane/game_boy/cpu/instructions/xor.rbs
186
+ - sig/akane/game_boy/cpu/registers.rbs
187
+ - sig/akane/game_boy/interrupts.rbs
188
+ - sig/akane/game_boy/joypad.rbs
189
+ - sig/akane/game_boy/oam/sprite.rbs
190
+ - sig/akane/game_boy/ppu.rbs
191
+ - sig/akane/game_boy/ppu/modes.rbs
192
+ - sig/akane/game_boy/ppu/modes/disabled.rbs
193
+ - sig/akane/game_boy/ppu/modes/h_blank.rbs
194
+ - sig/akane/game_boy/ppu/modes/oam_scan.rbs
195
+ - sig/akane/game_boy/ppu/modes/rendering.rbs
196
+ - sig/akane/game_boy/ppu/modes/v_blank.rbs
197
+ - sig/akane/game_boy/ram.rbs
198
+ - sig/akane/game_boy/serial.rbs
199
+ - sig/akane/game_boy/timer.rbs
200
+ - sig/akane/utils/bit_ops.rbs
201
+ homepage: https://github.com/nerdyshibe/amaterasu-rb
202
+ licenses:
203
+ - MIT
204
+ metadata:
205
+ allowed_push_host: https://rubygems.org
206
+ homepage_uri: https://github.com/nerdyshibe/amaterasu-rb
207
+ source_code_uri: https://github.com/nerdyshibe/amaterasu-rb
208
+ rubygems_mfa_required: 'true'
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: 3.2.0
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubygems_version: 4.0.11
224
+ specification_version: 4
225
+ summary: A cycle-accurate Game Boy emulator written in Ruby
226
+ test_files: []