Commit Graph

254 Commits

Author SHA1 Message Date
Martin Haye
a330b395fe Working on text functions and scripting in Outlaw. 2014-07-08 09:39:31 -07:00
Martin Haye
7961be3272 Merge branch 'master' of https://github.com/badvision/lawless-legends 2014-07-08 09:34:07 -07:00
Martin Haye
15c118fe62 Hi-bit/lo-bit fix. 2014-07-08 09:34:02 -07:00
David Schmenk
3ebf9f11dd Use new when/is/otherwise with break 2014-07-07 22:18:42 -07:00
Martin Haye
3af48520a1 Implemented blocker sprites the right way. 2014-07-06 18:22:31 -07:00
Martin Haye
02cccb1270 Working on blocker sprites. 2014-07-06 17:25:48 -07:00
Martin Haye
af0c26944f Can now cycle through sky and ground colors. 2014-07-06 17:04:26 -07:00
Martin Haye
655fe7946f Lots of fixes. 2014-07-06 16:45:27 -07:00
Martin Haye
89d8721afd Added strafing. 2014-07-06 16:13:44 -07:00
Martin Haye
6ca538f33f Can now navigate using the plasma main loop. 2014-07-06 16:09:10 -07:00
Martin Haye
ca45c71605 Can now navigate using the plasma main loop. 2014-07-06 16:02:52 -07:00
Martin Haye
a399d81478 Converting main loop to PLASMA. 2014-07-06 14:40:35 -07:00
Martin Haye
0950b9357e Moved PLASMA compiler to be alongside other Apple platform tools. 2014-07-06 10:21:03 -07:00
Martin Haye
b28b7200fb More work on game loop. 2014-07-06 07:40:57 -07:00
Martin Haye
f43c51dd74 Really loading and running PLASMA code now. 2014-07-03 16:56:26 -07:00
Martin Haye
0f3c02f662 Fixed coalescing. 2014-07-03 15:17:50 -07:00
Martin Haye
269770da90 Debugging PLASMA loader. 2014-07-03 10:51:24 -07:00
Martin Haye
64c3c8298f More work on PLASMA loading. 2014-07-03 08:53:50 -07:00
Martin Haye
1dc4756d0c Added more looading for PLASMA modules. 2014-07-02 15:50:04 -07:00
Martin Haye
d4b90e32f8 Working on module loading in mem manager. 2014-06-29 14:32:51 -07:00
Martin Haye
68c70a3ec6 Working on parsing and compressing PLASMA modules. 2014-06-29 11:40:51 -07:00
Martin Haye
786853a4a7 Now runs PLASMA code\! 2014-06-25 08:47:28 -07:00
Martin Haye
10f9d8640b Getting Plasma running in the game. 2014-06-25 06:37:10 -07:00
Martin Haye
7c00d7272a More bit hacking, added collision detection, playing with blocker sprites. 2014-06-16 09:03:24 -07:00
Martin Haye
d9a203c522 Sprite fixes, and workaround for Outlaw NPE. 2014-06-13 13:10:38 -07:00
Martin Haye
a6db0f3d41 Merge branch 'master' of https://github.com/badvision/lawless-legends 2014-06-10 08:25:24 -07:00
Brendan Robert
04b9a40a7b Offically requiring Java 8 now. (sorry!) 2014-06-07 13:27:00 -05:00
Martin Haye
fa1bb0bd3c Hacked high-bits on tree sprite graphic. 2014-06-02 10:28:50 -07:00
Martin Haye
c9d84d11b5 Fixed raycaster going past the edge of the map. 2014-06-01 07:22:07 -07:00
Martin Haye
5bd7a7c1ed Fixed another sprite bug. 2014-06-01 07:10:12 -07:00
Martin Haye
c5182fb624 Fixed one sprite bug. 2014-06-01 07:04:37 -07:00
Martin Haye
bbac1ea183 Fix edge detection in II raycaster. 2014-05-30 09:10:20 -07:00
Martin Haye
c8d8c22478 Use real map data in Javascript raycaster, so I can more closely simulate the Apple II and thus debug problems more easily. 2014-05-30 08:33:11 -07:00
Martin Haye
25335cca9a Sprite debugging. 2014-05-29 07:20:34 -07:00
Martin Haye
2395e8e610 Wow, first sprite is like totally working. 2014-05-22 09:16:18 -07:00
Martin Haye
9902773b35 First sprite that actually appears where it's supposed to be. Sometimes at lest. 2014-05-22 08:15:20 -07:00
Martin Haye
3c1aa135f2 Math for first sprite finally generating all the right numbers. 2014-05-22 07:50:26 -07:00
Martin Haye
933fd769e7 Actually started debugging the sprite math. 2014-05-15 10:25:39 -07:00
Martin Haye
8c8ac40e32 Sprite math essentially complete, and actually assembles now. 2014-05-15 09:06:13 -07:00
Martin Haye
03a07270d9 Needed to calculate clipping and texture bump, for Apple II version. The javascript version didn't need these coordinates, because it renders differently, but it's still productive to do the math first in Javascript. 2014-05-08 18:51:10 -07:00
Martin Haye
0f3e840ec3 Fix tabs. 2014-05-08 11:43:46 -07:00
Martin Haye
9f7d551fd0 More work on sprite math in 6502. 2014-05-08 10:41:15 -07:00
Martin Haye
53318fc2cd Math fixes, and started on 6502 sprite math code. 2014-05-06 07:08:02 -07:00
Martin Haye
b060d37bb1 Hacked together first sprite compositing. 2014-05-01 10:15:02 -07:00
Martin Haye
7bf43d38a1 Making progress on compositing multiple shapes in the same column. 2014-04-23 09:37:39 -07:00
Martin Haye
a82379bbe5 Compression has been working great, so turned off debug checksums. 2014-04-20 09:20:35 -07:00
Martin Haye
91586d8b3c Added sprites to map data, and to ray casting loop. 2014-04-20 09:16:40 -07:00
Martin Haye
ec49808879 Laxen rules on name matching. 2014-04-12 18:01:46 -07:00
Martin Haye
802a02a5c7 Added a startup program to the base image so you don't have to remember what to type. 2014-03-19 07:59:42 -07:00
Martin Haye
f6a6e844bb Compression now fully working. Also, changed core to be a .system file, so we don't need BASIC.SYSTEM any more. 2014-03-18 13:29:02 -07:00
Martin Haye
b8d146ca73 More bug fixes -- raycaster now working except for some weird textures. 2014-03-18 07:30:10 -07:00
Martin Haye
654db6fd80 Decompression mostly working now. 2014-03-17 18:35:26 -07:00
Martin Haye
5b4046ca16 Fixing more bugs. 2014-03-17 12:01:13 -07:00
Martin Haye
14c006b521 Fixing lots of decompression bugs. 2014-03-17 11:35:05 -07:00
Martin Haye
e741c5d57e Fixing lots of decompression bugs. 2014-03-17 11:30:15 -07:00
Martin Haye
539c878c5f Fixing decompressor bugs. 2014-03-17 07:49:40 -07:00
Martin Haye
95fbd98acb Debugging decompression. 2014-03-13 10:22:49 -07:00
Martin Haye
37f4863e30 All compression code written and integrated; now to test. 2014-03-13 09:56:29 -07:00
Martin Haye
85f434aadf More work on compression. 2014-03-06 09:45:11 -08:00
Martin Haye
983f61b5c0 Making progress on LZ4 compression. 2014-03-06 07:25:04 -08:00
Martin Haye
625f2a44ea Added LZ5 compression to the packer. 2014-02-25 10:07:40 -08:00
Martin Haye
46ce69f333 Added lots of sample text, and also support for low-bit sky and ground colors. 2014-02-24 07:26:11 -08:00
Martin Haye
af2a552fa0 Added code to clear the current window. 2014-02-24 07:25:52 -08:00
Martin Haye
389b67cffa Added routines to calculate the amount of free memory. 2014-02-24 07:24:57 -08:00
Martin Haye
99827b9785 Now displays map name centered at top of window. 2014-02-20 09:13:30 -08:00
Martin Haye
ce5a45c920 Reorganized data dir and put in readmes to tell what goes where. 2014-02-20 07:55:07 -08:00
Martin Haye
14296ca13a Font engine integrated with raycaster. 2014-02-20 07:45:48 -08:00
Martin Haye
d1e654d3f1 Converting text code to ACME. 2014-02-12 09:28:55 -08:00
Martin Haye
9d90c5ed90 Antoine's original text engine code. 2014-02-10 10:18:41 -08:00
Martin Haye
8492905ad4 Updated sample build props. 2014-02-09 15:01:16 -08:00
Martin Haye
3eb021aad8 Switched over to ACME for raycaster. Also made output of packer more brief. 2014-02-09 14:59:43 -08:00
Martin Haye
74ffc67278 More work on 8-space tabs. 2014-02-09 12:09:25 -08:00
Martin Haye
0e64901af5 Using hi-bit ascii conversion table, and switched to 8-space tabs. 2014-02-09 12:03:48 -08:00
Martin Haye
3bc19d002a Migrated memory manager to ACME assembler format. 2014-02-09 08:59:13 -08:00
Martin Haye
b809ca801b Started porting to ACME assembler. 2014-02-07 10:11:59 -08:00
Martin Haye
e506a361bf Mem manager fixes, and added ground/sky/map changing to ray caster. 2014-01-30 09:27:39 -08:00
Martin Haye
83f0e24afa No longer need to include raycaster binaries as separate files, since they're in the partition file now. 2014-01-26 16:53:19 -08:00
Martin Haye
ca3181cb8e Put mem manager in non-debug mode by default. 2014-01-26 16:48:55 -08:00
Martin Haye
0d8584743e Finally got everything loading and displaying in the raycaster. 2014-01-26 16:32:03 -08:00
Martin Haye
c63eed8ee7 Making progress with packing all maps, not just one, and loading back one map and only its textures. 2014-01-26 08:26:51 -08:00
Martin Haye
21088c8f90 Texture header for maps. 2014-01-24 10:51:11 -08:00
Martin Haye
f503794c1e Header-ized mem manager, and cleaned up globals. 2014-01-20 12:14:02 -08:00
Martin Haye
e05d1c247f Tested MEM_RESET. 2014-01-17 09:43:51 -08:00
Martin Haye
4b951b53bc Testing load to aux mem. 2014-01-16 10:08:13 -08:00
Martin Haye
d78c7ed652 First disk load worked\! 2014-01-16 09:19:40 -08:00
Martin Haye
c31a65b746 Better documentation on the segment table. 2014-01-16 08:32:04 -08:00
Martin Haye
371ac1cdea Debugging memory manager. 2014-01-16 08:23:28 -08:00
Martin Haye
5a8b451703 Revised mem manager and partition packing code to do arbitrary sizes rather than whole pages. 2014-01-15 08:58:20 -08:00
Martin Haye
b2f49bad25 Working on actual disk loading. 2014-01-12 09:53:45 -08:00
Martin Haye
ec28cb6460 Now packing code segments as well. 2014-01-05 17:34:57 -08:00
Martin Haye
5af871d65b Working on packing partition files. 2014-01-05 17:16:30 -08:00
Martin Haye
48d222f017 Working on packing partition files. 2014-01-05 16:32:44 -08:00
Martin Haye
0dca7d1f26 Repaired renderer so it works again. 2014-01-03 17:05:54 -08:00
Martin Haye
5c428557eb Fixed so aux and main mem don't share a single scanPage variable. 2014-01-03 16:37:58 -08:00
Martin Haye
1315c387c4 Centralized debug code, fixed stack print and FATAL_ERROR code in mem mgr. 2014-01-02 15:27:31 -08:00
Martin Haye
48777e7af8 Added code to support queued loading into aux mem. 2014-01-01 12:31:09 -08:00
Martin Haye
2f8a504540 First draft of memory manager done. 2013-12-30 16:17:37 -08:00
Martin Haye
afaca91d28 Centralized some zero-page, I/O, and ROM defines. More memory manager code written. 2013-12-30 11:00:39 -08:00
Martin Haye
7bc7c94f8b Reworking the memory manager API, started coding. 2013-12-28 09:10:21 -08:00
Martin Haye
69116f7bad Working on sprite-ization 2013-12-26 09:31:40 -08:00
Martin Haye
65e7f9c5b0 Working on sprite calculations. 2013-11-21 07:39:07 -08:00
Martin Haye
52c5a40250 Added A/W/S/D keystroke equivalents for movement. 2013-11-10 16:41:38 -08:00
Martin Haye
ea7140524b Now with transparency flood-fill, and the dithered sky that makes possible. 2013-11-10 13:07:59 -08:00
Martin Haye
e48146085e Finished switching to pure 6502. 2013-11-10 11:43:39 -08:00
Martin Haye
fddd8a503f Adding transparency and switching to plain 6502. 2013-11-10 11:19:29 -08:00
Martin Haye
858973dc68 Transfer sprite-related constants and tables to 6502 code. 2013-11-10 09:13:33 -08:00
Martin Haye
229951d2e0 Math is now about as good as it's going to get. Less need for tables, and only need a byte for storing the z index. 2013-11-08 08:41:23 -08:00
Martin Haye
aa10516977 Trying to make math more accurate. 2013-11-04 08:14:29 -08:00
Martin Haye
d2e07e55e4 Took out visibleSprites stuff which wouldn't work well on the II. 2013-11-03 11:58:38 -08:00
Martin Haye
41db1087ee Do sprite math strictly in Apple II coordinates. 2013-11-03 09:47:44 -08:00
Martin Haye
40b66f083b No longer relying strictly on raycaster to determine visibility. 2013-11-03 09:29:33 -08:00
Martin Haye
77283e56b2 Separated floating point from integer versions of the sprite rendering routine. 2013-11-03 08:51:09 -08:00
Martin Haye
fe747eedfe Finished first pass of 100% integer math for sprites. 2013-10-20 10:27:38 -07:00
Martin Haye
20dd825927 Working on integer sprite math. 2013-10-19 13:12:12 -07:00
Martin Haye
6aedf0b72d More sprite math simplification. 2013-10-19 12:14:19 -07:00
Martin Haye
724e6dc39e Reworked sprite math to be simple. 2013-10-19 11:46:30 -07:00
Martin Haye
e17a94bffc Ported Javascript sprite code from http://dev.opera.com/articles/view/3d-games-with-canvas-and-raycasting-part-2/ 2013-10-13 14:54:38 -07:00
Brendan Robert
01a0f9d460 Stubbing out memory managment ideas -- I think I caputred how we can have delegated chain loaders that can be used to represent the game as a full expanse of 800kb -- even able to go as high as 896kb without any redesign work. The actual coding for each driver, as well as hardware detection logic, needs to happen. Hopefully this helps shape those drivers so that they can work seamlessly in tandem to provide a very fluid game experience. 2013-10-09 22:19:40 -05:00
Martin Haye
068db7c177 Modernized code refs for part 2. 2013-10-05 11:54:49 -07:00
Martin Haye
a512a48ff3 Finished fleshing out text for part 1. 2013-10-05 11:52:30 -07:00
Martin Haye
034453c370 Text done for part 4 of Big Blue. 2013-10-05 10:41:26 -07:00
Martin Haye
a37f4718f9 Text mostly done for Big Blue part 3. 2013-10-03 09:43:57 -07:00
Martin Haye
c57d935830 Moving the BigBlue marks to be clearer. 2013-09-29 12:17:28 -07:00
Martin Haye
fc0ccb441a Adding references to Big Blue's story, so they can be reliably searched and thus linked to. 2013-09-29 11:46:49 -07:00
Brendan Robert
cb6637083b Clear mixed hires mode on start -- now we can enjoy the full screen. :-) 2013-09-25 23:58:13 -05:00
Brendan Robert
237dce5ea0 Fixed ld65 arguments to work with newer versions that expect parameters in a more specific order 2013-09-25 23:46:47 -05:00
Martin Haye
2bc4e4c845 Different link flag order for picky version of ld65. 2013-09-25 20:05:36 -07:00
Martin Haye
e249cc81de Updated readme for PackMap. 2013-09-13 08:46:47 -07:00
Martin Haye
7445ee219d Added new tool: PackMap, to convert an Outlaw XML file to an Apple II packed map file. 2013-09-13 08:40:53 -07:00
Martin Haye
5bd05308af High/lo fixes, and dithered ground. 2013-09-09 13:04:31 -07:00
Martin Haye
99333da6aa Several bug fixes for the ray caster. 2013-09-08 08:10:32 -07:00
Martin Haye
af12b3862e Now handles variable sized maps, and many textures. 2013-09-06 14:52:52 -07:00
Martin Haye
2c3931c826 Refactored rendering / expander code to free up a bunch of aux mem. 2013-09-04 08:30:18 -07:00
Martin Haye
0f9ab95bea Added support for variable high bit in graphics. 2013-09-04 07:47:23 -07:00
Martin Haye
0df74eef43 Made room for up to 10 textures. 2013-09-01 12:44:03 -07:00
Martin Haye
3b55e1a336 Fixed several bugs in the ray caster. 2013-09-01 10:37:33 -07:00
Martin Haye
25432cb16a Added keys to rotate and move so you can wanter around BugTown. Crazy. 2013-08-30 13:22:56 -07:00
Martin Haye
98ec58291c Turned on double buffering, and enabled multiple steps. At least we can see the speed now. 2013-08-30 08:18:14 -07:00
Martin Haye
133c493c1c Fixed clear, now does proper sky and ground. 2013-08-29 18:25:24 -07:00
Martin Haye
357f49cb6e Hooked up drawing code to ray casting. Not beautiful yet, but recognizably 3D. 2013-08-29 09:52:43 -07:00
Martin Haye
cfe7edcf47 First ray successfully cast on Apple II. 2013-08-26 08:09:55 -07:00
Martin Haye
906018b6cc Tested and fixed the DDA algorithm, cool\! 2013-08-25 18:31:01 -07:00
Martin Haye
3703a45095 Tested and fixed log2_w_w and pow2_w_w 2013-08-25 16:35:47 -07:00
Martin Haye
c32b631f28 Tested and fixed umul_bb_b 2013-08-25 15:58:09 -07:00
Martin Haye
a63da49c97 Added linker config to get rid of ld65 warning message. 2013-08-25 14:51:30 -07:00
Martin Haye
3b28ac9209 6502 code all written and assmebling. Debug ho. 2013-08-25 14:50:48 -07:00
Martin Haye
4d44ad8723 Coding real raycasting on 6502. 2013-08-25 11:29:08 -07:00
Martin Haye
df312acf32 Switched 6502 code to mixed case, rather than all-upper. 2013-08-23 08:58:21 -07:00
Martin Haye
73b51d1b26 Fixes to the Apple II build system; step mode and proper ProDOS quit in render demo. 2013-08-21 10:07:13 -07:00
Martin Haye
69a61f9676 Added README. 2013-08-12 07:14:08 -07:00