aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-30 20:09:03 +0200
committerBad Diode <bd@badd10de.dev>2023-08-30 20:09:03 +0200
commitbe57c62f4633623005b5ac463ce7f65e8761d9bd (patch)
tree5616822baac37ffee92a16f634a8b9ca487ceb13
parent0c8f3c2f28a31ed5b254ca62d32cb2565c47f8dd (diff)
downloaduxngba-be57c62f4633623005b5ac463ce7f65e8761d9bd.tar.gz
uxngba-be57c62f4633623005b5ac463ce7f65e8761d9bd.zip
Fix audio and file indexing
-rw-r--r--src/main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 90778a4..96ced87 100644
--- a/src/main.c
+++ b/src/main.c
@@ -200,7 +200,7 @@ dei_datetime(u8 *dev, u8 port) {
200 200
201u16 201u16
202dei_audio(u8 *dev, u8 port) { 202dei_audio(u8 *dev, u8 port) {
203 size_t idx = device_data + 0x30 - dev; 203 size_t idx = (dev - (device_data + 0x30)) / 16;
204 AudioChannel *c = &channels[idx]; 204 AudioChannel *c = &channels[idx];
205 switch(port) { 205 switch(port) {
206 case 0x0: 206 case 0x0:
@@ -222,7 +222,8 @@ dei_audio(u8 *dev, u8 port) {
222 222
223void 223void
224deo_audio(u8 *dev, u8 port) { 224deo_audio(u8 *dev, u8 port) {
225 size_t idx = device_data + 0x30 - dev; 225 size_t idx = (dev - (device_data + 0x30)) / 16;
226 txt_printf("IDX: %d\n", idx);
226 AudioChannel *c = &channels[idx]; 227 AudioChannel *c = &channels[idx];
227 if (port == 0xf) { 228 if (port == 0xf) {
228 u16 length = 0; 229 u16 length = 0;
@@ -241,7 +242,7 @@ deo_audio(u8 *dev, u8 port) {
241 242
242u16 243u16
243dei_file(u8 *dev, u8 port) { 244dei_file(u8 *dev, u8 port) {
244 size_t idx = device_data + 0xa0 - dev; 245 size_t idx = (dev - (device_data + 0xa0)) / 16;
245 UxnFile *c = &uxn_file[idx]; 246 UxnFile *c = &uxn_file[idx];
246 switch(port) { 247 switch(port) {
247 case 0x0: 248 case 0x0:
@@ -262,7 +263,7 @@ dei_file(u8 *dev, u8 port) {
262 263
263void 264void
264deo_file(u8 *dev, u8 port) { 265deo_file(u8 *dev, u8 port) {
265 size_t idx = device_data + 0xa0 - dev; 266 size_t idx = (dev - (device_data + 0xa0)) / 16;
266 u16 a, b, res; 267 u16 a, b, res;
267 UxnFile *f = &uxn_file[idx]; 268 UxnFile *f = &uxn_file[idx];
268 switch(port) { 269 switch(port) {