1. Let's Make: Dangerous Dave

Somebody port this to Euphoria!

https://www.maizure.org/projects/lets-make-dangerous-dave/index.html

-Greg

new topic     » topic index » view message » categorize

2. Re: Let's Make: Dangerous Dave

Won't that be a bit difficult without access to the original binary?

new topic     » goto parent     » topic index » view message » categorize

3. Re: Let's Make: Dangerous Dave

petelomax said...

Won't that be a bit difficult without access to the original binary?

It would be possible to make it with original graphics similar to Dangerous Dave. There are also lots of sites like Spriters Resource that can also be used. Or DosBox and emulation. This does interest me, though I don't have any nostalgia for Dangerous Dave. Though looking at the C code, it looks like it would be fairly easy to port to Euphoria using EuSDL or Euraylib. Probably EuSDL though, since the open source example uses SDL. Though any graphics library could possibly work.

new topic     » goto parent     » topic index » view message » categorize

4. Re: Let's Make: Dangerous Dave

petelomax said...

Won't that be a bit difficult without access to the original binary?

You can buy the complete Dangerous Dave Pack from GOG.com. The version used in the article is named Dangerous Dave in the Deserted Pirate's Hideout in that pack.

There's also a freeware version available here: Dangerous Dave. Looks like that was the original version released as part of Gamer's Edge in 1990.

-Greg

new topic     » goto parent     » topic index » view message » categorize

5. Re: Let's Make: Dangerous Dave

Well I attempted a rough skeleton. Might need to refresh my more advanced Euphoria skills a bit. Writing wrappers was a relatively easy affair. Hopefully this serves as a start, regardless.

--Attempt at converting level.c to Euphoria code 
 
include std/get.e 
include std/filesys.e 
include std/io.e 
include std/machine.e 
 
public constant PATH = 256, 
				TILES = 1000, 
				PADDING = 24 
				 
public constant LEVEL_ADDRESS = 159242 --0x26e0a in decimal format 
 
atom dave_level = allocate(10) 
 
atom file 
file = open("DAVE.exe","rb") 
 
while file = 1 do 
	seek(file,LEVEL_ADDRESS) 
end while 
 
atom file_out 
 
atom  file_num = 4,fname = 12 
 
--got stuck here 
for j = 0 to 10 do 
	fname = 0 
	printf(1,"%u",file_num[j]) 
end for 
--Basiclly the .h file converted to Euphoria code in skeleton format 
 
enum type MONSTER_STATE 
	TYPE, 
	PATH_INDEX, 
	DEAD_TIMER, 
	MONSTER_X, 
	MONSTER_Y, 
	MONSTER_PX, 
	MONSTER_PY, 
	NEXT_PX, 
	NEXT_PY 
end type 
 
enum type GAME_STATE 
 
	QUIT, 
	TICK, 
	DAVE_TICK, 
	CURRENT_LEVEL, 
	LIVES, 
	SCORE, 
	VIEW_X, 
	VIEW_Y, 
	DAVE_X, 
	DAVE_Y, 
	DAVE_DEAD_TIMER, 
	DBULLET_PX, 
	DBULLET_PY, 
	DBULLET_DIR, 
	EBULLET_PX, 
	EBULLET_PY, 
	EBULLET_DIR, 
	DAVE_PX, 
	DAVE_PY, 
	ON_GROUND, 
	SCROLL_X, 
	LAST_DIR, 
	 
	DAVE_RIGHT, 
	DAVE_LEFT, 
	DAVE_JUMP, 
	DAVE_FIRE, 
	DAVE_DOWN, 
	DAVE_CLIMB, 
	DAVE_JETPACK, 
	JETPKAC_DELAY, 
	JUMP_TIMER, 
	TRY_RIGHT, 
	TRY_LEFT, 
	TRY_JUMP, 
	TRY_FIRE, 
	TRY_JETPACK, 
	TRY_DOWN, 
	TRY_UP, 
	CHECK_PICKUP_X, 
	CHECK_PICKUP_Y, 
	CHECK_DOOR, 
	CAN_CLIMB, 
	COLLISION_POINT, 
	TROPHY, 
	GUN, 
	JETPACK 
	 
end type 
 
public procedure Init_Game() 
	 
end procedure 
 
public procedure Init_Assets() 
	 
end procedure 
 
public procedure Check_Input() 
	 
end procedure 
 
public procedure Update_Game() 
	 
end procedure 
 
public procedure Render() 
	 
end procedure 
 
public procedure Check_Collision() 
	 
end procedure 
 
public procedure Clear_Input() 
	 
end procedure 
 
public procedure Pickup_Item() 
	 
end procedure 
 
public procedure Start_Level() 
	 
end procedure 
 
public procedure Update_dbullet() 
	 
end procedure 
 
public procedure Update_ebullet() 
	 
end procedure 
 
public procedure Verify_Input() 
	 
end procedure 
 
public procedure Move_Dave() 
	 
end procedure 
 
public procedure Move_Monsters() 
	 
end procedure 
 
public procedure Fire_Monsters() 
	 
end procedure 
 
public procedure Scroll_Screen() 
	 
end procedure 
 
public procedure Apply_Gravity() 
	 
end procedure 
 
public procedure Update_Level() 
	 
end procedure 
 
public procedure Restart_Level() 
	 
end procedure 
 
public procedure Update_Frame() 
	 
end procedure 
 
public procedure Draw_World() 
	 
end procedure 
 
public procedure Draw_Dave() 
	 
end procedure 
 
public procedure Draw_Dave_Bullet() 
	 
end procedure 
 
public procedure Draw_Monster_Bullet() 
	 
end procedure 
 
public procedure Draw_Monsters() 
	 
end procedure 
 
public procedure Draw_UI() 
	 
end procedure 
 
public procedure Is_Clear() 
	 
end procedure 
 
public procedure Is_Visible() 
	 
end procedure 
 
public procedure Add_Score() 
	 
end procedure 
new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu