Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - utz

Pages: 1 ... 9 10 [11]
151
I would love to use WabbitEmu for TI82 development, especially since it also runs on linux. Sadly, Wabbit's 82 display emulation is totally broken as far as I can tell. Everything else seems to work, though.

I'm suspecting that WabbitEmu actually emulates the 82CS hardware-wise. Which of course won't work for pre-19.006 ROMs.

152
TI Z80 / Re: Houston Tracker - 1-bit music editor
« on: March 02, 2013, 09:32:25 am »
Thanks y'all for your responses! I'm glad some people here are interested :)

Looks nice! How much space does the program take?

At the moment, the editor+sound routine are about 1.4 KB, plus 10 K for user data. It will be extended to use all available RAM once the multiload/save feature is done.

It's a super cool project, i wish i could test it out or help out in some way. Maybe we could look for optimizations to the hex editor source?

I'll release the source code as soon as loading/saving and copy/paste functions are done. Also if somebody wants to port this to any of the newer models, you're more than welcome to do so.

What I really need at the moment is a working on-calc RLE+LZ77 packer/depacker. It could be quite slow, as long as it's small in size and efficient enough.


I wonder why are all the more advanced calc trackers are only on the 82? Does it just have better hardware for sound or something? O.O

I guess there's a simple reason for this - right now it seems I'm the only one developing 1-bit sound tools for the TI, and TI82 is the only model I own. TI82 isn't perfect, 86 would be the best of course ;)


That said this seems very cool. I really hope  I can try this at one point. I have VirtualTI and the calc but I'm unsure if my ROMs runs it (my calc has 16.0).

Does anyone know how to send this to VirtualTI and WabbitEmu? It doesn't appear to support 82b files... (it just says transmission error on all 3 ROMs I tried) ???

VTI emulates the sound more or less correctly, but has a few problems with display timing. Also you need to switch off sound emulation before turning off VTI or it will go zombie. WabbitEmu's 82 display emulation on the other hand is totally broken as far as I can tell. both in recent and older builds. It'll also do the sound part right, though.

I think the readme says 16-19.0 are all fine, but 19.006 isn't supported.

Yeah I'll make a 19.006 version eventually, but it's not so high on my list of priorities. Personally, I think the 82CS sucks as a development machine - crap link port that wears out easily, and CrAsh 19.006 isn't exactly stable.


As far as the note/hex issue is concerned - this was one of the most difficult questions in relation to this project, and in the end I decided against it for a number of reasons:

- The conversion is rather arbitrary, so neither a linear nor a logarithmic function can be used for conversion. The only possibility would in fact be a lookup table for all 3,5 octaves. Also every 1-bit sound routine uses slightly different values, so in fact I'd need to make a table for every sound routine I implement.

- Atm the plan is to have at least 3-4 engines, with different functionality. Eg, there could be a 2-channel sound routine which uses the additional 2 channels for effect commands (timing, timbre, etc). Having a simple hex editor avoids the need to adapt the display driver to the sound routines each time.

- Since tuning is always a bit problematic with 1-bit routines, it is basically required to have a possibility for manually detuning the note data. So, if I were to make the input so it uses Note name + offset/detune parameter, I couldn't do the direct hex-to-RAM conversion anymore, which is the main secret ingredient for keeping the editor size down. Also, translating back the values is non-deterministic, since on higher octaves notes can be just 1 byte apart.

- Last but not least, if there were note names, how would you go about entering them? Either you type them in manually, which would be far less efficient than the current method. Or I tie notes to different keys, which would only be feasible if you turn the calculator sideways to edit. Plus, it would require a complex lookup considering the octave value must be taken into account.

That being said, someone has already suggested a useful feature that I'll probably try to implement somehow. Basically, it would translate the hex value which is currently highlighted by the cursor back into a note name, plus possible offset.



Concerning a port to later TI models, with or without added functionality, you are more than welcome to give it a try. As I said, I'll release the sources with one of the next updates. There are a couple of potential issues I see with it: The sound routine might need a major rewrite, unless it is somehow possible to slow down the cpu to the speed of a regular 82/83. Also reading song data directly from Flash will most likely be too slow. Well, I know zilch about the new models, so I'll leave it up to you to figure this out ;)

In-game use is not a good idea, because 1-bit routines block interrupts as well as any running keyhandlers, and take up 99% of CPU time, regardless of clock speed. (You could use it for title screens though. In this case these routines might be a better choice though.)

153
TI Z80 / Houston Tracker - 1-bit music editor
« on: March 01, 2013, 11:08:54 am »
Want to make chiptune music on your calculator? Well, now you can.



Download Houston Tracker 0.3
Includes TI82/83/83+/84+ binaries and offline manual.

Source code new

Website

Sound demo
Sound demo for version 0.2


This is an early beta. Please post bug reports, feature requests and other feedback in this thread, or send me a mail (see the manual for my address).


Features:

- 1-bit PFM and XOR sound(similar to various ZX Spectrum beeper routines)
- 2-4 tone channels + 2 interrupting drum sounds
- (Pseudo-)Stereo sound (channels hardpanned l/r)
- Compact editor+player
- Linear song data, no patterns
- Multiple sound routines


Not done yet:

- Internal compression (working on it)
- Dumping/Loading song data via PC soundcard
- TI85/86/73 ports


The editor is very simple and should be intuitve to use if you're familiar with the concept of trackers. However it uses hexadecimal input instead of note names. Why on earth, you may ask? Well, as you know there are only about 27K of RAM available on the TI82, and there are no fancy flash carts or sd card readers. So I tried to keep the editor as lightweight as possible, and max out space for song data instead. Implementing a note table lookup might easily double the size of the editor Besides, the hex-do has another advantage: you can easily use non-western tuning, make "phat" basslines with detuning, etc... Well, don't worry, the manual includes a pitch-to-hex conversion table. If you feel like making a better one, please do!

Questions? Suggestions? Post them here!

UPDATE May 31st, 3013 - Version 0.3 is released

Some neat new stuff, including the long awaited "light" version. For details, click here.


UPDATE April 16th, 2013 - Version 0.21 is released

Added TI83 support and fixed a critical bug which prevented one of the sound routines from exiting. TI83+ port will probably follow soon.

UPDATE April 15th, 2013 - Version 0.2 is released

Contains loads of new stuff, for details check this post


Download link remains the same, see above.

154
ASM / Re: TI82 sound [UPDATE: TI 1-bit Pack released]
« on: November 02, 2012, 09:11:44 am »
double post, yay

Update: TI 1-Bit Pack 0.2 released

Changelog:

- Added TI83/Ion support.
- Added Octode engine (1tracker version)
- Removed all ROM calls
- Various code optimizations
- Moved all song data to external music.asm templates

Download

Btw, I don't have any plans to support TI83+ and later models. The routines should run on these models, too, but at the wrong speed. You'll need to make the necessary speed modifications yourself. ;)

155
ASM / Re: TI82 sound [UPDATE: TI 1-bit Pack released]
« on: October 28, 2012, 08:00:28 pm »
The signal is really loud on hardware, too. Had to put a dimmer before I could even record the sound.

156
ASM / Re: TI82 sound [UPDATE: TI 1-bit Pack released]
« on: October 28, 2012, 12:01:29 pm »
Wow, that sounds really cool. I've never played with sound before but that sounds amazing :D If something like that could fit behind a program that'd be really cool. Is there an emulator that can emulate sound? WabbitEmu? I used to use the old radio trick to listen to sound.

couldn't get WabbitEmu to work, unfortunately. VirtualTI will emulate the sound with acceptable quality, though.

157
ASM / Re: TI82 sound [UPDATE: TI 1-bit Pack released]
« on: October 27, 2012, 06:52:14 pm »
I can only test on ROM 19.0, since I have just one TI. Theoretically, the routines should work with all ROM versions. If you adapt them for Ion, they should also run on TI83. The routines don't make any calls to ROM except one JP EXIT_2_TIOS at the end, which can be safely replaced with a normal ret.

158
ASM / Re: TI82 sound [UPDATE: TI 1-bit Pack released]
« on: October 26, 2012, 11:50:21 am »
So, I've finally managed to get things going.

TI82 1-Bit Pack 0.1 - This package includes sources for 5 different 1bit sound routines from ZX Spectrum, with precompiled examples.
Texas Beeper Massacre - A short music demo collection, in 82p format. Requires CrASH.
warpzone - A 4 channel 1bit track playing on TI82 (Soundcloud)

Enjoy, and post your bug reports/suggestions here.

159
In Sachsen wie schon erwähnt sind Grafiktaschenrechner soweit ich weiß an fast jedem Gymnasium zugelassen (an unserer Schule der TI-84 Plus). CAS-Rechner dürfen wir hingegen nicht benutzen, aber es gibt ja genügend Apps und Programme, mit denen man einen GTR erweitern kann. :D

ach was, Sachsen ist immer noch TI-Land? War schon zu meiner Schulzeit in den 90ern so, damals gabs natürlich noch den guten alten TI82.

160
Na, dann wolln wir den deutschsprachigen Bereich mal etwas beleben. Mich würde mal folgende Frage interessieren: In welchen Bundesländern sind Grafiktaschenrechner an Schulen zugelassen? Also, postet hier rein und ich update die Liste ;) Österreicher und Schweizer sind natürlich auch willkommen ;)

Gruß,
-utz


Zugelassen/Pflicht:

- Baden-Württemberg
- Niedersachsen
- Sachsen
- Schweiz

Verboten:

- Brandenburg
- NRW (?)

161
ASM / Re: TI82 sound
« on: October 09, 2012, 08:24:43 am »
Oh boy, now that's rather embarassing ;) you're absolutely right, that value should be $c0, not $0c. thanks a ton for debugging my crappy code, calc84maniac! the routine is working on real hw now, just need to fix some minor glitches. I'll post the finished routine here, anybody who is interested can use it for their own purposes, of course.

If things go well, there'll be more routines coming up, with more channels and better sound than this one. I'll keep you guys updated.

162
ASM / Re: TI82 sound
« on: October 08, 2012, 07:52:54 am »
@DJ_O: Thanks for the welcome ;) Mateo's Beatbox thingy should work with 16.0, but I've never gotten it to work. (I'm using 19.0 on emu and hardware, btw.)Well, maybe I should have a shot at disassembling that one though. One TI82 music prog that does work is HiFiPad - http://www.ticalc.org/archives/files/fileinfo/147/14793.html. Too bad it's not really useful for making actual music, and the code is pretty ugly, too.

Didn't know about WabbitEmu, going to check it out right away.

@calc84maniac: hmm, good point. I've played around a bit with the interrupts, and disabled them during the whole play routine - sadly, still no sound on hardware. Strangely enough, when I enable interrupts during exchanges with the shadow registers (which is definately not recommendable according to all docs), I get much more stable sound on VTI. Gonna look more into that.

ed: tried WabbitEmu, seems it can't run CrASH properly?!?

163
ASM / TI82 sound [UPDATE: TI 1-bit Pack released]
« on: October 07, 2012, 07:26:23 pm »
Update: Successfully ported some ZX Spectrum Sound routines to TI82, they can be downloaded here.
Update 2012/11/02: Added TI83 support, and some other stuff. Download from the link above.

Hai guys,

Since this is my first post here, allow me to quickly introduce myself: I'm utz, aka irrlicht project, a musician working mainly with the Sinclair ZX Spectrum and it's beeper.

A while ago I found my old TI82 from school times again. Considering how similar the two platforms are, I thought it might be interesting to port some ZX Spectrum 1-bit sound routines over to the TI. Unfortunately I'm not really a coder. Well, long story short, after quite a bit of fiddeling around I got a simple two-channel routine working on VTI emulator. Sadly, it's not working on real hardware though.

The code below is for TI82/CrASH, obviously, though with some minor modifications it should work equally well (well, not so well, after all) on other Z80-based TIs. Annotations containing a + mark the modifications done by me.

So, I'm hoping there are still some TI82/83 coders lurking on this forum. Any ideas as to why this isn't working on hardware are highly welcome, and I'll reward you with... ermmm... life-long honors and that kinda stuff  ;D


Code: [Select]
.INCLUDE CRASH82.INC
.DB "HUBY 1-BIT TI82 0.5", 0
#define db .byte
#define dw .word

;Huby beeper music engine by Shiru ([email protected]) 04'11
;Two channels of tone, no volume, global speed
;One drum, replaces note on the first channel
;The main feature of this engine is the size, just 100 bytes
;Feel free to do whatever you want with the code, it is PD

ld hl,musicData
ld a,%00010000 ;+ set interrupts to fastest mode
out (4),a
call play

play
ld e,(hl) ;read speed word
inc hl
ld d,(hl)
inc hl
ld (speed),de ;store it
ld e,(hl) ;read patterns offset
inc hl
ld d,(hl) ;it will be always in DE, and HL is order list pointer now

readPos
inc hl
ld a,(hl) ;read first byte of order list
or a
ret z ;if it is zero, it is end of the song
inc hl
push hl ;store order list pointer
push de ;store patterns offset
ld l,(hl) ;read second byte of order list
ld bc,2*256 ;calculate addresses of two patterns
read
ld h,c ;pattern number*8
add hl,hl
add hl,hl
add hl,hl
add hl,de ;add patterns offset
push hl ;store pattern address
ld l,a ;now second address
djnz read
exx
pop hl ;restore pattern addressed in alternative set
pop de

ld b,8 ;play 8 rows
readRow
ld a,(hl) ;read first note
inc hl ;increase first pattern pointer
ex af,af'
ld a,(de) ;read second note
inc de ;increase second pattern pointer
exx
ld h,a
ex af,af'
ld l,a
cp $2c ;if first note is $2c, it is drum sound
jr z,$+3
xor a
ld (slide),a
speed .EQU $+1
ld bc,0
di

soundLoop
xor a ;clear carry and set A to zero
dec e ;counter of first channel
jr nz,l1
ld e,l ;reload if overflow
sub l ;and set carry if note is not zero (mute)
slide .EQU $
nop ;slide for drum
l1
dec d ;counter of second channel
jr nz,l2
ld d,h ;reload if overflow
sub h ;and set carry if note is not zero (mute)
l2
sbc a,a ;if carry, A=255, otherwise A=0
xor %11111100 ;+ $ff -> $c0, $0 -> $fc
and %00111100
add a,12
out (0),a
out (0),a
out (0),a
out (0),a ;+ 4x to compensate higher cpu speed

ld a,%10111111 ;+ new keyhandler
out (1),a
in a,(1) ;read keyboard
cpl
bit 6,a
jr nz,l3 ;if any key is pressed, exit loop

dec bc
ld a,b
or c
jr nz,soundLoop ;113/123t

l3
ld hl,$2758 ;restore alternative HL to default value
exx
ei

jr nz,$+4 ;if any key was pressed, break loop
djnz readRow

pop de
pop hl
jr z,readPos ;if no key was pressed, continue
ld a,%00010110 ;+ set interrupts back to normal
out (4),a
jp EXIT_2_TIOS ;normally ret, use CrASH syscall to return properly instead

musicData
dw $06f3
dw p-8
db $01,$02
db $01,$03
db $04,$05
db $06,$07
db $08,$09
db $0a,$0b
db $0c,$0d
db $0e,$0f
db $01,$02
db $01,$03
db $04,$05
db $06,$07
db $08,$09
db $0a,$0b
db $0c,$0d
db $0e,$0f
db $10,$02
db $11,$03
db $12,$05
db $13,$07
db $14,$09
db $15,$0b
db $16,$0d
db $17,$0f
db $18,$02
db $18,$03
db $19,$05
db $19,$07
db $1a,$09
db $1a,$0b
db $1b,$0d
db $1c,$0f
db $01,$02
db $01,$03
db $04,$05
db $06,$07
db $08,$09
db $0a,$0b
db $0c,$0d
db $0e,$0f
db $1d,$02
db $1d,$03
db $1e,$05
db $1e,$07
db $1f,$09
db $1f,$0b
db $20,$0d
db $21,$0f
db $10,$02
db $11,$03
db $12,$05
db $13,$07
db $14,$09
db $15,$0b
db $16,$0d
db $17,$0f
db $18,$02
db $18,$03
db $19,$05
db $19,$07
db $1a,$09
db $1a,$0b
db $1b,$0d
db $1c,$0f
db $00
p
db $2c,$3c,$b3,$3c,$b3,$3c,$b3,$3c
db $59,$59,$50,$50,$4b,$4b,$4b,$4b
db $4b,$4b,$4b,$4b,$59,$59,$59,$59
db $2c,$38,$b3,$38,$b3,$38,$b3,$38
db $43,$43,$43,$43,$43,$43,$43,$43
db $2c,$38,$b3,$38,$2c,$38,$2c,$38
db $43,$43,$43,$43,$4b,$4b,$50,$50
db $b3,$32,$b3,$32,$2c,$32,$b3,$32
db $4b,$4b,$50,$50,$59,$59,$59,$59
db $2c,$32,$b3,$32,$b3,$32,$b3,$32
db $59,$59,$59,$59,$4b,$4b,$4b,$4b
db $2c,$43,$b3,$43,$b3,$43,$b3,$43
db $50,$50,$50,$50,$50,$50,$50,$50
db $2c,$43,$b3,$43,$2c,$a0,$2c,$86
db $50,$50,$50,$50,$43,$43,$3c,$3c
db $2c,$3c,$e2,$3c,$e2,$3c,$2c,$3c
db $2c,$3c,$e2,$3c,$2c,$3c,$2c,$3c
db $2c,$38,$e2,$38,$e2,$38,$e2,$38
db $e2,$38,$2c,$38,$2c,$38,$e2,$38
db $2c,$32,$e2,$32,$2c,$32,$e2,$32
db $e2,$32,$e2,$32,$2c,$32,$e2,$32
db $2c,$43,$e2,$43,$e2,$43,$e2,$43
db $2c,$43,$2c,$43,$2c,$2c,$2c,$2c
db $f0,$3c,$f0,$3c,$f0,$3c,$f0,$3c
db $f0,$38,$f0,$38,$f0,$38,$f0,$38
db $f0,$32,$f0,$32,$f0,$32,$f0,$32
db $f0,$43,$f0,$43,$f0,$43,$f0,$43
db $f0,$43,$f0,$43,$f0,$a0,$f0,$86
db $78,$3c,$78,$3c,$78,$3c,$78,$3c
db $78,$38,$78,$38,$78,$38,$78,$38
db $78,$32,$78,$32,$78,$32,$78,$32
db $78,$43,$78,$43,$78,$43,$78,$43
db $78,$43,$78,$43,$78,$a0,$78,$86


Pages: 1 ... 9 10 [11]