![]() |
Forum Index : Microcontroller and PC projects : PicoMite/VGA/WEB V5.07.08 release candidates
![]() ![]() |
|||||
Author | Message | ||||
thwill![]() Guru ![]() Joined: 16/09/2019 Location: United KingdomPosts: 3476 |
Hi Peter, The latest push to github has a typo in the README: ... all warnings in PicoMire code fixed ... ^ I can understand how you might feel that about the code at the moment ![]() Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 7790 |
The mode file codec provides no information as to what is the end. It just plays in a loop (CMM2 is the same and I think the Maximite did the same with a different codec). If anyone can tell me how to detect the end I'll implement it. (github hxcmod) The hxcmod_fillbuffer function can return a tracker_buffer_state but I don't know enough about the mod file format to interpret it Edited 2023-10-01 19:54 by matherp |
||||
thwill![]() Guru ![]() Joined: 16/09/2019 Location: United KingdomPosts: 3476 |
Ack. @Martin H seems to know something about the format, so maybe he will be able to help. Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
Martin H.![]() Guru ![]() Joined: 04/06/2022 Location: GermanyPosts: 501 |
Information about the File Format can be found here : https://www.ocf.berkeley.edu/~eek/index.html/tiny_examples/ptmod/ap12.html here : https://www.exotica.org.uk/wiki/ProPacker_2.1#File_format or here : https://www.eblong.com/zarf/blorb/mod-spec.txt If I remember correctly (it's been about 30 years) the trackers play the MODules until a user or the MOD to stop. Maybe hxcmod has a Flag, which tells what to do at the End of the Playlist. In a MOD, there may be jumps to other positions in the playlist, so some MODs play endlessly anyway. The end can just be detected by looking at the position in the "playlist" if the end of the last pattern is reached, and there is nou "jump to another playlist position"-command in the last pattern, this should be the end of the song. (The songlenth in Pattern should be found after the last Sampleinfo-block, at Offset 950, 1 Byte (Range is 1-128)). @Tom, you might look at the lose.mod or the win.mod from the PETSCIIROBOT InGame Music, I posted last Friday. This should not be repeated automatically, because the module jumps into an empty pattern at the end and stays there. I hope this helps.. Edited 2023-10-02 03:02 by Martin H. 'no comment |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 7790 |
I've hacked hxcmod and put a parameterised return if the table position loops back to 0. Attached is VGA test firmware USE: PLAY MODFILE fname$ to play on a loop as normal USE: PLAY MODFILE fname$, interrupt to trigger an interrupt and stop playback when the table address loops. Obviously only available in a program tested and seems to work although the last bars may not be quite correct - let me know PicoMiteVGA.zip Edited 2023-10-02 04:20 by matherp |
||||
crez![]() Senior Member ![]() Joined: 24/10/2012 Location: AustraliaPosts: 152 |
I have just tried 'play flac' on picomite 5.07.07 and it works fine for stereo, but a mono flac file is playing at what sounds like double speed. Using Audacity to generate the file. I have looked at the file header and it looks correct for a mono file. The mono file, as you would expect, is about half the size of the stereo one. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 7790 |
Thanks - will fix |
||||
Martin H.![]() Guru ![]() Joined: 04/06/2022 Location: GermanyPosts: 501 |
something has changed with the PIXEL(x,y) Function. @5.07.07 it returns the color of the Dot on the active Layer (Framebuffer write N/F/L), even if the Range was on an Invisible layer. (F or N even if something overlaps on L). @5.07.08RC4 PIXEL(x,y) returns the Color of the Visible dot, even if a other layer is switched to aktive (Framebuffer write N/F/L) 'no comment |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 7790 |
VGA, PicoMite, What did you do first etc.? |
||||
Martin H.![]() Guru ![]() Joined: 04/06/2022 Location: GermanyPosts: 501 |
PicoMiteVGA MMBasic Version 5.07.08RC4 'test MODE 2:Font 1 FRAMEBUFFER layer FRAMEBUFFER write n CLS Text 0,0,"A" FRAMEBUFFER write l Box 0,0,16,16,,RGB(green),RGB(Green) FRAMEBUFFER write n Font 7 Text 0,32,"" For y=0 To 11 For x=0 To 7 If Pixel(x,y) Then :Print "1";:Else : Print "0";:EndIf Next x Next y Option list 'Save image "5.07.08RC4.bmp" if you REM out the BOX on Framebuffer L, it works as it should. ![]() On PicoMiteVGA MMBasic Version 5.07.07 it was correct Except that the green square on the LAYER isnt saved by "save image" ![]() Edited 2023-10-02 23:22 by Martin H. 'no comment |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 7790 |
Wasn't this a change I made for you? It now reports the OR of N and L when the layer is active to allow SAVE IMAGE to capture the actual display |
||||
Martin H.![]() Guru ![]() Joined: 04/06/2022 Location: GermanyPosts: 501 |
No Volhout asked for a posibility, saving everything from the Screen.. But that's not the point The green Square was also @5.0707 on the Screen (Layer) and the PIXEL Function still returns the correct values from the aktiv Layer (N). What it does not on 5.07.08RC4 So now we can save everything from the screen, but the pixel function only works to a limited extent. Edited 2023-10-02 23:36 by Martin H. 'no comment |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 7790 |
OK understand - will fix |
||||
![]() ![]() |
![]() |