mirror of
https://github.com/italicsjenga/gba.git
synced 2024-12-26 04:01:31 +11:00
1 line
323 KiB
JSON
1 line
323 KiB
JSON
|
{"doc_urls":["introduction.html#introduction","introduction.html#other-works","ch0/index.html#chapter-0-development-setup","ch0/index.html#per-system-setup","ch0/index.html#per-project-setup","ch0/index.html#compiling","ch1/index.html#ch-1-hello-gba","ch1/hello1.html#hello1","ch1/hello1.html#explaining-hello1","ch1/hello1.html#all-those-magic-numbers","ch1/hello1.html#sidebar-volatile","ch1/io_registers.html#io-registers","ch1/the_display_control_register.html#the-display-control-register","ch1/the_display_control_register.html#video-modes","ch1/the_display_control_register.html#cgb-mode","ch1/the_display_control_register.html#page-flipping","ch1/the_display_control_register.html#oam-vram-and-blanking","ch1/the_display_control_register.html#screen-layers","ch1/the_display_control_register.html#in-conclusion","ch1/video_memory_intro.html#video-memory-intro","ch1/video_memory_intro.html#rgb15","ch1/video_memory_intro.html#mode-3","ch1/video_memory_intro.html#mode-4","ch1/video_memory_intro.html#mode-5","ch1/video_memory_intro.html#in-conclusion","ch1/hello2.html#hello2","ch2/index.html#ch-2-user-input","ch2/the_key_input_register.html#the-key-input-register","ch2/the_key_input_register.html#key-input-code","ch2/the_vcount_register.html#the-vcount-register","ch2/light_cycle.html#light_cycle","ch2/light_cycle.html#gameplay","ch2/light_cycle.html#operations"],"index":{"documentStore":{"docInfo":{"0":{"body":16,"breadcrumbs":1,"title":1},"1":{"body":49,"breadcrumbs":1,"title":1},"10":{"body":155,"breadcrumbs":6,"title":2},"11":{"body":143,"breadcrumbs":6,"title":2},"12":{"body":83,"breadcrumbs":7,"title":3},"13":{"body":174,"breadcrumbs":6,"title":2},"14":{"body":25,"breadcrumbs":6,"title":2},"15":{"body":32,"breadcrumbs":6,"title":2},"16":{"body":70,"breadcrumbs":7,"title":3},"17":{"body":54,"breadcrumbs":6,"title":2},"18":{"body":30,"breadcrumbs":5,"title":1},"19":{"body":94,"breadcrumbs":7,"title":3},"2":{"body":36,"breadcrumbs":4,"title":4},"20":{"body":47,"breadcrumbs":5,"title":1},"21":{"body":41,"breadcrumbs":6,"title":2},"22":{"body":211,"breadcrumbs":6,"title":2},"23":{"body":25,"breadcrumbs":6,"title":2},"24":{"body":47,"breadcrumbs":5,"title":1},"25":{"body":300,"breadcrumbs":5,"title":1},"26":{"body":111,"breadcrumbs":4,"title":4},"27":{"body":198,"breadcrumbs":7,"title":3},"28":{"body":532,"breadcrumbs":7,"title":3},"29":{"body":321,"breadcrumbs":6,"title":2},"3":{"body":106,"breadcrumbs":3,"title":3},"30":{"body":7,"breadcrumbs":5,"title":1},"31":{"body":20,"breadcrumbs":5,"title":1},"32":{"body":336,"breadcrumbs":5,"title":1},"4":{"body":93,"breadcrumbs":3,"title":3},"5":{"body":402,"breadcrumbs":1,"title":1},"6":{"body":39,"breadcrumbs":4,"title":4},"7":{"body":83,"breadcrumbs":5,"title":1},"8":{"body":312,"breadcrumbs":6,"title":2},"9":{"body":55,"breadcrumbs":7,"title":3}},"docs":{"0":{"body":"Here's a book that'll help you program in Rust on the GBA. It's very \"work in progress\". At the moment there's only one demo program.","breadcrumbs":"Introduction","id":"0","title":"Introduction"},"1":{"body":"If you want to read more about developing on the GBA there are some other good resources as well: Tonc , a tutorial series written for C, but it's what I based the ordering of this book's sections on. GBATEK , a homebrew tech manual for GBA/NDS/DSi. We will regularly link to parts of it when talking about various bits of the GBA. CowBite is another tech specification that's more GBA specific. It's sometimes got more ASCII art diagrams and example C struct layouts than GBATEK does.","breadcrumbs":"Other Works","id":"1","title":"Other Works"},"10":{"body":"We'll get into what all that is in a moment, but first let's ask ourselves: Why are we doing volatile writes? You've probably never used it before at all. What is volatile anyway? Well, the optimizer is pretty aggressive some of the time, and so it'll skip reads and writes when it thinks can. Like if you write to a pointer once, and then again a moment later, and it didn't see any other reads in between, it'll think that it can just skip doing that first write
|