-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnotes.txt
More file actions
88 lines (64 loc) · 2.71 KB
/
notes.txt
File metadata and controls
88 lines (64 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
TASKS
=======================================
[ ] Update stack debug printing code to work with new stack code.
[ ] Move roms and bios out of project (make safe for public repository)
[ ] convert some hard-coded addresses to statics
[*] work on colours of tiles and sprites
[*] improve test rates.
[*] auto select some memory types
[*] make window size controllable
[*] make window sized to display size
[*] make window title something better
[*] add colour generator class
Links
========================================
Pan Docs
http://bgb.bircd.org/pandocs.htm
Instruction set diagram:
http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html
Blog
http://bgb.bircd.org/pandocs.txt
Some explanation of instructions - rolls etc
http://www.devrs.com/gb/files/opcodes.html
gameboy tetris disassembly?
https://github.com/osnr/tetris/blob/master/tetris.asm
Memory map
http://gbdev.gg8.se/wiki/articles/Memory_Map
* Tutorial of emu development, going through various stages.
http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Memory
Boot process and blog discussing the system.
https://realboyemulator.wordpress.com/2013/01/03/a-look-at-the-game-boy-bootstrap-let-the-fun-begin/
Javascript emulator
http://thaum.net/jge/
CPU opcode reference
https://rednex.github.io/rgbds/gbz80.7.html#JR_e8
// Good instruction overview, useful for flags etc.
http://www.chrisantonellis.com/files/gameboy/gb-instructions.txt
// Useful explanatin of LCD status register bits
http://bgb.bircd.org/pandocs.htm
http://bgb.bircd.org/pandocs.txt
http://gameboy.mongenel.com/dmg/asmmemmap.html
http://bgb.bircd.org/pandocs.htm#lcdstatusregister
http://www.codeslinger.co.uk/pages/projects/gameboy/hardware.html
Code Projects
=============
Good javascript version, helped with interrupts
https://github.com/psykad/nagbe-js
Examples of implemented MBCs
https://github.com/tylerschloesser/cgbemu-core/blob/8c9190013e2e39e7d5c33a074884625e6500c249/src/memory.c
BUGS
====
if 0xFF00 returns 0 all the time it causes tetris to fail startup with garbage graphics.
color gameboy specifics
FF68 - BCPS/BGPI - CGB Mode Only - Background Palette Index
Bit 0-5 Index (00-3F)
Bit 7 Auto Increment (0=Disabled, 1=Increment after Writing)
FF69 - BCPD/BGPD - CGB Mode Only - Background Palette Data
Bit 0-4 Red Intensity (00-1F)
Bit 5-9 Green Intensity (00-1F)
Bit 10-14 Blue Intensity (00-1F)
FF6A - OCPS/OBPI - CGB Mode Only - Sprite Palette Index, FF6B - OCPD/OBPD - CGB Mode Only - Sprite Palette Data
BG Map Attributes (CGB Mode only)
In CGB Mode, an additional map of 32x32 bytes is stored in VRAM Bank 1
(each byte defines attributes for the corresponding tile-number map entry
in VRAM Bank 0, ie. 1:9800 defines the attributes for the tile at 0:9800):