Forest Belton
78550c91cf
Begin tile data layout work
3 years ago
Forest Belton
8822967fdf
Transition from title to game
3 years ago
Forest Belton
71906064da
Begin work on title screen
3 years ago
Forest Belton
fee20378ee
Fix jumping and collisions on map boundary
3 years ago
Forest Belton
6abb46a69c
Add attribute field for items
3 years ago
Forest Belton
424b80e28c
Cap velocity at 7px/frame
3 years ago
Forest Belton
05293d7392
Declare items with macros
3 years ago
Forest Belton
21bf2b29c5
Add player inventory and item add routine
3 years ago
Forest Belton
a9f73eb8f8
Generalize player state
3 years ago
Forest Belton
5a161acb60
Re-enable player code
3 years ago
Forest Belton
e9b3a49054
Spawn player at map spawn
3 years ago
Forest Belton
e2564ecedc
Update collision for new map engine
3 years ago
Forest Belton
de55992b18
Finish simplifying map API
3 years ago
Forest Belton
9a8394122f
Begin simplifying map API
3 years ago
Forest Belton
fd5911f42e
Complete map scrolling algorithm
3 years ago
Forest Belton
cb700c6b5d
Simplify map scrolling and break it further
3 years ago
Forest Belton
40479b0795
Generalize Y coordinate computation for wrapping
3 years ago
Forest Belton
9a45e20e8a
Remove unused LAST_SC* variables
3 years ago
Forest Belton
35dd130e5a
Fix map row computation when viewport wraps
3 years ago
Forest Belton
a3b48045c1
Begin trying to fix map
3 years ago
Forest Belton
cc7be333a7
Update TODO list with more clarity
3 years ago
Forest Belton
7f2f61f062
Optimize scroll-up/down routines
In order to calculate the VRAM destination for these routines, we
need to compute the row pointer into map RAM:
```
HL = _SCRN0 + 32 * (SCY/8 - 2)
```
The obvious approach of shifting `SCY/8 - 2` right 5 times won't work
since overflow is possible. The first implementation worked by adding
`SCY/8-2` to `_SCRN0` 32 times in a loop.
Now, `SCY/8 - 2` is loaded into a 16-bit register and a 16-bit shift
macro is expanded 5 times before being added to HL.
The first approach took 802 * 4 cycles. This has been reduced to 25 * 4
cycles.
3 years ago
Forest Belton
b7a69f2fb0
Implement scrolling left
3 years ago
Forest Belton
12604b6d65
Implement scrolling right
3 years ago
Forest Belton
7efc3881cf
Write pending column data
3 years ago
Forest Belton
9ca2b10062
Update camera when left/right pressed
3 years ago
Forest Belton
162c8cd88b
Small cleanup
3 years ago
Forest Belton
cf038bd0dd
Deduplicate code to write map rows
3 years ago
Forest Belton
fb6721f9cf
Finish implementing vertical scrolling
3 years ago
Forest Belton
f497fecbc9
Begin adding scroll-down support
3 years ago
Forest Belton
1c8f23b82f
Add old map copying routine back for map initialization
3 years ago
Forest Belton
77468702bc
Enqueue map row updates instead of writing immediately
3 years ago
Forest Belton
26abbfc32d
Fix vertical scrolling controls
3 years ago
Forest Belton
adc9cfa632
Almost have scrolling up working
3 years ago
Forest Belton
0e5cd549d3
Stub out scrolling implementation
3 years ago
Forest Belton
44b9b0fe99
Update VRAM pointer when copying row of zeros to map
3 years ago
Forest Belton
bcb1609897
Add support for loading 127x127 maps
3 years ago
Forest Belton
fb3dde07bc
Add comments to DMA transfer subroutine
3 years ago
Forest Belton
53ff411302
Annotate memcpy with performance information
3 years ago
Forest Belton
06ae65e643
Optimize collision routines
3 years ago
Forest Belton
f1ba4dadeb
Skip player update if the background is scrolling
3 years ago
Forest Belton
82252372d2
Increase intro map to maximum size
3 years ago
Forest Belton
5947c771ac
Apply gravity if player walks off of platform
3 years ago
Forest Belton
439c00fd46
Fix encoding of physics constants
3 years ago
Forest Belton
e2ad9075e0
Use fixed-point number to store Y coordinate
3 years ago
Forest Belton
ee9923aa73
Fix resolution of vertical collisions
3 years ago
Forest Belton
f8f5860b35
Simplify player initialization
3 years ago
Forest Belton
ee956b4ca7
Implement jump
3 years ago
Forest Belton
8c157a121c
Remove unused code
3 years ago
Forest Belton
3b7ea84c9e
Increase walking speed
3 years ago