So... I have been working on porting Driller kNight to the pc. It is going pretty well so far. I even have a screen shot of it running. The graphics are not final. They will probably change a bunch.
I would be happy to help in any way I can! I have plenty of time (and multiple calcs) to test with and I am fluent enough with assembler to help with little routines if you need any.
Wow! Looks awesome! There doesnt seem to be much development on the 83+/84+, Escheron seems to have stopped and Reuben's been finished, so I really like seeing something show up. I've been watching this for a while, even downloaded the first demo! It looks like a lot has progressed since then! Is this programmed in axe or in asm?
It is mainly programmed in Axe. I had to make one of the libraries in asm though and I also needed inline hex to accomplish some features. Thanks for your support!
I added another enemy and building. There is now a menu that opens all the controls in the game for easy reference. All content is finished. I will just be optimizing and testing until release so I can be sure I am releasing a good game!
This looks amazing, i don't think we've ever had an RTS this far along in development. I'm really impressed by all you've done so far!
Thanks so much! It is great to have some support!
I have finished adding all new features. I left some openings for expansion that will allow me to make some"DLC". I will expand the godmode feature and make randomly generated levels an option. Hopefully the base game will be out soon!
I have two more levels to make. I also added a lot of little things to make it seem like a pc game such as a text box appearing on tiles to tell you what they are when you hold your cursor there for a while. I even added scroll bars for some menus! 4 levels of difficulty has been added - easy, normal, hard, and insane. It is almost hard to die on easy and there are some levels I can't beat on insane. I added 2 more units to bring the total count up to 23 and changed a lot of old ones. I also added another building. You now receive a score when you beat a level. I have further improved all of the ai's to make them seem a lot smarter. (No more fighters walking past their target because it moved) I will post some screenies when I work up the motivation to deal with wabbitemu. The whole game is more balanced now. A story has been added for the first time the game is launched. I may add researchable tech, but that will be an afterthought if it is added at all. The game is acting very stable so far. I haven't had it crash or corrupt memory in over a week of intense testing (I tried my hardest to break the game). Other options include a pacifist mode if you don't want the constant threat of monsters. Sorry for the somewhat random update list.
The axiom Fullrene should allow you to bypass the 8KB program code limit. There are mixed reports of its efficacy, though. Also, the program needs to be launched from a shell, as the OS simply refuses to launch programs this large.
Alternatively, compile your code as an application to get a bit under 16KB of room, although this may not be desirable for other reasons.
Interrupts being enabled or not should have no bearing on this.
Fullrene uses interrupts to disable the limit. If you read the source, you will see that it uses the I register for interrupts. I know that zStart has a hack to disable the limit, but I don't know if it simply removes the limit firm the OS itself. I don't know about crabcake. I couldn't find a download for it anywhere. Compiling as an app is not an option for me currently for various reasons.
But copy-pasting is so much work! I am continuing to work on Driller kNight after a short break. The game is not very stable currently. Here is a list of added features: Combat! Monsters now appear and will become more common and powerful the more resources you have. Many new units inducing ones dedicated to the new role of fighter/defender. 3 new buildings, two for monster defense and one for upgrading units. Units can be upgraded infinitely with each upgrade becoming more expensive. The power system has been reworked to make more sense. Reworked all AIs to make them a lot smarter. Expanded settings menu with options like difficulty, fast forward and pacifist mode. Units now cost ore in addition to crystals so there is no giant pile up of ore late game. Added godmode for debugging or boredom. Units now have shields that recharge so that workers no longer have the same health as the most powerful units. Added new unit class - epic. The progression now goes, Worker - Small units - Large units - Epic units. Lazer units like the drill walker now occasionally fire a very powerful lazer to defend themselves. Added control groups. You can assign a unit to a number and when you press that number, all units in that group are selected. Changed the cursor slightly to make it easier to use.
I don't know when it will be done. Probably not for a long time because summer is coming up and I won't have as much time to work on it.
It installs the hook successfully, but as soon as I press any key it makes a weird staircase pattern on the homescreen and freezes.
Edit: I fixed it! It turns out that the push af at the beginning that was paired with the pop af at the very end was the problem. After I removed that, it worked perfectly!
Edit2: here is the code. I can't get the cp statement to work
save=plotSScreen+200 set 7,(iy+28h) ld hl,($9B84) ld (save),hl ld lh,($9B84+2) ld (save+2),hl ld hl,hook ld de,save+4 push de ld bc,HookEnd-Hook ldir pop hl ld a,1 BCALL($4F66) ;sets the hook ret Hook: db $83 push af push af bcall putC pop af cp 10 jr nz,_+ pop af xor a ret _: ld hl,(save) ls a,(save+2) out (6),a pop af ld e,0 jp (hl)
save=plotSScreen+200 ;don't judge my save area - I will find a better one later ;It is safe as long as I don't pull up the graph since the homescreen does not affect it set 7,(iy+28h) ld hl,($9B84) ld (save),hl ld lh,($9B84+2) ld (save+2),hl ld hl,hook ld de,save+4 push de ld bc,HookEnd-Hook ldir pop hl ld a,1 BCALL($4F66) ;sets the hook ret Hook: db $83 push af push af ld hl,(save) ld a,(save+2) out (6),a pop af ld e,0 call CallHL ld a,32 ;I did some experimentation and that seems to be the default value out (6),a pop af ret CallHL: jp (hl) HookEnd: That is it. I'm sorry for the weird format. I copied it by hand from Mimas. All this code is for testing. I realize how poorly it is written.
As the title suggests, I am struggling with chaining hooks. So far, I have successfully created a Raw Key hook in ram. I have been poking around chaining and have had no luck yet. (only some interesting crashes) Here is What I understand I need to do: save the 3 bytes that hold the pointer and page of the hook that already exists, install the hook and quit. The hook runs my code then switches the page at $4000 (I assume the existing hook is an app) and calls the saved address. It then switches the page back to what it was originally and returns. Am I missing something here?
Here is the newest release of Driller kNight! I have added a huge amount of content since my last release. Eight new units and several new buildings have been added. Combat has been added to the game and giant monsters made of rock have come to destroy your base and slugs are sliding in to drain power from buildings! A story has been added to the beginning of each level and a conclusion at the end of each level. Each unit and building has a range of tasks and many have special abilities. The settings menu is well developed and allows frameskip for faster games, greyscale tuning, difficulty adjustment and more. The game takes about 10 hours to complete, but 100% completion takes more than 40 hours. It still will not run on an 83+ however. There are 2 addons, Godmode and RandomLevels which I will release on August 19 and September 2. These add on to the original game and allow for many fun new games but aren't required to play.
Spoiler For Old Version:
After several months of long programming sessions I have finished Driller kNight, a full length overhead mining strategy game. It has 20 levels. Unlike most games, the levels can be chosen. You can choose between 1-3 levels to beat in order to progress deeper. The only exception is that the first 11 must all be beaten to unlock the last 9. There are 15 units and 6 buildings. It will not run on an 83+ due to lack of memory.
It may not be an on the edge of your seat excitement, but it is a fun way to pass some time. I believe that the screenshots speak for themselves, so... here is the download.
Spoiler For more detailed overview:
Driller kNight - Release
The controls are pretty simple. 2nd is always the select key. Press and hold it to create the drag box. Alpha selects or unselects a tile. Stat opens the menu for a unit. Pressing left or right changes the current job. (if it is a job the unit cannot have, it will change to one it can have once the menu is closed) Some units can only have one job, while others can change it. XTOn places a road on the selected tile. Delete kills the unit or building selected giving a refund if needed (select buildings by selecting their tile) The building menu only opens if you have selected a tile. Clear is always quit. Be careful not to press it too long since it will quit the level. Press mode to end the level when you have completed the goal. Pressing ON+stat pauses the game and turns the screen off. Pressing ON will resume. (If you don't press it, you can keep playing after the goal has been completed) Once the first 11 levels have been completed, the last 9 will unlock.
Tech tree: Storage: recruits workers and is where resources are deposited Small teleport: recruits everything below Loader dozer Power plant: powers nearby roads Support station: adds 10 air a tick (almost every unit uses 1 per tick) assuming it is next to a powered road Large teleport: recruits every unit from Loader dozer up Refinement station: Generates ore and crystals Buildings that need to be powered must have a powered road next to their main tile (the one you selected when you built them if they have multiple)
Units: Each unit can hold one of three jobs - Driller, clearer, or collector. Drillers mine the wall they are currently on and move to a nearby one if there is one. Walls will collapse (basically mined for free) if they are not next to two other walls. Clearers act just like drillers but they target the rubble left behind after the wall is drilled. Collectors collect the ore and crystals that are left behind by the clearers and drillers. They target crystals before ore and bring them to the nearest storage. It is your job to figure out what all the units do. Be warned that the infinity ship is huge drain on resources.