[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/vr/ - Retro Games

Search:


View post   

>> No.2628056 [View]
File: 93 KB, 1200x816, WDSI7.jpg [View same] [iqdb] [saucenao] [google]
2628056

>>2628015
... (had to bank my comment between posts, kek)

It is hard to efficiently automate mapping code to banks however. A good 65816 programmer anticipates usage and utility when deciding whether a program needs to be known by a 24-bit or 16-bit address (which gets concatenated with the current PC's top 8 bits to form the full 24-bit address), as 24-bit and 16-bit program addressing isn't typically compatible with each other for reasons concerning pushing/pulling variable width PC data to/from the stack.

A well designed program takes advantage of the banking strategy to reduce program size and increase performance by carefully choosing between 16-bit and 24-bit addressing.

Hope this makes sense.

>>2625421
Taught myself SNES using the leaked (Engrish-y) dev manual
http://www.romhacking.net/documents/226/

Also Anomie's docs on romhacking.net are invaluable (and written in proper English).

Taught myself 6502 assembly using an ancient document I found on the Internet. Later I picked up "Programming the 65816" by Eyes. I have a hardcopy, but in the last thread someone made me aware of an online copy, which makes it so much more accessible to everyone:
http://archive.6502.org/datasheets/wdc_65816_programming_manual.pdf

>>2625468
Also this.

================================

Been trying to encode the samples guys, but still haven't completely figured out how to convert the .wav files to 16-bit PCM, which is required before encoding to BRR using my codec. I have the tools needed to do the conversion, but some parameters are off because the output is static atm.

*Minor technical correction: I've been mistakenly referring to Pulse-Code Modulation (PCM) as Pulse-Width Modulation (PWM).

>>2606715
Btw, are you around audio guy? Do you know at what rate your sound was sampled at? I'm guessing 11025Hz because that's what a few tools have reported, but am not 100% sure.

Updates tomorrow evening.

>> No.2578230 [View]
File: 93 KB, 1200x816, WDSI7.jpg [View same] [iqdb] [saucenao] [google]
2578230

>>2576884, >>2577436 guessed right with vim. I don't like IDEs. I feel I am a better debugger when I am forced to reason about my code rather than rely on distracting IDE tools. I do use a debugging emulator however. I ply my coding skills at work, but I'm primary just a student of engineering and science.

>>2577494
Yup. I've learned a lot already like what a proper sprite animation library needs, how to do fast background and rectangular hitbox collision detection, how to do HDMA, and how to structure a sprite program using states. Really I just need to make a simple script program and sound driver and I would have most of the framework of an engine. This is practice for my next longterm project which will be something more like a full fledge game.

>>2577523
Cool. Upload your SNES 4-bit plane characters somewhere and I'll check them out.

============
So no new programming, but I've refined what the sound driver will be like:

> 8 Streams
> Each stream composed of instructions:
> CLOCK = Set timer period
> WAIT = Wait n timer ticks
> JUMP = Jump to instruction
> LOOP = Jump to instruction n times and then continue
> TEST = Jump to instruction if supplied address equal to true
> CALL = Push instruction counter and jump to subphase
> RETURN = Pull instruction counter
> SET = Sets one A-DSP register

Set can set any A-DSP register, although typically you might want to stick to 1 stream per 1 voice (there are 8 voices total).

> Per voice settings:
> vol = Volume (l and r)
> pitch = What pitch to play the sound at
> source = Which sound (source) to play
> envelope = Controls ASDR or manual envelope
> key on = Turns on voice
> key off = Turns off voice

> Per BGM settings:
> mvol = Main volume
> evol = Echo volume
> edl = Echo delay
> efb = Echo feedback
> c0-c7 = FIR 8 tap filter
> eon = Echo enable
> pmon = Pitch modulation enable
> non = Noise enable

I'm working on a cpu-apu protocol now (master-slave with no interrupt line, just ports) for bgm and sfx.

Navigation
View posts[+24][+48][+96]