Jump to content
IGNORED

Hively Player V2


Recommended Posts

Just found another bug thanks to @laoo's simulator: r14+4 in rmacs is offset 16 in Lyxass is index 1.

 

Unless from this, it is pretty stable. Need to run a bunch of HVLs to check.

I left most of the large symbols though Lyxass won't compile it (32char limit ATM).

Link to comment
Share on other sites

1 hour ago, ggn said:

Is this a code generation bug?

No, bug in RMAC. Only that RMAC uses the direct value (1..32) and lyxass the offset (4..128). So for small numbers the mnemonic is valid for either Assembler but of course the resulting opcode is different.

 

  • Like 1
Link to comment
Share on other sites

4 hours ago, 42bs said:

No, bug in RMAC. Only that RMAC uses the direct value (1..32) and lyxass the offset (4..128). So for small numbers the mnemonic is valid for either Assembler but of course the resulting opcode is different.

 

 

Please dont change the default, it will break a LOT of code.  RMAC handles this exactly like MAC currently.

Link to comment
Share on other sites

I'm interested in this player.

I compiled hvl2stream in visual studio.  I had to hack together a unistd.h but it seems to convert hvl and ahx to streambits successfully.

 

A usage demo of the player would be nice since I didn't manage to get anything to play.

I set the parameter field as indicated in the source code : pointer to stream, pointer to AHX_FilterPrecalc.bin, pointer to AHX_panning.bin, master volume set to 255. I set REGPAGE in D_FLAGS before starting the DSP.

Link to comment
Share on other sites

4 hours ago, CyranoJ said:

 

Please dont change the default, it will break a LOT of code.  RMAC handles this exactly like MAC currently.

No, of course not. I was thinking if there is a way to "detect" mis-use. For lyxass it is easier, an odd index is an indicator. RMAC only if the index is greater than 32.

Link to comment
Share on other sites

Posted (edited)
3 hours ago, DrTypo said:

I'm interested in this player.

I compiled hvl2stream in visual studio.  I had to hack together a unistd.h but it seems to convert hvl and ahx to streambits successfully.

 

A usage demo of the player would be nice since I didn't manage to get anything to play.

I set the parameter field as indicated in the source code : pointer to stream, pointer to AHX_FilterPrecalc.bin, pointer to AHX_panning.bin, master volume set to 255. I set REGPAGE in D_FLAGS before starting the DSP.

Did you "enable" sound? It is not done (yet) in the player. Also ON_OFF must be set to 0!

But yes, an example is missing.

Edited by 42bs
Link to comment
Share on other sites

Here my code from nostaliga:

	movei	#DSP_start,r0
	movei	#DSP_RAM,r1
	movei	#(DSP_end-DSP_start),r2
	nop
cpy_dsp:
	load	(r0),r3
	addq	#4,r0
	subq	#4,r2
	store	r3,(r1)
	jr	pl,cpy_dsp
	addq	#4,r1

	movei	#DSP_flag_replay_ON_OFF,r14
	movei	#song,r0
	store	r0,(r14+16)
	movei	#$100,r0
	store	r0,(r14+12)
	movei	#binPrecalcTable,r0
	store	r0,(r14+8)
	movei	#panning_table,r0
	store	r0,(r14+4)
	moveq	#0,r0
	store	r0,(r14)

and later

 

	moveq	#0,r0
	bset	#14,r0
	movei	#$f1a100,r14
	store	r0,(r14)
	movei	#$f1b000,r0
	store	r0,(r14+$10)	; PC
	moveq	#1,r0
	store	r0,(r14+$14)	; GO

 

 

BTW: Setting DSP_flag_replay_ON_OFF == 5 will pause the song. Setting it to 1 will stop the DSP (states 2 and 3 are internal, when 4 it is stopped)

Link to comment
Share on other sites

29 minutes ago, 42bs said:

Also ON_OFF must be set to 0!

That was it!

It sounds great! Nice to hear the Jaguar producing new kind of sounds. Good job @Ericde45 and @42bs.

Now what would be nice for games is a sound FX channel, like PCM samples. I guess it is not trivial to integrate with the current logic of the player, and the DSP is already nearly full. Do you think something could be done? Maybe reducing the number of synthesis channel to 8 could free up some memory to add the additional logic...

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Cool it works.

 

Yes, SFX is another task.

 

My current WIP version has 148b free. Reducing it to 6/4 channels/RM channels increases it to 1476, so plenty of space for SFX mixing in.

Link to comment
Share on other sites

11 hours ago, CyranoJ said:

 

Please dont change the default, it will break a LOT of code.  RMAC handles this exactly like MAC currently.

No, of course not. It is, however, problematic if one wants to use code from one assembler to the other and hit upon such a problem. And I wouldn't want to force a change in Lyxass too either.

 

The only compromise I can think of would be that the code author would write a warning note in the source code, or somehow detect one or the other assembler and fail if the wrong one is detetcted.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...