retrodev forum Forum Index retrodev forum
- where time stood still -
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Minimal 0.C WIP

 
Post new topic   Reply to topic    retrodev forum Forum Index -> GP2X Minimal Library SDK
View previous topic :: View next topic  
Author Message
rlyeh

cheater admin

Level 4-1
cheater admin<br>

Joined: 01 Oct 2004
Posts: 219

PostPosted: Thu Nov 23, 2006 4:01 pm    Post subject: Minimal 0.C WIP Reply with quote

Current WIP for the Minimal SDK 0.C (as November/29/2006)
Greetings from darkness...

PS: hope you like it :-)

Code:


  What's delayed for 0.D:
  =======================

  - OSD layer
  - fine scaling (post scaling)
  - support for DaveC's pad configurations (model 0,I,II,III,IV)
  - rotation
  - usb mouse
  - usb keyboard
  - custom tv modes
  - custom framebuffer size
  - single buffering support (una-i's request)
  - eeprom reading support


  What I'm doing right now
  ========================

  - write new documentation (argh!)
  - fix RGB windows (joanvr's bug)
  - test usb joystick
  - test gp2x_file handling (& tcp/ip wrapper & file selector)
  - test PSD image handling
  - test hardware blitting
  - test yuv/rgb scaling fix (@ lcd+tv & new scaling params mode)
  - test tv video output (ntsc & pal)
  - test I2C support
  - test uninstallhack


  What's new:
  ===========

  (start code)

  0.C: added full 64mb support finally! :)
       added optimized RAM timings (done with UPLL prescaler; thanks god_at_hell & craigix)
       added built-in MMU hack (thanks Squidge & NK)
       added built-in high resolution profiler (thanks GnoStiC for suggestions :-)
       added 16 high resolution software timers
       added overclocking support (thanks RobBrown, sasq & whizzbang)
       added preliminary gp2x hardware blitter support (thanks Paeryn, Reesy & Squidge)
       added /dev/minimal module driver (thanks oyzzo, GnoStiC and Gary Miller for compiling my sources)
       added hardcore homebrew (HH) programs launching support (thanks RobBrown!)
       added TV out support by using CX24785 encoder directly (thanks THB & vimacs for testing)
       added USB joysticks support
       added I2C (CX24785) support
       added BMP file image handling
       added TGA file image handling
       added gunzip library by Pasi Ojala
       added hFILE library (HPL subset library for file, network & device handling)
       added flushing cache support
       added rebooting support
       added battery check support (thanks Squidge)
       added LCD backlight support (thanks RobBrown)
       added leds support (thanks K-teto & RobBrown)
       added stereo/mono sound support
       added 3D DAC boost support
       added 6db pre-DAC attenuation support
       added bass/treble intensity support
       added headphones detection support
       added memory card detection support
       added levels based debug macro (produces compilable code only when levels match)
       fixed white LCD bug when using TV out (thanks THB for the report)
       fixed hsync/vsync polarity for firmware 2.0.0 (thanks K-teto)
       fixed YUV aspect ratio (thanks Puck2099)
       fixed dualcore support again (broken in 0.B)
       fixed two stupid typos in sound.c tutorial (thanks Nawa for the report)
       fixed intensive cpu usage bug when not playing sound
       fixed gp2x_video_setdithering function
       changed video buffering for 16bits mode (triple now)
       changed video buffering for 8bits mode (sextuple now!)
       changed YUV/RGB/dualcore/cursor memory mappings
       changed whole memory mapping to a better layout featuring a free, big and contiguous memory block sized up to 31 Mb.
       changed dualcore initialization method
       changed dualcore memory mapping method
       changed dualcore shared area usage through gp2x_dualcore_data() macro (easier to use now)
       changed dualcore stack area to a bigger and safer one (using 64kb now)
       changed dualcore 940t icache/dcache settings (should be faster now)
       changed dualcore 940t binary limit from 10Mb to 31Mb
       changed RGB region initialization method
       changed joystick read handling. You can check also for absolute values now
       restored clock setting when initializing your program (200 MHz default)
       restored leds when initializing your program
       restored low battery led when initializing your program

       added functions:
       - gp2x_blitter_enable()
       - gp2x_blitter_send()
       - gp2x_blitter_wait()
       - gp2x_dualcore_launch_HH()
       - gp2x_dualcore_clock()
       - gp2x_i2c_read()
       - gp2x_i2c_write()
       - gp2x_image_bmp()
       - gp2x_image_tga()
       - gp2x_image_free()
       - gp2x_joystick_name()
       - gp2x_joystick_scan()
       - gp2x_joystick_wait()
       - gp2x_misc_flushcache()
       - gp2x_misc_led()
       - gp2x_misc_lcd()
       - gp2x_misc_battery()
       - gp2x_misc_headphones()
       - gp2x_misc_memcard()
       - gp2x_profile_analyze()
       - gp2x_reboot()
       - gp2x_sound_stereo()
       - gp2x_sound_3Dboost()
       - gp2x_sound_attenuation()
       - gp2x_sound_setintensity()
       - gp2x_timer_raw()
       - gp2x_timer_raw_to_ticks()
       - gp2x_timer_raw_one_second()
       - gp2x_timer_init()
       - gp2x_timer_start()
       - gp2x_timer_stop()
       - gp2x_timer_cpu_usage_per_timer()
       - gp2x_timer_cpu_usage_relative()
       - gp2x_tv_setmode()
       - gp2x_tv_adjust()

       added macros:
       - gp2x_debug
       - gp2x_profile

       modified variables:
       - *gp2x_dualcore_ram
       
       modified functions:
       - gp2x_joystick_read()
       - gp2x_video_setdithering()

       modified structs:
       - deleted { *screen8, *screen16, *screen32 } pointers in gp2x_video_YUV[0,1,2,3].
       - deleted { *screen8, *screen16, *screen32 } pointers in gp2x_video_RGB[0].
       - added { void *screen } pointer into gp2x_video_YUV[0,1,2,3]
       - added { void *screen } pointer into gp2x_video_RGB[0]
       - added gp2x_rect.type enum  { RECT_RGB8=1, RECT_RGB16=2, RECT_YUV=4 };

       deprecated headers:
       - removed minimal_940t.h. Use '#define MINIMAL_940T' before '#include minimal.h' and you're ready now.

       documentation:
       - added dualcore introduction, and better example documentation

       examples:
       - added yuv example
       - added reboot example

  0.B: preliminary documentation. Created with NaturalDocs (thanks synkro for the tip!).
       preliminary Cursor layer support.
       preliminary RGB windows support.
       preliminary RGB alpha blending support.
       preliminary RGB key colouring support.
       preliminary RGB coarse scaling support.
       preliminary YUV layer support.
       preliminary YUV regions support.
       preliminary YUV splitting screen support.
       preliminary YUV mirroring support.
       preliminary YUV coarse scaling support.
       preliminary Gamma correction support.
       preliminary dithering support (untested).
       preliminary font support. Using public domain 6x10 console font.
       using octuple buffering for sound now.
       new 16 bits RGB video mode.

       improved functions:
        - gp2x_dualcore_exec()  ; it queues up to 1000 commands (dualcore should work better now)
 
       fixed functions:
        - gp2x_blitter_rect()   ; fixed stupid typo (thanks slygamer for the bug report)

       added structs:
        - gp2x_video_YUV[0,1,2,3] which contain {*screen8,*screen16,*screen32} pointers
        - gp2x_video_RGB[0] which contains {*screen8,*screen16,*screen32} pointers

       added functions:
        - gp2x_video_YUV_color()
        - gp2x_video_YUV_flip()
        - gp2x_video_YUV_setregions()
        - gp2x_video_YUV_setscaling()
        - gp2x_video_RGB_color16()
        - gp2x_video_RGB_setwindows()
        - gp2x_video_RGB_setscaling()
        - gp2x_video_RGB_setcolorkey()
        - gp2x_video_setluminance()
        - gp2x_video_setgammacorrection()
        - gp2x_video_waitvsync()
        - gp2x_video_waithsync()
        - gp2x_printf_init()
        - gp2x_printf()

       deprecated variables:
        - *gp2x_screen15
        - *gp2x_screen8

       changed functions:
        - gp2x_video_flip()           to  gp2x_video_RGB_flip()
        - gp2x_video_setpalette()     to  gp2x_video_RGB_setpalette()
        - gp2x_video_color15(R,G,B,A) to  gp2x_video_RGB_color15(R,G,B,A)
        - gp2x_video_color8(C,R,G,B)  to  gp2x_video_RGB_color8(R,G,B,C)  ; note that order of parameters has changed in this function.
        - gp2x_init()                 to  gp2x_init()                     ; it has an extra parameter now
 
  0.A: 940t disabled all time unless required
       sound is paused by default now, use gp2x_sound_pause() to unlock it
 
       fixed functions:
        - gp2x_sound_play()                        ; increased the number of sampling buffers
        - gp2x_timer_read()                        ; it should work again. broken at some point before
        - gp2x_dualcore_launch_program_from_disk() ; it missed the code uploading call
 
       added functions:
        - gp2x_sound_pause()
        - gp2x_timer_delay()
        - gp2x_dualcore_pause()
 
  0.9: initial FIFO message system for dual cpu cores.
       initial 48 Mb support.
       initial quadruple buffering in 8bbp mode.             
 
       added functions:
        - gp2x_dualcore_exec() ; initial FIFO message system for dual cpu cores.
        - gp2x_dualcore_sync() ; initial FIFO message system for dual cpu cores.
 
       improved functions:
        - gp2x_video_flip()    ; initial quadruple buffering in 8bbp mode.             
 
  0.8: initial dual cores cpu support.
       very basic blit functions by popular demand ;-)
       vsync & hsync waiting code (thanks Reesy)
 
       added functions:
        - gp2x_launch_program()            ; initial dual cores cpu support.
        - gp2x_launch_program_from_disk()  ; initial dual cores cpu support.
        - gp2x_launch_subprogram()         ; initial dual cores cpu support.
        - gp2x_blitter_rect15()            ; very basic blit function by popular demand ;-)
        - gp2x_blitter_rect8()             ; very basic blit function by popular demand ;-)
        - gp2x_video_hsync()               ; hsync waiting code (thanks Reesy)
        - gp2x_video_vsync()               ; vsync waiting code (thanks Reesy)
 
       fixed functions:
        - gp2x_video_color8()              ; bugfixed a stupid typo (thanks Franxis for the bug report)
 
  0.7: added functions:
        - gp2x_sound_volume()
 
       fixed functions:
        - gp2x_deinit()           ; fixed menu launch code when exiting.
 
       improved functions:
        - gp2x_timer_read()       ; rewritten timer. it should be more accurate now.
        - gp2x_init()             ; faster init code.
 
  0.6: added functions:
        - gp2x_timer_read()
        - gp2x_sound_pause()
 
       fixed functions:
        - gp2x_video_setpalette() ; palette handling was incorrect. fixed.
 
  0.5: improved functions:
        - gp2x_init()             ; better and cleaner initalizing code.
        - gp2x_init()             ; sound patched for real stereo output (by using NK's solution)
 
  0.4: lots of cleanups.
       sound is threaded and double buffered now.
       8 bpp video support.
 
       fixed functions:
        - gp2x_deinit()           ; better and cleaner exiting code.
 
  0.3: shorter library.
 
       fixed functions:
        - gp2x_joystick_read()    ; improved joystick diagonal detection.
 
  0.2: better code layout.
       public release.
 
  0.1: beta release.



Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    retrodev forum Forum Index -> GP2X Minimal Library SDK All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Avatars based on MAME icons by MaMu_ and some others by Rodimus.
GFX/HTML forum design by Antiriad. PHP/tpl modifications by rlyeh.
Powered by phpBB © 2001, 2002 phpBB Group