Commit Graph

277 Commits

Author SHA1 Message Date
Brendan Robert
542d0b2589 Clarifications in the comments 2014-07-20 11:23:32 -05:00
Martin Haye
c4e5e84461 Scripted transitions between maps work now. 2014-07-20 07:01:21 -07:00
Martin Haye
1e04d813a8 Merge branch 'master' of https://github.com/badvision/lawless-legends 2014-07-20 06:02:15 -07:00
Martin Haye
97b942036f Added blocks for setting sky and ground colors, and teleporting the player. Added support for init scripts using Blockly. 2014-07-20 06:02:10 -07:00
Brendan Robert
1a2f49a117 Indicate which section is drawn with draw_section pointer now 2014-07-20 01:56:59 -05:00
Brendan Robert
04fff67eea Updated thoughts on what the upper 3 bits should be for (visible obstructions indicated in high-bit)
Updated main geometry calculation macro for the drawing routine (should be mostly ok now)
Allocated variables for main loop drawing routine
Conjured up use of memory holes for tracking drawing (clever?) with address calculation notes
2014-07-20 01:52:57 -05:00
Martin Haye
ebe228d15f Now processing IF statements with GETYN triggers, and SETMAP events. 2014-07-19 15:55:27 -07:00
Martin Haye
69026ed705 Now scripts have a flag of their own on the map, for speedy detection. 2014-07-19 14:22:31 -07:00
Martin Haye
f4342b12c1 Now scripts have a flag of their own on the map, for speedy detection. 2014-07-19 14:17:40 -07:00
Martin Haye
d6815eab05 Fixes for lots of scripts, and for empty script blocks. 2014-07-19 13:54:41 -07:00
Martin Haye
6084d6764e Added loading code, and fixed a typo in CROSS_SOUTH. 2014-07-17 09:34:34 -07:00
Brendan Robert
7901dba5f3 Removed extra lazy fetch stuff because it would complicate things down the line a lot (it can be added back to reduce/defer loads later if desired.) Started on the drawing routine, just trying to sort out all the geometry to feed in to the main loop. 2014-07-17 00:34:05 -05:00
Brendan Robert
50b64ab2a5 Removed extra, unnecessary label 2014-07-15 23:21:50 -05:00
Brendan Robert
2fe992370d Changed move_zp_word to move_word and got rid of indirect/jsr stuff (it saved a byte per call but was much slower, not worth it.) 2014-07-15 23:17:23 -05:00
Brendan Robert
68d9767947 Started on 2D tile routines, starting with the loading and boundary crossing logic 2014-07-15 23:11:28 -05:00
Martin Haye
278d769ade Now packing tilesets, but not yet segmenting 2D maps. 2014-07-15 13:09:36 -07:00
Martin Haye
3bbcc7ed92 Rearranged things a bit in preparation for segmented 2D map packing. 2014-07-15 09:52:58 -07:00
Martin Haye
df246c40c6 Merge branch 'master' of https://github.com/badvision/lawless-legends 2014-07-08 19:11:11 -07:00
Martin Haye
e56ad5e7da Really running scripts on the map now. 2014-07-08 19:11:03 -07:00
David Schmenk
695fef7a15 Merge branch 'master' of https://github.com/badvision/lawless-legends 2014-07-08 17:55:56 -07:00
David Schmenk
63da278ce3 Turn off DblHRes 2014-07-08 17:55:22 -07:00
Martin Haye
d06884c0e9 Kinda loading scripts module, but it appears to be trashing memory. 2014-07-08 16:02:10 -07:00
Martin Haye
8a8204ec77 Now packing very simple game scripts. 2014-07-08 15:43:12 -07:00
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