Gameboy Musikunterlegung

Dieses Thema im Forum "Offtopic" wurde erstellt von C64, 1. Oktober 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. C64
    Offline

    C64

    Moin,

    nun mal ein Thema, welches wohl noch keiner hier reinspamte
    Auf einem GameBoy Classic (ja sowas benutze ich noch ^^) schreibe ich ein kleines nicht weiter aufregendes Spiel in der Sprache "C".
    Maps, Figuren, Steuerung usw. alles kein Problem, ABER ... nirgends wird auch nur ein Ansatz von einem Tutorial über die Musik gefunden.
    Ich suche schon seit Monaten, keine Chance.
    Hat irgendjemand von euch eine Idee wie ich dazu komme?
    Ein Spiel ohne Musik ist einfach lame

    MfG, Patrick

    PS: Wenn jemand was postet, dann bitte auch was sinnvolles!
    PPS: http://www.devrs.com fällt raus, alle relevanten Weiterleitungen sind down!
     
    #1
  2. Cabraca
    Offline

    Cabraca

    frag doch mal nett bei nintendo deutschland an ob die dir ne entwickler-dokumentation geben?
     
    #2
  3. C64
    Offline

    C64

    Mit der Idee habe ich schon gespielt, aber noch nicht weiter verfolgt da ich glaube die Antwort zu kennen ^^
    Aber werde es wohl mal drauf ankommen lassen
     
    #3
  4. Cabraca
    Offline

    Cabraca

    naja der GBC ist mittlerweile uralt. ich wüsste nicht warum die sich da quer stellen sollen
     
    #4
  5. C64
    Offline

    C64

    Antwort steht noch aus, was ich allerdings bisher rausgekramt hatte:

    Code (Text):
    1. /** @file gb/sample.h
    2.     Playback raw sound sample with length len from start at 8192Hz rate.
    3.     len defines the length of the sample in samples/32 or bytes/16.
    4.     The format of the data is unsigned 4-bit samples,
    5.     2 samples per byte, upper 4-bits played before lower 4 bits.
    6.  
    7.     Adaption for GBDK by Lars Malmborg.
    8.     Original code by Jeff Frohwein.
    9. */
    10. #ifndef _SAMPLE_H
    11. #define _SAMPLE_H
    12.  
    13. /** Play the given, appropriatly formatted sample.
    14.  */
    15. void
    16. play_sample(UINT8 *start, UINT16 len);
    17.  
    18. #endif /* _SAMPLE_H */
    Der Aha-Effekt bleibt aber noch aus, weitere Informationen zur deklarierten Hardware:

    Code (Text):
    1. #define P1_REG        (*(__REG)0xFF00)    /* Joystick: 1.1.P15.P14.P13.P12.P11.P10 */
    2. #define SB_REG        (*(__REG)0xFF01)    /* Serial IO data buffer */
    3. #define SC_REG        (*(__REG)0xFF02)    /* Serial IO control register */
    4. #define DIV_REG        (*(__REG)0xFF04)    /* Divider register */
    5. #define TIMA_REG    (*(__REG)0xFF05)    /* Timer counter */
    6. #define TMA_REG        (*(__REG)0xFF06)    /* Timer modulo */
    7. #define TAC_REG        (*(__REG)0xFF07)    /* Timer control */
    8. #define IF_REG        (*(__REG)0xFF0F)    /* Interrupt flags: 0.0.0.JOY.SIO.TIM.LCD.VBL */
    9. #define NR10_REG    (*(__REG)0xFF10)    /* Sound register */
    10. #define NR11_REG    (*(__REG)0xFF11)    /* Sound register */
    11. #define NR12_REG    (*(__REG)0xFF12)    /* Sound register */
    12. #define NR13_REG    (*(__REG)0xFF13)    /* Sound register */
    13. #define NR14_REG    (*(__REG)0xFF14)    /* Sound register */
    14. #define NR21_REG    (*(__REG)0xFF16)    /* Sound register */
    15. #define NR22_REG    (*(__REG)0xFF17)    /* Sound register */
    16. #define NR23_REG    (*(__REG)0xFF18)    /* Sound register */
    17. #define NR24_REG    (*(__REG)0xFF19)    /* Sound register */
    18. #define NR30_REG    (*(__REG)0xFF1A)    /* Sound register */
    19. #define NR31_REG    (*(__REG)0xFF1B)    /* Sound register */
    20. #define NR32_REG    (*(__REG)0xFF1C)    /* Sound register */
    21. #define NR33_REG    (*(__REG)0xFF1D)    /* Sound register */
    22. #define NR34_REG    (*(__REG)0xFF1E)    /* Sound register */
    23. #define NR41_REG    (*(__REG)0xFF20)    /* Sound register */
    24. #define NR42_REG    (*(__REG)0xFF21)    /* Sound register */
    25. #define NR43_REG    (*(__REG)0xFF22)    /* Sound register */
    26. #define NR44_REG    (*(__REG)0xFF23)    /* Sound register */
    27. #define NR50_REG    (*(__REG)0xFF24)    /* Sound register */
    28. #define NR51_REG    (*(__REG)0xFF25)    /* Sound register */
    29. #define NR52_REG    (*(__REG)0xFF26)    /* Sound register */
    30. #define LCDC_REG    (*(__REG)0xFF40)    /* LCD control */
    31. #define STAT_REG    (*(__REG)0xFF41)    /* LCD status */
    32. #define SCY_REG        (*(__REG)0xFF42)    /* Scroll Y */
    33. #define SCX_REG        (*(__REG)0xFF43)    /* Scroll X */
    34. #define LY_REG        (*(__REG)0xFF44)    /* LCDC Y-coordinate */
    35. #define LYC_REG        (*(__REG)0xFF45)    /* LY compare */
    36. #define DMA_REG        (*(__REG)0xFF46)    /* DMA transfer */
    37. #define BGP_REG        (*(__REG)0xFF47)    /* BG palette data */
    38. #define OBP0_REG    (*(__REG)0xFF48)    /* OBJ palette 0 data */
    39. #define OBP1_REG    (*(__REG)0xFF49)    /* OBJ palette 1 data */
    40. #define WY_REG        (*(__REG)0xFF4A)    /* Window Y coordinate */
    41. #define WX_REG        (*(__REG)0xFF4B)    /* Window X coordinate */
    42. #define KEY1_REG    (*(__REG)0xFF4D)    /* CPU speed */
    43. #define VBK_REG        (*(__REG)0xFF4F)    /* VRAM bank */
    44. #define HDMA1_REG    (*(__REG)0xFF51)    /* DMA control 1 */
    45. #define HDMA2_REG    (*(__REG)0xFF52)    /* DMA control 2 */
    46. #define HDMA3_REG    (*(__REG)0xFF53)    /* DMA control 3 */
    47. #define HDMA4_REG    (*(__REG)0xFF54)    /* DMA control 4 */
    48. #define HDMA5_REG    (*(__REG)0xFF55)    /* DMA control 5 */
    49. #define RP_REG        (*(__REG)0xFF56)    /* IR port */
    50. #define BCPS_REG    (*(__REG)0xFF68)    /* BG color palette specification */
    51. #define BCPD_REG    (*(__REG)0xFF69)    /* BG color palette data */
    52. #define OCPS_REG    (*(__REG)0xFF6A)    /* OBJ color palette specification */
    53. #define OCPD_REG    (*(__REG)0xFF6B)    /* OBJ color palette data */
    54. #define SVBK_REG    (*(__REG)0xFF70)    /* WRAM bank */
    55. #define IE_REG        (*(__REG)0xFFFF)    /* Interrupt enable */
     
    #5
  6. C64
    Offline

    C64

    Meine Frage an Nintendo:
    Sehr geehrtes Team,
    meine Anfrage richtet sich an den Gameboy Classic, genauer an die Tonverarbeitung.
    Ist es möglich, mir eine Dokumentation bezüglich der Programmierung des Soundchips zukommen zu lassen (Assembler und/oder C) sowie Spezifikationen?
    Mit freundlichen Grüßen, Lachmann

    Die Antwort von Nintendo:
    Sehr geehrter Herr Lachmann!
    Danke, dass Sie uns geschrieben haben.
    Die technischen Daten der einzelnen Bauteile unserer Produkte, wie dem GameBoy Classic, liegen uns nicht vor.
    Es tut uns leid, dass wir keine positivere Auskunft für Sie haben. Wir wünschen Ihnen dennoch weiterhin viel Spaß mit unseren Produkten.
    Mit den besten Wünschen für ein schönes Wochenende
    Kathrin Kraft

    Bleibt nun die Frage: Wer hat das Teil denn bitte gebaut? ^^

     
    #6
Status des Themas:
Es sind keine weiteren Antworten möglich.