Sadness...

Talk about anything else you want

Moderator: BigEvilCorporation

Post Reply
TmEE co.(TM)
Very interested
Posts: 2442
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Sadness...

Post by TmEE co.(TM) » Thu Nov 29, 2007 3:43 pm

While adding something into my sound engine that Tulio really wanted, in one part of the engine, my nice code got so ugly :

Code: Select all

SetVolume1            ; Sets volume on Ch0...Ch2 (C=Ch, B=Vol)
 PUSH HL
 LD   A, B
 INC  A
 NEG
 AND  $7F
 LD   B, A
 LD   D, 0
 LD   A, C
 ADD  A
 ADD  A
 ADD  $80
 LD   E, A
 LD   H, 0
 LD   A, $60
 ADD  C
 LD   L, A
 LD   A, (HL)
 LD   HL, FMPORT1
 OR   A
 JP   Z, Algo01
 DEC  A
 JP   Z, Algo01
 DEC  A
 JP   Z, Algo01
 DEC  A
 JP   Z, Algo01
 DEC  A
 JP   Z, Algo11
 DEC  A
 JP   Z, Algo21
 DEC  A
 JP   Z, Algo21
 DEC  A
 JP   Z, Algo31
 RET
Algo01                ; Change only in operator 4
 LD   A, $4C
 ADD  C
 LD   (HL), A
 INC  E
 INC  E
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp4Zero01
 LD   A, $7F
NoOp4Zero01
 LD   (FMPORT2), A
 POP  HL
 RET
Algo11                ; Change in operators 3 and 4
 LD   A, $48          ; Set op3
 ADD  C
 LD   (HL), A
 LD   C, A
 INC  E
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp3Zero11
 LD   A, $7F
NoOp3Zero11
 LD   (FMPORT2), A
 NOP  #2
 LD   A, C
 ADD  $04             ; Set op4
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp4Zero11
 LD   A, $7F
NoOp4Zero11
 LD   (FMPORT2), A
 POP  HL
 RET
Algo21                ; Change in operators 2, 3 and 4
 LD   A, $44          ; Set op2
 ADD  C
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp2Zero21
 LD   A, $7F
NoOp2Zero21
 LD   (FMPORT2), A
 NOP  #2
 LD   A, C
 ADD  $04             ; Set op3
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp3Zero21
 LD   A, $7F
NoOp3Zero21
 LD   (FMPORT2), A
 NOP  #2
 LD   A, C
 ADD  $04             ; Set op4
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp4Zero21
 LD   A, $7F
NoOp4Zero21
 LD   (FMPORT2), A
 POP  HL
 RET
Algo31                ; Change in all operators
 LD   A, $40          ; Set op1
 ADD  C
 LD   (HL), A
 LD   C, A
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp1Zero31
 LD   A, $7F
NoOp1Zero31
 LD   (FMPORT2), A
 NOP  #2
 LD   A, C
 ADD  $04             ; Set op2
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp2Zero31
 LD   A, $7F
NoOp2Zero31
 LD   (FMPORT2), A
 NOP  #2
 LD   A, C
 ADD  $04             ; Set op3
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp3Zero31
 LD   A, $7F
NoOp3Zero31
 LD   (FMPORT2), A
 NOP  #2
 LD   A, C
 ADD  $04             ; Set op4
 LD   (HL), A
 LD   C, A
 INC  E
 LD   A, (DE)
 ADD  B
 BIT  7, A
 JP   Z, NoOp4Zero31
 LD   A, $7F
NoOp4Zero31
 LD   (FMPORT2), A
 POP  HL
 RET
Before it was like this :

Code: Select all

SetVolume2            ; Sets volume on Ch3...Ch5 (C=Ch, B=Vol)
 PUSH HL
 LD   A, B
 INC  A
 NEG
 AND  $7F
 LD   B, A
 LD   H, 0
 LD   A, $63
 ADD  C
 LD   L, A
 LD   A, (HL)
 LD   HL, FMPORT4
 OR   A
 JP   Z, Algo02
 DEC  A
 JP   Z, Algo02
 DEC  A
 JP   Z, Algo02
 DEC  A
 JP   Z, Algo02
 DEC  A
 JP   Z, Algo12
 DEC  A
 JP   Z, Algo22
 DEC  A
 JP   Z, Algo22
 DEC  A
 JP   Z, Algo32
 RET
Algo02                ; Change only in operator 4
 LD   A, $4C
 ADD  C
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 POP  HL
 RET
Algo12                ; Change in operators 3 and 4
 LD   A, $48          ; Set op2
 ADD  C
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 NOP  #3
 ADD  $04             ; Set op4
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 POP  HL
 RET
Algo22                ; Change in operators 2, 3 and 4
 LD   A, $44          ; Set op2
 ADD  C
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 NOP  #3
 ADD  $04             ; Set op3
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 NOP  #3
 ADD  $04             ; Set op4
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 POP  HL
 RET
Algo32                ; Change in all operators
 LD   A, $40          ; Set op1
 ADD  C
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 NOP  #3
 ADD  $04             ; Set op2
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 NOP  #3
 ADD  $04             ; Set op3
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 NOP  #3
 ADD  $04             ; Set op4
 LD   (FMPORT3), A
 NOP  #3
 LD   (HL), B
 POP  HL
 RET
Least someone is happy now...
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

TulioAdriano
Very interested
Posts: 81
Joined: Tue Jul 10, 2007 7:45 pm
Location: Brazil / USA
Contact:

Post by TulioAdriano » Thu Nov 29, 2007 5:34 pm

Hey Tiido, cheer up... :)

You're writing the most powerful FM driver ever for MegaDrive! You should be proud to be pushing little Genny beyond limits no one did before! :D
Image

TmEE co.(TM)
Very interested
Posts: 2442
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Thu Nov 29, 2007 6:19 pm

Well, you've got a point there... I have to add vibrato and slides, and it is ULTIMATE :D
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

ob1
Very interested
Posts: 464
Joined: Wed Dec 06, 2006 9:01 am
Location: Aix-en-Provence, France

Post by ob1 » Thu Nov 29, 2007 9:38 pm

[quote="TulioAdriano"]Hey Tiido, cheer up... :)

You're writing the most powerful FM driver ever for MegaDrive! You should be proud to be pushing little Genny beyond limits no one did before! :D[/quote]

+1

You have to be proud TmEE. A very good job, and you're so young ! So congrats. Truelly.

Post Reply