rubygb 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/README.md +20 -2
- data/lib/rubygb/cli.rb +1 -1
- data/lib/rubygb/rubygb.rb +7 -4
- data/lib/rubygb/version.rb +1 -1
- data/scrap/{test/test.gb → tester/tester.gb} +0 -0
- data/scrap/{test/test.map → tester/tester.map} +4 -4
- data/scrap/tester/tester.obj +0 -0
- data/scrap/tester/tester.s +90 -0
- data/scrap/{test/test.sym → tester/tester.sym} +2 -2
- data/scrap/you/gearboy.ini +34 -0
- data/scrap/you/lib/gbhw.inc +645 -0
- data/scrap/you/lib/ibmpx1.inc +2400 -0
- data/scrap/you/lib/memory.inc +153 -0
- data/scrap/you/you.gb +0 -0
- data/scrap/you/you.map +65 -0
- data/scrap/{test/test.obj → you/you.obj} +0 -0
- data/scrap/{test/test.s → you/you.s} +2 -3
- data/scrap/you/you.sym +12 -0
- data/wiki-images/you.gif +0 -0
- metadata +20 -10
- /data/scrap/{test → tester}/lib/gbhw.inc +0 -0
- /data/scrap/{test → tester}/lib/ibmpx1.inc +0 -0
- /data/scrap/{test → tester}/lib/memory.inc +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51adaa33b942a27b10da81c0a8ee49d6a5e73e59
|
4
|
+
data.tar.gz: ff96146f72ea74d55179233987f79712202647c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 221b56cd9948b6331b4d062c73502aec3f2dceb30d9357e00805302019d890aca571283bd68d384ebdf083256068044d035377b3e822855155bb5d7403c8febb
|
7
|
+
data.tar.gz: c79feda555e8915bc59de821b3d9c9d3ac4c7169b86ff920e5a1dd53014457aaa486182e852bf60a3f5660266de53922bfb682ca226b4aa5b14c7d274a95dfdb
|
data/README.md
CHANGED
@@ -13,9 +13,27 @@ gem install rubygb
|
|
13
13
|
|
14
14
|
## Usage
|
15
15
|
|
16
|
-
```ruby
|
17
|
-
rubygb build FILENAME
|
18
16
|
```
|
17
|
+
$ rubygb init you
|
18
|
+
Creating new project at /Users/cooldev/you
|
19
|
+
Copying gbhw.inc...
|
20
|
+
Copying ibmpx1.inc...
|
21
|
+
Copying memory.inc...
|
22
|
+
Generating you/you.s...
|
23
|
+
Done!
|
24
|
+
|
25
|
+
$ cd you
|
26
|
+
|
27
|
+
$ rubygb build you.s
|
28
|
+
Assembling you.s
|
29
|
+
Pass 1...
|
30
|
+
Pass 2...
|
31
|
+
Success! 3283 lines in 0.01 seconds (13894335 lines/minute)
|
32
|
+
|
33
|
+
$ gameboyemulator --open you.gb
|
34
|
+
```
|
35
|
+
|
36
|
+

|
19
37
|
|
20
38
|
## Awesomeness
|
21
39
|
|
data/lib/rubygb/cli.rb
CHANGED
data/lib/rubygb/rubygb.rb
CHANGED
@@ -5,11 +5,14 @@ module Rubygb
|
|
5
5
|
end
|
6
6
|
|
7
7
|
base = File.basename(filename, ".*")
|
8
|
-
|
9
8
|
exe_path = File.expand_path(File.join(File.dirname(__FILE__),"..","rgbds"))
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
|
10
|
+
raise "Assembly failed!" unless system("#{exe_path}/rgbasm -v -o#{base}.obj #{filename}")
|
11
|
+
raise "Link failed!" unless system("#{exe_path}/rgblink -m#{base}.map -n#{base}.sym -o#{base}.gb #{base}.obj")
|
12
|
+
|
13
|
+
unless options[:no_fix]
|
14
|
+
raise "Header fix failed!" unless system("#{exe_path}/rgbfix -p0 -v #{base}.gb")
|
15
|
+
end
|
13
16
|
end
|
14
17
|
end
|
15
18
|
|
data/lib/rubygb/version.rb
CHANGED
Binary file
|
@@ -4,19 +4,19 @@ ROM Bank #0 (HOME):
|
|
4
4
|
SECTION: $0050-$0050 ($0001 bytes)
|
5
5
|
SECTION: $0058-$0058 ($0001 bytes)
|
6
6
|
SECTION: $0060-$0060 ($0001 bytes)
|
7
|
-
SECTION: $0100-$
|
7
|
+
SECTION: $0100-$09B0 ($08B1 bytes)
|
8
8
|
$0952 = begin
|
9
|
-
$
|
9
|
+
$09A0 = StopLCD
|
10
10
|
$0150 = TileData
|
11
11
|
$0990 = Title
|
12
|
-
$
|
12
|
+
$09A0 = TitleEnd
|
13
13
|
SECTION: $0061-$00B6 ($0056 bytes)
|
14
14
|
$007B = mem_CopyMono
|
15
15
|
$008B = mem_SetVRAM
|
16
16
|
$00A1 = mem_CopyVRAM
|
17
17
|
$0061 = mem_Set
|
18
18
|
$006D = mem_Copy
|
19
|
-
SLACK: $
|
19
|
+
SLACK: $36F4 bytes
|
20
20
|
|
21
21
|
WRAM Bank #0:
|
22
22
|
EMPTY
|
Binary file
|
@@ -0,0 +1,90 @@
|
|
1
|
+
; tester.s
|
2
|
+
;
|
3
|
+
; TODO: summary
|
4
|
+
|
5
|
+
INCLUDE "lib/gbhw.inc" ; gameboy hardware definitions
|
6
|
+
INCLUDE "lib/ibmpx1.inc" ; ibm ascii font macros
|
7
|
+
|
8
|
+
|
9
|
+
; interrupts
|
10
|
+
SECTION "Vblank",HOME[$0040]
|
11
|
+
reti
|
12
|
+
SECTION "LCDC",HOME[$0048]
|
13
|
+
reti
|
14
|
+
SECTION "Timer_Overflow",HOME[$0050]
|
15
|
+
reti
|
16
|
+
SECTION "Serial",HOME[$0058]
|
17
|
+
reti
|
18
|
+
SECTION "p1thru4",HOME[$0060]
|
19
|
+
reti
|
20
|
+
|
21
|
+
; jump to start of user code at `begin`
|
22
|
+
|
23
|
+
SECTION "start",HOME[$0100]
|
24
|
+
nop
|
25
|
+
jp begin
|
26
|
+
|
27
|
+
; rom header - no memory bank controller, 32k rom, 0; ram
|
28
|
+
ROM_HEADER ROM_NOMBC, ROM_SIZE_32KBYTE, RAM_SIZE_0KBYTE
|
29
|
+
|
30
|
+
|
31
|
+
INCLUDE "lib/memory.inc"; memory copying macros
|
32
|
+
|
33
|
+
TileData:
|
34
|
+
chr_IBMPC1 1,8 ; LOAD ENTIRE CHARACTER SET
|
35
|
+
|
36
|
+
; initialization
|
37
|
+
begin:
|
38
|
+
nop
|
39
|
+
di
|
40
|
+
ld sp, $ffff ; set the stack pointer to highest mem location + 1
|
41
|
+
init:
|
42
|
+
ld a, %11100100 ; Window palette colors, from darkest to lightest
|
43
|
+
ld [rBGP], a ; CLEAR THE SCREEN
|
44
|
+
|
45
|
+
ld a,0 ; SET SCREEN TO TO UPPER RIGHT HAND CORNER
|
46
|
+
ld [rSCX], a
|
47
|
+
ld [rSCY], a
|
48
|
+
call StopLCD ; YOU CAN NOT LOAD $8000 WITH LCD ON
|
49
|
+
ld hl, TileData
|
50
|
+
ld de, _VRAM ; $8000
|
51
|
+
ld bc, 8*256 ; the ASCII character set: 256 characters, each with 8 bytes of display data
|
52
|
+
call mem_CopyMono ; load tile data
|
53
|
+
ld a, LCDCF_ON|LCDCF_BG8000|LCDCF_BG9800|LCDCF_BGON|LCDCF_OBJ16|LCDCF_OBJOFF
|
54
|
+
ld [rLCDC], a
|
55
|
+
ld a, 32 ; ASCII FOR BLANK SPACE
|
56
|
+
ld hl, _SCRN0
|
57
|
+
ld bc, SCRN_VX_B * SCRN_VY_B
|
58
|
+
call mem_SetVRAM
|
59
|
+
|
60
|
+
; main
|
61
|
+
ld hl,Title
|
62
|
+
ld de, _SCRN0+3+(SCRN_VY_B*7) ;
|
63
|
+
ld bc, TitleEnd-Title
|
64
|
+
call mem_CopyVRAM
|
65
|
+
|
66
|
+
wait:
|
67
|
+
halt
|
68
|
+
nop
|
69
|
+
jr wait
|
70
|
+
|
71
|
+
Title:
|
72
|
+
DB "tester + rubygb!"
|
73
|
+
TitleEnd:
|
74
|
+
|
75
|
+
StopLCD:
|
76
|
+
ld a,[rLCDC]
|
77
|
+
rlca
|
78
|
+
ret nc
|
79
|
+
|
80
|
+
.wait:
|
81
|
+
ld a,[rLY]
|
82
|
+
cp 145
|
83
|
+
jr nz,.wait
|
84
|
+
|
85
|
+
|
86
|
+
ld a,[rLCDC]
|
87
|
+
res 7,a
|
88
|
+
ld [rLCDC],a
|
89
|
+
|
90
|
+
ret
|
@@ -0,0 +1,34 @@
|
|
1
|
+
[Gearboy]
|
2
|
+
ForceDMG=false
|
3
|
+
FullScreen=false
|
4
|
+
ScreenSize=2
|
5
|
+
|
6
|
+
[Input]
|
7
|
+
KeyA=83
|
8
|
+
KeyB=65
|
9
|
+
KeyDOWN=16777237
|
10
|
+
KeyLEFT=16777234
|
11
|
+
KeyNameA=S
|
12
|
+
KeyNameB=A
|
13
|
+
KeyNameDOWN=DOWN
|
14
|
+
KeyNameLEFT=LEFT
|
15
|
+
KeyNameRIGHT=RIGHT
|
16
|
+
KeyNameSELECT=SPACE
|
17
|
+
KeyNameSTART=RETURN
|
18
|
+
KeyNameUP=UP
|
19
|
+
KeyRIGHT=16777236
|
20
|
+
KeySELECT=32
|
21
|
+
KeySTART=16777220
|
22
|
+
KeyUP=16777235
|
23
|
+
|
24
|
+
[Sound]
|
25
|
+
SampleRate=1
|
26
|
+
SoundEnabled=true
|
27
|
+
|
28
|
+
[Video]
|
29
|
+
BilinearFiltering=false
|
30
|
+
DMGColor1=12108390
|
31
|
+
DMGColor2=8096306
|
32
|
+
DMGColor3=4413725
|
33
|
+
DMGColor4=1256467
|
34
|
+
MixFrames=true
|