#407 - coca77 - Tue Jan 07, 2003 2:38 pm
How did someone dump the GBA bios?
Also, is it true that there is a sin/cos table builtin ?
Thanks.
#412 - Touchstone - Tue Jan 07, 2003 4:22 pm
No sin or cos tables (afaik). I have no idea how they dumped it but I'm sure some kind of magic was involved. It usualy is when you don't know how things work.
_________________
You can't beat our meat
#423 - MrMr[iCE] - Tue Jan 07, 2003 5:09 pm
you can try this:
http://www.work.de/nocash/gba-xboo.htm
building the cable is easy, I use one myself for multiboot roms
_________________
Does the corpse have a familiar face?
#467 - tom - Tue Jan 07, 2003 11:39 pm
the following is taken from martin korth's gbatek.txt:
[SWI 31 (1Fh) - MidiKey2Freq
Calculates the value of the assignment to ((SoundArea)sa).vchn[x].fr
when playing the wave data, wa, with the interval (MIDI KEY) mk and
the fine adjustment value (halftones=256) fp.
r0 WaveData* wa
r1 u8 mk
r2 u8 fp
Return:
r0 u32
This function is particulary popular because it allows to read from BIOS memory
without copy protection range checks. The formula to read one byte (a) from
address (i, 0..3FFF) is:
a = (MidiKey2Freq(i-(((i AND 3)+1)OR 3), 168, 0) * 2) SHR 24]
well, apparently this function does some kind of table lookup, and by passing invalid values you get it to return any byte from the bios you want :D. i've tried it myself and it works fine.
probably there must be some sin/cos tables somewhere in the bios, for the bgaffineset and objaffineset syscalls.
#478 - Touchstone - Wed Jan 08, 2003 1:43 am
Aw, bgaffineset and objaffineset systemcalls, I who just wrote my own functions for that when I just could have used them system calls.. Argh. Cool bios-read syscall bug though. :)
_________________
You can't beat our meat
#495 - Costis - Wed Jan 08, 2003 4:18 am
Hi,
In fact, there are cosine and sine tables in the BIOS although I do not remember at what offsets they are located at. Just including a your own tables in ROM though should be much easier to access and wouldn't take much space anyway.
Costis